/*
 * Financial Management — © 2026 Petr Hasil. Všechna práva vyhrazena.
 * Autor a vlastník autorských práv: Petr Hasil, petr@hasil.info
 * Užití, kopírování, úpravy a šíření jen na základě písemné licence autora — viz LICENSE.
 */
/* ── PANEL ── */
.panel{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px;box-shadow:var(--shadow)}
.panel-hdr{padding:16px 20px;border-bottom:.5px solid var(--border2);display:flex;align-items:center;gap:10px}
.panel-hdr h2{font-size:13px;font-weight:500;color:var(--text)}
.panel-hdr p{font-size:11px;color:var(--text3);margin-top:2px}
.panel-hdr-sp{flex:1}
.panel-body{padding:20px 24px}
.panel-placeholder{padding:40px 24px;text-align:center;color:var(--text3);font-size:13px}

/* ── KATEGORIE (ukázka ukládání na disk) ── */
.cat-add-row{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.cat-add-row input[type="text"]{flex:1;min-width:180px;padding:9px 12px;border:.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:13px;outline:none}
.cat-add-row input[type="text"]:focus{border-color:var(--blue-mid)}
.cat-add-row input[type="color"]{width:40px;height:38px;border:.5px solid var(--border);border-radius:var(--radius-sm);padding:2px;cursor:pointer;background:var(--surface)}
.cat-list{display:flex;flex-direction:column;gap:6px}
.cat-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);background:var(--surface2);border:.5px solid var(--border2)}
.cat-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0}
.cat-item-name{flex:1;font-size:13px;color:var(--text)}
.cat-item-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:6px}
.cat-item-del:hover{background:var(--red-light);color:var(--red)}

/* Editor struktury vykazu (Nastaveni -> Kategorie) — kategorie + mezisoucty KP */
.struct-list{display:flex;flex-direction:column;gap:6px}
.struct-row{border:.5px solid var(--border2);border-radius:var(--radius-sm);background:var(--surface2);padding:8px 10px}
.struct-row-main{display:flex;align-items:center;gap:8px}
.struct-move{display:flex;flex-direction:column;gap:1px;flex-shrink:0}
.struct-move button{width:18px;height:14px;border:none;background:var(--surface);border-radius:3px;font-size:8px;color:var(--text3);cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.struct-move button:hover{background:var(--blue-light);color:var(--blue)}
.struct-move button:disabled{opacity:.3;cursor:default}
.struct-type-select{flex-shrink:0;padding:6px 8px;border-radius:999px;border:.5px solid var(--blue-border);background:var(--blue-light);color:var(--blue);font-family:var(--font-sans);font-size:11px;font-weight:700}
.struct-label-input{flex:1;min-width:120px;padding:7px 10px;border:.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:12.5px}
.struct-label-input:focus{border-color:var(--blue-mid);outline:none}
.struct-sign-select{flex-shrink:0;padding:7px 8px;border:.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text2);font-family:var(--font-sans);font-size:11.5px;max-width:130px}
.struct-band-select{padding:7px 8px;border:.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text2);font-family:var(--font-sans);font-size:11.5px;max-width:230px;flex-shrink:0}
.struct-del{margin-left:auto;flex-shrink:0}
.struct-from{margin-top:8px;padding-top:8px;border-top:.5px dashed var(--border2)}
.struct-from-lbl{font-size:11px;font-weight:600;color:var(--text3);margin-bottom:6px}
.struct-from-list{display:flex;flex-direction:column;gap:1px;background:var(--surface);border:.5px solid var(--border2);border-radius:var(--radius-sm);padding:4px}
.struct-from-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;font-size:12px;color:var(--text2)}
.struct-from-row:hover{background:var(--surface2)}
.struct-from-op{flex-shrink:0;padding:4px 6px;border-radius:6px;border:.5px solid var(--border);background:var(--surface);color:var(--text2);font-family:var(--font-sans);font-size:11px;font-weight:600}
.struct-from-op.op-none{background:var(--surface);color:var(--text3);border-color:var(--border)}
.struct-from-op.op-plus{background:var(--green-light);color:var(--green);border-color:var(--green-border)}
.struct-from-op.op-minus{background:var(--orange-light);color:var(--orange-dk);border-color:var(--orange-border)}
.struct-from-type{flex-shrink:0;font-size:9px;font-weight:700;padding:1px 5px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}
.struct-from-type.kat{background:var(--blue-light);color:var(--blue)}
.struct-from-type.kp{background:var(--surface2);color:var(--text3);border:.5px solid var(--border)}
.struct-from-empty{font-size:11px;color:var(--red)}
.struct-insert-btn{display:block;width:100%;padding:3px 0;margin:1px 0;border:none;background:none;color:var(--text3);font-size:10.5px;font-family:var(--font-sans);cursor:pointer;opacity:0;transition:opacity .12s;border-radius:4px}
.struct-list:hover .struct-insert-btn{opacity:.55}
.struct-insert-btn:hover{opacity:1!important;background:var(--blue-light);color:var(--blue);font-weight:600}

/* ── STAT CARDS ── */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
.stat-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
.stat-card.blue{background:var(--blue)}
.stat-card.orange{background:var(--orange)}
.sc-label{font-size:11px;color:var(--text3);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}
.stat-card.blue .sc-label,.stat-card.orange .sc-label{color:rgba(255,255,255,.5)}
.sc-val{font-family:var(--font-mono);font-size:24px;font-weight:500;color:var(--text);margin-bottom:4px}
.stat-card.blue .sc-val,.stat-card.orange .sc-val{color:#fff}
.sc-sub{font-size:11px;color:var(--text3)}
.stat-card.blue .sc-sub,.stat-card.orange .sc-sub{color:rgba(255,255,255,.4)}

/* ── DASHBOARD KARTY (Reporting) ── */
.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.dash-title h1{font-size:22px;font-weight:650;color:var(--text);letter-spacing:-.03em;margin-bottom:4px}
.dash-title p{font-size:13px;color:var(--text2);line-height:1.55}
.dash-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.dash-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);min-width:0}
.dash-card .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-weight:700;margin-bottom:8px}
.dash-card .val{font-family:var(--font-mono);font-size:24px;font-weight:750;color:var(--text);letter-spacing:-.02em;white-space:nowrap}
.dash-card .sub{font-size:12px;color:var(--text2);margin-top:5px;line-height:1.4}
.dash-card.blue{background:linear-gradient(135deg,var(--blue),var(--blue-mid));color:#fff}
.dash-card.blue .lbl,.dash-card.blue .sub{color:rgba(255,255,255,.72)}
.dash-card.blue .val{color:#fff}
.dash-card.orange{background:var(--orange-light);border-color:var(--orange-border)}
.dash-card.green{background:var(--green-light);border-color:var(--green-border)}
.dash-two{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-bottom:16px}
.dash-panel{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.dash-panel-h{padding:16px 18px;border-bottom:.5px solid var(--border2);display:flex;align-items:center;justify-content:space-between;gap:12px}
.dash-panel-h h2{font-size:15px;font-weight:650;color:var(--text)}
.dash-panel-h p{font-size:11px;color:var(--text3);margin-top:2px}
.dash-panel-b{padding:16px 18px}

/* ── GRAF (CSS sloupcový graf — bez JS knihovny, konzistentní se šablonou) ── */
.chart-with-axis{display:flex;gap:6px}
.chart-yaxis{flex:0 0 52px;display:flex;flex-direction:column;justify-content:space-between;font-size:9.5px;color:var(--text3);text-align:right;font-family:var(--font-mono);padding:16px 6px 20px 0}
.chart-with-axis>.trend-bars,.chart-with-axis>.cf-bars{flex:1;min-width:0}

.trend-bars{display:flex;gap:8px;align-items:end;height:180px;padding-top:16px}
.trend-item{flex:1;min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.trend-bar-wrap{width:100%;height:130px;background:var(--surface2);border-radius:10px;display:flex;align-items:end;gap:3px;padding:0 3px;border:.5px solid var(--border2);position:relative}
.trend-bar{flex:1;background:linear-gradient(180deg,var(--blue-mid),var(--blue));border-radius:4px 4px 0 0;min-height:3px;position:relative}
.trend-bar.expense{background:linear-gradient(180deg,var(--orange),var(--orange-dk))}
.trend-bar.ebitda{background:linear-gradient(180deg,var(--green),#0e7a34)}
.trend-bar .pending{position:absolute;left:0;right:0;bottom:0;background:var(--orange);height:0}
.trend-bar-lbl{position:absolute;left:50%;top:-15px;transform:translateX(-50%);font-size:8.5px;font-weight:700;color:var(--text2);white-space:nowrap}

/* ── DATA TABULKY (Zdrojová data) ── */
.table-toolbar{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:.5px solid var(--border2);flex-wrap:wrap}
.table-search{flex:1;min-width:180px;padding:8px 12px;border:.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);font-family:var(--font-sans);font-size:12px;outline:none}
.table-search:focus{border-color:var(--blue-mid)}
.table-meta{font-size:11px;color:var(--text3);white-space:nowrap}
.table-pager{display:flex;align-items:center;gap:6px}
.table-pager button{width:26px;height:26px;border-radius:6px;border:.5px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center}
.table-pager button:hover:not(:disabled){background:var(--blue-light);color:var(--blue)}
.table-pager button:disabled{opacity:.4;cursor:not-allowed}
.type-toggle{display:flex;gap:4px}
.type-toggle button{padding:6px 12px;border-radius:999px;border:.5px solid var(--border);background:var(--surface2);color:var(--text2);font-size:12px;cursor:pointer;font-family:var(--font-sans)}
.type-toggle button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
/* Odlisna barva pro rezimy, ktere nejsou "jen jiny filtr stejne tabulky", ale
   vedou do samostatneho, specialniho nastaveni (napr. Specificke prirazeni
   v Mapovani) — aby se to opticky odlisilo od beznych modrych prepinacu. */
.type-toggle button.special{background:var(--orange-light);color:var(--orange-dk);border-color:var(--orange-border)}
.type-toggle button.special.on{background:#7c3aed;color:#fff;border-color:#7c3aed}
.scroll-x{overflow-x:auto}
.mono{font-family:var(--font-mono)}
.num-cell{text-align:right;white-space:nowrap}
.loading-row{padding:24px;text-align:center;color:var(--text3);font-size:12px}
.trend-month{font-size:10px;color:var(--text3);font-weight:700}
.trend-val{font-size:10px;color:var(--text2);white-space:nowrap}

.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick-link{display:flex;gap:10px;align-items:center;padding:12px;border:.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);transition:all .15s;cursor:pointer}
.quick-link:hover{background:var(--blue-light);border-color:var(--blue-border);transform:translateY(-1px)}
.quick-ico{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--blue-mid));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.quick-title{font-size:13px;font-weight:650;color:var(--text)}
.quick-sub{font-size:11px;color:var(--text3);margin-top:1px;line-height:1.35}

.dash-table{width:100%;border-collapse:collapse;font-size:12px}
.dash-table th{background:var(--surface2);color:var(--text3);font-size:10px;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:10px;border-bottom:.5px solid var(--border2)}
.dash-table td{padding:11px 10px;border-bottom:.5px solid var(--border2);color:var(--text2);vertical-align:top}
.dash-table .money{white-space:nowrap;font-weight:700;color:var(--text)}
.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700;background:var(--blue-light);color:var(--blue);white-space:nowrap}
.pill.warn{background:var(--orange-light);color:var(--orange-dk)}
.pill.green{background:var(--green-light);color:var(--green)}

/* Stavova znacka pripojeni k App/data (Kategorie i Mapovani — viz js/persistence.js renderStatus) */
.store-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--surface2);color:var(--text2)}
.store-badge .dot{width:7px;height:7px;border-radius:50%;background:var(--text3);flex-shrink:0}
.store-badge.ok{background:var(--green-light);color:var(--green)}
.store-badge.ok .dot{background:var(--green);box-shadow:0 0 0 3px rgba(22,163,74,.18)}
.store-badge.warn{background:var(--orange-light);color:var(--orange-dk)}
.store-badge.warn .dot{background:var(--orange-dk)}

.map-co-chk{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;color:var(--text2);margin-right:9px;white-space:nowrap;cursor:pointer}
.map-co-chk input{accent-color:var(--blue);cursor:pointer}

/* Zmena v Mapovani (vyber kategorie/firem/vychoziho stavu) se neulozi hned,
   ceka na klik na "Potvrdit" u radku — do te doby je radek vizualne oznacen. */
.map-row-pending{background:var(--orange-light)!important}
.map-row-pending td{background:transparent}
.map-confirm-btn.pending{background:var(--orange);color:#fff;border-color:var(--orange-dk);font-weight:700}
.map-confirm-btn.pending:hover{background:var(--orange-dk)}
.map-confirm-btn.confirmed{background:var(--green);color:#fff;border-color:var(--green);font-weight:700}
.map-confirm-btn.warn{background:var(--orange-light);color:var(--orange-dk);border-color:var(--orange-border);font-weight:600;white-space:nowrap}
.map-row-confirmed{background:var(--green-light)!important}
.map-row-confirmed td{background:transparent}

/* Sjednocene potvrzeni ulozeni pro VSECHNA tlacitka "Ulozit..." v appce */
.save-flash-ok{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}

.notice-list{display:grid;gap:9px}
.notice{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;border-radius:var(--radius-sm);background:var(--surface2);border:.5px solid var(--border2)}
.notice strong{font-size:13px;color:var(--text)}
.notice span{font-size:11px;color:var(--text3)}

@media(max-width:1150px){.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-two{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}}
@media(max-width:680px){.dash-head{display:block}.dash-grid{grid-template-columns:1fr}.trend-bars{gap:4px}.dash-card .val{font-size:20px}}

/* ── TOPBAR FILTR (Společnost + Období) ── */
.filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.filter-pop{position:relative}
.filter-pill{display:flex;align-items:center;gap:8px;padding:0 14px;height:36px;border:1px solid rgba(245,166,35,.45);border-radius:8px;background:rgba(245,166,35,.14);color:#fff;font-family:var(--font-sans);font-size:11.5px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s}
.filter-pill:hover{background:rgba(245,166,35,.28);border-color:rgba(245,166,35,.7);transform:translateY(-1px)}
.filter-pill svg{flex-shrink:0;opacity:.85}
.filter-pill .car{margin-left:2px;opacity:.7;font-size:9px}

.filter-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:240px;background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:80;display:none;overflow:hidden}
.filter-panel.open{display:block}
.filter-panel-wide{min-width:460px}
.filter-panel-hdr{padding:10px 14px;border-bottom:.5px solid var(--border2);font-size:12px;font-weight:600;color:var(--text)}
.filter-panel-hdr label{display:flex;align-items:center;gap:8px;cursor:pointer}
.filter-check-list{padding:8px;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.filter-check-list label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--radius-sm);font-size:12px;color:var(--text2);cursor:pointer}
.filter-check-list label:hover{background:var(--surface2)}
.filter-check-list input,.filter-panel-hdr input{accent-color:var(--blue)}

.company-tile-list{padding:8px;display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto}
.company-tile{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text2);font-family:var(--font-sans);font-size:12.5px;font-weight:500;cursor:pointer;transition:all .12s}
.company-tile:hover{background:var(--surface2)}
.company-tile.on{background:var(--blue-light);color:var(--blue);border-color:var(--blue-border);font-weight:600}
.filter-reset-btn{display:flex;align-items:center;gap:6px;padding:0 12px;height:36px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:rgba(255,255,255,.08);color:#fff;font-family:var(--font-sans);font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s}
.filter-reset-btn:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.5)}

.company-groups{padding:8px 8px 6px;display:flex;flex-direction:column;gap:4px;border-bottom:.5px solid var(--border2);max-height:220px;overflow-y:auto}
.company-groups-hdr{font-size:11px;color:var(--text3);padding:0 4px 2px}
.company-group{display:flex;justify-content:space-between;gap:8px;width:100%;text-align:left;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border2);background:transparent;color:var(--text2);font-family:var(--font-sans);font-size:12.5px;font-weight:600;cursor:pointer}
.company-group span{font-weight:400;color:var(--text3);font-variant-numeric:tabular-nums}
.company-group:hover{background:var(--surface2)}
.company-group.on{background:var(--blue-light);color:var(--blue);border-color:var(--blue-border)}
.filter-panel-ftr{display:flex;gap:8px;padding:10px 12px;border-top:.5px solid var(--border2)}
.filter-panel-ftr .btn{flex:1;justify-content:center}
.btn.sm{padding:6px 10px;font-size:11.5px}

.period-panel-body{display:grid;grid-template-columns:150px 1fr}
.period-presets{padding:10px;border-right:.5px solid var(--border2);display:flex;flex-direction:column;gap:2px}
.period-presets button{text-align:left;padding:8px 10px;border-radius:var(--radius-sm);border:none;background:none;font-size:12px;color:var(--text2);cursor:pointer;font-family:var(--font-sans)}
.period-presets button:hover{background:var(--blue-light);color:var(--blue)}
.period-presets button.period-clear{color:var(--red);margin-top:6px;border-top:.5px solid var(--border2);padding-top:10px}
.period-presets-sep{height:.5px;background:var(--border2);margin:6px 2px}

.period-year-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:.5px solid var(--border2)}
.period-year-nav button{width:24px;height:24px;border-radius:6px;border:.5px solid var(--border);background:var(--surface2);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text2);font-family:var(--font-sans)}
.period-year-nav button:hover{background:var(--blue-light);color:var(--blue)}
.period-year-nav .yr{font-size:13px;font-weight:700;color:var(--text)}

.period-months{padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:2px;max-height:260px;overflow-y:auto}
.period-months label{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--radius-sm);font-size:12px;color:var(--text2);cursor:pointer}
.period-months label:hover{background:var(--surface2)}
.period-months input{accent-color:var(--blue)}

.period-panel-ftr{padding:10px 14px;border-top:.5px solid var(--border2);display:flex;flex-direction:column;align-items:center;gap:10px}
.gran-group{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.gran-group label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text2);cursor:pointer}
.gran-group input{accent-color:var(--blue)}

@media(max-width:640px){.period-panel-body{grid-template-columns:1fr}.period-presets{border-right:none;border-bottom:.5px solid var(--border2);flex-direction:row;flex-wrap:wrap}.filter-panel-wide{min-width:280px}}

/* ── TABLE ── */
table.atbl{width:100%;border-collapse:collapse;font-size:13px}
table.atbl thead th{text-align:left;padding:10px 16px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);font-weight:400;border-bottom:.5px solid var(--border);background:var(--surface2)}
table.atbl tbody td{padding:12px 16px;border-bottom:.5px solid var(--border2);vertical-align:middle}
table.atbl tbody tr:last-child td{border-bottom:none}
table.atbl tbody tr:hover td{background:var(--surface2)}

/* ── BADGE ── */
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;border-radius:20px;font-weight:500}
.badge.blue{background:#1C3B6E18;color:var(--blue)}
.badge.neutral{background:var(--surface2);color:var(--text2);border:.5px solid var(--border)}
.badge.positive{background:var(--green-light);color:var(--green)}
.badge.positive::before{content:'●';font-size:7px;margin-right:1px}
.badge.negative{background:var(--red-light);color:var(--red)}
.badge.negative::before{content:'●';font-size:7px;margin-right:1px}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;border:none;transition:background .13s}
.btn.primary{background:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-mid)}
.btn.secondary{background:var(--surface2);color:var(--text2);border:.5px solid var(--border)}
.btn.secondary:hover{background:var(--blue-light);color:var(--blue)}
/* Významný přepínač očištění (⚖ Bez mezifiremních): oranžový rámeček vždy,
 * při zapnutí plná oranžová se zářením — musí být na první pohled vidět,
 * že se člověk dívá na očištěná čísla. */
.btn.oranz{background:var(--orange-light);color:var(--orange-dk);border:1px solid var(--orange-border)}
.btn.oranz:hover{background:var(--orange-border);color:#fff}
.btn.oranz.on{background:var(--orange);color:#fff;border-color:var(--orange-dk);font-weight:700;box-shadow:0 0 0 3px var(--orange-light),0 0 9px rgba(245,166,35,.55)}
.btn.oranz.on:hover{background:var(--orange-dk)}
.cfpl-pozn-male{display:block;margin-top:6px;font-size:11px;color:var(--text2)}
.act-btn{padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;border:.5px solid transparent;transition:all .13s}
.act-btn.edit{background:var(--blue-light);color:var(--blue);border-color:var(--blue-border)}
.act-btn.edit:hover{background:var(--blue);color:#fff}
.act-btn.del{background:var(--red-light);color:var(--red);border-color:#F9CACA}
.act-btn.del:hover{background:var(--red);color:#fff}

/* ── FORM FIELDS ── */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fld label{display:block;font-size:12px;color:var(--text2);font-weight:500;margin-bottom:5px}
.fld input,.fld select,.fld textarea{width:100%;padding:9px 12px;border:.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text);background:var(--surface);outline:none}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--blue-mid)}

/* ── TOGGLE SWITCH ── */
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface2);border-radius:var(--radius-sm);border:.5px solid var(--border2)}
.toggle-lbl{font-size:13px;color:var(--text)}
.toggle-sub{font-size:11px;color:var(--text3);margin-top:1px}
.toggle-switch{position:relative;width:40px;height:22px;flex-shrink:0}
.toggle-switch input{opacity:0;width:0;height:0;position:absolute}
.toggle-slider{position:absolute;inset:0;background:#D1D5DB;border-radius:11px;cursor:pointer;transition:background .2s}
.toggle-slider::before{content:'';position:absolute;width:16px;height:16px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle-switch input:checked+.toggle-slider{background:var(--blue)}
.toggle-switch input:checked+.toggle-slider::before{transform:translateX(18px)}
/* Předvýpočet po startu (js/vypocty-pamet.js) */
.vyp-stitek{position:fixed;right:14px;bottom:14px;z-index:8500;background:var(--surface,#fff);border:1px solid var(--border);
  border-radius:18px;padding:6px 14px;font-size:12px;color:var(--text2);box-shadow:0 4px 14px rgba(0,0,0,.12);display:flex;align-items:center;gap:8px}
.vyp-stitek.hotovo{border-color:#86efac;color:#15803d}
.vyp-kolecko{width:11px;height:11px;border:2px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:vypToc .8s linear infinite}
@keyframes vypToc{to{transform:rotate(360deg)}}
@media print{.vyp-stitek{display:none!important}}
.vyp-stitek[hidden]{display:none!important}
.vyp-zavri{border:0;background:none;color:inherit;font-size:16px;line-height:1;padding:0 0 0 4px;margin-right:-4px;cursor:pointer;opacity:.7}
.vyp-zavri:hover{opacity:1}
body:has(.pz-show) .vyp-stitek,body:has(.pst) .vyp-stitek,body:has(:fullscreen) .vyp-stitek,html:fullscreen .vyp-stitek{display:none!important}
/* Plánování CF → Co kdyby */
.cfpl-ck{border:1px dashed var(--border);border-radius:8px;padding:8px 12px;margin:8px 0;background:var(--surface,#fff)}
.cfpl-ck.on{border:1px solid var(--orange-border);background:var(--orange-light)}
.cfpl-ck-hlava{font-size:12.5px;color:var(--text2)}
.cfpl-ck-hlava b{color:var(--text);margin-right:6px}
.cfpl-ck-form{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px}
.cfpl-ck-form input,.cfpl-ck-form select{padding:4px 7px;border:1px solid var(--border);border-radius:5px;font-size:12.5px}
.cfpl-ck-form #cfplCkPopis{min-width:220px}
.cfpl-ck-form #cfplCkCastka{width:90px}
.cfpl-ck-form label{font-size:12px;color:var(--text2);display:inline-flex;align-items:center;gap:5px}
.cfpl-ck-cipy{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.cfpl-ck-cip{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--orange-border);border-radius:14px;padding:2px 4px 2px 10px;font-size:12px}
.cfpl-ck-cip.mimo{opacity:.6;text-decoration:line-through}
.cfpl-ck-cip button{border:0;background:transparent;cursor:pointer;font-size:14px;line-height:1;color:var(--text3);padding:0 4px}
.cfpl-ck-pozn{margin-top:6px;font-size:12px;color:var(--orange-dk)}
/* Změny a náklady → Produktivita a FTE */
.prod-legenda{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 6px;font-size:12px;color:var(--text2)}
.prod-leg{display:inline-flex;align-items:center;gap:6px}
.prod-leg i{width:14px;height:3px;border-radius:2px;display:inline-block}
.prod-graf{width:100%;height:auto;display:block}
/* Pohledávky → Upomínky */
.upo-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0 0 8px}
.upo-stav{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap;background:var(--bg2,#f1f5f9);color:var(--text2)}
.upo-stav.slib-nesplnen{background:#fee2e2;color:#b91c1c}
.upo-stav.slib-bezi{background:#dbeafe;color:#1d4ed8}
.upo-stav.urgovano{background:#dcfce7;color:#15803d}
.upo-stav.k-urgenci{background:var(--orange-light);color:var(--orange-dk)}
.upo-st{display:inline-block;min-width:22px;text-align:center;border-radius:4px;font-weight:700;font-size:11px;padding:1px 5px}
.upo-st.s1{background:#e0f2fe;color:#0369a1}.upo-st.s2{background:var(--orange-light);color:var(--orange-dk)}.upo-st.s3{background:#fee2e2;color:#b91c1c}
.upo-akce{white-space:nowrap}
.upo-akce button{font-size:11px;padding:2px 7px;margin-left:3px}
.upo-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:9000;display:flex;align-items:flex-start;justify-content:center;padding:5vh 12px;overflow:auto}
.upo-okno{background:var(--surface,#fff);border-radius:10px;max-width:760px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.25);padding:16px 18px}
.upo-okno h3{margin:0 0 4px}
.upo-okno textarea{width:100%;min-height:280px;font:12.5px/1.45 var(--mono,Consolas,monospace);box-sizing:border-box;padding:8px;border:1px solid var(--border);border-radius:6px}
.upo-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 12px;margin:10px 0}
.upo-form label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text2)}
.upo-form .upo-siroke{grid-column:1/-1}
.upo-form input,.upo-form select{padding:5px 7px;border:1px solid var(--border);border-radius:5px;font-size:13px}
.upo-historie{margin-top:10px;font-size:12px}
.upo-historie td{padding:3px 6px;border-bottom:1px solid var(--border);vertical-align:top}
.upo-tlacitka{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:10px}
/* Administrace → Moduly aplikace */
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin:14px 0}
.mod-karta{background:var(--surface,#fff);border:1px solid var(--border);border-left:4px solid var(--green,#16a34a);border-radius:8px;padding:12px 14px}
.mod-karta.off{border-left-color:var(--red,#dc2626);background:var(--bg2,#f7f7f8);opacity:.85}
.mod-karta.zamceno{border-left-color:var(--text3)}
.mod-hlava{display:flex;align-items:center;gap:10px}
.mod-ikona{font-size:20px;width:26px;text-align:center}
.mod-nazev{flex:1;min-width:0}
.mod-nazev b{display:block;color:var(--text)}
.mod-nazev small{display:block;color:var(--text3);font-size:11px}
.mod-zamek{font-size:15px}
.mod-cisla{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:11.5px;color:var(--text2)}
.mod-cisla b{color:var(--text)}
.mod-stav{margin-left:auto;font-weight:700;color:var(--green,#16a34a)}
.mod-karta.off .mod-stav{color:var(--red,#dc2626)}
.mod-karta.zamceno .mod-stav{color:var(--text3)}
.mod-stranky{margin-top:6px;font-size:11px;color:var(--text3)}
.mod-stranky summary{cursor:pointer}
.mod-stranky div{margin-top:4px;line-height:1.5}

/* ── DRAWER ── */
.drawer-bg{display:none;position:fixed;inset:0;background:rgba(10,20,50,.45);z-index:200;backdrop-filter:blur(3px)}
.drawer-bg.open{display:block}
.drawer{position:fixed;right:0;top:0;bottom:0;width:480px;max-width:92vw;background:var(--surface);box-shadow:-20px 0 60px rgba(0,0,0,.2);z-index:201;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s cubic-bezier(.4,0,.2,1)}
.drawer.open{transform:translateX(0)}
.drawer-hdr{background:var(--blue);padding:20px 24px;display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0}
.drawer-hdr h2{font-size:16px;font-weight:500;color:#fff;margin-bottom:2px}
.drawer-hdr p{font-size:11px;color:rgba(255,255,255,.45)}
.drawer-close{background:none;border:none;color:rgba(255,255,255,.5);font-size:22px;cursor:pointer}
.drawer-close:hover{color:#fff}
.drawer-body{flex:1;overflow-y:auto;padding:24px}
.drawer-footer{padding:16px 24px;border-top:.5px solid var(--border2);display:flex;gap:10px;justify-content:flex-end;flex-shrink:0}

/* ── MODAL ── */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(10,20,50,.55);z-index:300;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.modal-bg.open{display:flex}
.modal{background:var(--surface);border-radius:12px;width:420px;max-width:95vw;box-shadow:0 24px 60px rgba(0,0,0,.25);overflow:hidden}
.modal-hdr{background:var(--blue);padding:20px 24px 16px;display:flex;justify-content:space-between;align-items:flex-start}
.modal-hdr h2{font-size:15px;font-weight:500;color:#fff;margin-bottom:2px}
.modal-hdr p{font-size:11px;color:rgba(255,255,255,.4)}
.modal-close{background:none;border:none;color:rgba(255,255,255,.45);font-size:22px;cursor:pointer}
.modal-close:hover{color:#fff}
.modal-body{padding:24px}

/* ── JOURNAL MODAL (proklik z čísla ve Výkazu na doklady účetního deníku) ── */
/* z-index 950: okno dokladů se otevírá i NAD vyskakovacími okny dashboardů
 * (proklik z tabulky v okně Nákladů centrály, PH 15. 9. 2026) — s původními
 * 400 by se schovalo POD ně (db2-modal má 900). */
.jmodal-bg{display:none;position:fixed;inset:0;background:rgba(10,20,50,.55);z-index:950;align-items:center;justify-content:center;backdrop-filter:blur(3px);padding:20px}
.jmodal-bg.open{display:flex}
.jmodal{background:var(--surface);border-radius:14px;width:1120px;max-width:100%;max-height:90vh;box-shadow:0 24px 60px rgba(0,0,0,.3);overflow:hidden;display:flex;flex-direction:column}
.jmodal-hdr{background:linear-gradient(92deg,#111f4d 0%,#1a3070 40%,#24468e 100%);padding:18px 24px;display:flex;justify-content:space-between;align-items:flex-start;flex-shrink:0}
.jmodal-hdr h2{font-size:16px;font-weight:700;color:#fff;margin-bottom:4px}
.jmodal-hdr p{font-size:11.5px;color:rgba(255,255,255,.72)}
.jmodal-close{background:none;border:none;color:rgba(255,255,255,.7);font-size:22px;cursor:pointer;line-height:1;padding:4px}
.jmodal-close:hover{color:#fff}
.jmodal-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:16px 24px;flex-shrink:0;border-bottom:.5px solid var(--border)}
.jmodal-card{background:var(--surface2);border:.5px solid var(--border);border-radius:10px;padding:10px 14px}
.jmodal-card-lbl{font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);margin-bottom:4px}
.jmodal-card-val{font-size:17px;font-weight:700;color:var(--text)}
.jmodal-card-sub{font-size:10.5px;font-weight:500;color:var(--text3);margin-top:2px}
.jmodal-tablewrap{flex:1;overflow:auto;padding:0 24px}
.jmodal-table{width:100%;border-collapse:collapse;font-size:12px}
.jmodal-table thead th{position:sticky;top:0;background:#111f4d;color:#fff;text-align:left;padding:5px 10px;font-size:10px;text-transform:uppercase;letter-spacing:.4px;cursor:pointer;white-space:nowrap;user-select:none}
.jmodal-table thead th:hover{background:#1a3070}
.jmodal-table thead th.num{text-align:right}
.jmodal-table td{padding:3px 10px;border-bottom:.5px solid var(--border);color:var(--text2);line-height:1.35}
.jmodal-table tbody tr:last-child td{font-weight:700;color:var(--text);background:var(--surface2);border-bottom:none}
.jmodal-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.jmodal-ftr{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 24px;border-top:.5px solid var(--border);flex-shrink:0;flex-wrap:wrap}
.jmodal-ftr .hint{font-size:10.5px;color:var(--text3)}

/* ── KURZOVNI LISTEK CNB (Financni prehled) ── */
.fx-strip{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-sm);padding:12px 16px;margin-top:14px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.fx-hdr{font-size:11.5px;font-weight:700;color:var(--text2);white-space:nowrap}
.fx-date{font-weight:500;color:var(--text3)}
.fx-chips{display:flex;gap:10px;flex-wrap:wrap}
.fx-chip{display:flex;align-items:baseline;gap:6px;background:var(--surface2);border:.5px solid var(--border2);border-radius:999px;padding:5px 12px}
.fx-code{font-size:11px;font-weight:700;color:var(--blue)}
.fx-val{font-size:13px;font-weight:700;color:var(--text)}
.fx-lbl{font-size:10px;color:var(--text3)}

/* ── SPOLECNOSTI (karty) ── */
.co-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.co-card{background:var(--surface);border:.5px solid var(--border);border-radius:16px;border-top:4px solid var(--co-color,var(--blue));box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}
.co-card-hdr{padding:16px 18px 12px}
.co-card-code{display:inline-block;background:var(--co-color,var(--blue));color:#fff;font-size:11px;font-weight:800;letter-spacing:.4px;padding:3px 10px;border-radius:999px;margin-bottom:8px}
.co-card-hdr h3{font-size:14.5px;font-weight:700;color:var(--text);line-height:1.3}
.co-card-body{padding:2px 18px 14px;flex:1}
.co-row{display:flex;justify-content:space-between;gap:14px;padding:6px 0;border-bottom:.5px dashed var(--border2);font-size:12px}
.co-row:last-child{border-bottom:none}
.co-row dt{color:var(--text3);font-weight:600;flex-shrink:0}
.co-row dd{color:var(--text2);text-align:right}
.co-card-ftr{padding:9px 18px;background:var(--surface2);border-top:.5px solid var(--border);font-size:10px;color:var(--text3)}

.export-group{display:flex;gap:6px}

/* ── TOAST ── */
.toast{position:fixed;bottom:24px;right:24px;background:var(--blue);color:#fff;padding:12px 18px;border-radius:var(--radius-sm);font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:600;transform:translateY(80px);opacity:0;transition:all .25s;display:flex;align-items:center;gap:8px}
.toast.show{transform:translateY(0);opacity:1}
.toast.success{background:var(--green)}

/* ── VÝKAZ ZISKU A ZTRÁTY (manažerský výkaz) ──
   .pl-fit (≤6 měsíců): sloupce roztažené na 100% šířky, vejde se bez scrollu.
   bez .pl-fit (7+ měsíců): pevné min. šířky sloupců, .scroll-x dovolí horizontální posuv. */
.pl-table{width:100%;border-collapse:collapse;font-size:11.5px}
.pl-table.pl-fit{table-layout:fixed}
.pl-table:not(.pl-fit){width:auto;min-width:100%;table-layout:auto}
.pl-table td{padding:5px 10px;border-bottom:.5px solid var(--border2);vertical-align:middle;white-space:nowrap;overflow:hidden}
.pl-table td.pl-lbl{white-space:normal;overflow-wrap:break-word;word-break:break-word;padding-right:14px}
.pl-table td.pl-amt{text-align:right;font-family:var(--font-mono);font-size:11.5px;white-space:nowrap}
.pl-table td.pl-pct{text-align:right;font-family:var(--font-mono);white-space:nowrap;color:var(--text3);font-size:11px;width:64px}
.pl-table tr:last-child td{border-bottom:none}

.pl-row-kat td{color:var(--text2)}
.pl-row-kat td.pl-lbl{padding-left:24px}

.pl-row-kp td{font-weight:700;border-top:.5px solid var(--border)}
.pl-row-kp td.pl-lbl{box-shadow:inset 4px 0 0 var(--kp-accent, var(--blue))}

/* Barvy kategorií a mezisoučtů — přesně dle původního controllingového reportu (Manažerský výkaz):
   b-trz modrá / b-obch+b-hrub zelená+žlutá / b-rez oranžová / b-vysl fialová,
   KP řádky sytější, EBT/EAT zlatý zvýrazněný řádek. */
.pl-band-trz{background:#EFF6FF}
.pl-band-obch{background:#F0FDF4}
.pl-band-hrub{background:#FEFCE8}
.pl-band-rez{background:#FFF7ED}
.pl-band-vysl{background:#EEF2FB}

.pl-row-kp.pl-band-trz td{color:#1e3a8a;--kp-accent:#2B5190}
.pl-row-kp.pl-band-obch td{color:#14532d;--kp-accent:#1a5c2a}
.pl-row-kp.pl-band-hrub td{color:#713f12;--kp-accent:#A97C00}
.pl-row-kp.pl-band-rez td{color:#7c2d12;--kp-accent:#9a3412}
.pl-row-kp.pl-band-vysl td{color:#16305f;--kp-accent:#1a3a70}
.pl-row-kp.pl-band-sub td{color:#475569;font-weight:600;font-size:12px;background:#F1F5F9;--kp-accent:#94A3B8}

.pl-row-ebt td{font-weight:800;font-size:14px;background:#FFF4DE;color:#12305e;border-top:1.5px solid #F5A623;border-bottom:1.5px solid #F5A623}
.pl-row-ebt td.pl-lbl{box-shadow:inset 4px 0 0 #F5A623}
.pl-row-ebt td.pl-amt:last-of-type{background:#F5A623;color:#12305e}

/* ── Účetní výkaz (VZZ) — stejná logika pruhů jako manažerská výsledovka,
   ale v růžovo-vínové škále, aby bylo na první pohled poznat, že se člověk
   dívá na ÚČETNÍ (daňový) pohled, ne na manažerský. ─────────────────────── */
.stat-band-vyn{background:#FDF2F8}
.stat-band-nakl{background:#FDF4FF}
.stat-band-mezi{background:#FCE7F3}
.stat-row-kat.stat-band-vyn td{color:#9D174D;font-weight:700}
.stat-row-kat.stat-band-nakl td{color:#86198F;font-weight:700}
.pl-table tr.stat-row-sum td.pl-amt.pl-cumul{background:#F9A8D4;color:#500724}
.stat-row-sum td{background:#FCE7F3;color:#831843;font-weight:800;font-size:13px;
  border-top:1px solid #F9A8D4;border-bottom:1px solid #F9A8D4}
.stat-row-sum td.pl-lbl{box-shadow:inset 4px 0 0 #DB2777}
.stat-row-vh td{background:#FBCFE8;color:#500724;font-weight:800;font-size:14px;
  border-top:1.5px solid #BE185D;border-bottom:1.5px solid #BE185D}
.stat-row-vh td.pl-lbl{box-shadow:inset 4px 0 0 #BE185D}
.pl-table tr.stat-row-vh td.pl-amt.pl-cumul{background:#BE185D;color:#fff}
.stat-row-sub td.pl-lbl{color:var(--text2)}
/* Sticky první sloupec musí držet stejné pozadí jako zbytek řádku */
.scroll-x > table.dash-table > tbody > tr.stat-band-vyn > td:first-child{background-color:#FDF2F8}
.scroll-x > table.dash-table > tbody > tr.stat-band-nakl > td:first-child{background-color:#FDF4FF}
.scroll-x > table.dash-table > tbody > tr.stat-row-sum > td:first-child{background-color:#FCE7F3}
.scroll-x > table.dash-table > tbody > tr.stat-row-vh > td:first-child{background-color:#FBCFE8}
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr[class*="stat-"] > td:first-child{
  background-color:var(--surface2)}
[data-theme="dark"] .stat-band-vyn,[data-theme="dark"] .stat-band-nakl{background:var(--surface2)}
[data-theme="dark"] .stat-row-sum td,[data-theme="dark"] .stat-row-vh td{color:#FBCFE8;background:#4A0E2E}
[data-theme="dark"] .pl-table tr.stat-row-vh td.pl-amt.pl-cumul{background:#BE185D;color:#fff}

/* ── Porovnání variant plánu — „nastavovací" blok nad detailem ─────────
   Fialová linka a hlavička ho odlišují od datových panelů: tady se vybírá,
   čím se budeme dívat, pod tím teprve data. ─────────────────────────────── */
#planDetailHost .panel:has(.plancmp-hdr),.panel:has(.plancmp-hdr){border-top:3px solid #1B3A6B}
.plancmp-hdr{background:linear-gradient(90deg,#EEF2FB,transparent)}
.plancmp-hdr h2{color:#12305e}
.plancmp-ico{display:inline-block;margin-right:8px;color:#1B3A6B;font-size:16px}
.plancmp-pick{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:14px 20px;
  border-bottom:.5px solid var(--border2);background:#F7FAFE;
  /* Výběrová oblast zabírá jen zhruba polovinu šířky panelu — je to
     nastavení, ne data. Na úzkém okně se zalomí a roztáhne. */
  max-width:min(760px, 55%)}
@media (max-width:1100px){.plancmp-pick{max-width:100%}}
.plancmp-slot{flex:1 1 200px;min-width:170px}
.plancmp-slot{border:1px solid #C7D7EC;border-radius:10px;padding:9px 11px;background:var(--surface)}
.plancmp-slot.plancmp-b{border-color:#FBCFE8;background:#FFFBFD}
.plancmp-tag{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  color:#1B3A6B;margin-bottom:6px}
.plancmp-slot.plancmp-b .plancmp-tag{color:#BE185D}
.plancmp-select{width:100%;padding:7px 9px;border:1px solid var(--border);border-radius:7px;
  background:var(--surface);color:var(--text);font-size:13px}
.plancmp-meta{margin-top:6px;font-size:11px;color:var(--text3)}
.plancmp-swap{align-self:center;width:34px;height:34px;border-radius:50%;border:1px solid #C7D7EC;
  background:var(--surface);color:#1B3A6B;font-size:15px;cursor:pointer;flex:0 0 auto}
.plancmp-swap:hover{background:#EEF2FB}
.plancmp-run{background:#1B3A6B;border-color:#1B3A6B;align-self:center}
.plancmp-run:hover{background:#12305e}
.plancmp-empty{padding:14px 20px}
.plancmp-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 20px 4px}
.plancmp-chip{border:1px solid var(--border);border-radius:10px;padding:8px 14px;background:var(--surface2);min-width:190px}
.plancmp-chip.up{border-color:#86EFAC;background:#F0FDF4}
.plancmp-chip.down{border-color:#FCA5A5;background:#FEF2F2}
.plancmp-chip-lbl{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.03em}
.plancmp-chip-val{font-size:20px;font-weight:800;color:var(--text)}
.plancmp-chip.up .plancmp-chip-val{color:#15803D}
.plancmp-chip.down .plancmp-chip-val{color:#B91C1C}
.plancmp-chip-note{font-size:11px;color:var(--text3)}
[data-theme="dark"] .plancmp-pick{background:var(--surface2)}
[data-theme="dark"] .plancmp-hdr{background:none}
[data-theme="dark"] .plancmp-slot,[data-theme="dark"] .plancmp-slot.plancmp-b{background:var(--surface)}
[data-theme="dark"] .plancmp-chip.up{background:#052E16}
[data-theme="dark"] .plancmp-chip.down{background:#450A0A}

/* ── Controlling → srovnání Y/Y a M/M ───────────────────────────────────
   Tabulka běžela na výchozím vzhledu .dash-table: hlavička i hodnoty byly
   světle šedé (--text3) a řádky měly velké odsazení, takže se v tom špatně
   hledalo. Tady dostává čitelnou úroveň — tmavá hlavička na modrém pruhu,
   plné černé hodnoty a sevřenější řádky. Platí jen pro tuhle sekci. */
[data-section="ctrl-yoy"] .dash-table thead th{
  background:var(--blue-mid);color:#fff;font-size:11px;font-weight:800;
  letter-spacing:.02em;padding:8px 10px;text-transform:none}
[data-section="ctrl-yoy"] .dash-table tbody td{
  color:var(--text);font-size:12.5px;padding:5px 10px;line-height:1.25}
[data-section="ctrl-yoy"] .dash-table tbody td:first-child{font-weight:700;color:var(--text)}
[data-section="ctrl-yoy"] .dash-table tbody tr:nth-child(even) td{background:var(--surface2)}
[data-section="ctrl-yoy"] .dash-table tbody tr:hover td{background:#EEF3FB}
/* Číselné sloupce monospace, ať se dají porovnávat pod sebou */
[data-section="ctrl-yoy"] .dash-table td.pl-amt,
[data-section="ctrl-yoy"] .dash-table td:not(:first-child){font-family:var(--font-mono);font-weight:650}
[data-section="ctrl-yoy"] .ctrl-scope-hint{color:var(--text2)}
[data-theme="dark"] [data-section="ctrl-yoy"] .dash-table tbody tr:hover td{background:var(--surface2)}

/* Controlling → druhá varianta plánu (třetí úroveň porovnání) */
.ctrl-planb{display:inline-flex;align-items:center;gap:8px;margin-left:12px}
.ctrl-planb-lbl{font-size:11px;font-weight:750;color:#12305e;text-transform:uppercase;letter-spacing:.03em}
.ctrl-planb-sel{padding:5px 9px;border:1px solid #C7D7EC;border-radius:7px;background:var(--surface);
  color:var(--text);font-size:12px;max-width:260px}
.ctrl-planb-btn{padding:5px 12px;font-size:12px;border-color:#1B3A6B;color:#12305e}
.ctrl-planb-btn:hover{background:#EEF2FB}
.pl-table thead th.planb-sub{background:#1B3A6B;color:#fff}
.pl-table tbody td.planb-sub{background:#EEF2FB}
[data-theme="dark"] .pl-table tbody td.planb-sub{background:var(--surface2)}

/* Seznam variant ve dvou sloupcích: vlastní vs. automatické zálohy */
/* Moje varianty a automatické zálohy jsou POD SEBOU přes celou šířku —
   vedle sebe se sloupce mačkaly a tabulka potřebovala vodorovný posuvník. */
.planvar-cols{display:grid;grid-template-columns:1fr;gap:18px;padding:4px 20px 0}
.planvar-col{min-width:0;border:1px solid var(--border2);border-radius:10px;padding:10px 0 4px;background:var(--surface)}
.planvar-col .adm-h3{margin:0 16px 8px;display:flex;align-items:center;gap:8px}
.planvar-count{font-size:11px;font-weight:800;color:var(--text3);background:var(--surface2);
  border-radius:999px;padding:1px 8px}
.planvar-actions{white-space:nowrap}
.planvar-col .planvar-act{padding:3px 8px;font-size:11px;margin-left:4px}

/* ── Mapování: kategorie po firmách ────────────────────────────────────
   Tentýž účet znamená u každé firmy něco jiného (u jedné firmy 518xxx = nájem,
   u jiné náklady zakázek). Kategorie v řádku je obecné pravidlo, tenhle panel
   pod ním drží výjimky pro konkrétní firmy. */
tr.map-exc-row.hidden{display:none}
tr.map-exc-row > td{background:#EEF2FB;border-top:0;padding:0}
.map-exc{padding:12px 18px}
.map-exc-head{font-size:12px;font-weight:750;color:#12305e;margin-bottom:8px}
.map-exc-tbl{border-collapse:collapse;width:auto;min-width:520px}
.map-exc-tbl td{padding:5px 12px 5px 0;font-size:12.5px;border:0;vertical-align:middle}
.map-exc-tbl select{padding:4px 8px;border:1px solid var(--border);border-radius:6px;
  background:var(--surface);color:var(--text);font-size:12.5px;min-width:190px}
.map-exc-general td{color:var(--text2)}
.map-exc-note{font-size:11.5px;color:var(--text3)}
.map-exc-add td{padding-top:10px;border-top:1px dashed var(--border)}
.map-exc-btn{white-space:nowrap}
[data-theme="dark"] tr.map-exc-row > td{background:var(--surface2)}
[data-theme="dark"] .map-exc-head{color:#A9C0E4}

/* ── Rozvaha dle kategorií — pivot se stromem ──────────────────────────
   Úrovně se liší odsazením a tučností, ne barvou pozadí: tabulka je široká
   a barevný pruh na každé úrovni by v ní udělal zmatek. Fialová linka
   odděluje popisný sloupec od čísel, stejně jako ve zdrojové sestavě. */
.bscat-views{display:flex;gap:10px;flex-wrap:wrap;padding:12px 20px 16px}
.bscat-view{flex:1 1 190px;text-align:left;border:2px solid var(--border);border-radius:12px;
  background:var(--surface2);padding:10px 14px;cursor:pointer;transition:all .12s}
.bscat-view:hover{border-color:#3A6DB5}
.bscat-view.on{border-color:#1B3A6B;background:#EEF2FB;box-shadow:var(--shadow)}
.bscat-view-t{display:block;font-size:13.5px;font-weight:800;color:var(--text)}
.bscat-view.on .bscat-view-t{color:#12305e}
.bscat-view-s{display:block;font-size:11px;color:var(--text3);margin-top:3px}
.bscat-tbl td.pl-lbl,.bscat-tbl thead th.pl-lbl-h{border-right:2px solid #1B3A6B}
.bscat-exp{display:inline-block;width:20px;color:var(--text3);font-size:12px;cursor:pointer;user-select:none}
.bscat-exp:hover{color:#1B3A6B}
/* Úrovně stromu: sytost podkladu klesá s hloubkou, takže je na první pohled
   poznat, jestli se člověk dívá na součet nebo na detail. Levý pruh drží
   odsazení opticky pohromadě i u dlouhých tabulek. */
tr.bscat-l1 td{font-weight:800;background:#DCE6F5;color:#12305e;
  border-top:2px solid #A9C0E4}
tr.bscat-l1 td.pl-lbl{border-left:4px solid #1B3A6B}
tr.bscat-l2 td{background:#EEF2FB;font-weight:700}
tr.bscat-l2 td.pl-lbl{padding-left:30px;border-left:4px solid #3A6DB5}
tr.bscat-l3 td{background:#F7FAFE}
tr.bscat-l3 td.pl-lbl{padding-left:54px;font-weight:600;color:var(--text);
  border-left:4px solid #C7D7EC}
tr.bscat-l4 td.pl-lbl{padding-left:80px;color:var(--text2);font-weight:400;
  border-left:4px solid transparent}
tr.bscat-l5 td.pl-lbl{padding-left:106px;color:var(--text3);font-size:12px;
  border-left:4px solid transparent}
tr.bscat-l4 td.pl-lbl,tr.bscat-l5 td.pl-lbl{font-family:var(--font-mono);font-size:12px}
tr.bscat-open{cursor:pointer}
tr.bscat-open:hover td{background:#E4ECF8}
tr.bscat-je-rozbaleno td.pl-lbl .bscat-exp{color:#1B3A6B}
/* Záporná čísla se v rozvaze čtou jinak než v deníku — pasiva jsou záporná
   z konvence, ne proto, že by něco chybělo. Proto jen jemné odlišení. */
td.pl-amt.bscat-zap{color:#9F1239}
tr.bscat-l1 td.pl-amt.bscat-zap,tr.bscat-l2 td.pl-amt.bscat-zap{color:#881337}
/* Sticky prvni sloupec ma vlastni pravidlo s vyssi specificitou
   (.scroll-x > table.dash-table > tbody > tr > td:first-child), ktere by jinak
   prebilo podklad urovne bilou. Stejnou vyjimku maji i statutarni vykazy vys —
   bez ni by prvni sloupec pri vodorovnem posunu „vypadl" z barvy radku. */
.scroll-x > table.dash-table > tbody > tr.bscat-l1 > td:first-child{background-color:#DCE6F5}
.scroll-x > table.dash-table > tbody > tr.bscat-l2 > td:first-child{background-color:#EEF2FB}
.scroll-x > table.dash-table > tbody > tr.bscat-l3 > td:first-child{background-color:#F7FAFE}
.scroll-x > table.dash-table > tbody > tr.bscat-check > td:first-child{background-color:#EEF2FB}
.scroll-x > table.dash-table > tbody > tr.bscat-open:hover > td:first-child{background-color:#E4ECF8}
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.bscat-l1 > td:first-child,
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.bscat-check > td:first-child{
  background-color:var(--surface2)}
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.bscat-l2 > td:first-child,
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.bscat-l3 > td:first-child{
  background-color:var(--surface)}
tr.bscat-check td{font-weight:800;border-top:2px solid #1B3A6B;background:#EEF2FB;color:#12305e}
tr.bscat-check.bad td{background:var(--red-light);color:var(--red);border-top-color:var(--red)}
tr.bscat-ghost td{color:var(--text3);font-style:italic}
[data-theme="dark"] tr.bscat-l1 td,[data-theme="dark"] tr.bscat-check td{background:var(--surface2);color:#C7D7EC}
[data-theme="dark"] tr.bscat-l2 td,[data-theme="dark"] tr.bscat-l3 td{background:transparent}
[data-theme="dark"] tr.bscat-open:hover td{background:var(--surface2)}
[data-theme="dark"] td.pl-amt.bscat-zap{color:#FDA4AF}
[data-theme="dark"] .bscat-view.on{background:var(--surface2)}

/* ── Předpřipravené záložky (Rozvaha, Peněžní toky, Finanční analýza) ──
   Zatím bez dat: říkají, co v nich bude a co k tomu chybí, ať je jasné,
   proč jsou prázdné a co pro jejich naplnění dodat. */
.prep-panel{border-top:3px solid var(--teal)}
.prep-badge{align-self:center;background:var(--teal-light);color:var(--teal-dk);border:1px solid var(--teal-border);
  border-radius:999px;padding:3px 12px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.prep-body{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:14px 20px 18px}
@media (max-width:900px){.prep-body{grid-template-columns:1fr}}
.prep-col .adm-h3{margin:0 0 8px}
.prep-list{margin:0;padding-left:18px;color:var(--text2);font-size:13px;line-height:1.65}
.prep-list li{margin-bottom:4px}
.prep-list code{font-family:var(--font-mono);font-size:12px;background:var(--surface2);padding:1px 5px;border-radius:4px}
.prep-need li{color:var(--text2)}
.prep-need{border-left:3px solid var(--orange);padding-left:16px;margin-left:2px;list-style:none}
.prep-need li::before{content:'▸ ';color:var(--orange);font-weight:800}

/* Seznam uložených variant plánu (Nový plán, import a export) */
.planvar-tbl td{vertical-align:middle}
/* Název varianty drží JEDEN řádek — dlouhý název se ořízne třemi tečkami
   a celý je vidět v bublině nad řádkem. Sloupec má minimální šířku, jinak
   ho tabulka ve dvousloupcovém rozvržení stlačí na pár desítek pixelů. */
.planvar-tbl{table-layout:fixed;width:100%}
.planvar-col .scroll-x{overflow-x:visible}
.planvar-tbl th:first-child,.planvar-tbl td:first-child{width:38%;min-width:150px}
.planvar-namecell{white-space:nowrap;overflow:hidden}
.planvar-name{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;vertical-align:bottom;font-weight:750;color:var(--text)}
.planvar-tbl td.pl-amt{white-space:nowrap}
.planvar-tbl td.planvar-actions{width:1%}
.planvar-file{font-size:10.5px;color:var(--text3);font-family:var(--font-mono);margin-top:2px}
.planvar-when{font-family:var(--font-mono);white-space:nowrap}
.planvar-dim{color:var(--text3)}
.planvar-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--green,#16A34A);
  color:#fff;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
/* Aktivni varianta sviti ZELENE — stejna rec jako zeleny stitek "aktivní"
   v prehledu nahranych planu, at to jde poznat na prvni pohled. */
/* Aktivni verze sviti ZELENE. Selektor musi prebit pravidlo prilepeneho
   prvniho sloupce (`.scroll-x > table.dash-table > tbody > tr > td:first-child`),
   jinak by prvni bunka zustala bila a radek by pusobil rozbite. */
.scroll-x > table.dash-table.planvar-tbl > tbody > tr.planvar-active > td{background:#F0FDF4}
.scroll-x > table.dash-table.planvar-tbl > tbody > tr.planvar-active > td:first-child{
  box-shadow:inset 4px 0 0 var(--green,#16A34A)}
.planvar-act{padding:4px 8px;font-size:11px;margin-left:4px;white-space:nowrap}
.planvar-badge.auto{background:var(--text3)}
.planlog-when{font-family:var(--font-mono);white-space:nowrap;font-size:11.5px}
.planlog-var{font-size:11.5px;color:var(--text2)}
.planlog-tbl td{vertical-align:top}
.planvar-del{color:var(--red);border-color:var(--red-border, #FCA5A5)}
.planvar-del:hover{background:var(--red-light, #FEF2F2);border-color:var(--red)}
[data-theme="dark"] .scroll-x > table.dash-table.planvar-tbl > tbody > tr.planvar-active > td{background:rgba(22,163,74,.14)}

/* Ukazatel v Y/Y po střediscích — pilulky místo systémových tlačítek */
.metric-btn{font-size:12px;padding:6px 14px}
.metric-btn[data-band="trz"]{--co-color:#2B5190}
.metric-btn[data-band="obch"]{--co-color:#1a5c2a}
.metric-btn[data-band="hrub"]{--co-color:#A97C00}
.metric-btn[data-band="rez"]{--co-color:#9a3412}
.metric-btn[data-band="vysl"],.metric-btn[data-band="ebt"]{--co-color:#1a3a70}

/* Kontrolní řádek proti účetnímu výkazu (vč. vyřazených účtů) */
.pl-row-dan td{font-weight:800;font-size:13px;background:#ECFDF5;color:#064E3B;border-top:1.5px solid #10B981;border-bottom:1.5px solid #10B981}
.pl-row-dan td.pl-lbl{box-shadow:inset 4px 0 0 #10B981}
.pl-row-dan-note td{font-size:11px;color:#065F46;background:#F0FDF4;font-style:italic}
.scroll-x > table.dash-table > tbody > tr.pl-row-dan > td:first-child{background-color:#ECFDF5}
.scroll-x > table.dash-table > tbody > tr.pl-row-dan-note > td:first-child{background-color:#F0FDF4}
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.pl-row-dan > td:first-child,
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.pl-row-dan-note > td:first-child{background-color:var(--surface2)}
.pl-row-warn td{color:var(--red);font-style:italic;background:var(--red-light)}

/* Toolbar (hledání, rozbalit/sbalit vše, přepínače, reset) — jako v původním controllingovém reportu */
.pl-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 20px;border-bottom:.5px solid var(--border2)}
.pl-search{flex:0 1 260px}
.pl-search input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);font-family:var(--font-sans);font-size:12px;outline:none}
.pl-search input:focus{border-color:var(--blue-mid)}
.pl-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);cursor:pointer;white-space:nowrap}
.pl-toggle input{accent-color:var(--blue);cursor:pointer}

.pl-table thead th{text-align:right;padding:6px 8px;font-size:9.5px;text-transform:uppercase;letter-spacing:.4px;color:#fff;font-weight:700;background:var(--blue);border-bottom:none;white-space:nowrap;line-height:1.3}
.pl-table thead th .pl-month-yr{display:block;font-size:8px;font-weight:600;letter-spacing:.2px;opacity:.72;text-transform:none;margin-top:1px}
.pl-table thead th.pl-lbl-h{text-align:left}
.pl-table thead th.pl-typ-h{text-align:center;width:36px}
.pl-table thead th.pl-cumul-h{background:var(--blue-mid)}
.pl-table td.pl-amt.pl-cumul{background:var(--surface2);font-weight:700;border-left:1px solid var(--border)}
.pl-row-kp td.pl-amt.pl-cumul,.pl-row-ebt td.pl-amt.pl-cumul{background:rgba(255,255,255,.35)}

.pl-expand-btn{width:18px;height:18px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text2);cursor:pointer;font-size:11px;font-weight:700;padding:0;margin-right:8px;vertical-align:middle;line-height:1}
.pl-expand-btn:hover{border-color:var(--blue);color:var(--blue)}
.pl-expand-sp{display:inline-block;width:26px}
.pl-cat-count{font-weight:400;color:var(--text3);font-size:11px;margin-left:4px}
.pl-cat-chk,.pl-acc-chk{accent-color:var(--blue);cursor:pointer;margin-right:8px;vertical-align:middle}

.pl-row-acc td{color:var(--text2);font-size:11px;background:var(--surface)}
.pl-row-acc td.pl-lbl{padding-left:38px}
.pl-row-acc .pl-acc-chk{margin-right:6px}
.pl-acc-num{color:var(--blue-mid);font-weight:600;margin-right:5px}
.pl-acc-name{color:var(--text2)}
.pl-acc-off td{opacity:.4;text-decoration:line-through}
.pl-acc-off .pl-num-link{text-decoration:line-through}
.pl-acc-special{background:var(--orange-light)}
.map-row-special td{background:var(--orange-light)}
.pl-acc-special.pl-acc-off td{opacity:.5}
.pl-special-badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--orange);color:#fff;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;vertical-align:1px}

.pl-num-link{border:1px solid transparent;border-radius:5px;background:none;color:inherit;cursor:pointer;font:inherit;padding:2px 5px;margin:-2px -5px;text-align:right;width:calc(100% + 10px)}
.pl-num-link:hover,.pl-num-link:focus-visible{border-color:var(--blue-mid);background:var(--blue-light);color:var(--blue-mid);outline:none}

.pl-typ-badge{display:inline-block;min-width:16px;padding:1px 5px;border-radius:4px;font-size:9.5px;font-weight:700;text-align:center;background:var(--blue-light);color:var(--blue)}
.pl-typ-badge.typ-r{background:var(--yellow-light);color:var(--yellow)}
.pl-typ-badge.typ-b{background:#DCE6F5;color:#12305e}
.pl-typ-badge.typ-zr{background:var(--surface2);color:var(--text2)}
td.pl-typ{text-align:center}

.pl-row-pct td{color:var(--text3);font-size:9.5px;font-style:italic;background:transparent!important;border-top:none;font-weight:400;padding-top:2px;padding-bottom:2px}
.pl-row-pct td.pl-lbl{padding-left:24px;box-shadow:none}
.pl-row-pct td.pl-cumul{background:var(--surface2)!important;font-weight:600}

.pl-pct-sub{font-size:10px;color:var(--text3);font-weight:400;font-family:var(--font-sans)}

.pl-legend{display:flex;flex-wrap:wrap;gap:10px 16px;padding:12px 20px;font-size:11px;color:var(--text3);border-top:.5px solid var(--border2)}
.pl-legend span{display:inline-flex;align-items:center;gap:5px}
.pl-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* Pohledávky / Závazky — časová struktura (aging). Tabulka a graf jsou natvrdo pod
   sebou (ne vedle sebe) — jen tak se tabulka vejde na šířku bez vodorovného posuvníku. */
.pz-aging-row{display:flex;flex-direction:column;gap:16px}
.pz-aging-row>.panel{margin-bottom:20px}
.pz-aging-table-panel{min-width:0}
.pz-aging-chart-panel{min-width:0}

.aging-table{table-layout:auto;width:100%}
.aging-table th,.aging-table td{white-space:nowrap}
.aging-table th{text-align:right}
.aging-table th:first-child,.aging-table td:first-child{text-align:left;font-weight:750;color:var(--text)}
.aging-table th.aging-th{font-weight:750}
.aging-table td.aging-cell,.aging-table td.aging-total-cell{padding:3px!important;text-align:right}
.aging-cell-btn{display:block;width:100%;white-space:nowrap;border:1px solid transparent;border-radius:6px;background:none;cursor:pointer;font-family:var(--font-mono);font-size:11px;font-weight:650;color:inherit;padding:7px 9px;text-align:right}
.aging-cell-btn:hover,.aging-cell-btn:focus-visible{border-color:currentColor;outline:none}
.aging-cnt{display:block;white-space:nowrap;font-family:var(--font-sans);font-size:9px;font-weight:500;opacity:.72;margin-top:1px}
.aging-cell.active .aging-cell-btn,.aging-total-cell.active .aging-cell-btn{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}
.aging-total-cell{background:var(--surface2)!important}
.aging-total-btn{font-weight:800}
tr.aging-total-row td{background:var(--surface2);font-weight:750}
tr.aging-total-row td:first-child{color:var(--text)}

/* .dash-table th/td (element+class) mají vyšší specificitu než holá .aging-N,
   proto tady musí být selektor .dash-table th/td.aging-N, aby se probarvení projevilo. */
.dash-table th.aging-0,.dash-table td.aging-0{background:var(--aging-0-bg);color:var(--aging-0-fg)}
.dash-table th.aging-1,.dash-table td.aging-1{background:var(--aging-1-bg);color:var(--aging-1-fg)}
.dash-table th.aging-2,.dash-table td.aging-2{background:var(--aging-2-bg);color:var(--aging-2-fg)}
.dash-table th.aging-3,.dash-table td.aging-3{background:var(--aging-3-bg);color:var(--aging-3-fg)}
.dash-table th.aging-4,.dash-table td.aging-4{background:var(--aging-4-bg);color:var(--aging-4-fg)}
.dash-table th.aging-5,.dash-table td.aging-5{background:var(--aging-5-bg);color:var(--aging-5-fg)}
.dash-table th.aging-6,.dash-table td.aging-6{background:var(--aging-6-bg);color:var(--aging-6-fg)}
.dash-table th.aging-dnes,.dash-table td.aging-dnes{background:var(--aging-dnes-bg);color:var(--aging-dnes-fg)}

.aging-chart-split{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}
.aging-bars-col{flex:1.4;min-width:220px}
.aging-pie-wrap{flex:1;min-width:180px;display:flex;flex-direction:column;align-items:center;gap:14px}
.aging-pie{width:150px;height:150px;flex-shrink:0}
.aging-pie-slice{cursor:pointer;transition:opacity .12s,filter .12s;stroke:var(--surface);stroke-width:1}
.aging-pie-slice:hover{filter:brightness(1.12)}
.aging-pie-slice.active{stroke:var(--text);stroke-width:2}
.aging-pie-wrap.has-active .aging-pie-slice:not(.active){opacity:.4}
.aging-pie-legend{width:100%;display:flex;flex-direction:column;gap:3px}
.aging-pie-legend-item{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text2);width:100%;border:1px solid transparent;border-radius:6px;background:none;padding:4px 6px;margin:0;font-family:inherit;cursor:pointer;text-align:left}
.aging-pie-legend-item:hover{background:var(--surface2)}
.aging-pie-legend-item.active{border-color:var(--text);font-weight:700}
.aging-pie-wrap.has-active .aging-pie-legend-item:not(.active){opacity:.5}
.aging-pie-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}
.aging-pie-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aging-pie-pct{font-family:var(--font-mono);font-weight:700;color:var(--text)}

.aging-bars{display:flex;flex-direction:column;gap:11px}
.aging-bar-row{display:flex;align-items:center;gap:8px;min-height:24px}
.aging-bar-row.has-active .aging-seg:not(.active){opacity:.35}
.aging-bar-row.has-active .aging-bar-lbl:not(.active),.aging-bar-row.has-active .aging-bar-val:not(.active){opacity:.5}
/* Celý název firmy vedle pruhu — zkratka („AB") na poradě nikomu nic neřekne.
   Šířka stačí i na „100% Firma Beta Plus s.r.o."; delší název se zalomí na dva
   řádky místo oříznutí, aby nezmizel konec, který firmy odlišuje. */
.aging-bar-lbl{flex:0 0 178px;width:178px;font-size:11px;font-weight:650;
  color:var(--text2);line-height:1.25;overflow-wrap:anywhere;cursor:pointer;
  border-radius:4px;padding-right:6px}
@media(max-width:1100px){.aging-bar-lbl{flex:0 0 120px;width:120px}}
.aging-bar-lbl:hover,.aging-bar-val:hover{color:var(--text)}
.aging-bar-lbl.active,.aging-bar-val.active{color:var(--text);font-weight:800;text-decoration:underline}
.aging-bar-track{flex:1;background:var(--surface2);border-radius:6px;overflow:hidden;height:20px;min-width:0}
.aging-bar-fill{display:flex;height:100%;min-width:2px}
.aging-seg{display:block;height:100%;cursor:pointer;transition:opacity .12s}
.aging-seg:hover{filter:brightness(1.12)}
.aging-seg.active{box-shadow:inset 0 0 0 2px var(--text)}
.aging-seg.aging-0{background:var(--aging-0)}
.aging-seg.aging-1{background:var(--aging-1)}
.aging-seg.aging-2{background:var(--aging-2)}
.aging-seg.aging-3{background:var(--aging-3)}
.aging-seg.aging-4{background:var(--aging-4)}
.aging-seg.aging-5{background:var(--aging-5)}
.aging-seg.aging-6{background:var(--aging-6)}
.aging-seg.aging-dnes{background:var(--aging-dnes)}
.aging-bar-val{flex:0 0 92px;width:92px;text-align:right;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text);cursor:pointer}

.aging-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:7px 14px;margin-top:14px;padding-top:12px;border-top:.5px solid var(--border2);font-size:10.5px;color:var(--text2)}
.aging-legend-item{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 11px 3px 5px;font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.aging-legend-dot{width:18px;height:12px;border-radius:3px;display:inline-block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.aging-legend-dot.aging-0{background:var(--aging-0)}
.aging-legend-dot.aging-1{background:var(--aging-1)}
.aging-legend-dot.aging-2{background:var(--aging-2)}
.aging-legend-dot.aging-3{background:var(--aging-3)}
.aging-legend-dot.aging-4{background:var(--aging-4)}
.aging-legend-dot.aging-5{background:var(--aging-5)}
.aging-legend-dot.aging-6{background:var(--aging-6)}
.aging-legend-dot.aging-dnes{background:var(--aging-dnes)}

.aging-chart-empty{padding:24px 4px;text-align:center;color:var(--text3);font-size:12px}

.btn-quick-filter{display:inline-flex;align-items:center;gap:6px;padding:0 14px;height:32px;border:1px solid var(--blue-border);border-radius:8px;background:var(--blue-light);color:var(--blue-mid);font-family:var(--font-sans);font-size:11.5px;font-weight:650;cursor:pointer;white-space:nowrap;transition:all .15s}
.btn-quick-filter:hover{background:var(--blue-border);transform:translateY(-1px)}

.aging-filter-chip{display:flex;align-items:center;min-height:24px}
.aging-filter-chip .pill{background:var(--blue-light);color:var(--blue)}
.aging-chip-clear{margin-left:7px;border:none;background:none;cursor:pointer;color:inherit;font-weight:700;padding:0 2px;font-size:11px;line-height:1}

/* Zdrojová data → Načtená data — modulová karta na externí napojení (zatím jen ČNB) */
.loaded-data-modules{display:flex;flex-direction:column;gap:14px}
.ld-module{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.ld-module-hdr{display:flex;align-items:center;gap:14px;padding:16px 20px;flex-wrap:wrap}
.ld-module-ico{width:36px;height:36px;border-radius:10px;background:var(--blue-light);color:var(--blue-mid);display:flex;align-items:center;justify-content:center;font-weight:750;font-size:16px;flex-shrink:0}
.ld-module-info{flex:1;min-width:160px}
.ld-module-info h2{font-size:14px;font-weight:650;color:var(--text)}
.ld-module-info p{font-size:11px;color:var(--text3);margin-top:2px}
.ld-module-hint{padding:0 20px 14px;font-size:11px;color:var(--text3);line-height:1.5}
.ld-module-body{border-top:.5px solid var(--border2);padding:16px 20px}
.ld-module-placeholder{opacity:.6}
.ld-module-placeholder .ld-module-ico{background:var(--surface2);color:var(--text3)}

/* Souhrnné přehledy — Trend v čase (SVG line chart, jeden bod za aktualizaci dat) */
.pz-trend-svg{width:100%;height:auto;display:block}
.pz-trend-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:10px;padding-top:10px;border-top:.5px solid var(--border2);font-size:11px;color:var(--text2)}
.pz-trend-legend-item{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 11px 3px 5px;font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:6px}
.pz-trend-legend-dot{width:18px;height:12px;border-radius:3px;display:inline-block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.pz-trend-single p{font-size:12.5px;color:var(--text2);line-height:1.6}
.pz-trend-single code{background:var(--surface2);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:11px}

/* Finanční přehled — přetahovatelné bloky (pořadí uložené v localStorage) */
#dashBlocks{display:flex;flex-direction:column;gap:20px}
.dash-block{position:relative}
.dash-block-handle{position:absolute;top:-2px;right:2px;cursor:grab;color:var(--text3);font-size:13px;letter-spacing:-2px;padding:4px 6px;border-radius:6px;opacity:0;transition:opacity .15s;z-index:5;user-select:none}
.dash-block:hover .dash-block-handle{opacity:1}
.dash-block-handle:hover{background:var(--surface2);color:var(--text)}
.dash-block.dragging{opacity:.4}
.dash-block.drag-over-before{box-shadow:inset 0 3px 0 var(--blue-mid)}
.dash-block.drag-over-after{box-shadow:inset 0 -3px 0 var(--blue-mid)}

/* Výkaz zisku a ztráty → Přehledy (skutečnost) */
.ovw-spacer-row td{padding:4px 0!important;border:none!important;background:transparent!important}
.pl-row-pct-ovw td{color:var(--text2);font-size:11.5px}
.pl-row-pct-ovw td.pl-lbl{padding-left:12px}

.ovw-company-toggle{display:flex;flex-wrap:wrap;gap:6px;padding:12px 20px 0}
.ovw-co-btn{border:1px solid var(--border);border-radius:999px;background:var(--surface2);color:var(--text2);font-size:11px;font-weight:650;padding:5px 12px;cursor:pointer;transition:all .12s}
.ovw-co-btn:hover{border-color:var(--co-color, var(--blue-mid))}
.ovw-co-btn.on{background:var(--co-color, var(--blue-mid));border-color:var(--co-color, var(--blue-mid));color:#fff}

.ovw-cbars{display:flex;gap:14px;align-items:end;height:180px;padding:16px 20px 30px;flex:1;min-width:0}
.ovw-cbar-item{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:4px;position:relative}
.ovw-cbar-lbl{font-size:11.5px;font-weight:800;color:var(--text);white-space:nowrap}
.ovw-cbar-track{width:100%;flex:1;display:flex;align-items:end;background:var(--surface2);border-radius:6px 6px 0 0;overflow:hidden}
.ovw-cbar-fill{width:100%;min-height:2px;border-radius:6px 6px 0 0}
.ovw-cbar-fill.neg{background:var(--red)!important}
.ovw-cbar-name{font-size:10.5px;color:var(--text3);font-weight:650;white-space:nowrap}

.ovw-pctbars{display:flex;flex-direction:column;gap:8px;padding:16px 20px}
.ovw-pctbar-row{display:flex;align-items:center;gap:10px}
.ovw-pctbar-name{flex:0 0 60px;width:60px;font-size:11px;color:var(--text2);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ovw-pctbar-track{flex:1;height:16px;background:var(--surface2);border-radius:4px;overflow:hidden;min-width:0}
.ovw-pctbar-fill{height:100%;background:var(--blue-mid);border-radius:4px;transition:width .15s}
.ovw-pctbar-fill.ler{background:var(--orange)}
.ovw-pctbar-val{flex:0 0 56px;width:56px;text-align:right;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text)}

/* Finanční přehled — donut Čistá marže + mini graf Peněžní toky podle měsíců */
.margin-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.margin-donut-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:4px}
.margin-donut{width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--blue-mid) 0%,var(--surface2) 0%)}
.margin-donut::before{content:'';position:absolute}
.margin-donut span{background:var(--surface);width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:750;font-size:15px;color:var(--text)}
.margin-target{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text3);font-weight:600}
.margin-target input{width:52px;padding:4px 6px;border:.5px solid var(--border);border-radius:6px;background:var(--surface2);color:var(--text);font-family:var(--font-mono);font-size:12px;outline:none;text-align:center}

.cf-bars{display:flex;gap:8px;align-items:center;height:150px;padding-top:16px;padding-bottom:20px}
.cf-bar-item{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.cf-bar-track{width:100%;height:100%;position:relative}
.cf-bar-zero{position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--border)}
.cf-bar{position:absolute;left:15%;right:15%;border-radius:3px;background:var(--blue-mid)}
.cf-bar.neg{background:var(--text3)}
.cf-bar-lbl{position:absolute;left:0;right:0;text-align:center;font-size:8.5px;font-weight:700;color:var(--text2);white-space:nowrap}
.cf-bar-month{position:absolute;bottom:-20px;left:0;right:0;text-align:center;font-size:10px;color:var(--text3)}

/* Rozklad po firmách — barevné odlišení sloupců Pohledávky (zelená) / Závazky (oranžová) */
.pz-breakdown-table th.col-rec,.pz-breakdown-table td.col-rec{background:var(--green-light)}
.pz-breakdown-table th.col-pay,.pz-breakdown-table td.col-pay{background:var(--orange-light)}
.pz-breakdown-table th.col-rec{color:var(--green)}
.pz-breakdown-table th.col-pay{color:var(--orange-dk)}

/* Souhrnné přehledy — "90+ dní" zvýraznění v kartě + analýza protistran */
.dash-card-flag{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:10px;border-top:.5px solid var(--border2);font-size:12px}
.dash-card-flag .flag-lbl{color:var(--text3);font-weight:650;white-space:nowrap}
.dash-card-flag .flag-arrow{color:var(--red);font-weight:900}
.dash-card-flag .flag-val{font-family:var(--font-mono);font-weight:750;color:var(--red);margin-left:auto;white-space:nowrap}

.pz-analysis-row{display:flex;flex-direction:column;gap:16px;margin-top:14px}
.pz-analysis-panel{min-width:0}
.pz-analysis-panel .dash-panel-h{flex-wrap:wrap}

.pz-ana-filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 18px}
.pz-ana-filters label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text3);font-weight:600;white-space:nowrap}
.pz-ana-filters input{width:110px;padding:6px 9px;border:.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);font-family:var(--font-mono);font-size:12px;outline:none}
.pz-ana-filters input:focus{border-color:var(--blue-mid)}

.pz-ana-name-btn{border:none;background:none;padding:0;margin:0;font:inherit;font-weight:700;color:var(--blue-mid);cursor:pointer;text-align:left;white-space:normal;word-break:break-word}
.pz-ana-name-btn:hover{text-decoration:underline}

.pz-ana-table td,.pz-ana-table th{white-space:nowrap}
.pz-ana-table td:first-child,.pz-ana-table th:first-child{white-space:normal;word-break:break-word;min-width:160px}
.pz-ana-table .pill{min-width:56px;justify-content:center}

.sortable-th{cursor:pointer;user-select:none}
.sortable-th:hover{color:var(--text)}
.sortable-th::after{content:'';display:inline-block;width:0;height:0;margin-left:4px;vertical-align:middle;border-left:3px solid transparent;border-right:3px solid transparent;opacity:.35}
.sortable-th[data-dir="asc"]::after{border-bottom:4px solid currentColor}
.sortable-th[data-dir="desc"]::after{border-top:4px solid currentColor}
.sortable-th.sort-active{color:var(--text)}
.sortable-th.sort-active::after{opacity:1}

.pill.aging-0{background:var(--aging-0-bg);color:var(--aging-0-fg)}
.pill.aging-1{background:var(--aging-1-bg);color:var(--aging-1-fg)}
.pill.aging-2{background:var(--aging-2-bg);color:var(--aging-2-fg)}
.pill.aging-3{background:var(--aging-3-bg);color:var(--aging-3-fg)}
.pill.aging-4{background:var(--aging-4-bg);color:var(--aging-4-fg)}
.pill.aging-5{background:var(--aging-5-bg);color:var(--aging-5-fg)}
.pill.aging-6{background:var(--aging-6-bg);color:var(--aging-6-fg)}
.pill.aging-dnes{background:var(--aging-dnes-bg);color:var(--aging-dnes-fg)}

/* Plánování → firma (dominantní, velké přepínače v barvě firmy) a středisko
   (druhá úroveň, odlišené teal barvou) — vizuálně oddělené, aby bylo na první
   pohled jasné, že jde o dvě různé úrovně filtrování. */
.plan-firma-toggle{display:flex;flex-wrap:wrap;gap:10px;padding:16px 20px 4px}
.plan-firma-btn{border:2px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text2);font-size:14px;font-weight:750;padding:11px 20px;cursor:pointer;transition:all .12s}
.plan-firma-btn:hover{border-color:var(--co-color, var(--blue-mid));color:var(--text)}
.plan-firma-btn.on{background:var(--co-color, var(--blue-mid));border-color:var(--co-color, var(--blue-mid));color:#fff;box-shadow:var(--shadow)}

.plan-cc-label{padding:14px 20px 4px;font-size:10.5px;font-weight:750;color:var(--teal-dk);text-transform:uppercase;letter-spacing:.5px}
.plan-cc-toggle{display:flex;flex-wrap:wrap;gap:6px;padding:0 20px 16px}
.plan-cc-btn{border:1px solid var(--teal-border);border-radius:999px;background:var(--teal-light);color:var(--teal-dk);font-size:11.5px;font-weight:650;padding:5px 13px;cursor:pointer;transition:all .12s}
.plan-cc-btn:hover{border-color:var(--teal)}
.plan-cc-btn.on{background:var(--teal);border-color:var(--teal);color:#fff}

/* Mapování: účet, který zatím existuje jen v nahraném Plánu 2026 (ne v deníku) */
.map-plan-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:9.5px;font-weight:750;background:var(--teal-light);color:var(--teal-dk);border:1px solid var(--teal-border);margin-left:5px;vertical-align:middle}
.map-row-plan td:first-child{box-shadow:inset 3px 0 0 var(--teal)}
.map-plan-auto-msg{margin:0 20px 10px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--teal-light);border:1px solid var(--teal-border);color:var(--teal-dk);font-size:11.5px;font-weight:600}

/* Přehledy: kombinovaný graf (sloupce = hodnota, spojnice = % z tržeb) */
.ovw-combo{flex:1;min-width:0;padding:8px 8px 0}
.ovw-combo-svg{width:100%;height:auto;display:block}
.ovw-combo-axis{stroke:var(--border);stroke-width:1}
.ovw-combo-line{fill:none;stroke:var(--text);stroke-width:2.5;stroke-linejoin:round;stroke-dasharray:none;opacity:.85}
.ovw-combo-dot{fill:var(--surface);stroke:var(--text);stroke-width:2.5}
.ovw-combo-vallbl{font:700 10.5px var(--font-sans);fill:var(--text)}
.ovw-combo-vallbl-bg{fill:var(--surface);stroke:var(--border);stroke-width:.8}
.ovw-combo-namelbl{font:750 11.5px var(--font-sans);fill:var(--text)}
.ovw-combo-pctlbl{font:750 10.5px var(--font-sans);fill:var(--blue)}
.ovw-combo-pctlbl-bg{fill:var(--blue-light);stroke:var(--blue-border);stroke-width:.8}

/* Přepínač jednotek (Kč / tis. / mil.) v hlavičkách tabulek */
.unit-toggle{flex:0 0 auto}
.unit-toggle button{min-width:40px}

/* Plánování: zálohy variant a export do Excelu */
.plan-backup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:16px;padding:16px 20px 20px}
/* Karty jsou barevně odlišené podle toho, co dělají: zelená = uložit zálohu,
   modrá = přepnout variantu, tmavě zelená = Excel. Hlavní akce je vždy plné
   barevné tlačítko, doplňkové zůstává decentní. */
.plan-card{display:flex;flex-direction:column;gap:9px;padding:16px;border-radius:12px;border:1px solid var(--border);border-top:4px solid var(--border);background:var(--surface);box-shadow:var(--shadow)}
.plan-card-h{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:186px}
.plan-card-ico{font-size:18px;line-height:1}
.plan-card h3{font-size:12.5px;font-weight:800;letter-spacing:.2px}
.plan-card-desc{font-size:11px;color:var(--text3);line-height:1.55;margin-bottom:2px}
.plan-card .btn{justify-content:center;width:100%}
.plan-card-sep{text-align:center;font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.6px;margin:-2px 0}
.plan-file-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.plan-backup-hint{font-size:10.5px;color:var(--text3);line-height:1.45}

.plan-card.save{border-top-color:var(--green)}
.plan-card.save h3{color:#15803D}
.plan-card.switch{border-top-color:var(--blue-3)}
.plan-card.switch h3{color:var(--blue)}
.plan-card.excel{border-top-color:#1D6F42}
.plan-card.excel h3{color:#1D6F42}
/* Kompletni zaloha planu — jina barva nez „Ulozit variantu" (zelena),
   aby se ty dve karty nepletly: tahle bere VSECHNY roky, ne jen zivy. */
.plan-card.komplet{border-top-color:#6D28D9}
.plan-card.komplet h3{color:#6D28D9}
.plan-check{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;
  font-weight:650;color:var(--text2);white-space:nowrap;cursor:pointer}
.plan-check input{margin:0;accent-color:#6D28D9}

.btn.plan-btn-save{background:var(--green);border-color:var(--green);color:#fff;font-weight:750}
.btn.plan-btn-save:hover{background:#12833c;border-color:#12833c}
.btn.plan-btn-switch{background:var(--blue-3);border-color:var(--blue-3);color:#fff;font-weight:750}
.btn.plan-btn-switch:hover{background:var(--blue-mid);border-color:var(--blue-mid)}
.btn.plan-btn-excel{background:#1D6F42;border-color:#1D6F42;color:#fff;font-weight:750}
.btn.plan-btn-excel:hover{background:#175a36;border-color:#175a36}
.btn.plan-btn-revert{background:var(--surface2);border-color:var(--border);color:var(--text2);font-weight:700}
.btn.plan-btn-revert:hover{background:var(--red-light);border-color:var(--red);color:var(--red)}
.plan-backup-msg{margin:6px 20px 16px;padding:9px 13px;border-radius:var(--radius-sm);font-size:11.5px;font-weight:600;background:var(--green-light);color:#15803D;border:1px solid var(--green-border)}
.plan-backup-msg.warn{background:var(--yellow-light);color:var(--yellow);border-color:var(--orange-border)}
.plan-backup-msg.err{background:var(--red-light);color:var(--red);border-color:var(--red)}
/* Aktivní varianta plánu — vždy výrazná (růžová buňka, červené písmo), aby
   bylo na první pohled jasné, s jakou variantou se právě počítá. */
/* Plánování — režim ruční editace plánu */
.plan-edit-bar{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;padding:12px 20px;background:var(--orange-light);border-top:1px solid var(--orange-border);border-bottom:1px solid var(--orange-border)}
.plan-edit-info{flex:1;min-width:260px;font-size:11.5px;color:var(--text2);line-height:1.6}
.plan-edit-actions{display:flex;gap:8px;flex-wrap:wrap}
.plan-edit-dirty{display:inline-block;margin-left:8px;padding:2px 9px;border-radius:999px;background:var(--red);color:#fff;font-size:10.5px;font-weight:800}
.plan-edit-hint{margin-top:6px;font-size:11.5px;font-weight:700;color:var(--red)}
.pl-table td.pl-edit-cell{padding:2px 4px}
.plan-cell{width:100%;min-width:74px;padding:4px 6px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:11px;text-align:right}
.plan-cell:focus{outline:none;border-color:var(--blue-mid);box-shadow:0 0 0 2px var(--blue-light)}
.plan-cell.changed{background:#FEF3C7;border-color:var(--orange);font-weight:700}

.plan-variant-badge{display:inline-block;padding:6px 14px;border-radius:8px;font-size:11.5px;font-weight:800;background:#FCE7F3;color:#BE123C;border:1.5px solid #F9A8D4;white-space:nowrap;letter-spacing:.2px}
[data-theme="dark"] .plan-variant-badge{background:#3B0A22;color:#FDA4AF;border-color:#7A2247}
/* Finanční přehled: kombinovaný graf (sloupce výnosy/náklady/EBITDA + spojnice EBT).
   Osu i mřížku si kreslí SVG samo, proto tu není žádná pevná výška ani flex. */
.dash-combo{width:100%;padding:6px 4px 0}
.dash-combo-svg{width:100%;height:auto;display:block}
.dash-grid{stroke:var(--border2);stroke-width:1}
.dash-axis-zero{stroke:var(--border);stroke-width:1.5}
.dash-axis-lbl{font:700 10.5px var(--font-mono);fill:var(--text2)}
.dash-legend-lbl{font:750 11.5px var(--font-sans);fill:var(--text)}
.dash-bar-lbl{font:700 7.5px var(--font-sans);fill:var(--text2)}
.dash-bar-lbl.neg,.dash-ebt-lbl.neg{fill:var(--red)}
.dash-ebt-lbl{font:800 8.5px var(--font-sans);fill:var(--text)}
.dash-trend-line{fill:none;stroke:var(--text);stroke-width:2.2;stroke-linejoin:round;opacity:.9}
.dash-trend-dot{fill:var(--surface);stroke:var(--text);stroke-width:2}

/* Grafy: kaskáda Tržby → KP I–KP IV po měsících / firmách */
.plc-svg{width:100%;height:auto;display:block}
.plc-axis{stroke:var(--border);stroke-width:1}
.plc-vallbl{font:700 9.5px var(--font-sans);fill:var(--text)}
.plc-vallbl.neg{fill:var(--red)}
.plc-grouplbl{font:750 11.5px var(--font-sans);fill:var(--text)}
.plc-grouplbl.strong{font-weight:800;font-size:12.5px;fill:var(--text2)}

/* Controlling — porovnání Plán vs. Skutečnost */
.ctrl-good{color:#15803D;font-weight:700}
.ctrl-bad{color:var(--red);font-weight:700}
.ctrl-vallbl{font:700 10px var(--font-sans);fill:var(--text)}
.ctrl-vallbl.neg{fill:var(--red)}
.ctrl-vallbl.total{font-size:11px;font-weight:800}
.ctrl-grouplbl{font:750 12px var(--font-sans);fill:var(--text)}
.ctrl-grouplbl.total{font-weight:850;fill:var(--text)}
.ctrl-total-bg{fill:var(--surface2);opacity:.85}
/* Přepínač pojetí porovnání — barevně výrazný, ať je hned vidět, který
   pohled je zapnutý (skupinové oranžově, detailní žlutě s černým písmem). */
.view-toggle button{font-weight:750}
.view-toggle .v-group{color:var(--orange-dk)}
.view-toggle .v-group.on{background:var(--orange-dk);border-color:var(--orange-dk);color:#fff}
.view-toggle .v-detail{color:#8a6100}
.view-toggle .v-detail.on{background:#FFC000;border-color:#E0A800;color:#111827}
.view-toggle .v-months{color:var(--teal-dk)}
.view-toggle .v-months.on{background:var(--teal);border-color:var(--teal);color:#fff}

/* Klikací legenda — kliknutím se řada v grafu vypne/zapne (i ve zvětšení). */
.ctrl-legend-item{cursor:pointer}
.ctrl-legend-item:hover rect:first-child{fill:var(--surface2)}
.ctrl-legend-item.off text{fill:var(--text3);text-decoration:line-through}
/* Y/Y graf — popisky hodnot: letos výrazně, loni a plán decentněji. */
.yoy-lbl{font:700 9px var(--font-sans)}
.yoy-lbl.cur{font-size:10px;font-weight:800;fill:var(--text)}
.yoy-lbl.prev{fill:var(--text3)}
.yoy-lbl.plan{fill:var(--blue-3)}
/* Volba „Všechny firmy" ve výběru firem — vizuálně oddělená od jednotlivých firem. */
/* Záložka „Specifické nastavení“ v Mapování — červená, protože mění skupinové
   součty v celé aplikaci a je potřeba, aby byla na první pohled vidět. */
.type-toggle button.excl-tab{color:var(--red);font-weight:750}
.type-toggle button.excl-tab.on{background:var(--red);border-color:var(--red);color:#fff}

.plan-firma-btn.all{border-style:dashed}
.plan-firma-btn.all.on{border-style:solid;background:var(--blue);border-color:var(--blue)}
/* Dělený pohled na společný plán dvou firem: menší tlačítko „skut. jen …" hned
   za mateřským — vizuálně podřízené, aby bylo jasné, že jde o variantu. */
.plan-firma-btn.sub{font-size:12px;font-weight:650;padding:7px 12px;border-radius:9px;border-width:1.5px;margin-left:-4px}
.plan-firma-btn.sub.on{background:var(--blue-mid);border-color:var(--blue-mid);color:#fff;box-shadow:var(--shadow)}
/* Rozbalovací položkový rozpis úvěrů a leasingů na dashboardu. */
.db2-fin-toggle{margin:10px 0 4px;padding:7px 10px;border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:12.5px;font-weight:700;color:var(--text2);cursor:pointer;user-select:none}
.db2-fin-toggle:hover{border-color:var(--blue-mid);color:var(--text)}
.db2-fin-sipka{display:inline-block;width:14px;color:var(--blue-mid)}
.ctrl-charttitle{font:800 14px var(--font-sans);fill:var(--text)}
.ctrl-tol{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:650;color:var(--text2);white-space:nowrap}
.ctrl-tol input{width:58px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:11.5px}
/* Sloupec "Plán" — v hlavičce MUSÍ zůstat tmavé pozadí (písmo je tam bílé),
   světlý odstín se používá jen v tělu tabulky, kde je písmo tmavé. */
.pl-table thead th.plan-sub{background:var(--blue-mid);color:#fff}
.pl-table tbody td.plan-sub{background:rgba(58,109,181,.08)}

/* Controlling — Y/Y karty a scénáře */
.dash-card-delta{font-size:11px;font-weight:750;margin-top:2px}
.dash-card-delta.up{color:#15803D}
.dash-card-delta.down{color:var(--red)}
.scen-sliders{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;padding:14px 20px 20px}
.scen-slider{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:650;color:var(--text2)}
.scen-slider strong{color:var(--blue);font-size:13.5px;margin-left:4px}
.scen-slider input[type=range]{width:100%;accent-color:var(--blue-mid)}
.scen-range{font-size:10.5px;color:var(--text3);font-weight:600}
/* Scénáře — barevné karty (semafor v barvách aplikace) fungující jako kalkulačka */
.scen-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;padding:14px 20px 20px}
.scen-card{display:flex;flex-direction:column;gap:3px;text-align:left;padding:14px 16px;border-radius:12px;border:2px solid var(--border);background:var(--surface);cursor:pointer;transition:all .14s;font-family:var(--font-sans)}
.scen-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.scen-card.on{box-shadow:var(--shadow);border-width:2px}
.scen-card-h{font-size:12px;font-weight:800;letter-spacing:.2px}
.scen-card-assump{font-size:10.5px;font-weight:600;color:var(--text3)}
.scen-card-val{font-size:21px;font-weight:800;font-family:var(--font-mono);color:var(--text);margin-top:5px;line-height:1.15}
.scen-card-sub{font-size:10.5px;color:var(--text3);font-weight:600}
.scen-card-delta{font-size:11px;font-weight:750;margin-top:5px}
.scen-card-delta.up{color:#15803D}
.scen-card-delta.down{color:var(--red)}
.scen-card.red{border-color:var(--red-light)}
.scen-card.red .scen-card-h{color:var(--red)}
.scen-card.red.on{border-color:var(--red);background:var(--red-light)}
.scen-card.blue{border-color:var(--blue-border)}
.scen-card.blue .scen-card-h{color:var(--blue-3)}
.scen-card.blue.on{border-color:var(--blue-3);background:var(--blue-light)}
.scen-card.green{border-color:var(--green-border)}
.scen-card.green .scen-card-h{color:var(--green)}
.scen-card.green.on{border-color:var(--green);background:var(--green-light)}
.scen-card.custom{border-style:dashed;border-color:var(--orange-border)}
.scen-card.custom .scen-card-h{color:var(--orange-dk)}
.scen-card.custom.on{border-style:solid;border-color:var(--orange);background:var(--orange-light)}

/* Provozní páka — dopad 1 % na EBITDA */
.scen-lever{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;padding:14px 20px 20px}
.scen-lever-card{padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:var(--surface2)}
.scen-lever-h{font-size:11px;font-weight:800;color:var(--text2);text-transform:uppercase;letter-spacing:.4px}
.scen-lever-val{font-size:20px;font-weight:800;font-family:var(--font-mono);margin-top:6px;line-height:1.15}
.scen-lever-ratio{font-size:12px;font-weight:750;margin-top:2px}
.scen-lever-note{font-size:10.5px;color:var(--text3);line-height:1.5;margin-top:6px}
.scen-lever-card.green{border-left:4px solid var(--green)}
.scen-lever-card.green .scen-lever-val,.scen-lever-card.green .scen-lever-ratio{color:#15803D}
.scen-lever-card.blue{border-left:4px solid var(--blue-3)}
.scen-lever-card.blue .scen-lever-val,.scen-lever-card.blue .scen-lever-ratio{color:var(--blue-3)}
.scen-lever-card.orange{border-left:4px solid var(--orange)}
.scen-lever-card.orange .scen-lever-val,.scen-lever-card.orange .scen-lever-ratio{color:var(--orange-dk)}
.scen-lever-card.note{background:var(--blue-light);border-color:var(--blue-border)}

.scen-row-base td{background:var(--surface2);font-weight:650}
.scen-row-custom td{background:var(--orange-light);font-weight:700}

/* Controlling — můstek EBITDA a komentáře k odchylkám */
.bridge-conn{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3;opacity:.7}
.ctrl-comment{width:100%;min-width:200px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:11.5px}
.ctrl-comment:focus{outline:none;border-color:var(--blue-mid);box-shadow:0 0 0 2px var(--blue-light)}
.ctrl-comment::placeholder{color:var(--text3)}
.det-share{display:inline-block;width:46px;height:6px;border-radius:3px;background:var(--surface2);margin-right:7px;vertical-align:middle;overflow:hidden}
.det-share-bar{display:block;height:100%;background:var(--blue-3);border-radius:3px}

/* Zvětšení grafu do vyskakovacího okna */
.ovw-chart-modal{position:fixed;inset:0;z-index:200;background:rgba(15,23,42,.55);align-items:center;justify-content:center;padding:32px}
.ovw-chart-modal-box{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:min(1200px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.ovw-chart-modal-hdr{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:.5px solid var(--border)}
.ovw-chart-modal-hdr h2{flex:1;font-size:15px;font-weight:700;color:var(--text)}
.ovw-chart-modal-body{padding:24px;overflow:auto}
.ovw-chart-modal-body svg{width:100%;height:auto}
.ovw-chart-modal-body .ovw-combo-vallbl,.ovw-chart-modal-body .ovw-combo-pctlbl{font-size:9px}
.ovw-chart-modal-body .ovw-combo-namelbl{font-size:10px}
.ovw-combo-legend{display:flex;align-items:center;gap:6px;padding:2px 20px 14px;font-size:11px;color:var(--text3);font-weight:600}
.ovw-legend-bar{display:inline-block;width:14px;height:10px;border-radius:3px;background:var(--blue-mid)}
.ovw-legend-line{display:inline-block;width:18px;height:0;border-top:2.5px solid var(--text);position:relative;top:-1px}
.toast.error{background:var(--red)}

/* ── Zvětšení písma v grafech (tlačítka A− / A+ v hlavičce panelu) ──────────
   Škáluje se jedinou proměnnou, takže se to promítne do všech grafů naráz.
   Je to jen zobrazovací pomůcka pro tuto relaci — po načtení stránky se
   hodnota vrací na výchozí (1), nikam se neukládá. */
:root{--chart-fs:1}
.ovw-combo-namelbl{font-size:calc(11.5px * var(--chart-fs))}
.ovw-combo-vallbl{font-size:calc(10.5px * var(--chart-fs))}
.ovw-combo-pctlbl{font-size:calc(10px * var(--chart-fs))}
.ovw-trendlbl{font:800 10.5px var(--font-sans);font-size:calc(10.5px * var(--chart-fs))}
.dash-legend-lbl{font-size:calc(11.5px * var(--chart-fs))}
.dash-axis-lbl{font-size:calc(10.5px * var(--chart-fs))}
.dash-bar-lbl{font-size:calc(9px * var(--chart-fs))}
.dash-ebt-lbl{font-size:calc(10px * var(--chart-fs))}
.plc-vallbl{font-size:calc(9.5px * var(--chart-fs))}
.plc-grouplbl{font-size:calc(11.5px * var(--chart-fs))}
.plc-grouplbl.strong{font-size:calc(12.5px * var(--chart-fs))}
.plc-trendlbl{font:800 10px var(--font-sans);fill:var(--text);font-size:calc(10px * var(--chart-fs))}
.plc-trendlbl.ebitda{font-weight:850;fill:#15803D}
.plc-trendlbl.neg{fill:var(--red)}
.ctrl-vallbl{font-size:calc(10px * var(--chart-fs))}
.ctrl-vallbl.total{font-size:calc(11px * var(--chart-fs))}
.ctrl-grouplbl{font-size:calc(12px * var(--chart-fs))}
.ctrl-charttitle{font-size:calc(14px * var(--chart-fs))}
.yoy-lbl{font-size:calc(10px * var(--chart-fs))}
.yoy-lbl.cur{font-size:calc(11.5px * var(--chart-fs))}
/* HTML/CSS grafy na Financnim prehledu — at A-/A+ funguje i tady */
.cf-bar-lbl{font-size:calc(8.5px * var(--chart-fs))}
.cf-bar-month{font-size:calc(10px * var(--chart-fs))}
.trend-bar-lbl{font-size:calc(8.5px * var(--chart-fs))}
.chart-yaxis{font-size:calc(9.5px * var(--chart-fs))}
.chart-yaxis{flex-basis:calc(52px * var(--chart-fs))}


.chart-fs-ctl{display:inline-flex;align-items:center;gap:4px;margin-left:6px;flex:0 0 auto}
.chart-fs-ctl button{width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text2);font-family:var(--font-sans);font-size:12px;font-weight:800;cursor:pointer;line-height:1;padding:0}
.chart-fs-ctl button:hover{border-color:var(--blue-mid);color:var(--blue);background:var(--blue-light)}
.chart-fs-ctl .chart-fs-val{font-size:10px;font-weight:700;color:var(--text3);min-width:30px;text-align:center}

/* ── Přihlašovací obrazovka (viz js/auth-gate.js) ───────────────────── */
/* Jedna vystouplá karta na světlém pozadí: nahoře tmavě modrý pruh se
   značkou, pod ním bílý formulář, dole copyright. Barvy jsou výhradně
   z proměnných aplikace (--blue / --orange / --surface), aby přihlášení
   vypadalo jako její součást a při změně motivu se měnilo s ní. */
.app-locked .shell,.app-locked .app-topbar{filter:blur(3px);pointer-events:none}
.auth-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  padding:24px;overflow:auto;background:linear-gradient(180deg,#EEF2F7,#E3E9F2);transition:opacity .2s}
/* Jemný dot-pattern stejně jako má pozadí aplikace — spojuje obrazovky. */
.auth-gate::before{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(27,58,107,.07) 1px,transparent 1px);background-size:22px 22px}
.auth-gate.auth-done{opacity:0}

.auth-shell{position:relative;width:min(94vw,440px);border-radius:16px;overflow:hidden;
  background:var(--surface);box-shadow:0 30px 80px rgba(15,23,42,.18),0 2px 6px rgba(15,23,42,.06)}

/* ─ značka ─ */
.auth-brand{padding:34px 40px 30px;text-align:center;color:#fff;
  background:linear-gradient(145deg,var(--blue),var(--blue-3))}
.auth-logo{font-size:46px;font-weight:900;letter-spacing:.1em;line-height:1;text-indent:.1em}
.auth-logo-app{font-size:34px;letter-spacing:.03em;text-indent:0;line-height:1.1}
/* Oranžová linka pod logem — stejný akcent jako podtržený podtitul v menu. */
.auth-brand-sub{margin-top:14px;padding-top:13px;font-size:13px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.82);position:relative}
.auth-brand-sub::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:52px;height:3px;border-radius:2px;background:var(--orange)}

/* ─ formulář ─ */
.auth-main{display:flex;flex-direction:column;gap:13px;padding:32px 40px 26px}
@media(max-width:520px){.auth-brand{padding:28px 24px 24px}.auth-main{padding:26px 24px 22px}}
.auth-chip{align-self:flex-start;background:var(--surface2);border:1px solid var(--blue-border);
  color:var(--blue);font-size:11px;font-weight:700;padding:7px 12px;border-radius:999px}
.auth-main h2{font-size:29px;font-weight:800;color:var(--blue);letter-spacing:-.02em;margin-top:2px}
.auth-hint{font-size:13.5px;color:var(--text2);margin-top:-9px}
.auth-field{display:flex;flex-direction:column;gap:6px}
.auth-field > span{font-size:12px;font-weight:600;color:var(--text2)}
.auth-input{width:100%;padding:14px 16px;border:1px solid var(--blue-border);border-radius:8px;
  background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:15px;outline:none;
  transition:border-color .14s,box-shadow .14s}
.auth-input:focus{border-color:var(--blue-mid);box-shadow:0 0 0 4px var(--blue-light)}
.auth-pwd-wrap{position:relative;display:block}
.auth-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;
  cursor:pointer;font-size:16px;opacity:.45;padding:4px 6px;line-height:1}
.auth-eye:hover,.auth-eye.on{opacity:.95}
.auth-err{font-size:13px;color:#B42318;background:rgba(140,26,26,.08);
  border-radius:8px;padding:12px 14px}
.btn.auth-btn{justify-content:center;gap:8px;border:none;color:#fff;font-weight:700;font-size:15px;
  padding:15px;border-radius:8px;margin-top:3px;background:linear-gradient(135deg,var(--blue),var(--blue-3))}
.btn.auth-btn:hover{background:linear-gradient(135deg,var(--blue-mid),var(--blue-3));border:none}
.auth-btn-arr{font-weight:700}
.auth-links{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap}
.auth-link{border:none;background:none;cursor:pointer;font-family:var(--font-sans);font-size:12.5px;
  font-weight:600;color:var(--blue-3);padding:2px 4px;border-radius:6px}
.auth-link:hover,.auth-link.on{color:var(--blue);text-decoration:underline}
.auth-sep{color:var(--text3)}
.auth-help{font-size:12.5px;line-height:1.6;color:var(--text2);background:var(--blue-light);
  border:1px solid var(--blue-border);border-radius:8px;padding:12px 14px}
.auth-help strong{display:block;color:var(--blue);margin-bottom:5px;font-size:13px}
.auth-help p{margin:6px 0 0}
.auth-help a{color:var(--blue-3);font-weight:700}
.auth-foot{display:flex;flex-direction:column;gap:3px;text-align:center}
.auth-last{font-size:11.5px;color:var(--text2);font-weight:600}
.auth-note{font-size:11px;color:var(--text3)}

/* ─ patika ─ */
.auth-copy{padding:14px 40px 18px;text-align:center;font-size:11px;color:var(--text3);
  border-top:1px solid var(--border2)}

[data-theme="dark"] .auth-gate{background:linear-gradient(180deg,#0D1526,#0A1120)}
[data-theme="dark"] .auth-gate::before{background-image:radial-gradient(circle,rgba(255,255,255,.05) 1px,transparent 1px)}
[data-theme="dark"] .auth-shell{background:var(--surface)}
[data-theme="dark"] .auth-input{background:var(--surface2)}


/* ── Nastavení: přepínač (on/off) ────────────────────────────────────────── */
.setrow{display:flex;align-items:flex-start;gap:14px;padding:16px 20px}
.set-switch{flex:0 0 auto;cursor:pointer;display:inline-flex;align-items:center;margin-top:2px}
.set-switch input{position:absolute;opacity:0;width:0;height:0}
.set-track{width:46px;height:26px;border-radius:13px;background:var(--border);position:relative;transition:background .16s ease;display:block}
.set-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow);transition:left .16s ease;display:block}
.set-switch input:checked + .set-track{background:var(--green)}
.set-switch input:checked + .set-track .set-knob{left:23px}
.set-switch input:focus-visible + .set-track{box-shadow:0 0 0 3px var(--blue-light)}
.setrow-txt{min-width:0}
.setrow-title{font-size:13.5px;font-weight:800;color:var(--text)}
.setrow-sub{font-size:12px;color:var(--text3);line-height:1.6;margin-top:4px;max-width:760px}
.setrow-note{padding:0 20px 16px;font-size:12px;font-weight:700;color:var(--green);min-height:18px}
.setrow-note.warn{color:var(--orange)}
.plc-trendlbl.ebt{fill:var(--blue-3)}
.plc-trendlbl.revenue{fill:var(--blue)}
.plc-trendlbl.cost{fill:#B45309}

/* ── Příprava plánu 2027 — zadání, výhledy, harmonogram ─────────────────── */
.plan27-body{padding:18px 22px 24px}
.p27-intro{margin:0 0 12px 16px;padding:0;max-width:1100px;font-size:12.5px;line-height:1.45;color:var(--text2)}
.p27-intro li{margin-bottom:3px}
.p27-introbox{margin-bottom:20px}
.p27-introrow{display:flex;gap:8px;margin-bottom:6px}
.p27-sec{margin-bottom:24px}
.p27-sech{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.p27-sech h3{font-size:15px;font-weight:800;color:var(--blue);margin:0}
.p27-secno{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:26px;padding:0 8px;border-radius:7px;background:var(--blue);color:#fff;font-size:13px;font-weight:800}
.p27-tbl{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:fixed}
.p27-tbl thead th{background:var(--blue-mid);color:#fff;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;text-align:left;padding:7px 10px;border:1px solid var(--blue)}
.p27-tbl tbody td{padding:6px 10px;border:1px solid var(--border);color:var(--text2);vertical-align:top;line-height:1.55;word-wrap:break-word}
.p27-tbl tbody tr:nth-child(even) td{background:var(--surface2)}
.p27-tbl tbody tr.p27-strong td{background:var(--blue-light);color:var(--text);font-weight:700}
.p27-code{font-weight:800;color:var(--blue);text-align:center}
.p27-note{color:var(--text3);font-size:11.5px}
.p27-co{font-weight:800;color:var(--blue)}
.p27-empty2{text-align:center;color:var(--text3);padding:18px!important}
.p27-wide{table-layout:auto}
.p27-inp{width:100%;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:12.5px;outline:none}
.p27-inp:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px var(--blue-light)}
.p27-act{white-space:nowrap;text-align:center}
.p27-del{border:1px solid var(--border);background:var(--surface);color:var(--red,#DC2626);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:12px;font-weight:800;line-height:1;padding:0}
.p27-del:hover{background:#FEE2E2;border-color:#DC2626}
.p27-boldchk{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;color:var(--text3);margin-right:6px;cursor:pointer}
.p27-add{margin-top:8px;font-size:12px}
.p27-hint{margin-top:10px;font-size:11.5px;color:var(--text3)}

/* ── Plánování → detail plánu: 12 měsíců + Celkem na jednu stránku ──────── */
#planTable{table-layout:fixed;width:100%;font-size:10.5px}
#planTable thead th{padding:5px 4px;font-size:9px}
#planTable thead th .pl-month-yr{font-size:7.5px}
#planTable td{padding:4px 5px}
#planTable td.pl-amt{font-size:10px;letter-spacing:-.2px}
#planTable th.pl-lbl-h,#planTable td.pl-lbl{width:28%;padding-right:8px}
#planTable th.pl-cumul-h,#planTable td.pl-cumul{width:8%}
#planTable td.pl-lbl .pl-acc-name{font-size:9.5px}
#planTable .plan-cell{min-width:0;width:100%;font-size:9.5px;padding:3px 4px}
#planTable .pl-edit-cell{padding:2px 3px}
@media(max-width:1400px){#planTable{font-size:10px}#planTable td.pl-amt{font-size:9.5px}#planTable td{padding:4px 3px}}
@media(max-width:1150px){#planTable{font-size:9px}#planTable td.pl-amt{font-size:8.5px}#planTable th.pl-lbl-h,#planTable td.pl-lbl{width:24%}}
.pl-table td.pl-fut{color:var(--text3);opacity:.55}
.p27-orig{margin-bottom:16px;padding:12px 16px;border-left:4px solid var(--orange);background:var(--surface2);border-radius:8px;font-size:12.5px;color:var(--text2);line-height:1.7}


/* ── Zálohování: kroky pro data a obnovu ────────────────────────────────── */
.bkp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;padding:16px 20px 20px}
.bkp-step{border:1px solid var(--border);border-top:3px solid var(--blue-3);border-radius:10px;padding:14px 16px;background:var(--surface)}
.bkp-step-h{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.bkp-step-h h3{margin:0;font-size:13.5px;font-weight:800;color:var(--blue)}
.bkp-step-no{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:var(--blue);color:#fff;font-size:12px;font-weight:800}
.bkp-step p{margin:0;font-size:12.5px;line-height:1.7;color:var(--text2)}
.bkp-step code{background:var(--surface2);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:11.5px;color:var(--blue)}


/* ── Načtení plánu z Excelu (zpětný import vlastního exportu) ───────────── */
.plan-card.xlsimp{border-top-color:var(--orange)}
.plan-card.xlsimp h3{color:#B45309}
.plan-card.xlsimp select{margin-bottom:8px}
.xlsimp-report{margin:0 20px 14px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.xlsimp-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:12px}
.xlsimp-sum>div{display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-radius:8px}
.xlsimp-sum span{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);font-weight:700}
.xlsimp-sum strong{font-size:14px;font-weight:800;color:var(--text);font-family:var(--font-mono)}
.xlsimp-sum strong.xlsimp-diff{color:var(--orange)}
.xlsimp-box{padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.7;margin-bottom:8px;color:var(--text2)}
.xlsimp-box code{background:var(--surface);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:11px;color:var(--blue)}
.xlsimp-box.new{background:var(--blue-light);border-left:3px solid var(--blue-3)}
.xlsimp-box.warn{background:#FEF3C7;border-left:3px solid var(--orange)}
.xlsimp-box.ok{background:#DCFCE7;border-left:3px solid var(--green)}
.xlsimp-cc{font-size:11.5px;color:var(--text3);display:flex;flex-wrap:wrap;gap:5px;align-items:center}


/* ── Nový plán / středisko ──────────────────────────────────────────────── */
.plan-card.newplan{border-top-color:var(--green)}
.plan-card.newplan h3{color:#15803D}
.plan-card.newplan select,.plan-card.newplan input{margin-bottom:8px}
.plan-card.newplan .view-toggle button{font-size:11px;padding:5px 9px}
.planNew-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.planNew-row label{flex:0 0 78px;font-size:11.5px;font-weight:700;color:var(--text3)}
.planNew-row .table-search{flex:1;margin-bottom:0}


/* ── Účet nově založený importem plánu ──────────────────────────────────── */
.map-row-new td{background:#FFF7E6}
.map-new-badge{display:inline-block;margin-left:5px;padding:1px 6px;border-radius:5px;background:var(--orange);color:#1A202C;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}


/* ── Metodika: návod s vlastním menu ────────────────────────────────────── */
.met-layout{display:grid;grid-template-columns:250px 1fr;gap:16px;align-items:start}
.met-nav{position:sticky;top:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px;box-shadow:var(--shadow)}
.met-navitem{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;border-radius:8px;background:transparent;color:var(--text2);font-family:var(--font-sans);font-size:12.5px;font-weight:600;text-align:left;cursor:pointer;line-height:1.35}
.met-navitem:hover{background:var(--surface2);color:var(--text)}
.met-navitem.on{background:var(--blue);color:#fff;font-weight:800}
.met-navico{flex:0 0 auto;font-size:14px}
.met-navtxt{min-width:0}
.met-body{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px 26px 28px;box-shadow:var(--shadow);min-height:400px}
.met-chapter+.met-chapter{margin-top:34px;padding-top:26px;border-top:2px solid var(--border)}
.met-chapter h2{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:800;color:var(--blue);margin:0 0 6px;padding-bottom:9px;border-bottom:2px solid var(--orange)}
.met-chno{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:8px;background:var(--blue);color:#fff;font-size:13px;font-weight:800}
.met-sec{margin-top:18px}
.met-sec h3{font-size:14px;font-weight:800;color:var(--blue-mid);margin:0 0 7px}
.met-body p{font-size:13px;line-height:1.75;color:var(--text2);margin:0 0 9px}
.met-body ul,.met-body ol{margin:0 0 10px 22px;font-size:13px;line-height:1.75;color:var(--text2)}
.met-body li{margin-bottom:5px}
.met-body strong{color:var(--text);font-weight:700}
.met-body code{background:var(--surface2);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:11.5px;color:var(--blue)}
.met-note{background:var(--blue-light);border-left:3px solid var(--blue-3);padding:10px 13px;border-radius:0 8px 8px 0;margin:10px 0;font-size:12.5px;line-height:1.7;color:var(--text2)}
.met-note.warn{background:#FEF3C7;border-left-color:var(--orange)}
.met-note.tip{background:#DCFCE7;border-left-color:var(--green)}
.met-code{background:#0F172A;color:#E2E8F0;padding:10px 13px;border-radius:8px;font-family:var(--font-mono);font-size:11.5px;overflow-x:auto;margin:9px 0}
.met-tblwrap{overflow-x:auto;margin:9px 0}
.met-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.met-tbl th{background:var(--blue);color:#fff;text-align:left;padding:7px 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.met-tbl td{border:1px solid var(--border);padding:7px 10px;color:var(--text2);vertical-align:top;line-height:1.65}
.met-tbl tbody tr:nth-child(even) td{background:var(--surface2)}
.met-empty{padding:20px;text-align:center;color:var(--text3);font-size:12.5px}
@media(max-width:1100px){.met-layout{grid-template-columns:1fr}.met-nav{position:static;display:flex;flex-wrap:wrap;gap:4px}.met-navitem{width:auto}}

/* Projektová dokumentace (js/projektova-dokumentace.js) — stojí na met-* rozložení
   Metodiky, tabulky db2-tab; tady jen lišta, doplnění, editor a deník. */
.pdok-lista{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px}
.pdok-lista .table-search{max-width:240px}
.pdok-lista .panel-hdr-sp{flex:1}
.pdok-navsk{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--text2);padding:12px 10px 4px}
.pdok-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:7px;font-family:var(--font-sans);font-size:12px;font-weight:600;padding:4px 10px;cursor:pointer;line-height:1.35;white-space:nowrap}
.pdok-btn:hover{background:var(--surface2)}
.pdok-btn:disabled{opacity:.45;cursor:default}
.pdok-akce{display:inline-flex;gap:4px;margin-left:auto;font-size:12px}
.met-chapter h2 .pdok-akce{font-weight:600}
.pdok-akce-bunka{white-space:nowrap;text-align:right}
.pdok-radek-akce{margin:8px 0 12px}
.pdok-tab{overflow-x:auto;margin:6px 0 12px}
.pdok-tab .db2-tab{width:100%}
.pdok-tab .db2-tab td p{margin:0;font-size:12.5px;line-height:1.5}
.pdok-datum-bunka{white-space:nowrap}
.pdok-h4{font-size:13px;font-weight:800;color:var(--text);margin:16px 0 6px}
.pdok-dopl{border-top:1px dashed var(--border);padding-top:14px}
.pdok-pozn{background:var(--surface2);border-left:3px solid var(--orange);border-radius:0 8px 8px 0;padding:8px 12px;margin:8px 0}
.pdok-pozn-hl{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:var(--text2);margin-bottom:4px}
.pdok-editor{display:grid;gap:8px;margin:10px 0;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.pdok-editor input,.pdok-editor textarea{width:100%;box-sizing:border-box;font-family:var(--font-sans);font-size:12.5px;line-height:1.5;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text)}
.pdok-editor .pdok-datum{max-width:180px}
.pdok-editor textarea{min-height:120px;font-family:var(--font-mono);font-size:12px;resize:vertical}
.pdok-editor-akce{display:flex;gap:6px}
.pdok-hint{font-size:11px;color:var(--text2);line-height:1.5}
.pdok-zprava{font-size:12px;font-weight:600}
.pdok-zprava.ok{color:var(--green)}
.pdok-zprava.warn{color:#B45309}
.pdok-zprava.err{color:var(--red)}
.pdok-cteni{font-size:11.5px;color:var(--text2)}
.ctrl-scope-hint{align-self:center;margin-left:8px;font-size:11px;color:var(--text3);font-style:italic}


/* ── Specifické nastavení: matice řádek × firma ─────────────────────────── */
#plExclTable{font-size:12.5px;border-collapse:separate;border-spacing:0}
#plExclTable thead th{background:var(--blue);color:#fff;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:8px 10px;border-bottom:none;white-space:nowrap}
#plExclTable thead th.xcl-lbl-h{text-align:left;border-radius:8px 0 0 0}
#plExclTable thead th.xcl-co-h{text-align:center;width:74px}
#plExclTable thead th.xcl-cnt-h{text-align:center;width:88px;background:var(--blue-mid);border-radius:0 8px 0 0}
#plExclTable .xcl-co-code{display:inline-block;padding:2px 7px;border-radius:5px;background:rgba(255,255,255,.16)}
#plExclTable tbody td{padding:5px 10px;border-bottom:1px solid var(--border2);vertical-align:middle;color:var(--text)}
#plExclTable tbody tr:hover td{background:var(--blue-light)}
#plExclTable td.xcl-lbl{font-weight:600;color:var(--text);white-space:nowrap}
#plExclTable tr.xcl-sub td.xcl-lbl{font-weight:800;color:var(--blue)}
#plExclTable tr.xcl-sub td{background:var(--surface2)}
#plExclTable tr.xcl-sub:hover td{background:var(--blue-light)}
#plExclTable tr.xcl-changed td.xcl-lbl{box-shadow:inset 3px 0 0 var(--orange);padding-left:13px}
#plExclTable td.xcl-cell{text-align:center;padding:4px 6px}
#plExclTable td.xcl-cnt{text-align:center}
.xcl-box{display:inline-flex;align-items:center;justify-content:center;width:26px;height:22px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);cursor:pointer;transition:background .12s,border-color .12s}
.xcl-box input{position:absolute;opacity:0;width:0;height:0}
.xcl-box .xcl-mark{font-size:12px;font-weight:900;line-height:1;color:var(--text3)}
.xcl-box.on{background:#DCFCE7;border-color:#86EFAC}
.xcl-box.on .xcl-mark{color:#15803D}
.xcl-box:not(.on){background:#FEE2E2;border-color:#FCA5A5}
.xcl-box:not(.on) .xcl-mark{color:#DC2626}
.xcl-box:hover{border-color:var(--blue-mid)}
.xcl-pill{display:inline-block;min-width:44px;padding:2px 8px;border-radius:6px;background:#FEF3C7;color:#92400E;font-size:11px;font-weight:800;font-family:var(--font-mono)}
.xcl-pill.full{background:var(--surface2);color:var(--text3)}


/* ── VZHLED: globální velikost písma a hustota řádků ────────────────────────
   Nastavuje js/appearance.js přes --ui-scale a --ui-density. Násobí se jen
   místa, kde na velikosti opravdu záleží — tabulky, panely, tlačítka. */
:root{--ui-scale:1;--ui-density:1}

.dash-table{font-size:calc(12px * var(--ui-scale))}
.dash-table th{font-size:calc(10px * var(--ui-scale));padding:calc(10px * var(--ui-density)) 10px}
.dash-table td{padding:calc(11px * var(--ui-density)) 10px}
.pl-table{font-size:calc(11.5px * var(--ui-scale))}
.pl-table td{padding:calc(5px * var(--ui-density)) 10px}
.pl-table thead th{font-size:calc(9.5px * var(--ui-scale))}
#plExclTable{font-size:calc(12.5px * var(--ui-scale))}
#plExclTable tbody td{padding:calc(5px * var(--ui-density)) 10px}
.met-tbl,.p27-tbl{font-size:calc(12.5px * var(--ui-scale))}
.p27-tbl tbody td{padding:calc(6px * var(--ui-density)) 10px}
.panel-hdr h2{font-size:calc(14px * var(--ui-scale))}
.panel-hdr p{font-size:calc(11.5px * var(--ui-scale))}
.dash-title h1{font-size:calc(20px * var(--ui-scale))}
.dash-title p{font-size:calc(12.5px * var(--ui-scale))}
.btn{font-size:calc(12px * var(--ui-scale))}
.pill{font-size:calc(10.5px * var(--ui-scale))}
.met-body p,.met-body ul,.met-body ol{font-size:calc(13px * var(--ui-scale))}
.setrow-title{font-size:calc(13.5px * var(--ui-scale))}
.setrow-sub{font-size:calc(12px * var(--ui-scale))}

/* ── VZHLED: ovládání ──────────────────────────────────────────────────── */
.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;padding:18px 20px}
.app-block{border:1px solid var(--border);border-radius:10px;padding:14px 15px;background:var(--surface)}
.app-block-h{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--blue);margin-bottom:9px}
.app-opts{display:flex;flex-wrap:wrap;gap:6px}
.app-opt{padding:7px 13px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text2);font-family:var(--font-sans);font-size:12.5px;font-weight:700;cursor:pointer;transition:background .12s,color .12s,border-color .12s}
.app-opt:hover{border-color:var(--blue-mid);color:var(--blue)}
.app-opt.on{background:var(--blue);border-color:var(--blue);color:#fff}
.app-hint{margin:9px 0 0;font-size:11.5px;line-height:1.6;color:var(--text3)}
.app-pals{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;padding:18px 20px}
.app-pal{display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color .14s,box-shadow .14s}
.app-pal:hover{border-color:var(--blue-3)}
.app-pal.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light)}
.app-pal-sw{display:flex;flex:0 0 auto;border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}
.app-pal-sw i{display:block;width:22px;height:38px}
.app-pal-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.app-pal-txt strong{font-size:13.5px;font-weight:800;color:var(--text)}
.app-pal-txt small{font-size:11.5px;line-height:1.5;color:var(--text3)}
#plExclTable thead th.xcl-grp-h{text-align:center;font-size:11px;letter-spacing:.08em;border-bottom:1px solid rgba(255,255,255,.25)}
#plExclTable thead th.xcl-grp-h.plan{background:var(--blue-mid);border-radius:0}
#plExclTable thead th.xcl-grp-h.act{background:var(--blue);border-radius:0 8px 0 0}
#plExclTable thead th.xcl-co-h.plan,#plExclTable thead th.xcl-cnt-h.plan{background:var(--blue-mid)}
#plExclTable thead th.xcl-co-h.act,#plExclTable thead th.xcl-cnt-h.act{background:var(--blue)}
#plExclTable thead th.xcl-cnt-h{width:78px}
#plExclTable td.xcl-cnt{border-right:2px solid var(--border)}
#plExclTable td.xcl-cnt:last-child{border-right:none}
.xcl-warn{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:5px;background:var(--orange);color:#1A202C;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}


/* ── Přehledy po společnostech ──────────────────────────────────────────── */
.plco-panel.off{opacity:.62}
.plco-panel.off .pl-table td{color:var(--text3)}
.plco-tbl thead th.pl-lbl-h{text-transform:none;font-size:calc(11px * var(--ui-scale));letter-spacing:0}
.plco-tbl tr.plco-pct td{background:var(--surface2);color:var(--text3);font-size:calc(10.5px * var(--ui-scale));padding-top:calc(3px * var(--ui-density));padding-bottom:calc(3px * var(--ui-density))}
.plco-tbl tr.plco-pct td.pl-lbl{padding-left:24px;font-style:italic}
.plco-tbl tr.plco-pct td.pl-cumul{font-weight:700;color:var(--text2)}


/* ── Finanční přehled z plných dat (Výkaz zisku a ztráty) ───────────────── */
.plraw-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:18px}
.plraw-card{padding:14px 16px;margin:0}
.plraw-card-t{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--text3)}
.plraw-card-v{font-size:calc(19px * var(--ui-scale));font-weight:800;color:var(--blue);font-family:var(--font-mono);margin:5px 0 3px}
.plraw-card-s{font-size:11.5px;color:var(--text3)}
.co-card-note{margin:0 16px 10px;padding:8px 11px;border-radius:8px;background:#FEF3C7;border-left:3px solid var(--orange);font-size:11.5px;line-height:1.6;color:#92400E}


/* ── Controlling na úrovni středisek ────────────────────────────────────── */
.ctrlcc-tbl thead th{white-space:nowrap}
.ctrlcc-tbl td.pl-lbl{white-space:nowrap}
.btn.sm{padding:3px 9px;font-size:calc(11px * var(--ui-scale))}

.ctrlcc-noplan{font-size:calc(10px * var(--ui-scale));color:#fff;background:var(--red, #C62828);
  border:1px solid var(--red, #C62828);border-radius:6px;padding:1px 6px;margin-left:6px;
  white-space:nowrap;font-weight:700;letter-spacing:.02em}

/* Stredisko, ke kteremu neexistuje plan — musi byt na prvni pohled videt. */
.ctrlcc-noplan-cell{color:var(--red, #C62828) !important;font-weight:700}
.ctrlcc-noplan-cell strong{color:var(--red, #C62828)}

/* ── Plánování: záložka na firmu + formulář pro nový řádek ───────────────── */
.plan-co-badge{font-size:calc(9.5px * var(--ui-scale));color:#fff;background:var(--red, #C62828);
  border-radius:6px;padding:1px 5px;margin-left:6px;font-weight:700}
.plan-co-slot:empty{display:none}
.plan-add-form{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:0 0 10px}
.plan-add-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.plan-add-row label{font-size:calc(11.5px * var(--ui-scale));color:var(--text2);font-weight:600}
.plan-add-row input,.plan-add-row select{min-width:120px}
.plan-ovw-link{color:var(--blue-3);text-decoration:none;font-weight:600;cursor:pointer}
.plan-ovw-link:hover{text-decoration:underline}

/* Souhrn stredisek jako matice: radky = vykaz, sloupce = strediska. */
.ctrlcc-matrix thead th{text-align:center}
.ctrlcc-matrix .ctrlcc-grouph{border-left:2px solid var(--border);font-size:calc(11.5px * var(--ui-scale))}
.ctrlcc-ccname{font-weight:500;color:var(--text2);font-size:calc(10px * var(--ui-scale))}
/* Sloupec „Celkem firma" má světlý podklad, ale sedí v tmavé hlavičce, kde
   je písmo bílé — bílá na světlém je nečitelná. Barvu písma proto přebít
   spolu s podkladem, ne jen podklad. */
.ctrlcc-matrix td.ctrlcc-total,.ctrlcc-matrix th.ctrlcc-total,
.ctrlcc-tbl td.ctrlcc-total,.ctrlcc-tbl th.ctrlcc-total{
  background:var(--surface2, rgba(127,127,127,.10))}
/* Buňky „Celkem firma" mají světlý podklad, ale sedí v tmavé hlavičce, kde
   je písmo bílé — bílá na světlém je nečitelná. Barva písma se proto přebíjí
   spolu s podkladem. Sloupec Plán (.plan-sub) má vlastní tmavé podbarvení
   a bílý text si musí nechat, jinak by byl modrý na modrém. */
.ctrlcc-matrix td.ctrlcc-total:not(.plan-sub),
.ctrlcc-matrix th.ctrlcc-total:not(.plan-sub),
/* Totéž musí platit v tiskové a exportované tabulce (.ctrlcc-tbl) — tam
   pravidlo dřív nesahalo a v HTML exportu vyšlo tmavé písmo na tmavém
   podkladu (PH 23. 9. 2026). */
.ctrlcc-tbl td.ctrlcc-total:not(.plan-sub),
.ctrlcc-tbl th.ctrlcc-total:not(.plan-sub){color:var(--blue) !important;font-weight:700}
/* Hlavička je tmavá — v ní musí zůstat SVĚTLÉ písmo. Selektor musí být
   specifičtější než pravidlo o řádek výš (to má :not(.plan-sub)), jinak
   vyhraje modrá na modré. */
.ctrlcc-tbl thead th.ctrlcc-total,
.ctrlcc-tbl thead th.ctrlcc-total:not(.plan-sub){color:#fff !important;background:#26406B !important}
[data-theme="dark"] .ctrlcc-matrix td.ctrlcc-total:not(.plan-sub),
[data-theme="dark"] .ctrlcc-matrix th.ctrlcc-total:not(.plan-sub),
[data-theme="dark"] .ctrlcc-tbl td.ctrlcc-total:not(.plan-sub){color:var(--text) !important}
.ctrlcc-matrix td.pl-amt{white-space:nowrap}

/* Prehled planu: nazev firmy na jeden radek, cisla se nesmi lamat. */
.plan-ovw-tbl td.pl-lbl,.plan-ovw-tbl th.pl-lbl-h{white-space:nowrap}
.plan-ovw-tbl td.pl-amt,.plan-ovw-tbl th.pl-amt{white-space:nowrap}

/* ── Nastaveni -> Vzhled: volba designu ─────────────────────────────────── */
.app-dess{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.app-des{display:flex;align-items:center;gap:12px;padding:12px 14px;border:2px solid var(--border);
  border-radius:12px;background:var(--surface);cursor:pointer;text-align:left;
  font-family:var(--font-sans);transition:border-color .14s,box-shadow .14s}
.app-des:hover{border-color:var(--blue-3)}
.app-des.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light)}
.app-des-thumb{width:64px;height:46px;flex-shrink:0;border:1px solid var(--border);
  background:var(--surface);overflow:hidden;display:flex;flex-direction:column}
.app-des-head{display:block;height:12px;flex-shrink:0}
.app-des-rows{display:flex;flex-direction:column;justify-content:space-around;flex:1;padding:3px 4px;gap:2px}
.app-des-rows i{display:block;height:6px;border-radius:1px}

/* ── Plánování → Přehled plánů: barevné rozlišení ukazatelů ─────────────── */
.plovw-card{border-left:5px solid var(--border)}
.plovw-b-trz{border-left-color:#2B5190}
.plovw-b-hrub{border-left-color:#A97C00}
.plovw-b-vysl{border-left-color:#1B3A6B}
.plovw-b-ebt{border-left-color:#F5A623}
.plovw-b-obch{border-left-color:#1a5c2a}
.plovw-b-rez{border-left-color:#9a3412}
.plovw-b-nakl{border-left-color:#DC2626}
.plovw-panel{border-left:5px solid var(--border)}

.plovw-tag{display:inline-block;padding:1px 7px;border-radius:6px;font-size:10px;font-weight:800;
  letter-spacing:.04em;margin-right:7px;color:#fff;background:var(--blue-mid)}
.plovw-c-trz{background:#2B5190}.plovw-c-obch{background:#1a5c2a}.plovw-c-hrub{background:#A97C00}
.plovw-c-rez{background:#9a3412}.plovw-c-vysl{background:#1B3A6B}.plovw-c-ebt{background:#F5A623;color:#12305e}

/* Hlavička tabulky má tmavě modré pozadí, takže písmo MUSÍ zůstat bílé —
   tmavé odstíny (červená u KP III apod.) na ní nebyly čitelné. Barvu
   ukazatele proto nese barevný proužek pod textem, ne samotné písmo. */
.plovw-tbl thead th[class*="plovw-h-"]{color:#fff!important;position:relative;
  padding-bottom:9px;box-shadow:inset 0 -3px 0 var(--plovw-h)}
.plovw-tbl thead th.plovw-h-trz{--plovw-h:#7FA9E8}
.plovw-tbl thead th.plovw-h-obch{--plovw-h:#6EE7A8}
.plovw-tbl thead th.plovw-h-hrub{--plovw-h:#FBD34D}
.plovw-tbl thead th.plovw-h-rez{--plovw-h:#FDA47A}
.plovw-tbl thead th.plovw-h-vysl{--plovw-h:#A9C0E4}
.plovw-tbl thead th.plovw-h-ebt{--plovw-h:#F5A623}
.plovw-tbl tbody td.plovw-c-trz{background:#EFF6FF}
.plovw-tbl tbody td.plovw-c-obch{background:#F0FDF4}
.plovw-tbl tbody td.plovw-c-hrub{background:#FEFCE8}
.plovw-tbl tbody td.plovw-c-rez{background:#FFF7ED}
.plovw-tbl tbody td.plovw-c-vysl{background:#EEF2FB}
.plovw-tbl tbody td.plovw-c-ebt{background:#FFF4DE;font-weight:700}

/* semafor marze */
.plovw-good{color:#15803D}
.plovw-mid{color:#B45309}
.plovw-bad{color:#B91C1C}
.plraw-card-s.plovw-good,.plraw-card-s.plovw-mid,.plraw-card-s.plovw-bad{font-weight:700}

/* podil na trzbach skupiny jako prouzek v bunce */
.plovw-share{min-width:150px}
.plovw-bar{display:inline-block;width:88px;height:8px;border-radius:999px;background:var(--border2);
  overflow:hidden;vertical-align:middle;margin-right:7px}
.plovw-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--blue-3),var(--blue));border-radius:999px}
.plovw-share-v{font-size:calc(11px * var(--ui-scale));color:var(--text2);font-weight:700}

.plovw-legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:8px 16px 14px;
  font-size:calc(11px * var(--ui-scale));color:var(--text2)}
.plovw-legend span{display:inline-flex;align-items:center;gap:6px}
.plovw-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;background:currentColor}
.plovw-legend-note{color:var(--text3)}

[data-theme="dark"] .plovw-tbl tbody td[class*="plovw-c-"]{background:rgba(255,255,255,.04)}

/* ── Zafixovany prvni sloupec u vsech vodorovne posuvnych tabulek ─────────
 * Pri scrollovani doprava musi zustat videt, o ktery radek vykazu jde
 * (Trzby, KP II, Rezie...). Bunka je pripnuta k levemu okraji scrollportu;
 * podklad se dava explicitne, protoze pripnuta bunka je nad ostatnimi
 * a pruhledna by je prekryvala textem. */
.scroll-x{position:relative}
.scroll-x > table.dash-table > thead > tr > th:first-child,
.scroll-x > table.dash-table > tbody > tr > td:first-child{
  position:sticky;left:0;z-index:2}
/* Telo: radek je pruhledny, pripnuta bunka proto potrebuje vlastni podklad. */
.scroll-x > table.dash-table > tbody > tr > td:first-child{background-color:var(--surface)}
/* Hlavicka uz svuj podklad MA (svetly u dash-table, modry u pl-table) — nesmi
   se prebijet, jinak by na svetlem podkladu zustalo bile pismo a nesel by
   precist nazev radku. */
.scroll-x > table.dash-table > thead > tr > th:first-child{z-index:4}
/* stin, aby bylo poznat, ze se zbytek tabulky posouva pod sloupcem */
.scroll-x > table.dash-table > thead > tr > th:first-child::after,
.scroll-x > table.dash-table > tbody > tr > td:first-child::after{
  content:"";position:absolute;top:0;right:-6px;width:6px;height:100%;
  background:linear-gradient(90deg,rgba(15,23,42,.10),transparent);pointer-events:none}

/* pruhy vykazu — pripnuta bunka musi drzet barvu sveho radku */
.scroll-x > table.dash-table > tbody > tr.pl-band-trz > td:first-child{background-color:#EFF6FF}
.scroll-x > table.dash-table > tbody > tr.pl-band-obch > td:first-child{background-color:#F0FDF4}
.scroll-x > table.dash-table > tbody > tr.pl-band-hrub > td:first-child{background-color:#FEFCE8}
.scroll-x > table.dash-table > tbody > tr.pl-band-rez > td:first-child{background-color:#FFF7ED}
.scroll-x > table.dash-table > tbody > tr.pl-band-vysl > td:first-child{background-color:#EEF2FB}
.scroll-x > table.dash-table > tbody > tr.pl-band-sub > td:first-child{background-color:#F1F5F9}
.scroll-x > table.dash-table > tbody > tr.pl-row-ebt > td:first-child{background-color:#FFF4DE}
.scroll-x > table.dash-table > tbody > tr.pl-row-warn > td:first-child{background-color:#FEF2F2}
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr[class*="pl-band-"] > td:first-child,
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.pl-row-ebt > td:first-child{
  background-color:var(--surface2)}
/* designy se strídavymi radky */
[data-design="report"] .scroll-x > table.dash-table > tbody > tr:nth-child(even) > td:first-child,
[data-design="dataroom"] .scroll-x > table.dash-table > tbody > tr:nth-child(even) > td:first-child{
  background-color:var(--surface2)}
[data-design="report"] .scroll-x > table.dash-table > thead > tr > th:first-child{background-color:var(--blue);color:#fff}
[data-design="dataroom"] .scroll-x > table.dash-table > thead > tr > th:first-child{background-color:var(--blue-mid);color:#fff}

/* Prehled planu: hlavicka prvniho sloupce musi byt citelna (bila na sedem
   podkladu splyvala) a nazvy firem maji byt dominantni. */
.plan-ovw-tbl thead th.pl-lbl-h{
  background-color:var(--blue-light);color:var(--blue);
  font-size:calc(11px * var(--ui-scale));font-weight:800;text-transform:none;letter-spacing:.01em}
.scroll-x > table.plan-ovw-tbl > thead > tr > th:first-child{background-color:var(--blue-light);color:var(--blue)}
.plan-ovw-tbl tbody td.pl-lbl,.plan-ovw-tbl tbody td.pl-lbl a.plan-ovw-link{
  font-size:calc(12.5px * var(--ui-scale));font-weight:800;color:var(--blue)}
.plan-ovw-tbl tbody tr.pl-row-kp td.pl-lbl{font-weight:900}
[data-theme="dark"] .plan-ovw-tbl thead th.pl-lbl-h,
[data-theme="dark"] .scroll-x > table.plan-ovw-tbl > thead > tr > th:first-child{
  background-color:var(--surface2);color:var(--text)}
[data-theme="dark"] .plan-ovw-tbl tbody td.pl-lbl,
[data-theme="dark"] .plan-ovw-tbl tbody td.pl-lbl a.plan-ovw-link{color:var(--text)}

/* Rychly filtr firem nad manazerskou vysledovkou. */
.pl-quickco{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;margin-top:4px}
.pl-quickco-lbl{font-size:calc(10px * var(--ui-scale));font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text3);margin-right:2px}
.pl-quickco-btn{padding:4px 10px;border:1.5px solid var(--border);border-radius:999px;background:var(--surface);
  color:var(--text2);font-family:var(--font-sans);font-size:calc(11.5px * var(--ui-scale));font-weight:700;
  cursor:pointer;transition:all .12s;white-space:nowrap;box-shadow:0 0 0 0 transparent}
.pl-quickco-btn:hover{border-color:var(--co-color,var(--blue-3));color:var(--co-color,var(--blue-3))}
/* Vybrana firma = oranzova. Vybrat jich jde vic naraz (klik prida/ubere),
   takze musi byt na prvni pohled videt, kolik jich sviti. */
.pl-quickco-btn.on{background:var(--orange);border-color:var(--orange-dk);color:#12305e;
  box-shadow:inset 3px 0 0 var(--co-color,var(--orange-dk))}
.pl-quickco-btn.on:hover{background:var(--orange-dk);border-color:var(--orange-dk);color:#fff}
.pl-quickco-btn.pair{border-style:dashed}
.pl-quickco-btn.pair.on{border-style:solid}

/* ── Administrace: role a uzivatele ─────────────────────────────────────── */
.adm-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
@media(max-width:1100px){.adm-layout{grid-template-columns:1fr}}
.adm-role-list{display:flex;flex-direction:column;gap:6px;padding:12px}
.adm-role{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 12px;border:1.5px solid var(--border);
  border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font-family:var(--font-sans);transition:all .12s}
.adm-role:hover{border-color:var(--blue-3)}
.adm-role.on{border-color:var(--blue);background:var(--blue-light)}
.adm-role-n{font-size:calc(12.5px * var(--ui-scale));font-weight:800;color:var(--blue)}
.adm-role-s{font-size:calc(10.5px * var(--ui-scale));color:var(--text3)}
.adm-tag{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  background:var(--surface2);color:var(--text3);border-radius:5px;padding:1px 5px;margin-left:5px}
.adm-detail-h{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.adm-detail-h .adm-name{font-weight:800;min-width:180px}
.adm-detail-h .adm-note{flex:1;min-width:220px}
.adm-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:900px){.adm-cols{grid-template-columns:1fr}}
.adm-h3{font-size:calc(11px * var(--ui-scale));font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  color:var(--text3);margin:0 0 8px}
.adm-checks{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.adm-check{display:flex;align-items:flex-start;gap:8px;padding:7px 10px;border:1px solid var(--border);
  border-radius:var(--radius-sm);cursor:pointer;font-size:calc(12px * var(--ui-scale));transition:all .12s}
.adm-check:hover{border-color:var(--blue-3)}
.adm-check.on{border-color:var(--blue);background:var(--blue-light)}
.adm-check input{margin-top:2px}
.adm-check strong{display:block;color:var(--text);font-weight:700}
.adm-check small{display:block;color:var(--text3);font-size:calc(10.5px * var(--ui-scale))}
.adm-inherit{color:var(--text3);font-style:italic;margin-right:6px}
.adm-u-in{min-width:120px}

/* ── Mesicni porada ─────────────────────────────────────────────────────── */
.mtg-layout{display:grid;grid-template-columns:minmax(280px,1fr) 1.2fr;gap:16px;align-items:start}
@media(max-width:1100px){.mtg-layout{grid-template-columns:1fr}}
.mtg-group{margin-bottom:14px}
.mtg-row{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--border2)}
.mtg-num{width:22px;height:22px;flex-shrink:0;border-radius:999px;background:var(--blue-light);color:var(--blue);
  font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.mtg-lbl{flex:1;font-size:calc(12px * var(--ui-scale));font-weight:600;color:var(--text)}
.mtg-todo{font-size:10px;font-weight:700;color:var(--red);border:1px solid var(--red);border-radius:5px;padding:0 4px}

.mtg-show{position:fixed;inset:0;z-index:900;background:var(--bg);display:flex;flex-direction:column}
.mtg-show-bar{display:flex;align-items:center;gap:8px;padding:12px 18px;background:var(--surface);
  border-bottom:1px solid var(--border)}
.mtg-show-bar h2{font-size:calc(15px * var(--ui-scale));font-weight:800;color:var(--blue)}
.mtg-show-body{flex:1;overflow:auto;padding:18px 22px}
.mtg-show-body .dash-block-handle{display:none}
.mtg-show-foot{padding:8px 18px;background:var(--surface);border-top:1px solid var(--border);
  font-size:calc(11.5px * var(--ui-scale));color:var(--text3)}
@media print{
  .mtg-show{position:static}
  .mtg-show-bar{display:none}
  .shell,.app-topbar{display:none}
}

/* ── Mesicni porada: barevny, prezentacni vzhled ────────────────────────── */
.mtg-cta{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:800}
.mtg-cta:hover{background:var(--blue-mid);border-color:var(--blue-mid)}

/* prezentace: modra lista s bilym textem, snimek vzdy na bilem podkladu */
.mtg-show-bar{background:var(--mtg-accent,#1B3A6B);border-bottom:none;color:#fff}
.mtg-show-bar h2{color:#fff}
.mtg-show-bar .btn{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.35);font-weight:700}
.mtg-show-bar .btn:hover{background:rgba(255,255,255,.26);border-color:#fff}
.mtg-show-body{background:#fff}
.mtg-show-body .panel{border-color:#E5E9F2}
.mtg-show-foot{background:var(--mtg-accent,#1B3A6B);color:rgba(255,255,255,.85);border-top:none;font-weight:600}

/* uvodni snimek */
.mtg-title-slide{padding:40px 20px 24px;text-align:center}
.mtg-title-slide h1{font-size:calc(34px * var(--ui-scale));font-weight:900;color:var(--mtg-accent,#1B3A6B);letter-spacing:-.01em}
.mtg-title-sub{font-size:calc(16px * var(--ui-scale));color:var(--text2);margin-top:6px;font-weight:600}
.mtg-title-meta{font-size:calc(13px * var(--ui-scale));color:var(--text3);margin:4px 0 26px}
.mtg-title-slide .plraw-cards{max-width:1100px;margin:0 auto}
.mtg-kpi{border-top:4px solid var(--mtg-accent,#1B3A6B)}

/* nastaveni porady */
.mtg-setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}
.mtg-accents{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.mtg-accent{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1.5px solid var(--border);
  border-radius:999px;background:var(--surface);cursor:pointer;font-family:var(--font-sans);
  font-size:calc(12px * var(--ui-scale));font-weight:700;color:var(--text2)}
.mtg-accent:hover{border-color:var(--blue-3)}
.mtg-accent.on{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 3px var(--blue-light)}
.mtg-accent-sw{width:16px;height:16px;border-radius:5px;display:inline-block}

/* editor vlastnich grafu */
.mtgch-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-bottom:14px}
.mtgch-f{display:flex;flex-direction:column;gap:4px}
.mtgch-f > span{font-size:calc(10.5px * var(--ui-scale));font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;color:var(--text3)}
.mtgch-f input,.mtgch-f select{min-width:180px}
.mtgch-preview{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:8px}

/* Firemni styl porady — pismo a oranzove akcenty ze sablony .pptx */
.mtg-show{font-family:var(--mtg-font,var(--font-sans))}
.mtg-show-bar h2{letter-spacing:.01em}
.mtg-show-bar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--mtg-accent2,var(--mtg-accent,#F37021))}
.mtg-show-bar{position:relative}
.mtg-title-slide h1{font-family:var(--mtg-font,var(--font-sans))}
.mtg-title-slide h1::after{content:"";display:block;width:96px;height:4px;border-radius:2px;
  margin:14px auto 0;background:var(--mtg-accent2,var(--mtg-accent,#F37021))}
.mtg-kpi{border-top-color:var(--mtg-accent,#03428E)}
.mtg-kpi:nth-child(even){border-top-color:var(--mtg-accent2,#F37021)}
.mtg-show-body .ctrl-charttitle{fill:var(--mtg-accent,#03428E);font-weight:800}

/* Prepinac spojeni dvojice firem se spolecnym planem (Financni prehled — plna data). */
.plraw-merge{background:var(--blue-3);border-color:var(--blue-3);color:#fff;font-weight:800;white-space:nowrap}
.plraw-merge:hover{background:var(--blue-mid);border-color:var(--blue-mid)}
#plRawMergeBtn.on,.plraw-merge.on{background:var(--orange);border-color:var(--orange-dk);color:#12305e;
  box-shadow:0 0 0 3px var(--orange-light)}
#plRawMergeBtn.on:hover,.plraw-merge.on:hover{background:var(--orange-dk);color:#fff}

/* ── Protokol stavu systemu ─────────────────────────────────────────────── */
.sys-rows{display:flex;flex-direction:column}
.sys-row{display:flex;align-items:baseline;gap:10px;padding:8px 16px;border-bottom:1px solid var(--border2);
  font-size:calc(12px * var(--ui-scale))}
.sys-row:last-child{border-bottom:none}
.sys-row.ok{background:transparent}
.sys-row.warn{background:var(--yellow-light)}
.sys-row.err{background:var(--red-light)}
.sys-lbl{font-weight:700;color:var(--text);white-space:nowrap}
.sys-det{color:var(--text2);flex:1}
.sys-pill{flex-shrink:0;display:inline-block;min-width:52px;text-align:center;padding:2px 8px;border-radius:999px;
  font-size:calc(10px * var(--ui-scale));font-weight:800;letter-spacing:.04em}
.sys-pill.ok{background:var(--green-light);color:#15803D;border:1px solid var(--green-border)}
.sys-pill.warn{background:var(--yellow-light);color:#B45309;border:1px solid #FBBF24}
.sys-pill.err{background:var(--red-light);color:#B91C1C;border:1px solid #FCA5A5}
[data-theme="dark"] .sys-row.warn{background:rgba(217,119,6,.12)}
[data-theme="dark"] .sys-row.err{background:rgba(220,38,38,.14)}

/* Pojistka proti necitelne kombinaci: bile pismo hlavicky vzdy s tmavym
   podkladem, i kdyz nekdo pripne sloupec nebo prepise pozadi. */
.pl-table thead th:first-child{background:var(--blue);color:#fff}
.pl-table thead th.pl-lbl-h{color:#fff}
.plan-ovw-tbl thead th.pl-lbl-h,.scroll-x > table.plan-ovw-tbl > thead > tr > th:first-child{
  background-color:var(--blue-light) !important;color:var(--blue) !important}

/* Financni prehled — barevne odliseni KPI karet podle vyznamu (levy pruh
   + jemny podklad, aby zustaly citelne i v tmavem motivu). */
.dash-card.kpi-trz{background:#EFF6FF;border-color:#BFDBFE;border-left:5px solid #2B5190}
.dash-card.kpi-nakl{background:#FEF2F2;border-color:#FECACA;border-left:5px solid #DC2626}
.dash-card.kpi-vh{background:#EEF2FB;border-color:#C7D7EC;border-left:5px solid #1B3A6B}
.dash-card.kpi-cash{background:#ECFEFF;border-color:#A5F3FC;border-left:5px solid #0D9488}
.dash-card.kpi-rec{border-left:5px solid #16A34A}
.dash-card.kpi-pay{border-left:5px solid #F5A623}
[data-theme="dark"] .dash-card.kpi-trz,[data-theme="dark"] .dash-card.kpi-nakl,
[data-theme="dark"] .dash-card.kpi-vh,[data-theme="dark"] .dash-card.kpi-cash{
  background:var(--surface2);border-color:var(--border)}

/* ── Sada grafu ve Vykazu zisku a ztraty (js/pl-chart-suite.js) ─────────── */
#plSuite{display:flex;flex-direction:column}
.plsuite-panel .panel-hdr h2{font-size:calc(13.5px * var(--ui-scale));font-weight:800;color:var(--blue)}
.plsuite-panel .panel-hdr p{font-size:calc(11.5px * var(--ui-scale));color:var(--text3)}
.plsuite-box{padding:10px 14px 16px;background:var(--surface)}
.plsuite-box svg{width:100%;height:auto;display:block}
/* Jednotna typografie grafu — plati pro celou appku, ne jen pro tuhle sadu. */
.ctrl-charttitle{font-size:14px;font-weight:800;fill:var(--blue)}
.dash-axis-lbl{font-size:10.5px;fill:var(--text3)}
.ctrl-grouplbl{font-size:11.5px;font-weight:700;fill:var(--text2)}
.dash-legend-lbl{font-size:11.5px;font-weight:650;fill:var(--text2)}
.yoy-lbl{font-size:10.5px;font-weight:750;fill:var(--text)}
.yoy-lbl.cur{fill:var(--text)}
.dash-grid{stroke:var(--border);stroke-width:1}
.dash-axis-zero{stroke:var(--text3);stroke-width:1.2}

/* Popisky hodnot v grafech — bily ramecek, aby byly citelne pres sloupce,
   vysece i mrizku (stejny jazyk jako kaskada KP). */
.chart-tag rect{fill:#fff;stroke:var(--border);stroke-width:.8;opacity:.96}
.chart-tag-t{font-size:10.5px;font-weight:800;fill:#12305e}
[data-theme="dark"] .chart-tag rect{fill:var(--surface2);stroke:var(--border)}
[data-theme="dark"] .chart-tag-t{fill:var(--text)}
.yoy-lbl.seg{fill:#fff;font-weight:800}
.plsuite-units{margin-right:6px}

/* Hledani ve strediscich (Administrace -> role a uzivatele). */
.adm-cc-find{display:flex;align-items:center;gap:10px;margin:2px 0 8px}
.adm-cc-input{flex:1;max-width:340px}
.adm-cc-count{font-size:calc(11px * var(--ui-scale));font-weight:700;color:var(--text3);white-space:nowrap}
.adm-cc-count.none{color:var(--red)}

/* Zruseni rychleho filtru firem — cervene, aby bylo jasne odlisene od vyberu. */
.pl-quickco-btn.pl-quickco-clear{background:var(--red);border-color:var(--red);color:#fff;margin-left:6px}
.pl-quickco-btn.pl-quickco-clear:hover{background:#B91C1C;border-color:#B91C1C;color:#fff}
.pl-quickco-btn.pl-quickco-clear.dim{background:var(--surface);border-color:var(--border);color:var(--text3);
  opacity:.55;cursor:default}
.pl-quickco-btn.pl-quickco-clear.dim:hover{background:var(--surface);border-color:var(--border);color:var(--text3)}

/* Ukazatel konsolidacniho pohledu v horni liste. */
.ic-badge{margin-left:10px;padding:3px 10px;border-radius:999px;background:var(--orange-light);
  border:1px solid var(--orange-border);color:#8a5a00;font-size:calc(11px * var(--ui-scale));font-weight:800;
  white-space:nowrap}
.ic-badge.warn{background:var(--red-light);border-color:#FCA5A5;color:#B91C1C}

/* ── Statutární výkazy (Rozvaha, CF, změny VK) ───────────────────────────
   Vzhled tiskopisu: bez barevných pásem, jen odstupňovaná šeď podle úrovně
   řádku, aby výkaz na obrazovce vypadal jako ten podávaný na finanční úřad. */
.stat-hlavicka{display:flex;flex-wrap:wrap;gap:26px;padding:14px 20px;margin-bottom:2px;
  background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius) var(--radius) 0 0}
.stat-h-lbl{display:block;font-size:calc(10px * var(--ui-scale));text-transform:uppercase;
  letter-spacing:.06em;color:var(--text2);margin-bottom:2px}
.stat-hlavicka strong{font-size:calc(13px * var(--ui-scale));color:var(--text)}
.stat-tbl{width:100%;border-collapse:collapse;font-size:calc(12px * var(--ui-scale))}
.stat-tbl th{background:var(--surface2);border:.5px solid var(--border);padding:6px 8px;
  font-weight:700;color:var(--text);text-align:center;white-space:nowrap}
.stat-tbl td{border:.5px solid var(--border);padding:4px 8px;color:var(--text)}
.stat-tbl td.stat-oz,.stat-tbl th.stat-oz{white-space:nowrap;width:1%;color:var(--text2);font-weight:600}
.stat-tbl td.stat-r,.stat-tbl th.stat-r{white-space:nowrap;width:1%;text-align:center;color:var(--text2)}
.stat-tbl td.stat-nz{min-width:340px}
.stat-tbl td.stat-amt,.stat-tbl th.stat-amt{text-align:right;white-space:nowrap;
  font-variant-numeric:tabular-nums;width:110px}
.stat-tbl td.stat-netto{font-weight:700}
.stat-tbl td.stat-min{color:var(--text2)}
.stat-tbl tr.stat-b-hl td{background:var(--surface2);font-weight:800;font-size:calc(13px * var(--ui-scale))}
.stat-tbl tr.stat-b-st td{background:var(--surface2);font-weight:700}
.stat-tbl tr.stat-b-vys td{font-weight:800;background:var(--blue-light)}
.stat-tbl tr.stat-u2 td.stat-nz{padding-left:22px}
.stat-tbl tr.stat-u3 td.stat-nz{padding-left:38px}
.stat-tbl tr.stat-u4 td.stat-nz{padding-left:54px}
.stat-tbl tr.stat-row:hover td{background:var(--hover)}
.stat-tbl tr.stat-b-hl:hover td,.stat-tbl tr.stat-b-st:hover td{background:var(--surface2)}
.stat-nadpis td{font-weight:700;background:var(--surface2);font-style:italic}
/* Přepínač nulových řádků vypadá jako ostatní tlačítka v liště (pilulka),
   aby lišta nástrojů držela jeden vzhled napříč všemi výkazy. */
.stat-nulove{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;
  border:.5px solid var(--border);background:var(--surface2);color:var(--text2);
  font-size:12px;cursor:pointer;user-select:none;white-space:nowrap;transition:all .12s}
.stat-nulove:hover{border-color:var(--blue);color:var(--blue)}
.stat-nulove:has(input:checked){background:var(--blue);border-color:var(--blue);color:#fff}
.stat-nulove input{width:14px;height:14px;accent-color:#fff;cursor:pointer;margin:0}

/* Mapování rozvahových účtů */
.bsmap-sel{max-width:340px;padding:3px 6px;border:1px solid var(--border);border-radius:6px;
  background:var(--surface);color:var(--text);font-size:calc(11px * var(--ui-scale))}
.bsmap-chibi td,.bsmap-chybi td{background:var(--red-light)}
.bsmap-zrus{margin-left:6px;padding:2px 8px;font-size:calc(11px * var(--ui-scale))}
.map-exc-hdr td{font-size:calc(10px * var(--ui-scale));text-transform:uppercase;letter-spacing:.05em;
  color:var(--text2);font-weight:700;padding-bottom:2px}
.map-exc-typ{display:inline-block;padding:1px 8px;border-radius:10px;background:var(--surface2);
  border:1px solid var(--border);font-size:calc(11px * var(--ui-scale));white-space:nowrap}

/* Statutární výkazy sdílí paletu s účetním VZZ — tyhle třídy jen dorovnávají
   sloupce (označení, číslo řádku), které manažerská tabulka nemá. */
.pl-table.stat-tbl td.stat-oz,.pl-table.stat-tbl th.stat-oz{white-space:nowrap;width:1%;font-weight:600}
.pl-table.stat-tbl td.stat-r,.pl-table.stat-tbl th.stat-r{white-space:nowrap;width:1%;text-align:center;
  color:var(--text2);font-size:calc(11px * var(--ui-scale))}
.pl-table.stat-tbl td.stat-nz{min-width:320px}
.pl-table.stat-tbl td.stat-amt,.pl-table.stat-tbl th.stat-amt{text-align:right;white-space:nowrap;
  font-variant-numeric:tabular-nums}
.pl-table.stat-tbl tr.stat-u2 td.stat-nz{padding-left:20px}
.pl-table.stat-tbl tr.stat-u3 td.stat-nz{padding-left:36px}
.pl-table.stat-tbl tr.stat-u4 td.stat-nz{padding-left:52px}
.stat-fold{font-size:10px!important;color:var(--text2)}
.pl-table.stat-tbl tr.stat-nadpis td{font-weight:700;font-style:italic}

/* Filtry po sloupcích v účetním deníku — jeden vstup nad každým sloupcem,
   filtry se skládají (platí současně), takže jde vyhledat konkrétní doklad. */
.jf-row td{padding:3px 4px!important;background:var(--surface2);
  border-bottom:1px solid var(--border);position:sticky;top:32px;z-index:3}
.jf-input{width:100%;min-width:56px;max-width:150px;padding:3px 6px;font-size:calc(11px * var(--ui-scale));
  border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text);
  font-family:var(--font-sans)}
.jf-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-light)}
.jf-input::placeholder{color:var(--text3)}
.jf-rozsah{display:flex;gap:3px}
.jf-rozsah .jf-input{min-width:46px}

/* „Stav k datu" u firem mimo účetní systém — viz js/snimek-stav.js.
   Oranzova zamerne: firma neni v hlavnim ucetnim systemu, jeji cisla jsou mesicni snimek,
   ne ziva data jako u ostatnich firem. Nema to byt chyba (cervena), ale
   informace, ktere si musi cist vsimnout drive nez cisla pod ni. */
.snimek-stav {
  display: flex; align-items: flex-start; gap: 8px;
  margin: 0 0 12px; padding: 9px 12px;
  background: var(--orange-light);
  border: 1px solid var(--orange-border);
  border-left: 4px solid var(--orange);
  border-radius: 8px;
  font-size: 13px; line-height: 1.45; color: var(--text);
}
.snimek-stav strong { color: var(--orange-dk); }
.snimek-stav-ic { flex: 0 0 auto; font-size: 14px; line-height: 1.35; }
@media print { .snimek-stav { break-inside: avoid; } }

/* Kontrola statutárních výkazů — souhrnná tabulka (js/stat-source-view.js). */
.stat-src-skoro { color: var(--orange-dk); font-weight: 700; }
.stat-src-nic { color: var(--text3); }
.stat-src-pop { font-size: 11px; font-weight: 400; color: var(--text2); margin-top: 2px; }
.stat-tbl .ctrl-good, .stat-tbl .ctrl-bad, .stat-tbl .stat-src-skoro { font-size: 16px; }

/* Sestavy v systému — seznam s rozklikávacím detailem (js/stat-sestavy-view.js). */
.sest-row { cursor: pointer; }
.sest-row:hover { background: var(--surface2); }
.sest-row.on { background: var(--orange-light); }
.sest-row .btn { padding: 3px 10px; font-size: 12px; }

/* Mapování rozvahových účtů — tabulka se musí vejít na šířku bez vodorovného
   posuvníku. Pevné rozložení (table-layout:fixed) drží sloupce v daném poměru
   bez ohledu na to, jak dlouhý je název účtu; ten se místo roztahování sloupce
   zalomí na další řádek. Rozevírací seznamy dostanou width:100%, aby delší
   název řádku rozvahy tabulku nerozstrčil. */
.bsmap-tbl { table-layout: fixed; width: 100%; }
.bsmap-tbl th, .bsmap-tbl td {
  overflow-wrap: anywhere; word-break: normal; white-space: normal; vertical-align: top;
}
.bsmap-tbl th:nth-child(1), .bsmap-tbl td:nth-child(1) { width: 6%; }
.bsmap-tbl th:nth-child(2), .bsmap-tbl td:nth-child(2) { width: 7%; }
.bsmap-tbl th:nth-child(3), .bsmap-tbl td:nth-child(3) { width: 15%; }
.bsmap-tbl th:nth-child(4), .bsmap-tbl td:nth-child(4) { width: 8%; text-align: right; }
.bsmap-tbl th:nth-child(5), .bsmap-tbl td:nth-child(5) { width: 12%; }
.bsmap-tbl th:nth-child(6), .bsmap-tbl td:nth-child(6) { width: 20%; }
.bsmap-tbl th:nth-child(7), .bsmap-tbl td:nth-child(7) { width: 13%; }
.bsmap-tbl th:nth-child(8), .bsmap-tbl td:nth-child(8) { width: 19%; }
.bsmap-kat-zdroj { margin-top: 3px; font-size: 11px; display: flex;
  align-items: center; gap: 8px; flex-wrap: wrap; }
/* „jen tahle firma" je vědomá výjimka, ne běžná volba — drží se decentně
   u popisku zdroje, aby nelákala ke klikání. */
.bsmap-jen-firma { display: inline-flex; align-items: center; gap: 3px;
  color: var(--text3); cursor: pointer; white-space: nowrap; }
.bsmap-jen-firma input { margin: 0; }
.bsmap-tbl { font-size: 12.5px; }
.bsmap-tbl td, .bsmap-tbl th { padding-top: 6px; padding-bottom: 6px; }
.bsmap-tbl select { font-size: 12px; padding: 3px 4px; }
.bsmap-tbl select { width: 100%; max-width: 100%; box-sizing: border-box; }
.bsmap-tbl .bsmap-zrus { margin-top: 4px; }
.bsmap-tbl .ic-badge { white-space: normal; display: inline-block; }

/* Rok bez finálních výkazů — tečka říká „kontrola je připravená, čeká na data". */
.stat-src-ceka { color: var(--orange); font-size: 15px; line-height: 0; }
/* Hotová sada firem v rychlém filtru (Vše bez MEA…) — odliší se od jednotlivých
   firem, protože nastavuje výběr přesně, nepřepíná jednu firmu. */
.pl-quickco-btn.sada { font-style: italic; }

/* Rozvaha → Grafy (js/bs-grafy-view.js). SVG bez knihoven — appka běží
   z file:// a externí závislosti nepřipadají v úvahu. */
.bs-graf { padding: 6px 20px 16px; }
.bsg-svg { width: 100%; height: auto; }
.bsg-mriz { stroke: var(--border); stroke-width: 1; }
.bsg-osa { font-size: 11px; fill: var(--text3); }
.bsg-legenda { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; padding: 8px 2px 0; }
/* Legenda grafu. Tenká čárka o šířce 14 px se u šesti řad nedala rozeznat —
   barvy se musí porovnávat s křivkou, takže značka potřebuje plochu, ne linku.
   Položky jsou proto štítky s výraznou barevnou destičkou a rámečkem. */
.bsg-leg { display: inline-flex; align-items: center; gap: 8px; font-size: 12px;
  font-weight: 600; color: var(--text); background: var(--surface);
  border: 1px solid var(--border); border-radius: 999px; padding: 4px 12px 4px 6px; }
.bsg-leg-b { width: 22px; height: 14px; border-radius: 4px; display: inline-block;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
[data-theme="dark"] .bsg-leg { background: var(--surface2); }

/* Rozvaha → Metriky: heat mapa (js/bs-metriky-view.js). Barvu nastavuje JS
   inline podle pořadí hodnoty v řádku, tady je jen tvar buňky. */
.bsm-tbl td.bsm-b { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.bsm-tbl td.pl-lbl { font-weight: 600; }
.bsm-tbl tbody tr:hover td.pl-lbl { color: #1B3A6B; }

/* Popisky hodnot v grafech rozvahy — rámeček jako u ostatních grafů. */
.bsg-pop rect { opacity: .95; }
/* Písmo v rámečku s hodnotou. Tabulkové číslice mají stálou šířku, takže
   výpočet šířky rámečku v js/bs-grafy-view.js sedí a číslo z něj nevyleze. */
.bsg-konec { font-size: 10px; font-weight: 700; font-variant-numeric: tabular-nums; }
.bsm-tbl td.pl-cumul { border-left: 2px solid #1B3A6B; font-weight: 800; }
.bsm-tbl th.pl-cumul-h { border-left: 2px solid #1B3A6B; }

/* Lišta nad grafem (js/graf-nastroje.js) — zvětšení, samostatné okno, tisk.
   Přidává se automaticky ke každému dost velkému grafu, takže musí být
   nenápadná: při čtení grafu nesmí táhnout pozornost, ale musí být po ruce. */
.grafn-lista { display: flex; align-items: center; justify-content: flex-end;
  gap: 4px; padding: 4px 20px 0; }
.grafn-lista button { width: 26px; height: 24px; border: 1px solid var(--border);
  border-radius: 6px; background: var(--surface); color: var(--text2);
  cursor: pointer; font-size: 12px; line-height: 1; padding: 0; }
.grafn-lista button:hover { border-color: var(--blue); color: var(--blue);
  background: var(--blue-light); }
.grafn-zoom-val { font-size: 11px; color: var(--text3); min-width: 42px;
  text-align: center; font-variant-numeric: tabular-nums; }
@media print { .grafn-lista { display: none; } }

/* ── Řízení přístupů (Administrace + náhled) ─────────────────────────── */
#accPreviewBar{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;align-items:center;gap:14px;justify-content:center;background:#F5A623;color:#3B2A00;font-size:13px;font-weight:600;padding:7px 14px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
#accPreviewBar button{border:1px solid #3B2A00;background:#FFF7E6;color:#3B2A00;border-radius:8px;padding:3px 12px;font-weight:700;cursor:pointer}
#accPreviewBar button:hover{background:#fff}
body:has(#accPreviewBar) .topbar{top:34px}
body:has(#accPreviewBar) .sidebar{padding-top:34px}
body:has(#accPreviewBar) .main{padding-top:34px}

.adm-area-box{border:1px solid var(--border);border-radius:10px;padding:4px 8px;margin-bottom:6px;background:var(--surface)}
.adm-area-box.off{opacity:.75}
.adm-area-exp{border:none;background:none;color:var(--blue);font-size:11.5px;font-weight:600;cursor:pointer;padding:2px 6px;margin-left:28px}
.adm-area-exp.on{color:var(--orange)}
.adm-area-sec{margin:4px 0 6px 28px;border-left:2px solid var(--border);padding-left:10px}
.adm-sec-row{margin:2px 0}
.adm-sec-row.off .adm-sec-lbl span{color:var(--muted);text-decoration:line-through;text-decoration-color:rgba(220,38,38,.5)}
.adm-sec-lbl{display:flex;align-items:center;gap:7px;font-size:12.5px;cursor:pointer}
.adm-sec-ovr{color:var(--orange);font-style:normal;font-weight:800}
.adm-sec-parts{margin:2px 0 4px 24px;display:flex;flex-wrap:wrap;gap:4px 12px}
.adm-sec-part{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text);cursor:pointer}
.adm-sec-part.off span{color:var(--muted);text-decoration:line-through}

.adm-u-tree{border:1px solid var(--border);border-radius:10px;padding:6px 10px;background:var(--surface);margin-bottom:12px}
.adm-u-area summary{cursor:pointer;font-weight:700;font-size:12.5px;padding:5px 2px;color:var(--text)}
.adm-u-area summary small{color:var(--muted);font-weight:500;margin-left:6px}
.adm-u-sec{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 4px 3px 14px;font-size:12.5px;border-radius:6px}
.adm-u-sec.off{background:color-mix(in srgb, var(--muted) 10%, transparent);color:var(--muted)}
.adm-u-sec.part{padding-left:30px;font-size:11.5px}
.adm-tri{border:1px solid var(--border);background:var(--surface);border-radius:999px;font-size:11px;padding:2px 10px;cursor:pointer;min-width:74px;color:var(--muted)}
.adm-tri.yes{background:#DCFCE7;border-color:#16A34A;color:#15803D;font-weight:700}
.adm-tri.no{background:#FEE2E2;border-color:#DC2626;color:#B91C1C;font-weight:700}

/* ── Statistika účetního deníku ──────────────────────────────────────── */
#journalStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.jstat{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;border-top:3px solid var(--blue)}
.jstat .v{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.5px;line-height:1.15;font-variant-numeric:tabular-nums}
.jstat .l{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
.jstat .s{font-size:11px;color:var(--muted);margin-top:3px}
.jstat.js-roz{border-top-color:#16A34A}
.jstat.js-vys{border-top-color:#F5A623}
.jstat.js-int{border-top-color:#7C3AED}

/* ── Bezpečnost ──────────────────────────────────────────────────────── */
.sec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-bottom:18px}
.sec-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px}
.sec-card .ico{font-size:22px;margin-bottom:6px}
.sec-card h3{margin:0 0 6px;font-size:14px;color:var(--text)}
.sec-card p{margin:0;font-size:12.5px;line-height:1.65;color:var(--muted)}
.sec-state{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:2px 9px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.4px}
.sec-state.now{background:#DCFCE7;color:#15803D}
.sec-state.web{background:#DBEAFE;color:#1D4ED8}
.sec-list{margin:0;padding-left:20px;font-size:12.5px;line-height:1.9;color:var(--text)}
.sec-list strong{color:var(--text)}
#accPreviewBar select{border:1px solid #3B2A00;background:#FFF7E6;color:#3B2A00;border-radius:8px;padding:3px 8px;font-weight:700;font-size:12.5px;cursor:pointer}
.btn-report{background:#DBEAFE;color:#111 !important;border:1px solid #93C5FD;border-radius:8px;padding:5px 12px;font-weight:600;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.btn-report:hover{background:#BFDBFE}
[data-theme="dark"] .btn-report{background:#1E3A5F;color:#E2E8F0 !important;border-color:#3A6DB5}
.btn-report-auto{margin-left:auto;align-self:flex-start}
.dash-head:has(.btn-report-auto){display:flex;align-items:flex-start;gap:12px}
.dash-head:has(.btn-report-auto) .dash-title{flex:1 1 auto}
.btn-report-radek{display:flex;justify-content:flex-end;margin:0 0 10px}
/* Tlačítko náhledu v tabulce uživatelů — oranžové, ať je vidět na první pohled. */
.adm-u-eye{background:#F5A623 !important;border-color:#D98E0B !important;color:#3B2A00 !important;font-weight:700 !important}
.adm-u-eye:hover{background:#FFB93D !important}

/* ── Peněžní toky: přepínač pohledů uvnitř záložky Výkaz Cash-flow ────── */
.cf-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.cf-tabs button{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 16px;font-size:12.5px;font-weight:600;cursor:pointer}
.cf-tabs button:hover{border-color:var(--blue);color:var(--blue)}
.cf-tabs button.on{background:var(--blue);border-color:var(--blue);color:#fff}

/* ── Buňka „Aktualizace dat provedena…" v horní liště ─────────────────── */
.upd-info{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border);border-radius:999px;padding:5px 13px;font-size:11.5px;font-weight:600;color:#111F4D;white-space:nowrap;cursor:default}
.upd-info svg{color:#3A6DB5;flex:0 0 auto}
.upd-info.upd-nove{border-color:var(--orange);box-shadow:0 0 0 3px rgba(245,166,35,.18);cursor:pointer}
.upd-tecka{width:8px;height:8px;border-radius:50%;background:var(--orange);flex:0 0 auto;animation:updPulz 1.2s ease-in-out infinite}
@keyframes updPulz{50%{opacity:.35}}
[data-theme="dark"] .upd-info{background:var(--surface2);color:var(--text)}
/* Obal grafu s lištou nástrojů: lišta vždy na vlastním řádku NAD grafem,
 * obal zabírá v rodiči místo grafu (funguje i ve flex/grid rozloženích). */
.grafn-obal{display:flex;flex-direction:column;min-width:0}
.db2-panel>.grafn-obal{width:100%}
.grafn-obal>.grafn-lista{display:flex;justify-content:flex-end}

/* ── Manažerský výkaz Cash-flow (cf-pt-view) ─────────────────────────── */
.cfpt-tab{font-size:11.5px}
.cfpt-tab td,.cfpt-tab th{padding:3px 8px !important;line-height:1.35}
.cfpt-tab .num-cell{font-size:11px;font-variant-numeric:tabular-nums}
.cfpt-tab .cfpt-lbl{text-align:left;white-space:nowrap}
.cfpt-tab tr.cfpt-l1 td{background:#DCE6F7;font-weight:800;color:#111F4D;font-size:12.5px;border-top:2px solid #B9CBEA;border-bottom:1px solid #B9CBEA}
.cfpt-tab tr.cfpt-l2 td{background:#F8FAFE;font-weight:600;color:#26324E;font-size:11.5px}
.cfpt-tab tr.cfpt-l3 td{color:var(--text2);font-size:11px}
.cfpt-tab td.cfpt-bg-plus{background:#DCFCE7 !important;color:#14532D}
.cfpt-tab td.cfpt-bg-minus{background:#FEE2E2 !important;color:#7F1D1D}
/* přepínač pohledů výkazu CF — světle oranžový s tučným černým písmem */
#cfPtPohled button{background:#FFEDD5;border:1px solid #FDBA74;color:#111;font-weight:700}
#cfPtPohled button:hover{background:#FED7AA}
#cfPtPohled button.on{background:#F5A623;border-color:#EA8A00;color:#111}
.cfpt-tab tr.cfpt-klik{cursor:pointer}
.cfpt-tab tr.cfpt-klik:hover td{background:#FFF8EC}
.cfpt-sipka{display:inline-block;width:16px;color:var(--orange);font-weight:700;transition:transform .12s}
.cfpt-sipka.open{transform:rotate(90deg)}
.cfpt-sipka.none{visibility:hidden}
.cfpt-tab tfoot td{background:#FFF4DE;font-weight:800;color:#12305e;border-top:2px solid #F5A623;font-size:11.5px}
#cfPtKontrolaBtn.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.cfpt-nez-radek{display:grid;grid-template-columns:1fr auto 260px auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--border)}
[data-theme="dark"] .cfpt-tab tr.cfpt-l1 td{background:var(--surface2)}
[data-theme="dark"] .cfpt-tab tr.cfpt-l2 td{background:var(--surface)}
.cfpt-plus{color:#15803D;font-weight:800}
.cfpt-minus{color:#B91C1C;font-weight:800}

/* ── Mapování rozvahových účtů: tabulka Pro peněžní tok ──────────────── */
.cfptm-tab{font-size:11.5px}
.cfptm-tab td,.cfptm-tab th{padding:3px 8px !important}
.cfptm-radek-nez td{background:#FFF7ED}
.cfptm-nez{color:#B45309;font-weight:700}
.cfptm-mimo{color:#64748B;font-style:italic}
.cfptm-ok{color:#15803D;font-size:11px}
.cfptm-zmena{display:flex;gap:6px;align-items:center}
.cfptm-zmena select{min-width:190px;font-size:11px;padding:3px 6px}
.cfptm-filtr{background:#FFEDD5;border:1px solid #FDBA74;color:#111;font-weight:700}
.cfptm-filtr:hover{background:#FED7AA}
.cfptm-filtr.on{background:#F5A623;border-color:#EA8A00;color:#111}
.cfptm-pocet{display:inline-block;background:#DC2626;color:#fff;border-radius:999px;min-width:20px;padding:1px 6px;font-size:11px;text-align:center;margin-left:4px}
/* sticky první sloupec nesmí přebít podbarvení úrovní CF výkazu */
.scroll-x > table.dash-table.cfpt-tab > tbody > tr.cfpt-l1 > td:first-child{background:#DCE6F7}
.scroll-x > table.dash-table.cfpt-tab > tbody > tr.cfpt-l2 > td:first-child{background:#F8FAFE}
.scroll-x > table.dash-table.cfptm-tab > tbody > tr.cfptm-radek-nez > td:first-child{background:#FFF7ED}
.bsm-vysv{font-size:11.5px}
.bsm-vysv td,.bsm-vysv th{padding:5px 9px !important;vertical-align:top}
.bsm-vysv .bsm-pozn{color:var(--muted);font-size:11px;max-width:320px}

/* ── Manažerský souhrn: dashboard 2×3 ────────────────────────────────── */
/* Dlaždice je obyčejný PANEL aplikace, jen s většími čísly — souhrn se čte
   z dálky na poradě. Dřív měla natvrdo tmavě modrou hlavičku (#111F4D)
   a neonově zelené číslo, což vypadalo jako vystřižené z jiné aplikace
   a v tmavém motivu se to rozpadalo. Barvy proto jedou z tokenů. */
.ms-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:1100px){.ms-grid{grid-template-columns:1fr}}
.ms-tile{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:visible;display:flex;flex-direction:column}
.ms-hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 16px 10px;border-bottom:.5px solid var(--border2)}
.ms-hdr h2{margin:0;font-size:14px;font-weight:650;color:var(--text);letter-spacing:-.02em}
.ms-hodnota{font-family:var(--font-mono);font-size:17px;font-weight:600;letter-spacing:-.02em;white-space:nowrap}
.ms-hodnota.g{color:var(--green)}.ms-hodnota.r{color:var(--red)}
.ms-smer{font-size:12px}
.ms-mesic{font-size:11px;font-weight:600;color:var(--text3);margin-left:4px}
.ms-volba{position:relative;padding:8px 14px 0;align-self:flex-end}
.ms-volba-btn{border:.5px solid var(--border);background:var(--surface2);border-radius:var(--radius-sm);
  padding:5px 12px;font-size:12px;font-weight:600;color:var(--text2);cursor:pointer}
.ms-volba-btn:hover{border-color:var(--blue);color:var(--blue)}
.ms-volba-panel{position:absolute;right:16px;top:100%;z-index:40;background:var(--surface);
  border:.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);
  padding:9px;min-width:320px;max-height:380px;overflow:auto}
.ms-opt{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:6px;font-size:13px;cursor:pointer}
.ms-opt:hover{background:var(--surface2)}
.ms-opt-all{border-bottom:.5px solid var(--border);margin-bottom:4px;padding-bottom:7px}
.ms-graf{padding:4px 10px 0}
.ms-vzorec{font-size:11px;color:var(--text3);padding:7px 16px 10px;border-top:.5px dashed var(--border);margin-top:auto}


/* ── Editor struktury výkazu peněžních toků (js/cf-pt-struktura-view.js) ── */
/* Kategorie jako karta, podkategorie odsazené pod ní — ať je hierarchie
   vidět na první pohled a šlo poznat, co ke které kategorii patří. */
.cfps-box{display:flex;flex-direction:column;gap:12px}
.cfps-prazdno{font-size:13px;color:var(--text3);padding:14px}
.cfps-kat{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.cfps-kat-hlava{display:flex;align-items:center;gap:10px;padding:11px 13px;
  background:var(--blue-light);border-bottom:1px solid var(--border)}
.cfps-poradi{font-size:12px;font-weight:800;color:var(--blue-3);min-width:20px}
.cfps-kat-hlava .cfps-nazev{font-size:14px;font-weight:800;color:var(--blue)}
.cfps-sp{flex:1}
.cfps-pods{padding:6px 13px 11px 40px;display:flex;flex-direction:column;gap:3px}
.cfps-pod{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px}
.cfps-pod:hover{background:var(--surface2)}
.cfps-pod .cfps-nazev{font-size:13px;color:var(--text)}
.cfps-odr{color:var(--text3);font-size:12px}
.cfps-pod-prazdno{font-size:12px;color:var(--text3);font-style:italic;padding-left:8px}
.cfps-pocet{font-size:10.5px;font-weight:700;color:var(--blue-3);background:var(--surface2);
  border:1px solid var(--blue-border);border-radius:999px;padding:2px 8px;white-space:nowrap}
.cfps-pocet.cfps-nula{color:var(--text3);border-color:var(--border)}
.cfps-btn{border:1px solid var(--border);background:var(--surface);color:var(--text2);cursor:pointer;
  font-family:var(--font-sans);font-size:12px;line-height:1;padding:5px 8px;border-radius:6px}
.cfps-btn:hover:not(:disabled){background:var(--blue-light);border-color:var(--blue-border);color:var(--blue)}
.cfps-btn:disabled{opacity:.3;cursor:default}
.cfps-btn.cfps-smaz:hover{background:var(--red-light);border-color:#FCA5A5;color:var(--red)}
.cfps-pridat-pod{display:flex;gap:8px;align-items:center;margin-top:7px;padding-left:8px}
.cfps-input{flex:1;max-width:340px;padding:7px 10px;border:1px solid var(--border);border-radius:7px;
  background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:12.5px;outline:none}
.cfps-input:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px var(--blue-light)}
.cfps-btn-pridat{font-size:12px;padding:7px 12px}
.cfps-pozn{margin-top:14px;font-size:11.5px;color:var(--text3)}


/* ── Grafy pod výkazem Cash-flow (js/cf-pt-grafy.js) ────────────────────── */
/* Dva panely vedle sebe; na užším okně pod sebou. */
.cfg-mrizka-panelu{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media(max-width:1200px){.cfg-mrizka-panelu{grid-template-columns:1fr}}
.cfg-panel{margin:0}
.cfg-prepinac button{white-space:nowrap}
.cfg-kpi{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.cfg-kpi-hod{font-size:27px;font-weight:800;color:var(--blue);letter-spacing:-.02em}
.cfg-kpi-hod.cfg-zap{color:var(--red)}
.cfg-kpi-hod.cfg-kld{color:var(--green)}
.cfg-kpi-pop{font-size:13px;color:var(--text2)}
.cfg-kpi-kk{font-size:12.5px;font-weight:700;color:var(--yellow);background:var(--yellow-light);
  border-radius:999px;padding:3px 9px}
.cfg-obal{width:100%;overflow:hidden}
.cfg-svg{width:100%;height:auto;display:block}
.cfg-svg .cfg-mrizka{stroke:var(--border2);stroke-width:1}
.cfg-svg .cfg-nula{stroke:var(--border);stroke-width:1.5}
.cfg-svg .cfg-osa{font-size:13.5px;fill:var(--text2);font-family:var(--font-sans)}
/* Hodnota přímo v grafu — bílý rámeček, ať je čitelná přes mřížku i sloupce. */
.cfg-svg .cfg-stitek rect{fill:var(--surface);stroke:var(--border);stroke-width:1}
.cfg-svg .cfg-stitek text{font-size:14px;font-weight:700;fill:var(--blue);font-family:var(--font-sans);letter-spacing:-.01em}
.cfg-svg .cfg-cara{fill:none;stroke:var(--blue-3);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.cfg-svg .cfg-plocha{fill:var(--blue-3);opacity:.12}
.cfg-svg .cfg-bod{fill:var(--surface);stroke:var(--blue);stroke-width:2}
.cfg-svg .cfg-bod:hover{fill:var(--blue);r:5}
.cfg-svg .cfg-plus{fill:var(--green);opacity:.85}
.cfg-svg .cfg-minus{fill:var(--red);opacity:.85}
.cfg-svg rect:hover{opacity:1}
[data-theme="dark"] .cfg-svg .cfg-bod{fill:var(--surface)}


/* ── Kontokorenty (js/kontokorenty-view.js) ─────────────────────────────── */
.kk-prazdno{font-size:13px;color:var(--text3);padding:12px}
.kk-souhrn{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:12px;
  border-bottom:1px solid var(--border2)}
.kk-kpi{display:flex;flex-direction:column;gap:2px}
.kk-kpi-hod{font-size:19px;font-weight:800;color:var(--blue);letter-spacing:-.01em}
.kk-kpi-hod.kk-cerp{color:var(--yellow)}
.kk-kpi-hod.kk-volny{color:var(--green)}
.kk-kpi-pop{font-size:11px;color:var(--text2)}
.kk-tbl td{vertical-align:middle}
.kk-zaporny{color:var(--red);font-weight:700}
.kk-vstup{width:100%;max-width:160px;padding:6px 9px;border:1px solid var(--border);border-radius:6px;
  background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:12.5px;outline:none}
.kk-vstup:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px var(--blue-light)}
.kk-limit{max-width:120px;text-align:right}
.kk-mena{font-size:11px;color:var(--text3);margin-left:4px}
.kk-znacka{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;white-space:nowrap}
.kk-znacka.kk-bez{color:var(--text3);background:var(--surface2)}
.kk-znacka.kk-ok{color:var(--green);background:var(--green-light)}
.kk-znacka.kk-zle{color:var(--red);background:var(--red-light)}
.cfg-svg .cfg-limit{stroke:var(--yellow);stroke-width:2;stroke-dasharray:6 4}
.cfg-svg .cfg-limit-pop{font-size:12.5px;font-weight:700;fill:var(--yellow);font-family:var(--font-sans)}
.cfg-kpi-volny{font-size:12.5px;font-weight:700;color:var(--green);background:var(--green-light);
  border-radius:999px;padding:3px 9px}
/* Věta pod KPI: co přesně to číslo znamená. Tři pohledy na hotovost se pletou
   (vlastní / čistá / disponibilní), takže to musí být napsané u čísla, ne jen
   v bublině nad přepínačem. */
.cfg-vysvet{font-size:12px;color:var(--text2);line-height:1.5;margin:-2px 0 10px}


/* ── Finanční analýza (js/fa-view.js) ───────────────────────────────────── */
.fa-tabs{margin-bottom:12px}
/* Karty klíčových ukazatelů — kompaktní, ať se jich vejde víc na obrazovku. */
.fa-karty{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:9px}
.fa-karta{border:1px solid var(--border);border-left:4px solid var(--border);border-radius:9px;
  padding:8px 10px;background:var(--surface)}
.fa-karta-nazev{font-size:11px;font-weight:700;color:var(--text2);line-height:1.25}
.fa-karta-hod{font-size:19px;font-weight:800;color:var(--blue);letter-spacing:-.02em;margin:3px 0 1px}
.fa-karta-pasmo{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.fa-karta-vzorec{font-size:9.5px;color:var(--text3);margin-top:5px;line-height:1.35}
.fa-karta.fa-g{border-left-color:var(--green)} .fa-karta.fa-g .fa-karta-pasmo{color:var(--green)}
.fa-karta.fa-y{border-left-color:var(--yellow)} .fa-karta.fa-y .fa-karta-pasmo{color:var(--yellow)}
.fa-karta.fa-o{border-left-color:#F97316} .fa-karta.fa-o .fa-karta-pasmo{color:#C2410C}
.fa-karta.fa-r{border-left-color:var(--red)} .fa-karta.fa-r .fa-karta-pasmo{color:var(--red)}
.fa-karta.fa-n .fa-karta-pasmo{color:var(--text3)}
td.fa-b-g{background:var(--green-light)} td.fa-b-y{background:var(--yellow-light)}
td.fa-b-o{background:#FFE4C7} td.fa-b-r{background:var(--red-light)}
.fa-shrnuti{font-size:14px;line-height:1.65;color:var(--text);margin-bottom:12px}
.fa-h3{font-size:13px;font-weight:800;color:var(--blue);margin:14px 0 8px}
.fa-seznam{list-style:none;display:flex;flex-direction:column;gap:6px}
.fa-seznam li{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:8px;
  font-size:13px;background:var(--surface2);border-left:4px solid var(--border)}
.fa-seznam li.fa-li-r{border-left-color:var(--red);background:var(--red-light)}
.fa-seznam li.fa-li-o{border-left-color:#F97316;background:#FFE4C7}
.fa-li-hod{font-weight:800;color:var(--blue)}
.fa-li-pasmo{font-size:11.5px;color:var(--text2)}
.fa-ok{font-size:13px;color:var(--green);font-weight:700}
.fa-pozn{font-size:11.5px;color:var(--text3);margin-top:12px;line-height:1.55}
.fa-prazdno{font-size:13px;color:var(--text3);padding:10px}
.fa-svg{width:100%;height:auto;display:block}
.fa-svg .fa-osa{font-size:12px;fill:var(--text2);font-family:var(--font-sans);font-weight:600}
.fa-svg .fa-hodn{font-size:12.5px;fill:var(--text);font-family:var(--font-sans);font-weight:700}
.fa-svg .fa-nula{stroke:var(--border);stroke-width:1.5}
.fa-svg .fa-pruh{fill:var(--blue-3)}
.fa-svg .fa-g-f{fill:var(--green)} .fa-svg .fa-y-f{fill:var(--yellow)}
.fa-svg .fa-o-f{fill:#F97316} .fa-svg .fa-r-f{fill:var(--red)}
.fa-vzorce td{font-size:12px;line-height:1.5}
/* Grafy finanční analýzy po dvou vedle sebe — jeden na celou šířku je
   zbytečně roztažený a stránka se pak donekonečna roluje. */
.fa-grafy{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media (max-width:1150px){.fa-grafy{grid-template-columns:1fr}}
.fa-graf-panel{margin:0}
.fa-graf-panel .panel-hdr h2{font-size:14px}
.fa-graf-panel .panel-hdr p{font-size:11px}

/* Přehled → „Po firmách": barevné sloupce místo karet, po dvou vedle sebe. */
.fa-graf-vnitrni{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface)}
.fa-graf-titul{font-size:12.5px;font-weight:800;color:var(--blue);margin-bottom:6px}
.fa-tab-blok+.fa-tab-blok{margin-top:14px}
/* Heat mapa: úzké sloupce se zalomeným záhlavím, ať se vejde bez rolování. */
.fa-tab-blok table{table-layout:fixed;width:100%}
.fa-tab-blok th.fa-th{white-space:normal;word-break:break-word;hyphens:auto;font-size:10.5px;
  line-height:1.25;vertical-align:bottom;padding:6px 5px !important}
.fa-tab-blok td.num-cell{font-size:12px;padding:5px 6px !important;white-space:nowrap}
/* U table-layout:fixed urcuje sirku sloupce bunka v PRVNIM radku — tedy TH.
   Zakladni .stat-tbl th.stat-oz ma width:1%%, takze sloupec Firma se zuzil
   skoro na nulu a napis FIRMA pretekal pres nazev ukazatele vedle. Sirka
   proto musi byt na TH i TD stejna. */
.fa-tab-blok td.stat-oz,.fa-tab-blok th.stat-oz{width:82px;font-size:12px;vertical-align:bottom;overflow:hidden}

/* ── DuPont, struktura a waterfall (js/fa-view.js) ─────────────────────── */
.fa-dp-rada{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}
.fa-dp-box{flex:1 1 180px;border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface)}
.fa-dp-box.fa-dp-vysledek{border-color:var(--blue);border-width:2px;background:var(--blue-light)}
.fa-dp-nazev{font-size:12px;font-weight:700;color:var(--text2)}
.fa-dp-hod{font-size:24px;font-weight:800;color:var(--blue);letter-spacing:-.02em;margin:4px 0 3px}
.fa-dp-vzorec{font-size:11px;color:var(--text3)}
.fa-dp-vyklad{font-size:11.5px;color:var(--text2);margin-top:5px;line-height:1.4}
.fa-dp-op{display:flex;align-items:center;font-size:24px;font-weight:800;color:var(--text3)}
.fa-bar{background:var(--surface2);border-radius:4px;height:12px;min-width:90px;overflow:hidden}
.fa-bar-in{background:var(--blue-3);height:100%;border-radius:4px}
.fa-kladne{color:var(--green);font-weight:700}
.fa-zaporne{color:var(--red);font-weight:700}
.fa-svg .fa-wf-plus{fill:var(--green)}
.fa-svg .fa-wf-minus{fill:var(--red);opacity:.85}
.fa-svg .fa-wf-soucet{fill:var(--blue)}
.fa-svg .fa-wf-ztrata{fill:#B91C1C}

/* ── Administrace → Společnosti a zdrojová data ────────────────────────── */
.ac-tbl td{vertical-align:middle}
.ac-vstup{width:100%;padding:6px 9px;border:1px solid var(--border);border-radius:6px;
  background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:12.5px;outline:none}
.ac-vstup:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px var(--blue-light)}
.ac-uzky{max-width:110px}
.ac-barva{width:52px;height:30px;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer;padding:2px}
.ac-znacka{display:inline-block;font-size:10px;font-weight:700;color:var(--teal-dk);
  background:var(--teal-light);border-radius:999px;padding:2px 7px;margin-left:6px}
.ac-pozn{font-size:11px;color:var(--text3)}
.ac-pridat{display:flex;gap:9px;align-items:center;margin-top:14px;flex-wrap:wrap}
.ac-pridat .ac-vstup{max-width:300px}
.ac-info{font-size:12px;color:var(--text2);line-height:1.6;margin-top:12px}
/* Zdroje dat po společnostech (Administrace → Společnosti) */
.ac-firmy{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.ac-firma{font:inherit;font-size:12.5px;padding:5px 12px;border-radius:999px;border:1px solid var(--border,#dde3ea);
  background:var(--surface,#fff);color:var(--text2);cursor:pointer}
.ac-firma:hover{border-color:#1F4E8C;color:#1F4E8C}
.ac-firma.on{background:#1F4E8C;border-color:#1F4E8C;color:#fff;font-weight:600}
.ac-system{font-size:12.5px;color:var(--text2);margin:4px 0 10px}
.ac-zdroje-tab td{vertical-align:top}
.ac-zdroje-tab .ac-cesta{word-break:break-word;max-width:340px}
.ac-zdroje-tab code{font-size:11.5px;background:var(--surface2);border-radius:4px;padding:1px 4px}
.ac-zdroje-tab tr.ac-chybi td{opacity:.75}
/* Trezor hesel (Administrace → Uživatelé → okno hesel) */
.adm2-trezor{border:1px solid #F3D9A4;background:#FFFBEB;border-radius:8px;padding:10px 12px;margin:8px 0 12px;font-size:12.5px}
.adm2-trezor.ok{border-color:#BBE5C8;background:#F0FDF4;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.adm2-trezor .adm-pwd-radek{margin-top:6px}
[data-theme="dark"] .adm2-trezor{background:#2A2414;border-color:#5C4A1E}
[data-theme="dark"] .adm2-trezor.ok{background:#12291B;border-color:#24533A}
.ac-info code{background:var(--surface2);border-radius:4px;padding:1px 5px;font-size:11.5px}
.ac-kroky{margin:0 0 0 18px;font-size:13px;line-height:1.9;color:var(--text)}
.ac-kroky code{background:var(--surface2);border-radius:4px;padding:1px 5px;font-size:12px}


/* ═══ Bankovní účty (js/ucty-view.js) ═══════════════════════════════════════
   Stav peněz po dnech. Levý sloupec je graf, pravý seznam účtů — na užší
   obrazovce se seřadí pod sebe. Barvy drží tokeny, žádné vlastní odstíny. */
.uc-rezim{margin-bottom:14px}
.uc-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
@media (max-width:1180px){.uc-layout{grid-template-columns:minmax(0,1fr)}}
.uc-hlavni{margin:0}
.uc-nadpis{font-size:15px;font-weight:700;color:var(--text);margin-bottom:10px}
.uc-hlavni-radek{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.uc-castka{font-size:34px;font-weight:800;color:var(--blue);letter-spacing:-.5px;font-family:var(--font-mono)}
.uc-castka.uc-zap{color:var(--red)}
.uc-hal{font-size:19px;font-weight:700;vertical-align:super;opacity:.75}
.uc-zmeny{display:flex;gap:14px;margin-left:auto}
.uc-zmena{font-size:13.5px;font-weight:700;font-family:var(--font-mono)}
.uc-plus{color:var(--green)}
.uc-minus{color:var(--red)}
.uc-zap{color:var(--red)}

.uc-ovladani{display:flex;align-items:center;gap:10px;margin:16px 0 4px;flex-wrap:wrap}
.uc-obdobi button{min-width:52px}
.uc-vyber-btn{white-space:nowrap}
.uc-pozn{font-size:11.5px;color:var(--text3);margin-left:auto}

.uc-vyber{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);
  padding:10px 12px;margin:10px 0;max-height:280px;overflow:auto}
.uc-vyber-hlava{display:flex;gap:8px;margin-bottom:8px}
.uc-vyber-firma{margin-bottom:10px}
.uc-vyber-nazev{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;
  color:var(--text3);margin-bottom:4px}
.uc-vyber-radek{display:flex;align-items:center;gap:8px;font-size:12px;padding:3px 0;cursor:pointer}
.uc-vyber-mena{color:var(--text3);font-size:11px}
.uc-vyber-castka{margin-left:auto;font-family:var(--font-mono);color:var(--text2)}

/* graf */
.uc-graf-obal{position:relative;margin-top:12px}
.uc-svg{width:100%;height:300px;display:block}
.uc-svg .uc-mrizka{stroke:var(--border2);stroke-width:1}
.uc-nula{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3}
.uc-plocha{fill:var(--teal);opacity:.09}
.uc-cara{fill:none;stroke:var(--teal-dk);stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.uc-cara-odhad{stroke-dasharray:5 4;opacity:.75}
.uc-bod-konec{fill:var(--surface);stroke:var(--teal-dk);stroke-width:2.5}
.uc-kurzor{stroke:var(--text3);stroke-width:1}
.uc-osa{fill:var(--text3);font-size:11px;font-family:var(--font-sans)}
.uc-legenda{display:flex;gap:18px;font-size:11.5px;color:var(--text2);margin-top:8px;flex-wrap:wrap}
.uc-vz-cara{display:inline-block;width:22px;height:0;border-top:2px solid var(--teal-dk);
  vertical-align:middle;margin-right:5px}
.uc-vz-cara.odhad{border-top-style:dashed;opacity:.75}

.uc-tooltip{position:absolute;top:14px;z-index:6;min-width:236px;max-width:260px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:var(--shadow-lg);padding:11px 13px;pointer-events:none}
.uc-tip-varovani{font-size:12px;font-weight:700;color:var(--orange-dk);margin-bottom:7px;
  padding-bottom:7px;border-bottom:1px solid var(--border2)}
.uc-tip-varovani span{display:block;font-weight:400;color:var(--text2);font-size:11px;margin-top:2px}
.uc-tip-datum{font-size:11.5px;color:var(--text2)}
.uc-tip-castka{font-size:19px;font-weight:800;color:var(--text);font-family:var(--font-mono);margin:2px 0 8px}
.uc-tip-radek{display:flex;align-items:center;gap:7px;font-size:12px;padding:2px 0}
.uc-tip-nazev{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2)}
.uc-tip-hod{font-family:var(--font-mono);font-weight:600}

/* seznam účtů vpravo */
.uc-seznam{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:14px 16px}
.uc-seznam-hlava{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.uc-seznam-hlava h3{font-size:14.5px;font-weight:700;margin:0}
.uc-seznam-pocet{font-size:11px;color:var(--text3)}
.uc-radek{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border2)}
.uc-radek:last-child{border-bottom:none}
.uc-radek-txt{flex:1;min-width:0}
.uc-radek-nazev{display:block;font-size:12.5px;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uc-radek-cislo{display:block;font-size:11px;color:var(--text3);font-family:var(--font-mono)}
.uc-radek-castka{font-family:var(--font-mono);font-weight:700;font-size:13px;white-space:nowrap}
.uc-radek-vic{cursor:pointer;color:var(--blue-mid);font-size:12.5px;font-weight:600}
.uc-vic-kolecko{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;
  border-radius:50%;background:var(--surface2);color:var(--text2);font-size:11px;font-weight:700;margin-right:8px}

.uc-znak{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
  border-radius:8px;color:#fff;font-weight:800;font-size:13px;flex:0 0 auto}
.uc-znak.sm{width:20px;height:20px;border-radius:6px;font-size:10.5px}

/* karty firem */
.uc-karty{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:14px}
.uc-karta{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:14px 16px;cursor:pointer;transition:transform .12s,box-shadow .12s}
.uc-karta:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.uc-karta-hlava{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.uc-karta-nazev{font-size:13.5px;font-weight:700}
.uc-karta-cislo{font-size:19px;font-weight:800;font-family:var(--font-mono);color:var(--blue)}
.uc-karta-cislo.uc-zap{color:var(--red)}
.uc-karta-cislo .uc-mena{font-size:12px;color:var(--text3);font-weight:600}
.uc-karta-pod{font-size:11.5px;color:var(--text3);margin-top:3px}

/* aktualizace účtů */
.uc-akt-body{display:flex;flex-direction:column;gap:20px}
.uc-akt-firma h3.uc-akt-nazev{display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:700;margin:0 0 8px}
.uc-akt-pocet{font-size:11px;color:var(--text3);font-weight:500}
.uc-akt-tbl td{vertical-align:middle}
.uc-znacka{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px}
.uc-cerstve{color:var(--green);background:var(--green-light)}
.uc-vlazne{color:var(--yellow);background:var(--yellow-light)}
.uc-stare{color:var(--red);background:var(--red-light)}
.uc-radek-cislo .uc-cerstve,.uc-radek-cislo .uc-vlazne,.uc-radek-cislo .uc-stare{background:none;padding:0;font-weight:600}
.uc-stav-souhrn{font-size:12px;font-weight:700;border-radius:999px;padding:4px 12px}

/* transakce */
.uc-tx-souhrn{display:flex;gap:26px;padding:12px 20px;border-bottom:1px solid var(--border2);flex-wrap:wrap}
.uc-tx-kpi{display:flex;flex-direction:column}
.uc-tx-hod{font-size:18px;font-weight:800;font-family:var(--font-mono)}
.uc-tx-pop{font-size:11px;color:var(--text3)}
.uc-tx-tbl td{vertical-align:middle}
.uc-tx-datum{color:var(--text2);white-space:nowrap}
.uc-tx-kdo-obal{display:flex;align-items:center;gap:10px;min-width:220px}
.uc-tx-ikona{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:50%;background:var(--blue-light);color:var(--blue-mid);font-weight:800;font-size:13px;flex:0 0 auto}
.uc-tx-nazev{font-weight:600;font-size:13px}
.uc-tx-popis{display:block;font-weight:400;font-size:11px;color:var(--text3);
  max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uc-tx-ucet strong{display:block;font-family:var(--font-mono);font-size:12.5px}
.uc-tx-ucet span{font-size:11px;color:var(--text3)}
.uc-tag{display:inline-block;font-size:11px;font-weight:600;color:var(--text2);
  background:var(--surface2);border-radius:6px;padding:3px 9px;white-space:nowrap}
.uc-tag-nez{color:var(--text3)}
.uc-prazdno{font-size:13px;color:var(--text3);padding:20px;text-align:center}

.uc-doplnky{display:flex;gap:22px;margin-top:8px;flex-wrap:wrap}
.uc-doplnek{font-size:12px;color:var(--text2)}
.uc-doplnek strong{font-family:var(--font-mono);margin-left:4px}
.uc-doplnek-pozn{display:block;font-size:11px;color:var(--text3);margin-top:1px}
.uc-typ{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
  color:var(--orange-dk);background:var(--orange-light);border:1px solid var(--orange-border);
  border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:middle}
.uc-tlum{opacity:.5}

.uc-nadpis{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.uc-kdatu{font-size:12.5px;font-weight:400;color:var(--text2)}
.uc-kdatu strong{color:var(--blue-mid);font-weight:700}
.uc-zpet{font-size:11.5px;padding:2px 8px}
.uc-datum-pole{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text3);margin-left:auto}
.uc-datum-pole input{padding:5px 8px;border:1px solid var(--border);border-radius:6px;
  background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:12px}
.uc-datum-pole input:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px var(--blue-light);outline:none}
.uc-legenda-tip{color:var(--text3);font-style:italic}
.uc-svg{cursor:crosshair}
.uc-karta-pod .uc-znacka{margin-left:5px;font-size:10px;padding:1px 6px}

.uc-graf-hlava{display:flex;align-items:center;gap:12px;margin:16px 0 2px}
.uc-graf-nadpis{font-size:13px;font-weight:700;color:var(--text2)}
.uc-velikost{margin-left:auto}
.uc-velikost button{min-width:34px;font-weight:700}
/* Graf se škáluje proporcionálně (preserveAspectRatio=meet), takže výšku
   určuje poměr stran plátna — height:auto, ať se písmo nedeformuje. */
.uc-svg{width:100%;height:auto;display:block;cursor:crosshair}
.uc-stitek rect{fill:var(--surface);stroke:var(--border);stroke-width:1}
.uc-stitek text{fill:var(--text);font-weight:700;font-family:var(--font-mono)}


/* ═══ Doklady k buňce výkazu (js/cf-pt-detail.js) ══════════════════════════ */
.cfpt-cell-klik{cursor:pointer;position:relative}
.cfpt-cell-klik:hover{outline:2px solid var(--orange);outline-offset:-2px;border-radius:3px}
.cfd-bg{position:fixed;inset:0;z-index:900;background:rgba(17,24,39,.55);
  display:flex;align-items:center;justify-content:center;padding:24px}
.cfd-box{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);
  width:min(1400px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.cfd-hlava{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);
  flex-wrap:wrap}
.cfd-hlava h2{font-size:17px;font-weight:800;margin:0}
.cfd-hlava p{font-size:12px;color:var(--text2);margin:2px 0 0}
.cfd-hlava .table-search{flex:0 0 250px}
.cfd-telo{overflow:auto;padding:0 0 12px}
.cfd-karty{display:flex;gap:26px;padding:14px 20px;flex-wrap:wrap}
.cfd-karta{display:flex;flex-direction:column}
.cfd-karta-hod{font-size:19px;font-weight:800;font-family:var(--font-mono)}
.cfd-karta-pop{font-size:11px;color:var(--text3)}
.cfd-kontrola{padding-left:26px;border-left:1px solid var(--border2)}
.cfd-kld{color:var(--green)}
.cfd-zap{color:var(--red)}
.cfd-tbl td{vertical-align:top;font-size:12.5px}

/* SMĚR TOKU PODBARVENÍM ŘÁDKU — zelená přitéká, růžová odtéká.
   Odstíny jsou schválně SLABÉ: v tabulce o šedesáti řádcích má barva jen
   navigovat oko, ne přehlušit čísla. Pruh na levém okraji nese stejnou
   informaci pro toho, kdo barvy rozliší hůř.

   SELEKTOR MUSÍ KOPÍROVAT STRUKTURU. První sloupec je přimrazený a má
   vlastní pravidlo `.scroll-x > table.dash-table > tbody > tr > td:first-child
   { background: var(--surface) }`, které je specifičtější než prostý
   `.cfd-tbl td` — podbarvení se proto neprojevilo vůbec. Odsud ta delší cesta.

   BARVY JSOU NEPRŮHLEDNÉ, ne color-mix s transparent: přimrazený sloupec musí
   zůstat krycí, jinak by pod ním při vodorovném posouvání prosvítal obsah. */
.scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-prijem > td{background:#EFFCF4}
.scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-vydaj > td{background:#FDF1F6}
.scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-prijem > td:first-child{
  background:#EFFCF4;box-shadow:inset 3px 0 0 var(--green)}
.scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-vydaj > td:first-child{
  background:#FDF1F6;box-shadow:inset 3px 0 0 #E8639B}
/* V tmavém motivu jsou světlé pastely nečitelné — tam se míchá tmavý odstín. */
:root[data-theme="dark"] .scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-prijem > td,
:root[data-theme="dark"] .scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-prijem > td:first-child{
  background:#13291F}
:root[data-theme="dark"] .scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-vydaj > td,
:root[data-theme="dark"] .scroll-x > table.dash-table.cfd-tbl > tbody > tr.cfd-r-vydaj > td:first-child{
  background:#2B1722}
.cfd-datum{white-space:nowrap;color:var(--text2)}
.cfd-ucet strong{display:block;font-family:var(--font-mono)}
.cfd-ucet span{font-size:11px;color:var(--text3)}
.cfd-popis{max-width:360px}
.cfd-zak{display:block;font-size:11px;color:var(--text3)}
.cfd-pen span{display:inline-block;font-family:var(--font-mono);font-size:11px;
  background:var(--surface2);border-radius:4px;padding:1px 5px;margin-right:3px}
.cfd-podil{display:inline-block;font-size:9.5px;font-weight:700;text-transform:uppercase;
  color:var(--orange-dk);background:var(--orange-light);border-radius:3px;padding:0 4px;margin-left:5px}
.cfd-strankovani{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px;
  font-size:12px;color:var(--text2)}


/* ═══ Pracovní kapitál a Most zisk → hotovost (js/cf-kapital-view.js) ══════ */
.cfk-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:14px}
.cfk-dlazdice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.cfk-dl-pop{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}
.cfk-dl-hod{font-size:24px;font-weight:800;font-family:var(--font-mono);color:var(--blue)}
.cfk-dl-pozn{font-size:11.5px;color:var(--text2);line-height:1.45}
.cfk-plus{color:var(--green)}
.cfk-minus{color:var(--red)}

.cfk-svg{width:100%;height:auto;display:block}
.cfk-mrizka{stroke:var(--border2);stroke-width:1}
.cfk-nula{stroke:var(--text3);stroke-width:1.2}
.cfk-plocha{fill:var(--blue-3);opacity:.10}
.cfk-cara{fill:none;stroke:var(--blue-mid);stroke-width:2.4;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.cfk-bod{fill:var(--surface);stroke:var(--blue-mid);stroke-width:2}
.cfk-osa{fill:var(--text3);font-family:var(--font-sans)}
.cfk-vod-plus{fill:var(--green)}
.cfk-vod-minus{fill:var(--red)}
.cfk-vod-suma{fill:var(--blue-mid)}
.cfk-vod-spoj{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3}
.cfk-vod-hod{fill:var(--text);font-weight:700;font-family:var(--font-mono)}

.cfk-tbl td{vertical-align:middle}
.cfk-tbl .cfk-soucet{background:var(--blue-light)}
.cfk-tbl .cfk-soucet td{border-top:1.5px solid var(--blue-border)}
.cfk-vzorec{display:block;font-size:11px;color:var(--text3);font-family:var(--font-mono)}

/* Boční sloupec vedle grafu: karty firem po dvou vedle sebe. */
.uc-bok{align-self:stretch}
.uc-karty-bok{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}
.uc-karty-bok .uc-karta{padding:12px 13px}
.uc-karty-bok .uc-karta-cislo{font-size:16px}
.uc-karty-bok .uc-karta-pod{font-size:10.5px;line-height:1.4}
@media (max-width:1180px){.uc-karty-bok{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
/* Přehled účtů pod grafem — plná šířka, nic se nezalamuje. */
.uc-prehled{margin-top:14px}
.uc-prehled-tbl td{vertical-align:middle;white-space:nowrap}
.uc-prehled-tbl td:nth-child(2){white-space:normal}
.uc-prehled-tbl .uc-znak{margin-right:6px}

/* Hodnota v grafu — rámeček s podkladem, aby číslo nesplývalo s mřížkou
   ani s barvou sloupce. V tmavém motivu se podklad ztmaví s --surface. */
.cfk-stitek rect{fill:var(--surface);stroke:var(--border);stroke-width:1}
.cfk-stitek text{fill:var(--text);font-weight:700;font-family:var(--font-mono)}


/* ═══ Uživatelské menu vpravo nahoře (js/uzivatel-menu.js) ═════════════════ */
.uz-menu{position:relative;margin-left:auto;flex:0 0 auto}
.uz-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:50%;border:1px solid var(--blue-border);background:var(--blue);color:#fff;
  font-weight:800;font-size:12.5px;letter-spacing:.3px;cursor:pointer;transition:transform .12s,box-shadow .12s}
.uz-avatar:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.uz-avatar.lg{width:44px;height:44px;font-size:15px;cursor:default}
.uz-panel{position:absolute;top:44px;right:0;z-index:60;min-width:270px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);padding:14px;animation:uzIn .12s ease}
@keyframes uzIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.uz-hlava{display:flex;align-items:center;gap:11px;padding-bottom:11px;border-bottom:1px solid var(--border2)}
.uz-kdo{display:flex;flex-direction:column;min-width:0}
.uz-kdo strong{font-size:14px}
.uz-role{font-size:11.5px;color:var(--text2)}
.uz-pozn{font-size:11px;color:var(--text3);padding:9px 0 4px}
.uz-akce{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.uz-akce button{display:block;width:100%;text-align:left;padding:8px 10px;border:none;border-radius:8px;
  background:none;color:var(--text);font-family:var(--font-sans);font-size:13px;cursor:pointer}
.uz-akce button:hover{background:var(--surface2)}
.uz-odhlasit{color:var(--red);font-weight:600;margin-top:4px;border-top:1px solid var(--border2);border-radius:0 0 8px 8px}

/* Proklik z čísla rozvahy na doklady (js/bs-categories-view.js). */
.bscat-klik{cursor:pointer}
.bscat-klik:hover{outline:2px solid var(--orange);outline-offset:-2px;border-radius:3px}
.cfd-pozn{margin:0 20px 10px}

/* == PLANOVANI CASH-FLOW (js/cashflow-planning-view.js) ================== */
.cfpl-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.cfpl-chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text2);
  background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-sm);padding:7px 12px;cursor:pointer}
.cfpl-chk input{accent-color:var(--blue-mid);cursor:pointer}
.cfpl-scen-popis{font-size:12.5px;color:var(--text3);flex:1;min-width:220px}
/* odtlaci tlacitka vpravo — popis scenare uz je ve vlastnim pasu nahore */
.cfpl-mezera{flex:1;min-width:20px}

/* Scenar — vlastni pas nahore. Kazda volba rika OBE strany zvlast (vydane /
 * prijate), aby z nazvu bylo poznat, ceho se tyka. Fialova, at se to neplete
 * s modrymi prepinaci zobrazeni ani s oranzovou hranici stari. */
.cfpl-scen-bar{margin:0 0 14px;padding:12px 14px;border-radius:var(--radius);
  background:#F5F3FF;border:.5px solid #DDD6FE;border-left:3px solid #7C3AED}
.cfpl-scen-hlava{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cfpl-scen-nadpis{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.3px;color:#5B21B6}
.cfpl-scen-veta{font-size:12.5px;color:#6D5B96;flex:1;min-width:220px}
.cfpl-scen-veta b{color:#5B21B6;margin-right:5px}
.cfpl-scen-volby{display:flex;gap:8px;flex-wrap:wrap}
.cfpl-scen-btn{display:flex;flex-direction:column;gap:5px;align-items:flex-start;
  padding:8px 14px;border-radius:10px;border:1px solid #DDD6FE;background:#fff;
  cursor:pointer;font-family:var(--font-sans);text-align:left;min-width:172px}
.cfpl-scen-btn:hover{border-color:#A78BFA;background:#FBFAFF}
.cfpl-scen-nazev{font-size:13px;font-weight:700;color:#4C1D95}
.cfpl-scen-strany{display:flex;gap:5px;flex-wrap:wrap}
.cfpl-str{font-size:10px;font-weight:650;border-radius:999px;padding:1px 7px;white-space:nowrap}
.cfpl-str.str-s{background:#E0E7FF;color:#3730A3}
.cfpl-str.str-h{background:#DCFCE7;color:#166534}
.cfpl-str.str-h2{background:#FEE2E2;color:#991B1B}
.cfpl-scen-btn.on{background:#7C3AED;border-color:#7C3AED;box-shadow:0 1px 6px rgba(124,58,237,.3)}
.cfpl-scen-btn.on .cfpl-scen-nazev{color:#fff}
.cfpl-scen-btn.on .cfpl-str{background:rgba(255,255,255,.22);color:#F3EEFF}
[data-theme="dark"] .cfpl-scen-bar{background:#241A3A;border-color:#4C3A78;border-left-color:#8B5CF6}
[data-theme="dark"] .cfpl-scen-nadpis{color:#C4B5FD}
[data-theme="dark"] .cfpl-scen-veta{color:#A99AC8}
[data-theme="dark"] .cfpl-scen-veta b{color:#C4B5FD}
[data-theme="dark"] .cfpl-scen-btn{background:var(--surface2);border-color:#4C3A78}
[data-theme="dark"] .cfpl-scen-nazev{color:#DDD6FE}
[data-theme="dark"] .cfpl-str.str-s{background:#2D3574;color:#C7D2FE}
[data-theme="dark"] .cfpl-str.str-h{background:#14532D;color:#BBF7D0}
[data-theme="dark"] .cfpl-str.str-h2{background:#5C1D1D;color:#FECACA}

/* Hranice stari — vlastni radek. Neni to scenar (jak se plati), ale rez do
 * dat (co se jeste pocita), proto stoji stranou a ma vlastni barvu. */
.cfpl-stari-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;
  padding:9px 14px;border-radius:var(--radius);
  background:#FFF7ED;border:.5px solid #FBD9A8;border-left:3px solid #F59E0B}
.cfpl-stari-bar.on{background:#FFEDD5;border-color:#F5B65B}
.cfpl-stari-nadpis{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.3px;color:#9A5B06}
.cfpl-stari-popis{font-size:12.5px;color:#A8703A;flex:1;min-width:200px}
.type-toggle-stari button{background:#fff;border-color:#F2CFA0;color:#8A5A12}
.type-toggle-stari button:hover{background:#FFF3E2}
.type-toggle-stari button.on{background:#D97706;border-color:#D97706;color:#fff}
[data-theme="dark"] .cfpl-stari-bar{background:#3A2A12;border-color:#6B4A16;border-left-color:#D97706}
[data-theme="dark"] .cfpl-stari-bar.on{background:#4A3415}
[data-theme="dark"] .cfpl-stari-nadpis{color:#FCD9A0}
[data-theme="dark"] .cfpl-stari-popis{color:#D8B27A}
[data-theme="dark"] .type-toggle-stari button{background:var(--surface2);border-color:#6B4A16;color:#F0C88A}

.cfpl-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
.cfpl-k{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);
  padding:16px 18px;box-shadow:var(--shadow)}
.cfpl-k span{display:block;font-size:12px;color:var(--text2);font-weight:500;margin-bottom:6px}
.cfpl-k b{display:block;font-size:27px;font-weight:650;color:var(--blue);letter-spacing:-.5px;line-height:1.1}
.cfpl-k i{display:block;font-style:normal;font-size:11.5px;color:var(--text3);margin-top:6px}
.cfpl-k-red{border-color:var(--red);background:var(--red-light)}
/* Stav peněz dnes je JEDINÉ tvrdé číslo na stránce — všechno ostatní je
   výhled. Zelené podbarvení ho odděluje od odhadů vedle. */
.cfpl-k-dnes{background:var(--green-light);border-color:var(--green-border)}
/* Hlídání dvojího započtení — pás nad tabulkou. */
.cfpl-hlidani{margin:10px 0}
.cfpl-hlidani-sez{margin:8px 0 0;padding-left:20px;line-height:1.55}
.cfpl-hlidani-sez li{margin:2px 0}
.cfpl-zap{color:var(--red)}

.cfpl-alarm{background:var(--red-light);border:1px solid var(--red);border-radius:var(--radius);
  padding:13px 18px;margin-bottom:14px;font-size:13.5px;color:#7F1D1D}
.cfpl-alarm b{font-weight:650}

.cfpl-graf-b{padding:10px 8px 4px}
.cfpl-graf{width:100%;height:auto;display:block}
.cfpl-sl:hover rect:not(.cfpl-hit){opacity:1}
.cfpl-leg{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;padding:6px 0 12px;
  font-size:12.5px;color:var(--text2)}
.cfpl-leg span{display:flex;align-items:center;gap:7px}
.cfpl-i{width:12px;height:12px;border-radius:2px;display:inline-block}
.cfpl-l{width:20px;height:3px;border-radius:2px;display:inline-block}
.cfpl-l.cfpl-dash{background:repeating-linear-gradient(90deg,var(--orange) 0 6px,transparent 6px 10px)!important}

.cfpl-tbl thead th{background:var(--cf-hlava);font-weight:750;color:var(--blue);font-size:13.5px}
.cfpl-tbl th span{display:block;font-weight:650;font-size:12.5px;color:var(--text);margin-top:1px}
.cfpl-tbl th.cfpl-ted{background:var(--blue-light)}
.cfpl-tbl th.cfpl-stare-h{background:var(--cf-hlava);color:var(--text2);
  box-shadow:inset 0 -3px 0 var(--text3)}
.cfpl-tbl td.cfpl-popis,.cfpl-tbl th.cfpl-popis{text-align:left;white-space:nowrap;padding-right:18px}
.cfpl-tbl table{font-size:12.5px}
.cfpl-tbl td,.cfpl-tbl th{padding:5px 8px}
.cfpl-tbl th .cfpl-h2,.cfpl-tbl th span{font-size:11.5px}
.cfpl-tbl td.num{white-space:nowrap;font-variant-numeric:tabular-nums}
.cfpl-klik{cursor:pointer}
.cfpl-klik:hover{outline:2px solid var(--orange);outline-offset:-2px;border-radius:3px}
.cfpl-r-pocatek td{background:var(--surface2);color:var(--text2)}
.cfpl-r-tok td{border-top:1px solid var(--border);font-weight:600}
.cfpl-r-kumul td{background:var(--blue);font-weight:750;color:#fff;font-size:14.5px;padding:9px 8px;border-top:2px solid var(--blue)}
.cfpl-r-kumul td.cfpl-popis{font-size:13.5px;letter-spacing:.2px}
.cfpl-r-kumul td.cfpl-zap{color:#FFD7D7;background:#B3261E}
.cfpl-r-kumul td.cfpl-klik:hover{background:#16305a}
.cfpl-r-volna td{background:var(--orange-light);font-weight:600}
.cfpl-r-volna td.cfpl-zap{color:var(--red)}
.cfpl-r-info td{color:var(--text3);font-size:12px;font-style:italic}

/* Po firmách: dvě karty vedle sebe. Šest firem pod sebou znamenalo
   scrollování a nešly porovnat mezi sebou. */
.cfpl-firmy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.cfpl-firmy>.cfpl-firma{min-width:0}
@media(max-width:1100px){.cfpl-firmy{grid-template-columns:1fr}}
.cfpl-firma{display:flex;flex-direction:column;
  border:.5px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius-sm);
  background:var(--surface);overflow:hidden}
.cfpl-firma.cfpl-green{border-left-color:var(--green)}
.cfpl-firma.cfpl-orange{border-left-color:var(--orange)}
.cfpl-firma.cfpl-red{border-left-color:var(--red);background:var(--red-light)}
.cfpl-firma-h{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px 6px;flex-wrap:wrap}
.cfpl-firma-n b{font-size:15px;color:var(--blue);display:block}
.cfpl-firma-n span{font-size:11.5px;color:var(--text3)}
.cfpl-firma-c{display:flex;gap:26px}
.cfpl-firma-c div{text-align:right}
.cfpl-firma-c span{display:block;font-size:11px;color:var(--text2)}
.cfpl-firma-c b{font-size:15px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}
/* MINIGRAF PŘES CELOU ŠÍŘKU DLAŽDICE.
   Blok s platební morálkou je plovoucí a graf se vedle něj krčil v levé
   polovině. `clear:both` ho postaví pod něj a nechá mu celou šířku; karta
   je tím vyšší, což nevadí — z grafu se čte průběh likvidity. */
.cfpl-spark{padding:2px 14px 12px;clear:both;width:100%}
/* Výška se řídí poměrem stran viewBoxu (620×132) — pevných 44 px křivku
   splácávalo a popisky hodnot by se do ní nevešly. */
.cfpl-spark svg{width:100%;height:auto;display:block}

@media (max-width:1100px){
  .cfpl-kpi{grid-template-columns:repeat(2,1fr)}
  .cfpl-firma-c{gap:14px}
}

/* Upozorneni na chybejici pravidelne platby v planu CF. */
.cfpl-mezery{background:var(--orange-light);border:1px solid var(--orange-border);
  border-radius:var(--radius);padding:16px 20px;margin-bottom:14px}
.cfpl-mezery-h{font-size:14.5px;font-weight:650;color:var(--orange-dk);margin-bottom:6px}
.cfpl-mezery p{margin:0 0 10px;font-size:13px;color:var(--text2);line-height:1.6;max-width:900px}
.cfpl-mezery-l{margin:0 0 12px;padding-left:20px;font-size:13px;color:var(--text);line-height:1.7}
.cfpl-mezery-l b{color:var(--blue)}
.cfpl-mezery-tip{display:inline-block;margin-left:12px;font-size:12px;color:var(--text3)}



/* == PLAN CF PO FIRMACH — skladane tabulky (js/cf-polozky-view.js) ======= */
.cfg-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.cfg-firmy{display:flex;gap:3px;background:var(--surface);border:.5px solid var(--border);
  border-radius:var(--radius-sm);padding:3px}
.cfg-firmy button{border:none;background:none;padding:6px 12px;border-radius:6px;cursor:pointer;
  font-size:12.5px;font-weight:600;color:var(--text3);font-family:var(--font-sans)}
.cfg-firmy button.on{background:var(--blue);color:#fff}
.cfg-firmy button:not(.on):hover{background:var(--surface2);color:var(--text)}
.cfg-firmy .cfg-vse{color:var(--blue-mid);font-weight:500;border-left:1px solid var(--border);
  border-radius:0;margin-left:3px}
.cfg-info{font-size:12px;color:var(--text3);flex:1;min-width:180px;text-align:right}

.cfg-nespojeno{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--orange-light);
  border:1px solid var(--orange-border);border-radius:var(--radius);padding:12px 18px;margin-bottom:12px;
  font-size:12.5px;color:var(--text2);line-height:1.6}
.cfg-nespojeno b{color:var(--orange-dk);font-weight:650}
.cfg-nespojeno code{background:var(--surface);padding:1px 6px;border-radius:4px;font-size:11.5px}
.cfg-nespojeno .btn{margin-left:auto}

.cfg-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:var(--surface);
  border:.5px solid var(--border);border-radius:var(--radius-sm);padding:7px 14px;margin-bottom:12px;
  position:sticky;top:0;z-index:20;box-shadow:var(--shadow)}
.cfg-nav span{font-size:11.5px;color:var(--text3);margin-right:4px}
.cfg-nav a{font-size:12.5px;font-weight:600;color:var(--blue-mid);text-decoration:none;
  padding:3px 10px;border-radius:20px;background:var(--blue-light)}
.cfg-nav a:hover{background:var(--blue-mid);color:#fff}

.cfg-souhrn{border:1.5px solid var(--blue-border)}
.cfg-firma-panel{scroll-margin-top:56px}
.cfg-wrap{padding:0}

/* ── tabulka ────────────────────────────────────────────────────────────── */
.cfg-tbl{max-width:100%;overflow-x:auto}
.cfg-tbl table{font-size:12px;width:100%;table-layout:fixed}
.cfg-tbl td,.cfg-tbl th{padding:4px 5px;border-bottom:.5px solid var(--border2);overflow:hidden}
.cfg-tbl th{position:sticky;top:0;background:var(--surface);z-index:2;text-align:right}
.cfg-tbl td.num,.cfg-tbl th.num{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}
/* HLAVIČKA MUSÍ DOMINOVAT. Je to jediné místo, kde je vidět, ke kterému dni
   sloupec patří — v mřížce třinácti sloupců se podle ní člověk orientuje
   pořád. Proto o stupeň větší písmo a vlastní šedé podbarvení (--cf-hlava),
   ne stejná barva jako u ostatních řádků. */
.cfg-tbl thead th{background:var(--cf-hlava);border-bottom:2px solid var(--blue)}
.cfg-h1{display:block;font-size:13.5px;font-weight:750;color:var(--blue);letter-spacing:.1px}
.cfg-h2{display:block;font-size:12px;font-weight:600;color:var(--text);margin-top:1px}
.cfg-zap{color:var(--red)}
.cfg-kl{color:#15803D}

/* 13 tydnu + nazev + soucet se MUSI vejit bez vodorovneho posouvani —
   jinak se souhrnny radek dole cte oddelene od cisel nahore. */
.cfg-uzky table{font-size:11px}
.cfg-uzky td,.cfg-uzky th{padding:3px 3px}
.cfg-uzky td.cfg-nazev,.cfg-uzky th.cfg-nazev{width:186px;min-width:186px}
.cfg-uzky .cfg-h1{font-size:12.5px}
.cfg-uzky .cfg-h2{font-size:11px}
.cfg-uzky .cfg-cell input{font-size:10.5px;padding:3px 3px;min-width:0}
.cfg-uzky .cfg-celkem{width:74px}

.cfg-tbl td.cfg-nazev,.cfg-tbl th.cfg-nazev{text-align:left;width:210px;min-width:210px;
  position:sticky;left:0;background:var(--surface);z-index:1;padding-right:10px;white-space:normal}
.cfg-tbl th.cfg-nazev{z-index:3}
.cfg-nazev b{font-size:11.5px;display:block;line-height:1.25}
.cfg-nazev span{display:block;font-size:9.5px;color:var(--text3);line-height:1.3}
.cfg-akce{visibility:hidden}
tr:hover .cfg-akce{visibility:visible}
.cfg-ln{background:none;border:none;color:var(--blue-mid);font-size:9.5px;cursor:pointer;
  padding:0 4px 0 0;font-family:var(--font-sans)}
.cfg-ln:hover{text-decoration:underline}
.cfg-del{color:var(--red)}

/* ── barevna pasma ──────────────────────────────────────────────────────── */
.cfg-hlava td{font-weight:650;font-size:11.5px;padding:6px 6px}
.cfg-hlava span{font-weight:400;font-size:9.5px;opacity:.85;display:inline;margin-left:6px}
.cfg-h-data td,.cfg-h-data td.cfg-nazev{background:#E4E9F2;color:var(--blue)}
.cfg-h-pritok td,.cfg-h-pritok td.cfg-nazev{background:var(--green-light);color:#15803D}
.cfg-h-odtok td,.cfg-h-odtok td.cfg-nazev{background:#FCE4EE;color:#A3184F}
.cfg-pridat{background:none;border:1px dashed currentColor;color:inherit;opacity:.75;
  border-radius:6px;padding:1px 11px;font-size:10.5px;cursor:pointer;font-family:var(--font-sans)}
.cfg-pridat:hover{opacity:1;background:var(--surface)}
.cfg-auto td{background:#F4F7FB}
.cfg-auto td.cfg-nazev{background:#F4F7FB}
.cfg-prazdno td{color:var(--text3);font-size:10.5px;font-style:italic}

.cfg-cell{padding:1px!important}
/* Zlute podbarveni a ramecek nesou informaci: TADY SE DA PSAT. Bez nich
   nejde v mrizce rozeznat editovatelnou bunku od dopoctene a clovek hleda,
   kam vlastne muze zadavat. */
.cfg-cell input{width:100%;padding:4px 4px;border:.5px solid var(--cfg-edit-b);border-radius:3px;
  background:var(--cfg-edit);color:var(--text);font-size:11px;text-align:right;outline:none;
  font-family:var(--font-sans);font-variant-numeric:tabular-nums}
.cfg-cell input:hover{border-color:var(--orange);background:var(--cfg-edit-plno)}
.cfg-cell input:focus{border-color:var(--blue-mid);background:var(--surface);
  box-shadow:0 0 0 2px var(--blue-light)}
/* Uz vyplnena bunka je sytejsi — planovane castky musi byt videt i pri
   rychlem prejeti ocima pres cely rok. */
.cfg-plno input{background:var(--cfg-edit-plno);border-color:var(--cfg-edit-plno-b);font-weight:650}
.cfg-celkem{font-weight:650;border-left:1px solid var(--border);background:var(--surface2)}
.cfg-klik{cursor:pointer}
.cfg-klik:hover{outline:2px solid var(--orange);outline-offset:-2px;border-radius:3px}

/* ── souctove radky ─────────────────────────────────────────────────────── */
.cfg-tbl tfoot td{padding:6px 5px;font-weight:650;font-variant-numeric:tabular-nums}
.cfg-tok td,.cfg-tok td.cfg-nazev{background:var(--surface2);border-top:1.5px solid var(--border)}
.cfg-kumul td,.cfg-kumul td.cfg-nazev{background:var(--blue);color:#fff;font-size:13.5px;font-weight:750;padding:8px 6px}
.cfg-kumul td.cfg-zap{color:#FFD7D7;background:#B3261E}
.cfg-kumul td.cfg-kl{color:#BFF0D0}
.cfg-p-data td,.cfg-p-data td.cfg-nazev{background:#F4F7FB}
.cfg-p-pritok td,.cfg-p-pritok td.cfg-nazev{background:#F1FBF4}
.cfg-p-odtok td,.cfg-p-odtok td.cfg-nazev{background:#FDF2F6}

/* ── navrhy z ucetnictvi ────────────────────────────────────────────────── */
.cfg-navrhy-box{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface2)}
.cfg-hromada{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--surface);
  border:.5px solid var(--border);border-radius:var(--radius-sm);padding:9px 14px;margin-bottom:10px;font-size:12.5px}
.cfg-chk-all{display:flex;align-items:center;gap:7px;cursor:pointer}
.cfg-chk-all input,.cfg-chk-td input{accent-color:var(--blue-mid);cursor:pointer;width:15px;height:15px}
.cfg-tip{font-size:11.5px;color:var(--text3);flex:1;min-width:200px}
.cfg-hromada .btn.primary:disabled{opacity:.4;cursor:default}
.cfg-chk-td{width:32px;text-align:center;color:var(--green)}  /* zaskrtavaci BUNKA v tabulce navrhu. Drive se jmenovala .cfg-chk
     stejne jako prepinac v listě nad tabulkou — a jeji width:32px pak
     stlacil popisek „vyloucit vnitroskupinove ze souhrnu" tak, ze text
     pretekal pres popis scenare vedle. */
.cfg-navrhy{font-size:12px;table-layout:auto}
.cfg-navrhy td,.cfg-navrhy th{padding:5px 7px}
.cfg-pozn{font-size:10px;color:var(--text3)}
.cfg-hotovo{opacity:.5}

/* ── dialog ─────────────────────────────────────────────────────────────── */
.cfg-mod-back{position:fixed;inset:0;background:rgba(17,24,39,.42);z-index:900}
.cfg-mod{position:fixed;z-index:901;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(460px,94vw);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.cfg-mod-h{padding:16px 20px;border-bottom:.5px solid var(--border)}
.cfg-mod-h h3{margin:0;font-size:15px;color:var(--blue)}
.cfg-mod-b{padding:18px 20px;display:flex;flex-direction:column;gap:13px}
.cfg-mod-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:.5px solid var(--border)}
.cfg-fld-hint{margin:5px 0 0;font-size:11px;color:var(--text3);line-height:1.5}

/* Upozorneni na dvoji zapocteni: rucni radek vs. otevrena faktura. */
.cfg-dup td.cfg-nazev{box-shadow:inset 3px 0 0 var(--orange)}
.cfg-dup-b{display:block;font-size:10px;color:var(--orange-dk);font-weight:600;
  background:var(--orange-light);border-radius:4px;padding:1px 5px;margin:2px 0;cursor:help}

/* Platebni moralka odberatelu v prehledu po firmach. */
.cfpl-mor{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:2px 16px 8px}
.cfpl-mor-h{font-size:11px;color:var(--text2);margin-right:2px}
.cfpl-mor-i{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text2);
  background:var(--surface2);border:.5px solid var(--border);border-radius:20px;padding:2px 9px;cursor:help}
.cfpl-mor-i b{font-variant-numeric:tabular-nums;color:var(--green)}
.cfpl-mor-vlazne b{color:var(--yellow)}
.cfpl-mor-zle{background:var(--red-light);border-color:var(--red)}
.cfpl-mor-zle b{color:var(--red)}

/* Klik na hlavicku sloupce = rozpad obdobi. */
.cfpl-sl-klik{cursor:pointer}
.cfpl-sl-klik:hover{background:var(--orange-light);outline:2px solid var(--orange);outline-offset:-2px}

/* == KONTROLA PROTI PODANEMU VYKAZU (js/stat-source-view.js) ============= */
/* Nesedici hodnota se nesmi ztratit v tabulce o stovkach radku — cervene
   pismo samo o sobe nestaci, proto i podbarveni a leva linka. */
.stat-nesedi{background:var(--red-light)!important;color:var(--red)!important;font-weight:700;
  box-shadow:inset 3px 0 0 var(--red)}
.stat-nesedi .stat-podano{color:var(--red)!important;opacity:.75}
.stat-nesedi small{color:var(--red);font-weight:700}
.stat-podano{color:var(--text2)}

.stat-rozd{margin:18px 20px 6px;border:1.5px solid var(--red);border-radius:var(--radius);overflow:hidden}
.stat-rozd-h{padding:13px 18px;background:var(--red-light)}
.stat-rozd-h h3{margin:0 0 4px;font-size:14.5px;color:#7F1D1D}
.stat-rozd-h p{margin:0;font-size:12.5px;color:var(--text2);line-height:1.6}
.stat-rozd-t{font-size:12.5px}
.stat-rozd-t td,.stat-rozd-t th{padding:5px 9px}
.stat-rozd-t .stat-delta{color:var(--red);font-weight:700}
.stat-klic{display:inline-block;margin-left:6px;padding:0 7px;border-radius:20px;
  background:var(--red);color:#fff;font-size:9.5px;font-weight:700;vertical-align:middle}

/* Sloupec "Po splatnosti" — saldo, ktere melo dorazit uz driv. */
/* Sloupec „Po splatnosti" zůstává odlišený, ale nesmí být SVĚTLEJŠÍ než
   zbytek hlavičky — vypadal by pak jako méně důležitý, a přitom v něm sedí
   celé saldo, které mělo dorazit dávno. */
.cfg-stare-h{background:var(--cf-hlava)!important;color:var(--text2);
  box-shadow:inset 0 -3px 0 var(--text3)}
.cfg-mimo{color:var(--text3);background:var(--surface2);text-align:center}

/* Druha rada ovladani: scenar a vnitroskupinove — stejne volby jako
   na Planovani cash-flow, aby se stranky nemohly rozejit. */
.cfg-bar2{margin-top:-6px}
.cfg-chk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text2);
  background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-sm);
  padding:7px 12px;cursor:pointer;white-space:nowrap;flex:none}
.cfg-chk input{accent-color:var(--blue-mid);cursor:pointer}
.cfg-scen{font-size:11.5px;color:var(--text3);flex:1;min-width:240px;line-height:1.5}
.cfg-scen b{color:var(--blue-mid)}

/* Odmitnuty zapis kvuli chybejicimu pravu (js/access.js).
   Tiche selhani je horsi nez zakaz — clovek si mysli, ze ma ulozeno. */
.acc-denied{position:fixed;right:22px;bottom:22px;z-index:1200;max-width:400px;
  background:var(--red-light);border:1.5px solid var(--red);border-radius:var(--radius);
  padding:13px 18px;box-shadow:var(--shadow-lg);animation:accIn .18s ease-out}
.acc-denied b{display:block;color:#7F1D1D;font-size:13.5px;margin-bottom:3px}
.acc-denied span{font-size:12.5px;color:var(--text2);line-height:1.55}
@keyframes accIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* == PREHLED PRAV (js/admin-prava-view.js) ============================== */
.apr-tbl{font-size:12px;table-layout:auto}
.apr-tbl td,.apr-tbl th{padding:5px 6px}
.apr-tbl th.apr-b{width:34px;padding:4px 2px;vertical-align:bottom}
.apr-tbl th.apr-b span{writing-mode:vertical-rl;transform:rotate(180deg);
  font-size:10.5px;font-weight:600;white-space:nowrap;color:var(--text2)}
.apr-tbl th.apr-pravo span{color:var(--blue-mid)}
.apr-b{text-align:center;font-weight:700}
.apr-ano{background:var(--green-light);color:#15803D}
.apr-cast{background:var(--yellow-light);color:var(--yellow)}
.apr-ne{background:var(--surface2);color:var(--text3);font-weight:400}
.apr-u b{display:block;font-size:12.5px}
.apr-u span{font-size:10.5px;color:var(--text3)}
.apr-r,.apr-s{font-size:11.5px;color:var(--text2);white-space:nowrap}
.apr-sys{display:inline-block;padding:0 6px;border-radius:20px;background:var(--blue-light);
  color:var(--blue-mid);font-size:9.5px;font-weight:700}
.apr-akce{white-space:nowrap}
.apr-odm{color:var(--red)}
.apr-radek-odm td{background:var(--red-light)}

.apr-nalezy{display:flex;flex-direction:column;gap:8px}
.apr-nalez{display:flex;gap:11px;align-items:flex-start;padding:10px 14px;
  border-radius:var(--radius-sm);border:.5px solid var(--border);background:var(--surface)}
.apr-nalez b{display:block;font-size:12.5px;color:var(--text)}
.apr-nalez span{font-size:11.5px;color:var(--text2);line-height:1.5}
.apr-ikona{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:11px;font-weight:700;flex:0 0 auto;color:#fff}
.apr-chyba{border-color:var(--red);background:var(--red-light)}
.apr-chyba .apr-ikona{background:var(--red)}
.apr-pozor{border-color:var(--orange-border);background:var(--orange-light)}
.apr-pozor .apr-ikona{background:var(--orange-dk)}
.apr-info .apr-ikona{background:var(--text3)}

/* == PLNENI PROGNOZY CF (js/cf-forecast-view.js) ======================== */
.cff-prazdno{padding:30px 24px;max-width:760px}
.cff-prazdno h3{margin:0 0 10px;font-size:16px;color:var(--blue)}
.cff-prazdno p{margin:0 0 10px;font-size:13px;color:var(--text2);line-height:1.65}
.cff-verdikt{padding:12px 18px;border-radius:var(--radius);margin-bottom:14px;font-size:13px;line-height:1.6}
.cff-verdikt b{display:block;margin-bottom:2px}
.cff-ok{color:#15803D}
.cff-pozor{color:var(--orange-dk)}
.cff-spatne{color:var(--red)}
.cff-kl{color:#15803D}

/* Plneni prognozy — graf plan vs. skutecnost a zebricek presnosti metod */
.cff-graf{width:100%;height:auto;display:block}
.cff-b-plan{fill:#93B4E8}
.cff-b-skut{fill:#4C9A6A}
.cff-osa{stroke:var(--border);stroke-width:1}
.cff-osa-x{font-size:9px;fill:var(--text3);text-anchor:middle}
.cff-osa-y{font-size:9px;fill:var(--text3)}
.cff-kum{fill:none;stroke:#D97706;stroke-width:2;stroke-linejoin:round}
.cff-kum-b{fill:#D97706}
.cff-legenda{display:flex;gap:18px;justify-content:center;margin-top:6px;font-size:12px;font-weight:600;color:var(--text)}
.cff-legenda i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.cff-l-plan{background:#93B4E8}
.cff-l-skut{background:#4C9A6A}
.cff-l-kum{background:#D97706}
.cff-znak{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
  background:#DCFCE7;color:#166534;border-radius:999px;padding:1px 7px;margin-left:6px}
.cff-znak-modry{background:var(--blue-light);color:var(--blue)}
tr.cff-vitez td{background:#F2FBF5}
/* Plneni prognozy CF (PH 22. 9. 2026): obsah panelu se lepil na levy i pravy
   okraj oblasti — .panel-b ma jen horni odsazeni. Tady se doplni bocni,
   aby text i tabulka zacinaly zarovnane s nadpisem panelu. */
.section[data-section="cf-forecast"] .panel-b{padding-left:20px;padding-right:20px;padding-bottom:14px}
.section[data-section="cf-forecast"] .panel-b>.tbl-wrap{margin-left:0;margin-right:0}
.cff-zebrik{display:flex;flex-direction:column;gap:12px}
.cff-z-radek{display:grid;grid-template-columns:210px 1fr 96px;grid-template-rows:auto auto;
  gap:2px 12px;align-items:center}
.cff-z-nazev{font-size:13px;font-weight:700;color:var(--text)}
.cff-z-pruh{height:12px;background:var(--surface2);border-radius:999px;overflow:hidden}
.cff-z-pruh i{display:block;height:100%;background:#93B4E8;border-radius:999px}
.cff-z-radek.cff-vitez .cff-z-pruh i{background:#4C9A6A}
.cff-z-cislo{font-size:13px;font-weight:700;text-align:right;font-family:var(--font-mono)}
.cff-z-pod{grid-column:2 / 4;font-size:11.5px;color:var(--text2)}
[data-theme="dark"] tr.cff-vitez td{background:#16301F}
[data-theme="dark"] .cff-znak{background:#14532D;color:#BBF7D0}
[data-theme="dark"] .cff-znak-modry{background:#1E3A5F;color:#BFDBFE}
.cff-skore{font-size:12px;font-weight:750;background:var(--surface2);border:.5px solid var(--border);
  border-radius:999px;padding:4px 12px;color:var(--text)}
.cff-tydny{display:flex;gap:6px;align-items:flex-end;overflow-x:auto;padding:6px 2px 0}
.cff-t{flex:0 0 auto;width:60px;border-radius:8px;padding:5px 4px 6px;border:1.5px solid transparent}
.cff-t-ok{border-color:#BBF7D0;background:#F6FEF9}
.cff-t-mimo{border-color:#FBD5DB;background:#FFF7F8}
.cff-t-sloupce{display:flex;gap:3px;align-items:flex-end;justify-content:center;height:48px}
.cff-t-sloupce i{display:block;width:13px;border-radius:2px 2px 0 0}
.cff-t-plan{background:#93B4E8}
.cff-t-skut{background:#4C9A6A}
.cff-t-popis{font-size:10px;color:var(--text2);font-weight:600;text-align:center;margin-top:4px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.cff-t-odch{font-size:10.5px;font-weight:750;text-align:center;color:var(--text);font-family:var(--font-mono)}
[data-theme="dark"] .cff-t-ok{border-color:#14532D;background:#132318}
[data-theme="dark"] .cff-t-mimo{border-color:#5C2836;background:#2A1A1E}
.cff-b-ceka{opacity:.38}
.cff-l-ceka{background:#93B4E8;opacity:.38}
.cff-ceka{border-left:3px solid var(--blue-mid)}
.cff-stav{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;
  border-radius:999px;padding:1px 8px;white-space:nowrap}
.cff-stav-uzavreno{background:#DCFCE7;color:#166534}
.cff-stav-probiha{background:#FFEDD5;color:#9A5B06}
.cff-stav-ceka{background:var(--surface2);color:var(--text3)}
tr.cff-r-ceka td{color:var(--text3)}
tr.cff-r-probiha td{background:#FFFBF3}
[data-theme="dark"] .cff-stav-uzavreno{background:#14532D;color:#BBF7D0}
[data-theme="dark"] .cff-stav-probiha{background:#4A3415;color:#FCD9A0}
[data-theme="dark"] tr.cff-r-probiha td{background:#2A2214}

/* Srovnani metod — karty misto siroke tabulky */
.cff-karty{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:14px}
.cff-karta{border:1px solid var(--border);border-radius:12px;padding:13px 15px;background:var(--surface)}
.cff-karta-vitez{border-color:#86C9A2;background:#F6FEF9;box-shadow:0 1px 6px rgba(76,154,106,.14)}
.cff-karta-vybrany{outline:2px solid var(--blue-mid);outline-offset:-1px}
.cff-karta-hlava{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px;min-height:20px}
.cff-karta-nazev{font-size:13px;font-weight:750;color:var(--text)}
.cff-karta-cislo{font-size:23px;font-weight:800;font-family:var(--font-mono);color:var(--text);line-height:1.1}
.cff-karta-pod{font-size:11px;color:var(--text2);margin-bottom:8px}
.cff-karta-pruh{height:7px;background:var(--surface2);border-radius:999px;overflow:hidden;margin-bottom:11px}
.cff-karta-pruh i{display:block;height:100%;background:#93B4E8;border-radius:999px}
.cff-karta-vitez .cff-karta-pruh i{background:#4C9A6A}
.cff-karta-det{margin:0;display:flex;flex-direction:column;gap:4px}
.cff-karta-det > div{display:flex;justify-content:space-between;gap:10px;font-size:11.5px}
.cff-karta-det dt{color:var(--text2);margin:0}
.cff-karta-det dd{margin:0;font-weight:700;color:var(--text);text-align:right}
[data-theme="dark"] .cff-karta-vitez{border-color:#2F6B49;background:#16301F;box-shadow:none}

/* Obdobi po obdobi — vlastni tabulka, at je odchylka videt na jeden pohled */
.cff-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.cff-tbl thead th{position:sticky;top:0;z-index:1;background:var(--surface2);
  font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--text);
  padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
.cff-tbl thead th.num{text-align:right}
.cff-tbl thead th.cff-th-pruh{text-align:center;min-width:150px}
.cff-tbl tbody td{padding:9px 12px;border-bottom:.5px solid var(--border);vertical-align:middle}
.cff-tbl tbody tr:hover td{background:var(--blue-light)}
.cff-tbl td.num{text-align:right;white-space:nowrap}
.cff-td-obdobi b{font-weight:700}
.cff-td-sub{display:block;font-size:11px;color:var(--text2);margin-top:1px}
.cff-td-datum{font-size:11.5px;color:var(--text);white-space:nowrap}
.cff-td-prazdno{color:var(--text2)}
.cff-td-pruh{padding:0 12px !important}
.cff-pruh{position:relative;display:block;height:12px;background:var(--surface2);border-radius:3px}
.cff-pruh i{position:absolute;top:2px;height:8px;border-radius:2px}
.cff-pruh-kl{background:#4C9A6A}
.cff-pruh-zap{background:#E06A78}
.cff-pruh-osa{position:absolute;left:50%;top:-1px;width:1px;height:14px;background:var(--text3);opacity:.5}
.cff-pct{display:inline-block;min-width:56px;text-align:center;font-size:11px;font-weight:700;
  border-radius:999px;padding:2px 8px;background:var(--surface2);color:var(--text3)}
.cff-p-ok{background:#DCFCE7;color:#166534}
.cff-p-vlazne{background:#FFEDD5;color:#9A5B06}
.cff-p-spatne{background:#FEE2E2;color:#991B1B}
.cff-tbl tfoot td{padding:11px 12px;background:var(--blue);color:#fff;font-weight:750;font-size:12.5px;
  border-top:2px solid var(--blue)}
.cff-tbl tfoot td.num{text-align:right}
.cff-f-kl{color:#86EFAC}
.cff-f-zap{color:#FFB4B4}
[data-theme="dark"] .cff-p-ok{background:#14532D;color:#BBF7D0}
[data-theme="dark"] .cff-p-vlazne{background:#4A3415;color:#FCD9A0}
[data-theme="dark"] .cff-p-spatne{background:#5C1D1D;color:#FECACA}
.cff-podil{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;color:var(--text2);
  font-family:var(--font-mono);vertical-align:2px}
tr.cff-r-hlavni td{background:#FFF7ED}
[data-theme="dark"] tr.cff-r-hlavni td{background:#3A2A12}
.cff-znak-cerveny{background:#FEE2E2;color:#991B1B}
[data-theme="dark"] .cff-znak-cerveny{background:#5C1D1D;color:#FECACA}
.cff-verd{font-size:11px;font-weight:700}
.cff-prepnout-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}
.cff-prepnout-pozn{font-size:11.5px;color:var(--text2)}
div.cff-verdikt.cff-ok{background:var(--green-light);border:1px solid var(--green-border)}
div.cff-verdikt.cff-pozor{background:var(--orange-light);border:1px solid var(--orange-border)}
div.cff-verdikt.cff-spatne{background:var(--red-light);border:1px solid var(--red)}

/* ── Nastaveni -> Vychozi zobrazeni ─────────────────────────────────────── */
.vych-grid{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 10px}
.vych-grid .company-tile{width:auto;display:inline-block;border:1px solid var(--border);padding:7px 12px}
.vych-grid .company-tile.on{border-color:var(--blue);background:var(--blue-light);color:var(--blue)}
.vych-cc{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;margin-bottom:10px}
.vych-cc label{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12.5px;color:var(--text2);cursor:pointer}

/* Zalozky na Mapovani rozvahovych uctu — svetle modre, vetsi nez bezny prepinac,
   protoze deli stranku na dve samostatne agendy. */
.type-toggle-blue button{padding:9px 18px;font-size:13px;font-weight:650;background:var(--blue-light);color:var(--blue);border-color:var(--blue-light)}
.type-toggle-blue button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.type-toggle-blue button .sb-badge{margin-left:7px}

/* ── Administrace -> Prehled prav: audit a kontrola nastaveni ───────────── */
.apr-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.apr-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;border-left:4px solid var(--border)}
.apr-kpi-ok{border-left-color:var(--green)}
.apr-kpi-err{border-left-color:var(--red)}
.apr-kpi-lbl{font-size:10.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}
.apr-kpi-val{font-size:23px;font-weight:760;color:var(--text);margin:5px 0 2px;letter-spacing:-.02em}
.apr-kpi-sub{font-size:11.5px;color:var(--text3)}

.apr-stav{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:750;white-space:nowrap}
.apr-stav-ok{background:var(--green-light);color:var(--green)}
.apr-stav-err{background:var(--red-light);color:var(--red)}
.apr-stav-warn{background:var(--orange-light);color:var(--orange-dk)}
.apr-stav-info{background:var(--blue-light);color:var(--blue)}

table.apr-tbl td{vertical-align:top}
.apr-tbl .apr-cas{white-space:nowrap;color:var(--text3);font-size:11.5px}
.apr-tbl .apr-soubor{font-size:11.5px;color:var(--text3)}
/* Prvni sloupec dash-table ma vlastni (prilepene) pozadi se silnejsi
   specificitou — barva radku ho musi prebit, jinak zustane bily. */
.scroll-x > table.dash-table.apr-tbl > tbody > tr.apr-radek-odm > td{background:var(--red-light)}

/* Na podbarvenem radku by stejne barevny stitek splynul — proto na bilem
   podkladu s barevnym rameckem. */
.apr-kontrola tr > td .apr-stav{background:var(--surface);border:1px solid currentColor}
.apr-kontrola .apr-proc{color:var(--text2);font-size:12px;line-height:1.5}
.scroll-x > table.dash-table.apr-kontrola > tbody > tr.apr-r-ok > td{background:var(--green-light)}
.scroll-x > table.dash-table.apr-kontrola > tbody > tr.apr-r-chyba > td{background:var(--red-light)}
.scroll-x > table.dash-table.apr-kontrola > tbody > tr.apr-r-pozor > td{background:var(--orange-light)}
.scroll-x > table.dash-table.apr-kontrola > tbody > tr.apr-r-info > td{background:var(--blue-light)}

.apr-souhrn{display:flex;gap:14px;align-items:flex-start;border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;border:1px solid var(--border)}
.apr-souhrn strong{display:block;font-size:15px;margin-bottom:3px}
.apr-souhrn span{font-size:12.5px;line-height:1.55;color:var(--text2)}
.apr-souhrn-ico{width:34px;height:34px;flex:0 0 34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;color:#fff}
.apr-souhrn-ok{background:var(--green-light);border-color:var(--green-border,var(--green))}
.apr-souhrn-ok .apr-souhrn-ico{background:var(--green)}
.apr-souhrn-ok strong{color:var(--green)}
.apr-souhrn-warn{background:var(--orange-light);border-color:var(--orange-border)}
.apr-souhrn-warn .apr-souhrn-ico{background:var(--orange-dk)}
.apr-souhrn-warn strong{color:var(--orange-dk)}
.apr-souhrn-err{background:var(--red-light);border-color:var(--red)}
.apr-souhrn-err .apr-souhrn-ico{background:var(--red)}
.apr-souhrn-err strong{color:var(--red)}

/* Protokol stavu — vysledek kontroly velkym pismem nahore uprostred. */
.sys-skore{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin:2px 0 18px;font-size:20px;font-weight:650;letter-spacing:-.01em}
.sys-skore b{font-size:26px;font-weight:800;letter-spacing:-.02em}
/* Filtr protokolu (OK / Pozor / Chyba). Tlacitko drzi barvu sveho stavu,
   vypnute je jen obrys — aby se na prvni pohled poznalo, co je videt. */
.sys-filtr{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 20px 14px}
.sys-filtr-popis{font-size:11.5px;font-weight:700;color:var(--text3);
  text-transform:uppercase;letter-spacing:.5px}
.sys-f-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;cursor:pointer;
  border-radius:999px;font-size:12px;font-weight:700;font-family:inherit;
  border:1px solid var(--border);background:var(--surface);color:var(--text3)}
.sys-f-btn b{font-weight:800;font-variant-numeric:tabular-nums}
.sys-f-btn:hover{border-color:var(--text3)}
.sys-f-btn.ok.on{background:var(--green-light);border-color:var(--green-border);color:#15803D}
.sys-f-btn.warn.on{background:var(--yellow-light);border-color:var(--orange-border);color:var(--yellow)}
.sys-f-btn.err.on{background:var(--red-light);border-color:var(--red);color:var(--red)}
.sys-skore-ok{color:var(--blue)}
.sys-skore-warn{color:var(--orange-dk)}
.sys-skore-err{color:var(--red);font-weight:800}
.sys-skore-err b{font-weight:850}
.sys-skore-nula{color:var(--green);font-weight:650}
@media (max-width:640px){.sys-skore{gap:16px;font-size:16px}.sys-skore b{font-size:21px}}

/* ── Ukazatel „K vyreseni" v horni liste (js/nedodelky.js) ─────────────── */
.ned-wrap{position:relative;display:inline-block;margin-left:8px}
.ned-pill{border:1px solid transparent;border-radius:999px;padding:4px 11px;font-size:11.5px;font-weight:750;cursor:pointer;font-family:var(--font-sans);white-space:nowrap}
.ned-pill.ned-chyba{background:var(--red-light);color:var(--red);border-color:var(--red)}
.ned-pill.ned-pozor{background:var(--orange-light);color:var(--orange-dk);border-color:var(--orange-border)}
.ned-pill.ned-ok{background:var(--green-light);color:var(--green);border-color:var(--green-light)}
.ned-panel{display:none;position:absolute;top:calc(100% + 7px);left:0;z-index:60;width:440px;max-width:82vw;max-height:70vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.16)}
.ned-panel.open{display:block}
.ned-hlavicka{padding:11px 14px;border-bottom:1px solid var(--border);font-size:12px;font-weight:750;color:var(--text);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ned-cnt{border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:750}
.ned-c-chyba{background:var(--red-light);color:var(--red)}
.ned-c-pozor{background:var(--orange-light);color:var(--orange-dk)}
.ned-radek{display:flex;gap:10px;align-items:flex-start;width:100%;text-align:left;padding:10px 14px;border:0;border-bottom:1px solid var(--border);background:transparent;cursor:pointer;font-family:var(--font-sans)}
.ned-radek:hover{background:var(--surface2)}
.ned-ico{flex:0 0 19px;height:19px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff}
.ned-radek.ned-chyba .ned-ico{background:var(--red)}
.ned-radek.ned-pozor .ned-ico{background:var(--orange-dk)}
.ned-txt{display:block;min-width:0}
.ned-txt b{display:block;font-size:12px;font-weight:650;color:var(--text);line-height:1.45}
.ned-txt small{display:block;font-size:11px;color:var(--text3);margin-top:2px}
.ned-prazdno{padding:12px 14px;font-size:12px;color:var(--text3);line-height:1.5}
.ned-pata{display:flex;gap:14px;padding:10px 14px;border-top:1px solid var(--border)}
.ned-ln{border:0;background:transparent;color:var(--blue);font-size:11.5px;font-weight:700;cursor:pointer;font-family:var(--font-sans);padding:0}
.ned-ln:hover{text-decoration:underline}

/* Editovatelna pasma semaforu ve Financni analyze (zalozka Vzorce) */
.fa-vzorce .fa-pasma-h{white-space:nowrap}
.fa-vzorce .fa-pasma-b{white-space:nowrap}
.fa-vzorce .fa-pasma-inp{max-width:88px;text-align:right;padding:4px 8px;font-size:12px}
.scroll-x > table.dash-table.fa-vzorce > tbody > tr.fa-pasma-zmena > td{background:var(--blue-light)}

/* Editace rejstrikovych udaju na karte Spolecnosti */
.co-card-edit{padding:10px 16px;display:flex;flex-direction:column;gap:8px}
.co-edit-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text2)}
.co-edit-row > span{flex:0 0 150px}
.co-edit-row input,.co-edit-row textarea{flex:1;min-width:0;font-size:12px}

/* Stav ukladani (js/ulozeni-stav.js) — pilulka v horni liste na kazde strance */
.ulo-pill{margin-left:8px;border:1px solid transparent;border-radius:999px;padding:4px 11px;font-size:11.5px;
  font-weight:750;cursor:pointer;font-family:var(--font-sans);white-space:nowrap}
.ulo-pripojeno{background:var(--green-light);color:var(--green);border-color:var(--green-light)}
.ulo-odpojeno{background:var(--orange-light);color:var(--orange-dk);border-color:var(--orange-border)}
.ulo-nepodporovano{background:var(--surface2);color:var(--text3);border-color:var(--border)}
.ulo-pill:hover{filter:brightness(.97)}

/* ── KONTROLA PŘED IMPORTEM (blokující obrazovka) ── */
.imk{width:940px}
.imk-body{padding:0 24px 8px}
.imk-karta{border-left:3px solid var(--border2)}
.imk-karta.imk-ok{border-left-color:var(--green)}
.imk-karta.imk-pozor{border-left-color:var(--orange)}
.imk-karta.imk-chyba{border-left-color:var(--red)}
.imk-blok{margin:16px 0 4px;background:var(--red-light);border:1px solid var(--red);border-radius:10px;padding:12px 16px}
.imk-blok-h{font-size:13px;font-weight:800;color:var(--red);margin-bottom:6px}
.imk-blok ul{margin:0;padding-left:20px}
.imk-blok li{font-size:12px;color:var(--text2);line-height:1.5}
.imk-sekce{margin-top:18px}
.imk-sekce-h h3{font-size:12.5px;font-weight:800;color:var(--text);letter-spacing:.2px}
.imk-sekce-h p{font-size:11px;color:var(--text3);margin-top:2px;line-height:1.45}
.imk-tbl{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px}
.imk-tbl td{padding:6px 10px;border-bottom:.5px solid var(--border);vertical-align:top;color:var(--text2)}
.imk-tbl td.imk-ico{width:22px;text-align:center;font-weight:800}
.imk-tbl td.imk-dopad{width:210px;text-align:right;font-size:11px;color:var(--text3)}
.imk-tbl tr.imk-r-ok td.imk-ico{color:var(--green)}
.imk-tbl tr.imk-r-pozor td.imk-ico{color:var(--orange)}
.imk-tbl tr.imk-r-chyba td.imk-ico{color:var(--red)}
.imk-tbl tr.imk-r-pozor{background:var(--orange-light)}
.imk-tbl tr.imk-r-chyba{background:var(--red-light)}
.imk-detail{font-size:10.5px;color:var(--text3);margin-top:2px;line-height:1.4}
.imk-volby{margin-top:18px}
.imk-volba{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:.5px solid var(--border);border-radius:8px;margin-top:8px;cursor:pointer;background:var(--surface2)}
.imk-volba input{margin-top:2px}
.imk-volba b{font-size:12px;color:var(--text);display:block}
.imk-volba small{font-size:10.5px;color:var(--text3);display:block;margin-top:1px;line-height:1.4}
.imk-potvrd[disabled]{opacity:.45;cursor:not-allowed}

/* ── ZÁLOHOVÁNÍ: skupiny nastavení ── */
.bkp-grp td{background:var(--surface2);font-weight:800;font-size:11.5px;color:var(--text);letter-spacing:.2px}
.bkp-grp .bkp-grp-p{font-weight:500;font-size:10.5px;color:var(--text3);margin-top:2px;line-height:1.4}
.bkp-nutne{display:inline-block;margin-left:6px;font-size:9px;font-weight:800;letter-spacing:.4px;color:var(--red);border:1px solid var(--red);border-radius:4px;padding:0 4px;vertical-align:1px}

/* ── DEMO REŽIM (jen demo.html) ── */
#demoPas{position:fixed;top:0;left:0;right:0;z-index:9998;background:#B45309;color:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.2);font-size:12px}
.demo-pas-r1{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 16px 5px;font-weight:650}
.demo-pas-r1 strong{background:#fff;color:#B45309;border-radius:4px;padding:1px 8px;font-weight:800;letter-spacing:.6px}
.demo-pas-r1 span{flex:1;min-width:220px}
.demo-pas-r1 a{color:#fff;text-decoration:underline;font-weight:700;white-space:nowrap}
.demo-pas-r2{display:flex;gap:18px;flex-wrap:wrap;padding:0 16px 6px;font-size:11px;
  border-top:1px solid rgba(255,255,255,.25);padding-top:5px;margin:0 16px;opacity:.95}
.demo-pas-r2 b{font-weight:750;opacity:.8}
.demo-pas-r2 code{background:rgba(0,0,0,.18);border-radius:3px;padding:0 5px;font-size:10.5px}
.demo-pas-r2 em{font-style:normal;text-decoration:underline}
/* Pás nesmí překrýt horní lištu s filtry — stránka se o jeho skutečnou
   výšku odsune (proměnnou nastavuje js/demo-rezim.js po vykreslení). */
body.demo-rezim{padding-top:var(--demo-pas-v,52px)}
body.demo-rezim .topbar,body.demo-rezim .sidebar{top:var(--demo-pas-v,52px)}

/* ── ŠABLONY OBORŮ ── */
.sab-karty{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.sab-karta{background:var(--surface);border:.5px solid var(--border);border-top:4px solid var(--blue);
  border-radius:14px;padding:16px 18px 14px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:9px}
.sab-h h3{font-size:15px;font-weight:800;color:var(--text);margin:0}
.sab-popis{font-size:12px;color:var(--text2);line-height:1.5;margin:0}
.sab-typ,.sab-pozor{font-size:11px;color:var(--text3);line-height:1.5;background:var(--surface2);
  border-radius:8px;padding:7px 10px}
.sab-pozor{background:var(--orange-light);color:var(--orange-dk)}
.sab-typ b,.sab-pozor b{font-weight:750}
.sab-cisla{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.sab-cisla span{font-size:10.5px;font-weight:700;color:var(--text3);background:var(--surface2);
  border:.5px solid var(--border2);border-radius:999px;padding:3px 10px}
.sab-akce{display:flex;gap:8px;margin-top:auto;padding-top:6px}
.sab-akce .btn{flex:1}

/* ── VERZE NASTAVENÍ ── */
.ver-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
@media(max-width:1100px){.ver-layout{grid-template-columns:1fr}}
.ver-soubor{display:block;width:100%;text-align:left;background:var(--surface);border:.5px solid var(--border);
  border-radius:9px;padding:9px 11px;margin-bottom:7px;cursor:pointer;font-family:inherit}
.ver-soubor:hover{background:var(--surface2)}
.ver-soubor.on{border-color:var(--blue);background:var(--blue-light,var(--surface2));box-shadow:inset 3px 0 0 var(--blue)}
.ver-s-nazev{display:block;font-size:12.5px;font-weight:750;color:var(--text)}
.ver-s-meta{display:block;font-size:10.5px;color:var(--text3);margin-top:2px}
.ver-radek{border-bottom:.5px solid var(--border);padding:9px 0}
.ver-radek:last-child{border-bottom:none}
.ver-hlava{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ver-kdy{font-size:12px;font-weight:750;color:var(--text);white-space:nowrap}
.ver-kdo{font-size:11px;color:var(--text3)}
.ver-souhrn{display:flex;gap:5px}
.ver-souhrn span{font-size:10.5px;font-weight:800;border-radius:999px;padding:1px 8px}
.ver-p{background:var(--green-light);color:var(--green)}
.ver-z{background:var(--orange-light);color:var(--orange-dk)}
.ver-o{background:var(--red-light);color:var(--red)}
.ver-zmeny{margin-top:8px;padding-left:6px;border-left:2px solid var(--border2)}
.ver-zm{display:flex;gap:8px;align-items:baseline;font-size:11.5px;color:var(--text2);padding:3px 0}
.ver-zm-ico{width:14px;text-align:center;font-weight:800;flex-shrink:0}
.ver-zm-pridano .ver-zm-ico{color:var(--green)}
.ver-zm-zmeneno .ver-zm-ico{color:var(--orange)}
.ver-zm-odebrano .ver-zm-ico{color:var(--red)}
.ver-zm small{color:var(--text3);font-size:10.5px;margin-left:6px}

/* ── PRŮVODCE PŘIDÁNÍM FIRMY ── */
.nov-kroky{display:flex;gap:6px;padding:14px 18px 0;flex-wrap:wrap}
.nov-krok{display:flex;align-items:center;gap:8px;background:var(--surface2);border:.5px solid var(--border);
  border-radius:999px;padding:7px 15px 7px 7px;font-size:12.5px;font-weight:700;color:var(--text3);
  cursor:pointer;font-family:inherit}
.nov-krok .nov-cislo{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;
  border-radius:50%;background:var(--border2);color:var(--text3);font-size:11px;font-weight:800}
.nov-krok.on{background:var(--blue);border-color:var(--blue);color:#fff}
.nov-krok.on .nov-cislo{background:#fff;color:var(--blue)}
.nov-krok.hotovo{color:var(--green);border-color:var(--green-border)}
.nov-krok.hotovo .nov-cislo{background:var(--green);color:#fff}
.nov-nav{display:flex;gap:9px;align-items:center;padding:12px 18px 16px;border-top:.5px solid var(--border)}
.nov-chyba{background:var(--red-light);border:1px solid var(--red);border-radius:10px;padding:11px 15px;
  font-size:12.5px;color:var(--text2)}
.nov-chyba strong{color:var(--red)}
.nov-chyba ul{margin:6px 0 0;padding-left:20px}
.nov-chyba li{line-height:1.5;padding:2px 0}
.nov-ok{background:var(--green-light);border:1px solid var(--green-border);border-radius:10px;
  padding:11px 15px;font-size:12.5px;color:var(--green)}
tr.nov-r-chyba{background:var(--red-light)}
tr.nov-r-pozor{background:var(--orange-light)}
tr.nov-r-chyba td:first-child{color:var(--red)}
tr.nov-r-pozor td:first-child{color:var(--orange-dk)}
tr.nov-r-ok td:first-child{color:var(--green)}
.nov-kroky + #novTelo{border-top:.5px solid var(--border);margin-top:12px}

/* ── NASTAVENÍ PORAD: přepínač typu porady ── */
.mtg-typy{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.mtg-typ{background:var(--surface);border:.5px solid var(--border);border-radius:999px;padding:8px 18px;
  font-size:13px;font-weight:750;color:var(--text2);cursor:pointer;font-family:inherit}
.mtg-typ:hover{background:var(--surface2)}
.mtg-typ.on{background:var(--blue);border-color:var(--blue);color:#fff}
#plRozpadMerge.on{background:var(--blue);border-color:var(--blue);color:#fff}
td.plr-plus .pl-num-link,td.plr-plus{color:var(--green);font-weight:750}
td.plr-minus .pl-num-link,td.plr-minus{color:var(--red);font-weight:750}
td.plr-bez .pl-num-link,td.plr-bez{color:var(--text3)}

/* ── KONTINGENČNÍ TABULKA ── */
.pv-ovladani{padding:12px 18px;border-bottom:.5px solid var(--border)}
.pv-pole{display:flex;flex-direction:column;gap:4px}
.pv-pole span{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--text3)}
.pv-pole select{min-width:170px}

/* Návrhář: zásoba polí nahoře, čtyři barevné zóny pod ní — rozvržení z Excelu.
   Barva zóny = barva toho, co pole v tabulce ovládá. */
.pv-zasoba{border:.5px solid var(--border);border-radius:10px;padding:8px 10px;margin-bottom:10px;background:var(--surface2)}
.pv-zony{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:1100px){.pv-zony{grid-template-columns:repeat(2,1fr)}}
.pv-zona{border:1px solid var(--border);border-top:3px solid var(--border);border-radius:10px;
  padding:8px 10px;background:var(--surface2);transition:border-color .12s,background .12s,box-shadow .12s}
.pv-z-radky{--pv-z:var(--pv-radky);--pv-z-bg:var(--pv-radky-bg)}
.pv-z-sloupce{--pv-z:var(--pv-sloupce);--pv-z-bg:var(--pv-sloupce-bg)}
.pv-z-miry{--pv-z:var(--pv-miry);--pv-z-bg:var(--pv-miry-bg)}
.pv-z-filtry{--pv-z:var(--pv-filtry);--pv-z-bg:var(--pv-filtry-bg)}
.pv-zona{border-top-color:var(--pv-z);background:var(--pv-z-bg)}
.pv-zona.nad{border-color:var(--pv-z);box-shadow:0 0 0 3px color-mix(in srgb,var(--pv-z) 22%,transparent)}
/* Při tažení se rozsvítí jen zóny, které pole přijmou — míra nepatří do řádků. */
.pv-tahne-dim .pv-z-miry,.pv-tahne-mira .pv-zona:not(.pv-z-miry){opacity:.35}
.pv-zona-h{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.4px;
  text-transform:uppercase;color:var(--text2);margin-bottom:6px}
.pv-zona-h span{font-weight:600;text-transform:none;letter-spacing:0;color:var(--text3)}
.pv-tecka{width:8px;height:8px;border-radius:50%;background:var(--pv-z);flex:0 0 auto}
.pv-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:34px;align-items:flex-start;align-content:flex-start}
.pv-prazdno{font-size:11.5px;color:var(--text3);padding:6px 2px;font-style:italic}
.pv-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--border);
  border-radius:7px;background:var(--surface);font-size:12px;font-weight:650;cursor:grab;user-select:none;white-space:nowrap}
.pv-chip.in{border-color:var(--pv-z);box-shadow:inset 3px 0 0 var(--pv-z);color:var(--pv-z)}
.pv-chip.taz{opacity:.4}
.pv-chip.pv-pred{box-shadow:-3px 0 0 var(--text)}
.pv-uch{color:var(--text3);font-size:11px;letter-spacing:-1px}
.pv-chip .pv-x{border:0;background:none;color:var(--text3);cursor:pointer;font-size:14px;line-height:1;padding:0 1px}
.pv-chip .pv-x:hover{color:var(--red)}
.pv-chip .pv-vyber{border:1px solid var(--pv-z);background:var(--surface);border-radius:5px;
  font-size:10.5px;font-weight:700;color:var(--pv-z);cursor:pointer;padding:1px 5px}
.pv-chip .pv-vyber:hover{background:var(--pv-z);color:#fff}
.pv-lista{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-top:10px}
.pv-tlacitka{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.pv-tlacitka .btn-ghost.on{background:var(--orange);border-color:var(--orange);color:#fff}

/* Tabulka: barvy odpovídají zónám návrháře. */
.pv-pruh-filtr{padding:7px 12px;margin-bottom:8px;border-radius:8px;font-size:11.5px;
  background:var(--pv-filtry-bg);color:var(--pv-filtry);border:1px solid var(--pv-filtry)}
.pv-pruh-filtr b{font-weight:800}
.pv-tgl{border:0;background:none;color:var(--pv-radky);cursor:pointer;font-size:11px;width:14px;padding:0;margin-right:4px}
.pv-tgl-x{display:inline-block;width:14px;margin-right:4px}
.pv-table tr.pv-r-grp td{font-weight:750}
.pv-table th.pv-grp{border-left:.5px solid var(--border)}
.pv-table th.pv-mira{font-size:10px;font-weight:700;text-transform:none}
/* Celá plocha tabulky nese barvu své zóny — popisný sloupec tyrkysově,
   hlavička modře, čísla oranžově. Na první pohled je vidět, které pole
   v návrháři kterou část tabulky ovládá. */
.pv-table thead th.pv-h-rad{border-bottom:3px solid var(--pv-radky);
  background:var(--pv-radky-bg);color:var(--pv-radky)}
.pv-table thead th.pv-h-sl,.pv-table thead th.pv-mira{border-bottom:3px solid var(--pv-sloupce);
  background:var(--pv-sloupce-bg);color:var(--pv-sloupce)}
.pv-table tbody td.pv-c-rad{border-left:3px solid var(--pv-radky);background:var(--pv-radky-bg)}
.pv-table tbody td.pv-val{border-bottom:.5px solid var(--border2);background:var(--pv-miry-bg)}
.pv-table tbody td.pv-val.pl-cumul{background:color-mix(in srgb,var(--pv-miry) 16%,var(--pv-miry-bg))}
.pv-table thead th.pl-cumul-h{background:color-mix(in srgb,var(--pv-miry) 22%,var(--pv-miry-bg));color:var(--pv-miry)}
.pv-table tbody tr.pl-row-ebt td.pv-val{background:color-mix(in srgb,var(--pv-miry) 20%,var(--pv-miry-bg));font-weight:800}
.pv-table tbody tr.pl-row-ebt td.pv-c-rad{background:color-mix(in srgb,var(--pv-radky) 20%,var(--pv-radky-bg))}
.pv-table tbody tr.pv-r-grp td.pv-c-rad{background:color-mix(in srgb,var(--pv-radky) 10%,var(--pv-radky-bg))}
.pv-table thead th.pv-serad{cursor:pointer;user-select:none}
.pv-table thead th.pv-serad:hover{text-decoration:underline}
.pv-table tbody td.pv-klik{cursor:pointer}
.pv-table tbody td.pv-klik:hover{outline:2px solid var(--pv-miry);outline-offset:-2px}
/* První sloupec zůstane vidět i při vodorovném rolování — bez toho se
   u dvaceti sloupců nepozná, na kterém řádku člověk je. */
.pv-table tbody td.pv-c-rad,.pv-table thead th.pv-h-rad{position:sticky;left:0;z-index:2}

/* CF plán — odvozené položky z plánu výsledovky */
.cfpl-odv{border:1px solid var(--border);border-radius:10px;background:var(--surface2);
  padding:12px 16px;margin-bottom:14px}
.cfpl-odv-blok{border-top:.5px solid var(--border);padding:10px 0}
.cfpl-odv-radek{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0}
.cfpl-odv-kats{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--text2);margin-top:4px}
.cfpl-odv-kats>span:first-child{font-weight:700;min-width:170px}
.cfpl-odv-kat{display:inline-flex;gap:4px;align-items:center;font-size:11.5px;
  border:.5px solid var(--border);border-radius:6px;padding:2px 7px;background:var(--surface);cursor:pointer}
.cfpl-odv-akce{display:flex;gap:8px;margin-top:10px}

/* CF plán — scénáře na objemech */
.cfpl-objemy{display:inline-flex;gap:10px;align-items:center;padding:4px 10px;border-radius:8px;
  border:1px solid var(--orange-border);background:var(--orange-light)}
.cfpl-objemy label{display:inline-flex;gap:5px;align-items:center;font-size:11.5px;font-weight:700;color:var(--text2)}
.cfpl-objemy select{border:.5px solid var(--border);border-radius:6px;background:var(--surface);
  color:var(--text);font-size:11.5px;padding:3px 5px;font-family:var(--font-sans)}
.cfpl-objemy-pas{margin:0 0 12px}

/* Hlídací psi na Finančním přehledu */
.hp-souhrn{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:.5px solid var(--border2);
  font-size:12px;color:var(--text2);flex-wrap:wrap}
.hp-souhrn .hp-znacka{margin-left:8px}
.hp-souhrn .hp-meze-btn{margin-left:auto}
.hp-znacka{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  border-radius:50%;font-size:11px;font-weight:800;flex:0 0 auto}
.hp-z-ok{background:var(--green-light);color:var(--green)}
.hp-z-warn{background:var(--yellow-light);color:var(--yellow)}
.hp-z-err{background:var(--red-light);color:var(--red)}
.hp-z-nedata{background:var(--surface2);color:var(--text3)}
.hp-table{width:100%}
.hp-table td,.hp-table th{padding:8px 10px;font-size:12.5px}
.hp-table tbody tr{cursor:pointer;border-bottom:.5px solid var(--border2)}
.hp-table tbody tr:hover{background:var(--surface2)}
.hp-table tbody tr.hp-err{background:color-mix(in srgb,var(--red) 6%,transparent)}
.hp-table tbody tr.hp-warn{background:color-mix(in srgb,var(--yellow) 8%,transparent)}
.hp-ico{width:34px}
.hp-nazev{font-weight:650}
.hp-hodnota{font-family:var(--font-mono);font-weight:600;white-space:nowrap}
.hp-mez{color:var(--text3);white-space:nowrap}
.hp-popis{color:var(--text2)}
.hp-kam{width:26px;color:var(--text3);text-align:right}
.hp-meze{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;padding:12px 18px;border-top:.5px solid var(--border2)}
.hp-meze-akce{display:flex;gap:8px;margin-left:auto}

/* Pohledávky a závazky — přepočet k datu */
.pzd-panel{padding:12px 18px}
.pzd-radek{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.pzd-pole{display:flex;flex-direction:column;gap:4px}
.pzd-pole span{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--text3)}
.pzd-tlacitka{display:flex;gap:6px;flex-wrap:wrap}
.pzd-info{font-size:11.5px;color:var(--text2);margin-left:auto;align-self:center}

/* Otazník v horní liště — nápověda k právě otevřené záložce */
.napoveda-btn{width:30px;height:30px;flex:0 0 auto;border-radius:50%;border:1px solid var(--border);
  background:var(--surface);color:var(--text2);font-size:15px;font-weight:800;line-height:1;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.12s}
.napoveda-btn:hover{border-color:var(--orange);background:var(--orange);color:#fff}

/* Kontingenční graf */
.pv-graf{margin-top:12px;border:1px solid var(--pv-miry);border-radius:10px;background:var(--pv-miry-bg);padding:10px 12px}
.pv-graf-hlava{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:8px}
.pv-graf-info{font-size:11px;color:var(--text2);margin-left:auto}
.pv-graf-plocha{background:var(--surface);border-radius:8px;padding:6px}
.pv-graf-svg{width:100%;height:auto;display:block}
.pv-graf-svg text.pv-g-osa{font-size:11px;fill:var(--text2)}
.pv-graf-svg text.pv-g-pct{font-size:12px;font-weight:800;fill:#fff}
.pv-graf-svg text.pv-g-val{font-size:11px;font-weight:700}
.pv-graf-leg{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:11.5px}
.pv-graf-leg span{display:inline-flex;align-items:center;gap:5px}
.pv-graf-leg i{width:11px;height:11px;border-radius:3px;display:inline-block}

/* Výběr hodnot filtru */
.pv-pop{position:fixed;z-index:900;width:290px;background:var(--bg);border:.5px solid var(--border);
  border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.22);padding:10px}
.pv-pop-h{display:flex;align-items:center;font-size:12px;font-weight:800;margin-bottom:6px}
.pv-pop-x{margin-left:auto;border:0;background:none;color:var(--text3);cursor:pointer;font-size:15px;line-height:1}
.pv-pop-hledat{width:100%;margin-bottom:6px}
.pv-pop-akce{display:flex;gap:6px;margin-bottom:6px}
.pv-pop-akce button{flex:1;border:.5px solid var(--border);background:var(--bg2);border-radius:6px;
  font-size:11px;font-weight:700;cursor:pointer;padding:3px 0;color:var(--text2)}
.pv-pop-sez{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.pv-pop-sez label{display:flex;gap:6px;align-items:center;font-size:12px;padding:2px 3px;border-radius:5px;cursor:pointer}
.pv-pop-sez label:hover{background:var(--bg2)}
.pv-pop-p{margin-top:8px;display:flex;justify-content:flex-end}

/* ── Viditelnost bloků Finančního přehledu ── */
.dash-bloky-bar{position:relative;display:flex;justify-content:flex-end;margin-bottom:8px}
.dash-bloky-panel{position:absolute;right:0;top:100%;z-index:60;background:var(--surface);
  border:.5px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);
  padding:10px;min-width:250px;display:flex;flex-direction:column;gap:4px}
.dash-bloky-item{display:flex;gap:8px;align-items:center;font-size:12.5px;padding:4px 6px;
  border-radius:6px;cursor:pointer}
.dash-bloky-item:hover{background:var(--surface2)}

/* ── Čtečka zdrojového kódu ── */
.zdr-mrizka{display:grid;grid-template-columns:340px 1fr;gap:0;min-height:520px}
@media (max-width:1100px){.zdr-mrizka{grid-template-columns:1fr}}
#zdrSeznam{border-right:.5px solid var(--border);max-height:70vh;overflow:auto;padding:6px}
.zdr-polozka{display:block;width:100%;text-align:left;border:0;background:none;cursor:pointer;
  padding:8px 10px;border-radius:8px;border-bottom:.5px solid var(--border2)}
.zdr-polozka:hover{background:var(--surface2)}
.zdr-polozka.on{background:var(--blue-light)}
.zdr-jmeno{display:block;font-family:var(--font-mono);font-size:12.5px;font-weight:650;color:var(--text)}
.zdr-meta{font-size:10.5px;color:var(--text3)}
.zdr-popis{display:block;font-size:11px;color:var(--text2);margin-top:3px;line-height:1.4}
#zdrKod{max-height:70vh;overflow:auto}
.zdr-hlava{display:flex;gap:12px;align-items:center;padding:10px 14px;border-bottom:.5px solid var(--border2);
  position:sticky;top:0;background:var(--surface);z-index:2}
.zdr-hlava .btn-ghost{margin-left:auto}

/* Hledání záložky v detailu role (Administrace) — ať se nová stránka najde
   i bez znalosti toho, pod kterým modulem visí. */
.adm-sec-hledej-bar{display:flex;align-items:center;gap:10px;margin:8px 0 2px}
.adm-sec-hledej-bar .table-search{flex:0 1 320px}

/* Rychlé chipy firem nad tabulkou Rozpadu (Výsledovka). */
.plr-chipy{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 8px}
.plr-chipy .btn{padding:2.5px 10px;font-size:11.5px}
.plr-chipy .app-hint{margin-left:6px}

/* Porady — náhled snímku pod řádkem v pořadí porady. Náhled je skutečný
   snímek zmenšený transformem; wrapper mu ubere výšku, aby řádky nebyly
   přes celou obrazovku. */
.mtg-nahled-bar{display:flex;align-items:center;gap:10px;margin:0 0 8px}
.mtg-polozka{border:1px solid var(--cara,#E4E9F4);border-radius:10px;margin-bottom:10px;background:var(--panel,#fff)}
.mtg-polozka .mtg-row{margin:0;border:0}
.mtg-nahled{border-top:1px dashed var(--cara,#E4E9F4);padding:8px 10px 10px}
.mtg-nahled-plocha{height:260px;overflow:hidden;border:1px solid var(--cara,#E4E9F4);
  border-radius:8px;background:#fff;position:relative}
.mtg-nahled-obsah{transform:scale(.42);transform-origin:top left;width:238%;pointer-events:none}
[data-theme="dark"] .mtg-nahled-plocha{background:#fff}
.mtg-nahled-prazdno{font-size:12px;color:var(--text2,#5A6780);padding:14px;border:1px dashed var(--cara,#E4E9F4);border-radius:8px}

/* Porady — rozsah a poznámka u jednotlivého snímku. */
.mtg-rozsah{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:6px 10px;
  border-top:1px dashed var(--border);background:var(--bg)}
.mtg-rozsah-lbl{font-size:11px;font-weight:700;color:var(--text3);margin-right:2px}
.mtg-rozsah .btn.sm{padding:1.5px 8px;font-size:11px}
.mtg-pozn{flex:1 1 220px;min-width:180px;font-size:12px}
/* Poznámka na plátně — pod snímkem, nenápadně, ale čitelně z dálky. */
.mtg-show-pozn{padding:6px 18px;font-size:15px;font-weight:600;color:var(--blue);
  border-top:1px solid var(--border);background:var(--bg)}

/* Zakázky — role protistrany v detailu (zákazník / dodavatel). */
.zak-role{display:inline-block;padding:1px 8px;border-radius:9px;font-size:10.5px;font-weight:700}
.zak-role-zak{background:rgba(31,78,140,.13);color:#1F4E8C}
.zak-role-dod{background:rgba(245,166,35,.18);color:#B45309}
.zak-role-jine{background:rgba(90,103,128,.13);color:#5A6780}
/* Zakázky — stav podle posledního pohybu a pruhy ve vývoji po měsících. */
.zak-stav{display:inline-block;padding:0 7px;border-radius:9px;font-size:10px;font-weight:700;white-space:nowrap}
.zak-stav-bezi{background:rgba(30,138,76,.14);color:#1E8A4C}
.zak-stav-stop{background:rgba(90,103,128,.15);color:#5A6780}
.zak-pruh{display:inline-block;width:52px;height:6px;border-radius:4px;background:var(--bg);
  border:1px solid var(--border);overflow:hidden;vertical-align:middle;margin-left:6px}
.zak-pruh-in{display:block;height:100%;border-radius:4px}
.zak-pruh-in.vyn{background:#1F4E8C}
.zak-pruh-in.nak{background:#D97706}
/* Štítek u řádku, kde protistrana není dodavatel (výdej zboží ze skladu). */
.zak-vydej{display:inline-block;padding:0 7px;border-radius:9px;font-size:10px;font-weight:700;background:rgba(245,166,35,.2);color:#B45309;white-space:nowrap}

/* Most EBITDA — sloupec „Podíl na změně": pruh + číslo, ať je na první
   pohled vidět, který krok výsledek opravdu táhne. */
.zm-podil{width:170px;white-space:nowrap}
.zm-podil-pruh{display:inline-block;width:96px;height:8px;border-radius:5px;background:var(--bg);
  overflow:hidden;vertical-align:middle;margin-right:8px;border:1px solid var(--border)}
.zm-podil-vypln{display:block;height:100%;border-radius:5px}
.zm-podil-vypln.plus{background:#16A34A}
.zm-podil-vypln.minus{background:#DC2626}
.zm-podil-cislo{font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--text2)}
.zm-podil-celkem{font-weight:800}
.zm-most-hlavni td{background:rgba(245,166,35,.08)}
.zm-most-znak{display:inline-block;margin-left:6px;padding:0 7px;border-radius:9px;font-size:10px;
  font-weight:700;background:rgba(245,166,35,.22);color:#B45309}

/* Matice — druhý řádek v buňce: hodnota sledovaného měsíce pod změnou. */
.zm-cell-sub{display:block;font-size:9.5px;font-weight:600;color:var(--text3);
  line-height:1.15;margin-top:1px;font-variant-numeric:tabular-nums}

/* Tlačítko upomínky u dlužníka (Doba inkasa) — drobné, ať nepřebije jméno. */
.ink-upo{margin-left:8px;font-size:11px;padding:1px 7px;white-space:nowrap;opacity:.75}
.ink-upo:hover{opacity:1}
.ink-upo[disabled]{opacity:.4;cursor:progress}
.zdr-pre{margin:0;padding:10px 0;font-family:var(--font-mono);font-size:11.5px;line-height:1.55}
.zdr-radek{white-space:pre-wrap;word-break:break-word;padding:0 14px}
.zdr-radek.zdr-nalez{background:color-mix(in srgb,var(--orange) 12%,transparent)}
.zdr-cislo{display:inline-block;width:44px;margin-right:10px;color:var(--text3);text-align:right;user-select:none}
.zdr-pre mark{background:var(--orange);color:#fff;border-radius:2px}

/* ── Týdenní treasury rutina (js/treasury-rutina.js) ────────────────────────
   Stránka je podklad na poradu: na obrazovce dva sloupce karet, na papíře
   tatáž sestava zmenšená na JEDNU A4. Proto tu má všechno jednotný rytmus —
   jeden vzhled tabulky, jeden vzhled metriky, jedna velikost mezer. */
.tr-start{padding:8px 4px;max-width:760px}
.tr-start h3{margin:0 0 8px;font-size:calc(16px * var(--ui-scale))}
.tr-start p{margin:0 0 10px;color:var(--text2);font-size:calc(13px * var(--ui-scale));line-height:1.6}
.tr-start .btn{margin-top:6px}

.tr-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tr-kdy{color:var(--text2);font-size:calc(12.5px * var(--ui-scale));margin-right:auto}
.tr-prep{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--surface)}
.tr-prep button{border:0;background:transparent;cursor:pointer;font-family:var(--font-sans);font-weight:700;
  font-size:calc(11.5px * var(--ui-scale));color:var(--text2);padding:6px 14px}
.tr-prep button:hover{background:var(--surface2)}
.tr-prep button.on{background:var(--blue);color:#fff}

.tr-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
@media(max-width:1200px){.tr-list{grid-template-columns:1fr}}

.tr-krok{background:var(--surface);border:.5px solid var(--border);border-left:3px solid var(--border);
  border-radius:var(--radius);padding:12px 14px 10px;break-inside:avoid}
.tr-krok.tr-ok{border-left-color:var(--green)}
.tr-krok.tr-warn{border-left-color:var(--yellow)}
.tr-krok.tr-err{border-left-color:var(--red)}
.tr-krok.tr-nedata{border-left-color:var(--text3)}
.tr-krok-h{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.tr-krok-t{flex:1;min-width:0}
.tr-krok-t h3{margin:0;font-size:calc(14px * var(--ui-scale));font-weight:800;color:var(--blue)}
.tr-krok-t p{margin:2px 0 0;color:var(--text2);font-size:calc(11.5px * var(--ui-scale));line-height:1.5}
.tr-cislo{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none;
  border-radius:50%;background:var(--blue-light);color:var(--blue);font-weight:800;font-size:calc(12px * var(--ui-scale))}
.tr-zn{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;flex:none;
  border-radius:50%;font-size:11px;font-weight:800}
.tr-zn-ok{background:var(--green-light);color:var(--green)}
.tr-zn-warn{background:var(--yellow-light);color:var(--yellow)}
.tr-zn-err{background:var(--red-light);color:var(--red)}
.tr-zn-nedata{background:var(--surface2);color:var(--text3)}

/* metriky — mřížka stejně širokých dlaždic, ať se karty výškově srovnají */
.tr-mrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin-bottom:10px}
.tr-m{background:var(--surface2);border-radius:var(--radius);padding:7px 9px;min-width:0}
.tr-m-l{display:block;font-size:calc(9.5px * var(--ui-scale));font-weight:800;text-transform:uppercase;
  letter-spacing:.03em;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-m-v{display:block;font-family:var(--font-mono);font-size:calc(15px * var(--ui-scale));font-weight:700;
  color:var(--text);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-m-p{display:block;font-style:normal;font-size:calc(9.5px * var(--ui-scale));color:var(--text3);
  margin-top:1px;line-height:1.35}
.tr-m-hlavni{background:var(--blue-light)}
.tr-m-hlavni .tr-m-v,.tr-m-hlavni .tr-m-l{color:var(--blue)}
.tr-m-red .tr-m-v{color:var(--red)}
.tr-m-green .tr-m-v{color:var(--green)}
.tr-m-off{opacity:.55}

/* JEDNA tabulka pro celou stránku — proto tu není nic jako .tr-tbl-jina */
.tr-tbl{width:100%;border-collapse:collapse;margin-bottom:8px;table-layout:auto}
.tr-tbl th{text-align:left;font-size:calc(9.5px * var(--ui-scale));font-weight:800;text-transform:uppercase;
  letter-spacing:.03em;color:var(--text3);padding:0 6px 4px;border-bottom:1px solid var(--border)}
.tr-tbl td{padding:4px 6px;font-size:calc(11.5px * var(--ui-scale));color:var(--text);
  border-bottom:.5px solid var(--border2);vertical-align:top}
.tr-tbl tr:last-child td{border-bottom:0}
.tr-tbl .tr-num{text-align:right;font-family:var(--font-mono);white-space:nowrap}
.tr-tbl th.tr-num{text-align:right}
.tr-tbl .tr-dim{color:var(--text3);font-size:calc(10.5px * var(--ui-scale))}
.tr-tbl .tr-zap{color:var(--red)}
.tr-tbl .tr-sum{border-top:1px solid var(--border);font-weight:800;background:var(--surface2)}
.tr-tbl .tr-c-zn{width:24px;padding-top:5px}

.tr-note{margin:0 0 6px;padding:7px 9px;background:var(--surface2);border-radius:var(--radius);
  color:var(--text2);font-size:calc(11px * var(--ui-scale));line-height:1.55}
.tr-note-warn{background:var(--yellow-light);color:var(--text)}
.tr-odkaz{color:var(--blue);cursor:pointer;text-decoration:underline;font-weight:700}
.tr-krok .btn{margin-top:2px}

.tr-jen-tisk{display:none}
.tr-tisk-hlava{grid-column:1/-1;border-bottom:1.5px solid var(--blue);padding-bottom:4px;margin-bottom:2px}
.tr-tisk-hlava b{display:block;font-size:12px;color:var(--blue)}
.tr-tisk-hlava span{font-size:8.5px;color:var(--text2)}

/* ── tisk: celá rutina na jednu A4 ────────────────────────────────────────
   Papír nemá scroll, takže se nezmenšuje jen písmo — ubírá se i všechno,
   co na obrazovce jen navádí (tlačítka, menu, dlouhé ocasy tabulek).
   Co se do výtisku nevejde, se NEZTRATÍ potichu: tabulka místo zbytku
   vytiskne řádek „a dalších N…", ať je vidět, že pokračování existuje. */
@media print{
  @page{size:A4 portrait;margin:8mm}
  .shell,.app-topbar,.sb,.sidebar,.app-filters,.tr-bar,.dash-head p{display:none !important}
  .section[data-section="cf-rutina"] .dash-head{display:none}
  .tr-jen-obr{display:none !important}
  .tr-jen-tisk{display:table-row}
  .tr-tisk-hlava.tr-jen-tisk{display:block}
  .tr-list{display:grid;grid-template-columns:1fr 1fr;gap:3mm;align-items:start}
  .tr-krok{padding:2mm 2.5mm;border-left-width:2px;background:#fff;break-inside:avoid;page-break-inside:avoid}
  .tr-krok-h{margin-bottom:1.2mm;gap:1.5mm}
  .tr-krok-t h3{font-size:9.5pt}
  .tr-krok-t p{font-size:6.5pt;line-height:1.3}
  .tr-cislo{width:5mm;height:5mm;font-size:7.5pt}
  .tr-zn{width:4mm;height:4mm;font-size:7pt}
  .tr-mrow{gap:1.2mm;margin-bottom:1.2mm}
  .tr-m{padding:.8mm 1.2mm}
  .tr-m-l{font-size:5.5pt}
  .tr-m-v{font-size:8pt}
  .tr-m-p{font-size:5.5pt}
  .tr-tbl{margin-bottom:1.2mm}
  .tr-tbl th{font-size:5.2pt;padding:0 1mm .3mm}
  .tr-tbl td{padding:.35mm 1mm;font-size:6.8pt;line-height:1.25}
  .tr-tbl .tr-dim{font-size:6.5pt}
  .tr-tbl .tr-jen-tisk td{font-style:italic;color:#555;font-size:6.5pt}
  /* VYSVĚTLIVKY SE NETISKNOU. Na papíře jde o čísla; „proč se ta dvě čísla
     liší" si člověk přečte na obrazovce. Varování (stará data, firma bez
     výpisu) ale zůstávají — to je informace k rozhodnutí, ne výklad. */
  .tr-note{display:none}
  .tr-note-warn{display:block;padding:1mm 1.5mm;margin-bottom:1mm;font-size:6.5pt;
    line-height:1.35;background:#FDF6E3;border-left:1.5px solid #B45309}
  .tr-odkaz{text-decoration:none;color:inherit;font-weight:400}
}
.tr-neulozeno{color:var(--red);font-weight:600}

/* Mapa aplikace v Metodice — generuje se z menu (js/methodology-view.js) */
.met-mapa-h{margin:16px 0 6px;font-size:calc(13px * var(--ui-scale));font-weight:800;color:var(--blue)}
.met-mapa-blok{color:var(--text3);font-style:italic}
.met-mapa-chibi,.met-mapa-chybi{color:var(--red);font-style:italic}
/* Odkaz na jinou záložku přímo v textu (js/nav.js, [data-nav-inline]) */
.app-odkaz{color:var(--blue);cursor:pointer;text-decoration:underline;font-weight:600}
.app-odkaz:hover{color:var(--blue-mid)}

/* ── Platby mimo výsledovku (js/cf-mimo-vzz-view.js) ──────────────────────── */
.mvz-karty{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}
.mvz-k{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius);padding:12px 14px}
.mvz-k span{display:block;font-size:calc(10px * var(--ui-scale));font-weight:800;text-transform:uppercase;
  letter-spacing:.03em;color:var(--text3)}
.mvz-k b{display:block;font-family:var(--font-mono);font-size:calc(20px * var(--ui-scale));font-weight:700;margin-top:2px}
.mvz-k i{display:block;font-style:normal;font-size:calc(10.5px * var(--ui-scale));color:var(--text3);margin-top:2px}
.mvz-k-red b{color:var(--red)}
.mvz-k-green b{color:var(--green)}
.mvz-zap{color:var(--red)}
.mvz-kl{color:var(--green)}
.mvz-tbl{width:100%}
.mvz-tbl td,.mvz-tbl th{padding:7px 10px;font-size:calc(12px * var(--ui-scale))}
.mvz-tbl tbody tr{cursor:pointer;border-bottom:.5px solid var(--border2)}
.mvz-tbl tbody tr:hover{background:var(--surface2)}
.mvz-tbl tfoot td{border-top:1px solid var(--border);background:var(--surface2)}
.mvz-kat{color:var(--text2);font-size:calc(11.5px * var(--ui-scale))}

/* Fakturace vs. inkaso (js/pz-fakturace-view.js) — obraty účtu 311 po měsících.
   Znaménko změny salda se barví, protože je to jediné číslo v řádku, kde na
   směru záleží: kladné = pohledávky narostly, záporné = inkasovalo se víc,
   než fakturovalo. */
.fakt-plus{color:var(--red)}
.fakt-minus{color:var(--green)}
.fakt-note{margin:10px 2px 0;color:var(--text2);font-size:calc(11.5px * var(--ui-scale));line-height:1.5}
.fakt-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.fakt-tabs .fakt-tab{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 16px;font-size:calc(12.5px * var(--ui-scale));font-weight:600;cursor:pointer}
.fakt-tabs .fakt-tab:hover{border-color:var(--blue);color:var(--blue)}
.fakt-tabs .fakt-tab.on{background:var(--blue);border-color:var(--blue);color:#fff}
.fakt-shrnuti{display:flex;flex-wrap:wrap;gap:22px;margin:0 2px 12px;font-size:calc(13px * var(--ui-scale))}
.fakt-shrnuti strong{color:var(--text2);font-weight:600;margin-right:6px}
.fakt-ok{color:var(--green);font-weight:700}
.fakt-vlazne{color:#A16207;font-weight:700}
.fakt-spatne{color:var(--red);font-weight:700}
/* Mezisoučet za středisko v pohledu Středisko po měsících — musí se odlišit
   od běžného řádku i od celkového součtu v patičce. */
.fakt-mezisoucet td{font-weight:700;background:var(--surface2);border-top:1px solid var(--border)}
.fakt-varovani{margin:0 2px 12px;padding:9px 12px;border-radius:8px;background:var(--red-light);
  color:var(--text);font-size:calc(11.5px * var(--ui-scale));line-height:1.5}

/* Rozsah porady (js/meeting-rozsah.js) — za které firmy a období se porada
   připraví. Řádek s popiskem vlevo a tlačítky vpravo, aby šlo obojí přečíst
   jedním pohledem. */
.mtg-rozsah-b{padding:4px 2px 2px}
.mtg-rozsah-radek{display:flex;align-items:flex-start;gap:14px;margin:0 0 10px}
.mtg-rozsah-lbl{flex:0 0 74px;padding-top:6px;color:var(--text2);font-size:calc(12px * var(--ui-scale));font-weight:600}
.mtg-rozsah-radek .pl-quickco{flex:1 1 auto;display:flex;flex-wrap:wrap;gap:6px}
.mtg-rozsah-note{margin:6px 2px 0;color:var(--text2);font-size:calc(11.5px * var(--ui-scale));line-height:1.5}

/* Archiv připravených porad (js/meeting-archiv.js). Košík je decentní —
   mazání je vedlejší akce, hlavní je Načíst/Promítnout. */
.mtg-archiv-akce{display:flex;gap:6px;flex-wrap:wrap}
.mtg-archiv-del:hover{border-color:var(--red);color:var(--red)}
.mtg-archiv-note{margin:10px 2px 0;color:var(--text2);font-size:calc(11.5px * var(--ui-scale));line-height:1.5}

/* Doba inkasa (js/pz-inkaso-view.js). Karty nahoře, pruh rozdělení podle
   pásem zpoždění a sloupečky přímo v tabulce — čísla samotná se mezi řádky
   porovnávají špatně. Barvy pásem jsou stejné jako v časové struktuře
   pohledávek, aby obě stránky mluvily stejnou řečí. */
.ink-karty{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:0 0 16px}
/* Hlavní záložky stránky Doba inkasa. Odlišené od podzáložek uvnitř panelu
   (Po střediscích / Po zákaznících) — jsou větší a mají nad sebou linku,
   aby bylo poznat, že přepínají celou stránku, ne obsah jedné tabulky. */
.ink-zalozky{border-top:1px solid var(--border);padding-top:14px;margin-bottom:16px;gap:8px}
.ink-zalozky .fakt-tab{padding:8px 18px;font-size:calc(13px * var(--ui-scale))}
.ink-strany{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 0 4px}
.ink-strany-pop{font-size:12.5px;font-weight:650;color:var(--text2)}
.ink-strany button[disabled]{opacity:.45;cursor:default}
.dash-card.red{background:var(--red-light);border-color:var(--red)}
.ink-meta{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--text2);
  font-size:calc(11.5px * var(--ui-scale));align-items:center}
.ink-meta strong{color:var(--text);font-weight:600}
.ink-rozdeleni{padding:4px 2px 2px}
.ink-pruh{display:flex;height:26px;border-radius:7px;overflow:hidden;background:var(--surface2)}
.ink-seg{display:block;height:100%;min-width:2px}
.ink-prazdno{margin:14px 2px;color:var(--text2);font-size:calc(12.5px * var(--ui-scale));line-height:1.6}

/* ── řazení a hledání v tabulkách ───────────────────────────────────────
   Hlavička musí SAMA napovědět, že se na ni dá kliknout — jinak tu funkci
   nikdo nenajde. Kurzor + podbarvení při najetí, u aktivního sloupce navíc
   modrá linka dole, aby bylo bez čtení šipky vidět, podle čeho se řadí. */
.ink-radi th[data-sort]{cursor:pointer;user-select:none;white-space:nowrap}
.ink-radi th[data-sort]:hover{background:var(--blue-light)}
.ink-radi th[data-sort] i{font-style:normal;font-size:.85em;color:var(--blue)}
.ink-radi th.ink-th-on{color:var(--blue);box-shadow:inset 0 -2px 0 var(--blue)}
.ink-hledej{min-width:210px;max-width:280px}

/* ── souhrn měření ──────────────────────────────────────────────────────
   ŽLUTĚ, PROTOŽE TO MUSÍ SVÍTIT. Je to údaj o tom, jak spolehlivá jsou
   všechna ostatní čísla na stránce — kdyby splynul s textem, nikdo si
   nevšimne, že poslední snímek je týden starý. */
.ink-souhrn{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0 16px}
.ink-souhrn-k{flex:1 1 150px;min-width:150px;padding:10px 14px;border-radius:var(--radius);
  background:var(--yellow-light);border:1.5px solid var(--yellow)}
.ink-souhrn-k span{display:block;font-size:12px;font-weight:650;color:var(--yellow);
  text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}
.ink-souhrn-k b{display:block;font-size:22px;font-weight:700;color:var(--text);
  line-height:1.15;font-variant-numeric:tabular-nums}
.ink-souhrn-k i{display:block;font-style:normal;font-size:11.5px;color:var(--text2);margin-top:3px}
.ink-souhrn-zle{background:var(--red-light);border-color:var(--red)}
.ink-souhrn-zle span{color:var(--red)}
.ink-souhrn-zle b{color:var(--red)}

/* Záznam snímků — chybějící den musí být vidět i v tabulce, ne jen v kalendáři. */
.ink-snimky-tbl{margin-top:14px}
.ink-r-vik td{opacity:.55}
.ink-r-chybi td{background:var(--red-light)}
.ink-ano{color:#15803D}
.ink-ne{color:var(--red)}
.ink-vik{color:var(--text3)}

/* ── kalendář uložených snímků ──────────────────────────────────────────
   Jeden sloupeček = jeden den. Zelený má snímek, šedý je víkend,
   červený je pracovní den bez snímku — tam se dívej. */
.ink-dny{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 14px}
.ink-den{display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:34px;padding:5px 4px;border-radius:6px;font-size:12px;font-weight:650;
  border:1px solid var(--border);background:var(--surface2);color:var(--text2)}
.ink-den i{font-style:normal;font-size:10px;font-weight:600;opacity:.85;min-height:12px}
.ink-den-ok{background:var(--green-light);border-color:var(--green-border);color:#15803D}
.ink-den-vik{opacity:.45}
.ink-den-bez{background:var(--red-light);border-color:var(--red);color:var(--red)}

/* Buňka se sloupečkem: pruh a číslo VEDLE SEBE ve flexu. Číslo má pevné
   místo vpravo, pruh si bere zbytek — tím se nemůže stát, že delší popisek
   („+126 dní") přeteče přes pruh, jak by hrozilo u absolutního odsazení. */
.ink-tbl .ink-bunka{min-width:160px}
.ink-bunka-in{display:flex;align-items:center;gap:10px}
.ink-bar{position:relative;flex:1 1 auto;min-width:40px;height:11px;
  border-radius:4px;background:var(--surface2);display:block}
.ink-bar-fill{position:absolute;top:0;height:100%;border-radius:4px;min-width:2px}
/* Svislice = nula. Bez ní by u zpoždění nebylo poznat, kde končí „dřív"
   a začíná „po splatnosti". */
.ink-bar-nula{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--border)}
.ink-bar-val{flex:0 0 62px;text-align:right;
  font-size:calc(12px * var(--ui-scale));font-weight:600}
.ink-ok{color:var(--green)}
.ink-vlazne{color:#A16207}
.ink-spatne{color:var(--red)}
/* Sjednaná splatnost je kontext, ne hlavní číslo — potlačená, ať nesoupeří
   se skutečnou dobou inkasa vedle. Malý dovětek u otevřené částky (počet
   faktur) na vlastním řádku pod číslem. */
.ink-sjednano{color:var(--text2)}
.ink-poznamka{display:block;font-size:calc(10.5px * var(--ui-scale));font-weight:400;color:var(--text2)}

/* Bankovní kovenanty (js/kovenanty-view.js). Porušený kovenant má následky
   ve smlouvě — musí být vidět na první pohled, ne jen barvou čísla. */
.kov-varovani{margin:0 2px 14px;padding:9px 12px;border-radius:8px;background:var(--orange-light);
  border:1px solid var(--orange-border);font-size:calc(11.5px * var(--ui-scale));line-height:1.5}
.kov-err td{background:var(--red-light)}
.kov-warn td{background:var(--orange-light)}
.kov-popis{display:block;color:var(--text2);font-size:calc(11px * var(--ui-scale));
  font-weight:400;line-height:1.45;margin-top:3px}
.kov-hodnota{font-size:calc(14px * var(--ui-scale));font-weight:700}
.kov-rozpad{color:var(--text2);font-size:calc(11px * var(--ui-scale));line-height:1.5}
.kov-nepotvrzeno{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;
  background:var(--orange-light);border:1px solid var(--orange-border);
  font-size:calc(10px * var(--ui-scale));font-weight:600;white-space:nowrap}
.kov-nastaveni{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}

/* Vlastní šablona z této instalace (js/settings-sablony-view.js). Odlišená
   rámečkem — není to teorie pro obor, ale odzkoušené nastavení odsud. */
.sab-karta-vlastni{border-color:var(--green);box-shadow:0 0 0 1px var(--green) inset}
.sab-karta-vlastni .sab-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Demo režim — náhled a záznam generování (js/settings-demo-view.js).
   Náhled je odsazený rámečkem, aby bylo vidět, že to ještě není výsledek,
   jen předpověď toho, co z nastavení vyjde. */
.dmo-nahled{margin:14px 2px 0;padding:12px 14px;border-radius:10px;
  background:var(--bg2);border:1px solid var(--border)}
.dmo-nahled:empty{display:none}
.dmo-nahled-h{margin:0 0 8px;font-size:calc(12.5px * var(--ui-scale))}
.dmo-tab{width:100%}
.dmo-radek{cursor:pointer}
.dmo-radek:hover td{background:var(--bg2)}
.dmo-detail{padding:6px 2px 10px}
.dmo-detail-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.dmo-detail-g h4{margin:0 0 7px;font-size:calc(11.5px * var(--ui-scale))}
.dmo-parm{margin:0 0 10px 16px;padding:0;line-height:1.7;
  font-size:calc(11.5px * var(--ui-scale))}
.dmo-parm li{margin:0}

/* Historie odhadů roku (js/ctrl-forecast-verze.js). */
.fcv-uzavreno{display:block;font-size:calc(10px * var(--ui-scale));font-weight:400;color:var(--text2)}
.fcv-mazani{display:flex;flex-wrap:wrap;gap:6px;margin:10px 2px 0}

/* ── OSOBNÍ REPORT (js/report-pristup.js, js/report-store.js) ────────────────
   Styly se uplatní jen v souborech ve složce Reporty/, kde je window.FM_REPORT.
   V hlavní aplikaci se žádný z těchto prvků nevykreslí.

   Přihlašovací okno reportu záměrně NEMÁ vlastní styly — používá stejné třídy
   `auth-*` jako přihlášení do aplikace, aby vypadalo úplně stejně. */

/* Dokud není zadané heslo, stránka se ani nesmí ukázat pod překryvem —
   jinak by čísla blikla při načtení a závora by byla k ničemu. */
html.report-zamceno body > *:not(#reportBrana){visibility:hidden}
html.report-zamceno{overflow:hidden}

/* Pás nahoře — stejný princip jako demo pás: je fixed a stránka se o jeho
   výšku odsune, aby nepřekryl horní lištu s filtry. */
#reportPas{position:fixed;top:0;left:0;right:0;z-index:900;background:var(--blue-light);
  border-bottom:1px solid var(--blue-border);padding:5px 14px}
.rp-r1{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:calc(11px * var(--ui-scale));color:var(--text2)}
.rp-r1 strong{background:var(--blue);color:#fff;border-radius:5px;padding:1px 8px;
  font-size:calc(10px * var(--ui-scale));letter-spacing:1px}
.rp-sep{flex:1}
.rp-gen{color:var(--text3,var(--text2));opacity:.8}
body.report-rezim{padding-top:var(--report-pas-v,30px)}

/* Sloupce Heslo a Report v Administraci → Uživatelé (js/admin-users-view.js). */
.adm-report-info{display:block;color:var(--text2);margin-top:3px;
  font-size:calc(10px * var(--ui-scale))}
.adm-heslo-stav{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:4px}
.adm-heslo-stav .adm-tag,.adm-heslo-stav .adm-inherit{margin-left:0;white-space:nowrap}
/* Ve sloupci Heslo stojí štítek a „dle role“ text pod sebou — verzálky by
   je opticky rozpojily, takže se tady vypínají. */
.adm-heslo-stav .adm-tag{text-transform:none;font-size:calc(10px * var(--ui-scale))}

/* Okno „Heslo" (js/admin-users-view.js → openHesla). Heslo se ukazuje jen na
   vyžádání — .adm-pwd-txt je do kliknutí zakryté tečkami. */
.adm-pwd-akt{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px;
  font-size:calc(11.5px * var(--ui-scale));color:var(--text2)}
.adm-pwd-txt{cursor:pointer;user-select:all;padding:2px 7px;border-radius:5px;
  background:var(--bg);border:1px solid var(--border);letter-spacing:1px;
  font-size:calc(11.5px * var(--ui-scale))}
.adm-pwd-txt:hover{border-color:var(--blue)}
.adm-pwd-pozn{color:var(--text3)}
.adm-pwd-radek{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.adm-pwd-in{flex:0 0 260px;width:260px;font-family:var(--font-mono);letter-spacing:.5px}
.adm-pwd-eye.on{background:var(--blue-light);border-color:var(--blue);color:var(--blue)}
.adm-pwd-sila{min-height:16px;margin:6px 0 18px;font-size:calc(11px * var(--ui-scale));
  color:var(--text3)}
.adm-pwd-sila.yes{color:var(--green);font-weight:700}
.adm-pwd-sila.no{color:var(--red);font-weight:700}

/* Hlavní vypínač editace u uživatele (js/admin-users-view.js). Zelený = smí
   upravovat, šedý = jen prohlíží. Musí být vidět na první pohled. */
.adm-edit-on{background:var(--green-light)!important;border-color:var(--green)!important;
  color:var(--green)!important;font-weight:700}
.adm-edit-off{color:var(--text2)!important;font-weight:600}


/* ── Stavy účtů pro plán CF (js/cf-stavy-view.js) ───────────────────────── */
.cfs-rezim { display: flex; gap: 8px; align-items: center; }
.cfs-bar { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.cfs-stav { font-size: 13px; padding: 5px 11px; border-radius: 6px; }
.cfs-stav-ucto { background: #EEF3FB; color: #1B3A6B; }
.cfs-stav-vlastni { background: #FEF3C7; color: #92400E; }
.cfs-kdy { display: flex; gap: 7px; align-items: center; font-size: 13px; }
.cfs-ulozeno { font-size: 12px; color: #6B7280; }
.cfs-akce { display: flex; gap: 7px; margin-left: auto; }
.cfs-firma { margin-top: 14px; }
.cfs-tbl td, .cfs-tbl th { vertical-align: middle; }
.cfs-tbl .cfs-datum { font-size: 12px; color: #6B7280; white-space: nowrap; }
/* Barva řádku = banka (kód z čísla účtu), stejná napříč všemi firmami.
   BARVA BANKY JE JEDINÁ BARVA POZADÍ ŘÁDKU. Původně ji přebíjelo žluté
   podbarvení ručně zadaného stavu — jenže ručně zadané je při práci
   treasury skoro všechno, takže byla celá tabulka žlutá a barvy bank
   nesouhlasily. Ruční stav teď značí jen žlutý proužek u levého okraje,
   úvěrový účet šedý text — pozadí zůstává bance. */
.cfs-r.cfs-b-rb { background: #ECFDF5; }        /* Raiffeisenbank 5500 — světle zelená */
.cfs-r.cfs-b-kb { background: #FFF7ED; }        /* Komerční banka 0100 — světle oranžová */
.cfs-r.cfs-b-csob { background: #EFF6FF; }      /* ČSOB 0300 — světle modrá */
.cfs-r.cfs-b-cs { background: #F5F3FF; }        /* Česká spořitelna 0800 — světle fialová */
.cfs-r.cfs-b-2060 { background: #FDF2F8; }    /* kód banky 2060 — světle růžová */
.cfs-r.cfs-b-karty { background: #F0FDFA; }     /* firemní platební karty — světle tyrkysová */
[data-theme="dark"] .cfs-r.cfs-b-rb { background: #10331F; }
[data-theme="dark"] .cfs-r.cfs-b-kb { background: #3A2A14; }
[data-theme="dark"] .cfs-r.cfs-b-csob { background: #16283F; }
[data-theme="dark"] .cfs-r.cfs-b-cs { background: #2A2145; }
[data-theme="dark"] .cfs-r.cfs-b-2060 { background: #3A1B2C; }
[data-theme="dark"] .cfs-r.cfs-b-karty { background: #0F3330; }
/* Stavové značky bez vlastního pozadí — pozadí patří bance. */
.cfs-r.cfs-rucni td:first-child { box-shadow: inset 4px 0 0 var(--yellow); }
.cfs-r.cfs-uver { color: #9CA3AF; }
.cfs-r.cfs-uver td { color: #9CA3AF; }
[data-theme="dark"] .cfs-r.cfs-uver, [data-theme="dark"] .cfs-r.cfs-uver td { color: #6B7280; }
/* Účet bez rozpoznané banky zůstává na barvě panelu. */

.cfs-legenda { display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin: 0 0 12px; padding: 9px 14px; border: 1px solid var(--border);
  border-radius: 10px; background: var(--surface); font-size: 12px; color: var(--text2); }
.cfs-legenda b { color: var(--text); font-weight: 700; }
.cfs-leg-p { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; color: var(--text); }
.cfs-leg-p em { font-style: normal; color: var(--text2); font-size: 11px; }
.cfs-leg-b { width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--border); display: inline-block; }
.cfs-leg-b.cfs-b-rb { background: #ECFDF5; } .cfs-leg-b.cfs-b-kb { background: #FFF7ED; }
.cfs-leg-b.cfs-b-csob { background: #EFF6FF; } .cfs-leg-b.cfs-b-cs { background: #F5F3FF; }
.cfs-leg-b.cfs-b-2060 { background: #FDF2F8; } .cfs-leg-b.cfs-b-karty { background: #F0FDFA; }
.cfs-leg-pozn { font-size: 11px; color: var(--text2); margin-left: auto; }
.cfs-in { width: 118px; text-align: right; padding: 3px 6px; }
.cfs-in-kdy { width: 158px; padding: 3px 6px; font-size: 12px; }
.cfs-prazdno { color: #D1D5DB; }
.cfs-plus { color: #16A34A; font-weight: 600; }
.cfs-minus { color: #DC2626; font-weight: 600; }
.cfs-znak { font-size: 11.5px; color: #9CA3AF; }

.cfs-krok { display: inline-flex; gap: 4px; }
.cfs-pm { padding: 3px 9px; font-size: 12px; border: 1px solid #CBD5E1; background: #fff;
  border-radius: 6px; cursor: pointer; color: #1B3A6B; white-space: nowrap; }
.cfs-pm:hover { background: #EEF3FB; border-color: #3A6DB5; }

.cfg-typsum td{background:var(--surface2)}
.cfg-typsum td.cfg-nazev b{font-size:12.5px}
.cfg-typsum td.cfg-nazev span{display:block;font-size:10.5px;color:var(--text3)}

/* potvrzeni zapisu bunky planu CF — odezva musi byt okamzita */
.cfg-cell{position:relative}
td.cfg-ok{background:#DCFCE7 !important}
td.cfg-chyba{background:#FEE2E2 !important}
.cfg-ulozeno{position:absolute;left:5px;bottom:-1px;font-size:8.5px;line-height:1;
  font-weight:700;letter-spacing:.2px;pointer-events:none;z-index:3}
td.cfg-ok .cfg-ulozeno{color:#15803D}
td.cfg-chyba .cfg-ulozeno{color:#DC2626}
/* bunka s rucne zadanou castkou je videt i bez najeti mysi */
.cfg-cell.cfg-plno input{background:#FFF7E0;border-color:#F5A623;font-weight:650}

/* pocatecni stav penez — odkud plan startuje */
.cfg-pocatek td{background:#EEF3FB;color:var(--blue);font-weight:650}
.cfg-pocatek td.cfg-nazev{font-weight:700}
.cfg-pocatek-info{font-size:11.5px;color:var(--text2);margin-top:3px;max-width:820px}

/* odkud plan startuje — velke cislo, zelene/cervene podle znamenka */
.cfg-souhrn .panel-hdr{align-items:flex-start}
.cfg-pocatek-box{margin-left:auto;text-align:right;padding:7px 15px;border-radius:9px;
  background:#DCFCE7;border:1.5px solid #16A34A;white-space:nowrap}
.cfg-pocatek-box span{display:block;font-size:10.5px;font-weight:600;color:#166534;
  text-transform:uppercase;letter-spacing:.4px}
.cfg-pocatek-box b{display:block;font-size:21px;font-weight:800;color:#15803D;line-height:1.2}
.cfg-pocatek-box.cfg-pocatek-zap{background:#FEE2E2;border-color:#DC2626}
.cfg-pocatek-box.cfg-pocatek-zap span{color:#991B1B}
.cfg-pocatek-box.cfg-pocatek-zap b{color:#DC2626}

/* Detailni prehled bank. uctu — ucetni stav vs. stav z bankovnictvi */
.uc-prehled-tbl th .uc-th2{display:block;font-weight:400;font-size:9.5px;color:var(--text3);margin-top:1px}
.uc-prehled-tbl th.uc-th-ib{background:#FFF7E0}
.uc-prehled-tbl td.uc-ib{background:#FFFBEB}
.uc-prehled-tbl td.uc-bez{color:#C7CDD6}
.uc-prehled-tbl tfoot tr.uc-soucet td{background:var(--blue);color:#fff;font-weight:750;
  font-size:12.5px;padding:8px;border-top:2px solid var(--blue)}
.uc-prehled-tbl tfoot tr.uc-soucet td.uc-ib{background:#16305a}
.uc-prehled-tbl tfoot tr.uc-soucet td.uc-plus{color:#86EFAC}
.uc-prehled-tbl tfoot tr.uc-soucet td.uc-zap{color:#FFB4B4}

/* Uverovy ucet — nejsou to penize, ale cerpany uver. At radek vycniva. */
.dash-table tbody tr.uc-uver td{background:#FEF0F2}
.dash-table tbody tr.uc-uver td:first-child{box-shadow:inset 3px 0 0 #F0A0AC}
/* prvni sloupec je pripnuty a ma vlastni pozadi — musi se prebit */
.scroll-x > table.dash-table > tbody > tr.uc-uver > td:first-child{background-color:#FEF0F2}
[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.uc-uver > td:first-child{background-color:#3A2028}
.uc-prehled-tbl tbody tr.uc-uver td.uc-ib{background:#FBE6EA}
.uc-prehled-tbl tbody tr.uc-uver td.uc-bez{color:#D9AAB2}
tr.uc-uver .uc-typ{background:#FBD5DB;color:#9F1239;border-color:#F3B6C0}
[data-theme="dark"] .dash-table tbody tr.uc-uver td{background:#3A2028}
[data-theme="dark"] .uc-prehled-tbl tbody tr.uc-uver td.uc-ib{background:#472430}
[data-theme="dark"] tr.uc-uver .uc-typ{background:#5C2836;color:#FFC9D2;border-color:#7A3546}
.uc-vyber-radek.uc-uver-radek{background:#FEF0F2;border-radius:6px}
.uc-vyber-radek.uc-uver-radek .uc-typ{background:#FBD5DB;color:#9F1239;border-color:#F3B6C0}
[data-theme="dark"] .uc-vyber-radek.uc-uver-radek{background:#3A2028}

/* Stavy uctu pro plan CF — ucetnictvi vs. vlastni stavy a rozdil */
.cfs-souhrn{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}
.cfs-kostka{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 15px}
.cfs-kostka span{display:block;font-size:10.5px;font-weight:700;color:var(--text3);
  text-transform:uppercase;letter-spacing:.4px}
.cfs-kostka b{display:block;font-size:22px;font-weight:800;color:var(--blue);line-height:1.25;margin-top:2px}
.cfs-kostka i{display:block;font-size:11px;color:var(--text2);font-style:normal;margin-top:1px}
.cfs-kostka-akt{border-color:#F5A623;background:#FFFBEB}
.cfs-kostka-roz.cfs-plus-box{border-color:#16A34A;background:#DCFCE7}
.cfs-kostka-roz.cfs-plus-box b{color:#15803D}
.cfs-kostka-roz.cfs-minus-box{border-color:#DC2626;background:#FEE2E2}
.cfs-kostka-roz.cfs-minus-box b{color:#DC2626}
@media(max-width:900px){.cfs-souhrn{grid-template-columns:1fr}}

/* Akcni tlacitka v hlavicce firmy — svetle modra, at je videt, ze se s nimi
   ma pracovat. Dosud splyvala s okolim a hledala se. */
.cfg-firma-panel .panel-tools .btn.secondary{
  background:#E8F1FD;border-color:#7FA8DC;color:#134074;font-weight:650}
.cfg-firma-panel .panel-tools .btn.secondary:hover{
  background:#D3E4F9;border-color:#3A6DB5}
/* Dopočítat mzdy je jedno z akčních tlačítek řady — stejná světle modrá
   jako Návrhy z účetnictví a Návrh tržeb, ať tvoří jednu skupinu. */
.cfg-firma-panel .panel-tools .btn.primary{
  background:#E8F1FD;border-color:#7FA8DC;color:#134074;font-weight:650}
.cfg-firma-panel .panel-tools .btn.primary:hover{
  background:#D3E4F9;border-color:#3A6DB5}

/* Hlavicka souhrnu a firem — nazev a popis o kus vetsi, at se cte */
.cfg-souhrn .panel-hdr h2,.cfg-firma-panel .panel-hdr h2{font-size:16px}
.cfg-firma-panel .panel-hdr p{font-size:12.5px;color:var(--text2)}

/* ── Planovani CF: graf 2/3 + dlazdice 1/3 ─────────────────────────────── */
/* Dlazdice jsou uzke — nesou ctyri cisla, ne tabulku. Zbytek sirky patri
   grafu, ktery se z nej cte. */
.cfpl-hlavni{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;
  align-items:stretch;margin-bottom:14px}
.cfpl-hlavni>.cfpl-panel-graf{margin:0;min-width:0;display:flex;flex-direction:column}
/* SLOUPEC, ne řádek: legenda patří POD graf. S výchozím `row` se vedle něj
   postavila a graf se o její šířku zúžil. */
.cfpl-hlavni .cfpl-graf-b{flex:1;display:flex;flex-direction:column;justify-content:stretch;
  min-height:0;padding:4px 8px 2px}
.cfpl-hlavni .cfpl-leg{flex:0 0 auto;width:100%;padding:2px 0 4px}
/* Hlavicka „Vyvoj likvidity" co nejtesneji — misto ma dostat graf, ne nadpis. */
.cfpl-hlavni>.cfpl-panel-graf .panel-hdr{padding:8px 14px 7px}
.cfpl-hlavni>.cfpl-panel-graf .panel-hdr h2{font-size:14px;font-weight:700;color:var(--blue)}
.cfpl-hlavni>.cfpl-panel-graf .panel-hdr p{font-size:10.5px;line-height:1.35;margin-top:1px}
/* Graf ma vyplnit vysku sloupce s dlazdicemi, ne se scvrknout na prouzek.
   viewBox si pomer drzi sam, staci mu dat vysku. */
.cfpl-hlavni .cfpl-graf{width:100%;height:auto;flex:1;min-height:0;max-height:none}
.cfpl-hlavni>.cfpl-panel-graf .panel-b{padding-top:6px}
/* dlazdice pod sebou v pravem sloupci */
.cfpl-hlavni>.cfpl-kpi{display:flex;flex-direction:column;gap:10px;margin:0}
.cfpl-hlavni>.cfpl-kpi .cfpl-k{flex:1;display:flex;flex-direction:column;justify-content:center;margin:0}
@media(max-width:1180px){
  .cfpl-hlavni{grid-template-columns:1fr}
  .cfpl-hlavni>.cfpl-kpi{display:grid;grid-template-columns:repeat(2,1fr)}
}
/* Dlazdice nesou hlavni cisla stranky — pismo dvojnasobne proti puvodnimu. */
.cfpl-hlavni>.cfpl-kpi .cfpl-k{padding:11px 14px}
.cfpl-hlavni>.cfpl-kpi .cfpl-k span{font-size:13px;line-height:1.25;white-space:normal;font-weight:700}
.cfpl-hlavni>.cfpl-kpi .cfpl-k b{font-size:30px;line-height:1.15;letter-spacing:-.3px}
/* Podřádek dlaždice nese DATUM — kdy nastane dno, k jakému dni je stav.
   To je informace, kvůli které se člověk na dlaždici dívá, ne popiska. */
.cfpl-hlavni>.cfpl-kpi .cfpl-k i{font-size:15px;line-height:1.3;white-space:normal;
  font-weight:700;color:var(--blue)}


/* ── Stavy uctu: dva klicove prepinace rezimu ──────────────────────────── */
.cfs-rezim .btn{font-size:14px;font-weight:750;padding:9px 18px;border-width:2px}
.cfs-rezim .btn:not(.secondary){background:#1B3A6B;border-color:#1B3A6B;color:#fff}
.cfs-rezim .btn.secondary{background:#EEF3FB;border-color:#7FA8DC;color:#134074}
.cfs-rezim .btn.secondary:hover{background:#D3E4F9;border-color:#3A6DB5}

/* Ulozit zadana data — oranzove, po ulozeni zelene s casem */
.cfs-ulozit{display:flex;align-items:center;gap:10px;margin-left:auto}
.cfs-ulozit .btn{font-size:14px;font-weight:750;padding:9px 18px;border-width:2px;
  background:#F5A623;border-color:#D98C0A;color:#3B2200}
.cfs-ulozit .btn:hover{background:#E39612}
.cfs-ulozit .btn[disabled]{background:#DCFCE7;border-color:#16A34A;color:#15803D;cursor:default}
.cfs-ulozeno-info{font-size:12px;font-weight:650;color:#15803D;white-space:nowrap}
.cfs-neulozeno{background:#FEF3C7;border:2px solid #F5A623;border-radius:9px;
  padding:9px 15px;margin:10px 0;font-size:13.5px;color:#7A4A00;font-weight:600}
.cfs-neulozeno b{color:#B45309}

/* Dve zalozky, na kterych se likvidita planuje. Jemne oranzove podbarveni
   v menu, at se najdou na prvni pohled. */
.sb-subnav a[data-nav="cf-polozky"],
.sb-subnav a[data-nav="plan-archiv"],
.sb-subnav a[data-nav="cashflow-planning"]{background:#FFF4DF;border-left:3px solid #F5A623;
  font-weight:650;color:#7A4A00}
.sb-subnav a[data-nav="cf-polozky"] .dot,
.sb-subnav a[data-nav="plan-archiv"] .dot,
.sb-subnav a[data-nav="cashflow-planning"] .dot{background:#F5A623}
.sb-subnav a[data-nav="cf-polozky"]:hover,
.sb-subnav a[data-nav="plan-archiv"]:hover,
.sb-subnav a[data-nav="cashflow-planning"]:hover{background:#FFE9C2}
.sb-subnav a[data-nav="cf-polozky"].active,
.sb-subnav a[data-nav="plan-archiv"].active,
.sb-subnav a[data-nav="cashflow-planning"].active{background:#F5A623;color:#3B2200}
.sb-subnav a[data-nav="cf-polozky"].active .dot,
.sb-subnav a[data-nav="cashflow-planning"].active .dot{background:#3B2200}

/* Minigraf firmy — vetsi, at se do nej vejdou hodnoty */
.cfpl-spark-svg{width:100%;height:auto;display:block}

/* Skupina „Planovani a treasury" — lehce modre podbarveni jen na te hlavni
   polozce; podzalozky uvnitr si nechavaji svoje (oranzove) znaceni. */
.sb-item[data-tree-toggle="cfPlanSubnav"]{background:#E8F1FD;border-left:3px solid #3A6DB5;
  color:#134074;font-weight:650}
.sb-item[data-tree-toggle="cfPlanSubnav"]:hover{background:#D3E4F9}
.sb-item[data-tree-toggle="cfPlanSubnav"].expanded{background:#D3E4F9}

/* Souhrn planu: pri 13 tydnech + sloupci Po splatnosti tabulka pretece
   sirku stranky. Bez vlastniho posuvniku se prava cast schovala za okraj
   a nedalo se k ni dostat. */
.cfpl-tbl{overflow-x:auto;overflow-y:visible;max-width:100%}
.cfpl-tbl table{min-width:max-content}
.cfpl-tbl td.cfpl-popis,.cfpl-tbl th.cfpl-popis{position:sticky;left:0;z-index:4;
  background:var(--surface);box-shadow:1px 0 0 var(--border2)}
.cfpl-tbl thead th.cfpl-popis{z-index:6}
.cfpl-r-kumul td.cfpl-popis{background:var(--blue)}
.cfpl-r-pocatek td.cfpl-popis,.cfpl-r-tok td.cfpl-popis,.cfpl-r-volna td.cfpl-popis{background:var(--surface2)}

/* Sbaleni skupiny pritoku/odtoku v planu CF po firmach */
.cfg-sbal{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;
  margin-right:6px;border:1px solid currentColor;border-radius:4px;background:transparent;
  font-size:13px;font-weight:800;line-height:1;cursor:pointer;color:inherit;padding:0}
.cfg-sbal:hover{background:rgba(0,0,0,.08)}
.cfg-hlava.cfg-zavreno td{font-weight:700}

/* ══ ZMĚNY A NÁKLADY ═══════════════════════════════════════════════════════
 * Vlastní barva pásu (tyrkysová) — ne fialová jako plán CF a ne oranžová jako
 * hranice stáří. Na poradě se přepíná mezi stránkami a barva pásu je první
 * vodítko, na které se člověk dívá. */
.zm-bar{margin:0 0 14px;padding:11px 14px;border-radius:var(--radius);
  background:#F0FDFA;border:.5px solid #99F6E4;border-left:3px solid #0D9488}
.zm-bar-radek{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.zm-bar-radek + .zm-bar-radek{margin-top:10px;padding-top:10px;border-top:1px dashed #99F6E4}
.zm-bar-nadpis{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.3px;color:#0F766E}
.zm-mesic{font-family:var(--font-sans);font-size:13.5px;font-weight:650;color:#134E4A;
  padding:6px 10px;border-radius:8px;border:1px solid #5EEAD4;background:#fff;cursor:pointer}
.zm-varovani{font-size:12px;font-weight:650;color:#92400E;background:#FEF3C7;
  border:1px solid #FCD34D;border-radius:999px;padding:3px 10px}
.zm-merge{font-size:12.5px}
.zm-merge.on{background:#0D9488;border-color:#0D9488;color:#fff}
.zm-baze-volby{display:flex;gap:7px;flex-wrap:wrap}
.zm-baze-btn{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:6px 12px;
  border-radius:9px;border:1px solid #99F6E4;background:#fff;cursor:pointer;
  font-family:var(--font-sans);text-align:left}
.zm-baze-btn:hover{border-color:#2DD4BF;background:#F7FFFD}
.zm-baze-nazev{font-size:12.5px;font-weight:700;color:#115E59}
.zm-baze-pod{font-size:10.5px;font-weight:600;color:#4B8C86}
.zm-baze-btn.on{background:#0D9488;border-color:#0D9488;box-shadow:0 1px 6px rgba(13,148,136,.3)}
.zm-baze-btn.on .zm-baze-nazev,.zm-baze-btn.on .zm-baze-pod{color:#fff}
.zm-baze-veta{font-size:12.5px;color:#33635E;flex:1;min-width:220px}
.zm-baze-veta b{color:#0F766E}
[data-theme="dark"] .zm-bar{background:#0F2A28;border-color:#1F5F58;border-left-color:#14B8A6}
[data-theme="dark"] .zm-bar-radek + .zm-bar-radek{border-top-color:#1F5F58}
[data-theme="dark"] .zm-bar-nadpis,[data-theme="dark"] .zm-baze-veta b{color:#5EEAD4}
[data-theme="dark"] .zm-mesic,[data-theme="dark"] .zm-baze-btn{background:var(--surface2);border-color:#1F5F58}
[data-theme="dark"] .zm-mesic,[data-theme="dark"] .zm-baze-nazev{color:#99F6E4}
[data-theme="dark"] .zm-baze-pod{color:#7FC5BE}
[data-theme="dark"] .zm-baze-veta{color:#A5CFCB}
[data-theme="dark"] .zm-varovani{background:#4A3415;border-color:#8A6A20;color:#FCD9A0}

/* Matice: barva = síla změny vůči největší změně v tabulce, ne pevná mez.
 * Text zůstává tmavý ve všech stupních — světle šedé číslo na barevném
 * podkladu se v tabulce nedá číst. */
.zm-table td.zm-amt,.zm-table th.zm-amt{text-align:right;white-space:nowrap}
.zm-table .zm-lbl,.zm-table .zm-lbl-h{text-align:left;font-weight:700;color:var(--text);white-space:nowrap}
.zm-table th{font-size:11.5px;line-height:1.25;color:var(--text2);font-weight:700;vertical-align:bottom}
.zm-table th.zm-th-vynos{color:#0F766E}
.zm-table th.zm-th-sum,.zm-table th.zm-th-ebitda{border-left:2px solid var(--border)}
.zm-table td.zm-sum,.zm-table td.zm-ebitda{border-left:2px solid var(--border);font-weight:700}
.zm-table tr.zm-total td{border-top:2px solid var(--text3);font-weight:800;background:var(--surface2)}
.zm-cell-btn{font:inherit;color:inherit;background:none;border:0;padding:2px 3px;cursor:pointer;
  border-radius:5px;font-variant-numeric:tabular-nums}
.zm-cell-btn:hover{outline:1.5px solid var(--blue)}
.zm-spatne{color:#B91C1C}
.zm-dobre{color:#15803D}
td.zm-h1.zm-spatne{background:#FEF2F2}
td.zm-h2.zm-spatne{background:#FEE2E2}
td.zm-h3.zm-spatne{background:#FECACA}
td.zm-h4.zm-spatne{background:#FCA5A5}
td.zm-h1.zm-dobre{background:#F0FDF4}
td.zm-h2.zm-dobre{background:#DCFCE7}
td.zm-h3.zm-dobre{background:#BBF7D0}
td.zm-h4.zm-dobre{background:#86EFAC}
td.zm-h3.zm-spatne .zm-cell-btn,td.zm-h4.zm-spatne .zm-cell-btn,
td.zm-h3.zm-dobre .zm-cell-btn,td.zm-h4.zm-dobre .zm-cell-btn{color:#111827;font-weight:700}
.zm-bez{color:var(--text3)}
.zm-bez-plan{font-size:10px;font-weight:700;background:#E5E7EB;color:#4B5563;border-radius:999px;padding:1px 6px}
[data-theme="dark"] .zm-spatne{color:#FCA5A5}
[data-theme="dark"] .zm-dobre{color:#86EFAC}
[data-theme="dark"] td.zm-h1.zm-spatne{background:#3A1414}
[data-theme="dark"] td.zm-h2.zm-spatne{background:#4E1919}
[data-theme="dark"] td.zm-h3.zm-spatne{background:#651F1F}
[data-theme="dark"] td.zm-h4.zm-spatne{background:#7F2626}
[data-theme="dark"] td.zm-h1.zm-dobre{background:#0E2A19}
[data-theme="dark"] td.zm-h2.zm-dobre{background:#123821}
[data-theme="dark"] td.zm-h3.zm-dobre{background:#16482A}
[data-theme="dark"] td.zm-h4.zm-dobre{background:#1B5C34}
[data-theme="dark"] td.zm-h3.zm-spatne .zm-cell-btn,[data-theme="dark"] td.zm-h4.zm-spatne .zm-cell-btn,
[data-theme="dark"] td.zm-h3.zm-dobre .zm-cell-btn,[data-theme="dark"] td.zm-h4.zm-dobre .zm-cell-btn{color:#F8FAFC}
[data-theme="dark"] .zm-bez-plan{background:#334155;color:#CBD5E1}
[data-theme="dark"] .zm-table th.zm-th-vynos{color:#5EEAD4}

/* Souhrnné karty nad tabulkou driverů. */
.zm-souhrn{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px}
.zm-souhrn-karta{background:var(--surface2);border:.5px solid var(--border);border-radius:var(--radius);padding:12px 14px}
.zm-sk-popis{display:block;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text2)}
.zm-sk-cislo{display:block;font-size:24px;font-weight:700;letter-spacing:-.5px;line-height:1.2;margin:3px 0;color:var(--text)}
.zm-sk-pod{display:block;font-size:11.5px;color:var(--text2);line-height:1.4}

/* Drivery: tabulka „čím to bylo". */
.zm-drv-table td,.zm-drv-table th{vertical-align:middle}
.zm-drv-table .zm-amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.zm-drv-poradi{width:34px;color:var(--text2);font-weight:700;text-align:right}
.zm-drv-firma{font-weight:700;white-space:nowrap}
.zm-drv-kat{color:var(--text2);white-space:nowrap}
.zm-drv-ucet{min-width:220px}
.zm-drv-delta{font-weight:750}
.zm-drv-kum{text-align:right;color:var(--text2);white-space:nowrap}
.zm-bar-obal{display:inline-block;width:88px;height:9px;border-radius:5px;background:var(--surface2);
  border:.5px solid var(--border);overflow:hidden;vertical-align:middle}
.zm-bar-vypln{display:block;height:100%;border-radius:5px}
.zm-bar-spatne{background:#DC2626}
.zm-bar-dobre{background:#16A34A}
.zm-bar-cislo{font-size:11.5px;color:var(--text2);margin-left:7px;font-variant-numeric:tabular-nums}
.zm-drv-kdo{font:inherit;font-size:11.5px;font-weight:650;padding:3px 9px;border-radius:7px;
  border:1px solid var(--border);background:var(--surface);color:var(--text2);cursor:pointer;white-space:nowrap}
.zm-drv-kdo:hover{border-color:var(--blue);color:var(--blue)}
.zm-drv-open td{background:var(--surface2)}
.zm-drv-detail td{padding:0 0 10px}
.zm-kdo{padding:12px 14px;background:var(--surface2);border:.5px solid var(--border);border-radius:var(--radius)}
.zm-kdo-nadpis{font-size:12.5px;font-weight:750;color:var(--text);margin-bottom:8px}
.zm-kdo-table td,.zm-kdo-table th{font-size:12px}
.zm-kdo-table .zm-amt{text-align:right;white-space:nowrap}
.zm-kdo-pozn{font-size:11.5px;color:var(--text2);margin-top:7px}
.zm-novy{font-size:10.5px;font-weight:700;background:#DBEAFE;color:#1D4ED8;border-radius:999px;padding:1px 7px}
.zm-tag-skupina{font-size:10px;font-weight:700;background:#EDE9FE;color:#5B21B6;border-radius:999px;padding:1px 6px}
[data-theme="dark"] .zm-novy{background:#1E3A5F;color:#BFDBFE}
[data-theme="dark"] .zm-tag-skupina{background:#3A2A5F;color:#DDD6FE}

/* Dodavatelé a anomálie. */
.zm-pokryti{font-size:12.5px;color:var(--text2);background:var(--surface2);border:.5px solid var(--border);
  border-radius:var(--radius);padding:8px 12px;margin-bottom:14px}
.zm-pokryti-nizke{background:#FEF3C7;border-color:#FCD34D;color:#7C2D12;font-weight:600}
[data-theme="dark"] .zm-pokryti-nizke{background:#4A3415;border-color:#8A6A20;color:#FCD9A0}
.zm-blok{margin-bottom:22px}
.zm-blok-h{font-size:14.5px;font-weight:750;color:var(--text);margin:0 0 8px}
.zm-blok-pod{display:block;font-size:12px;font-weight:500;color:var(--text2);margin-top:3px}
.zm-dod-table td,.zm-dod-table th{font-size:12.5px;vertical-align:middle}
.zm-dod-table .zm-amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.zm-dod-table .zm-lbl{font-weight:700;color:var(--text)}
.zm-dod-firmy,.zm-dod-mesicu,.zm-dod-doklad{color:var(--text2);white-space:nowrap;font-size:11.5px}
.zm-dod-popis,.zm-dod-cteni{color:var(--text2);font-size:11.5px}
.zm-tag-fix{font-size:10px;font-weight:700;background:#DBEAFE;color:#1D4ED8;border-radius:999px;padding:1px 7px}
.zm-tag-jednor{font-size:10px;font-weight:700;background:#F3F4F6;color:#4B5563;border-radius:999px;padding:1px 7px}
[data-theme="dark"] .zm-tag-fix{background:#1E3A5F;color:#BFDBFE}
[data-theme="dark"] .zm-tag-jednor{background:#334155;color:#CBD5E1}
/* TOP 5 úspor — karty, ne tabulka: u každé je potřeba vidět i větu o tom,
   jak se to spočítalo, a ta se do buňky nevejde. */
.zm-uspory{display:flex;flex-direction:column;gap:11px}
.zm-usp-karta{display:flex;align-items:stretch;gap:14px;background:var(--surface);border:.5px solid var(--border);
  border-left:3px solid var(--orange);border-radius:var(--radius);padding:12px 14px}
.zm-usp-poradi{font-size:26px;font-weight:800;color:var(--text3);min-width:26px;line-height:1}
.zm-usp-telo{flex:1;min-width:0}
.zm-usp-typ{font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.3px;color:var(--orange)}
.zm-usp-kdo{font-size:14.5px;font-weight:700;color:var(--text);margin:2px 0}
.zm-usp-cislo{font-size:12.5px;color:var(--text);font-variant-numeric:tabular-nums}
.zm-usp-jak{font-size:11.5px;color:var(--text2);margin-top:5px;line-height:1.45}
.zm-usp-dopad{text-align:right;min-width:130px;display:flex;flex-direction:column;justify-content:center}
.zm-usp-dopad span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text2)}
.zm-usp-dopad b{font-size:20px;font-weight:750;color:var(--text);white-space:nowrap}

/* Most měsíc → měsíc. */
:root{--zm-most-suma:#334155;--zm-most-plus:#16A34A;--zm-most-minus:#DC2626}
[data-theme="dark"]{--zm-most-suma:#94A3B8;--zm-most-plus:#22C55E;--zm-most-minus:#EF4444}
.zm-most-prep{margin:0 0 14px}
.zm-most-graf{width:100%;margin-bottom:16px}
.zm-most-graf svg{width:100%;height:auto;display:block}
.zm-most-hodnota{font-size:11.5px;font-weight:750;fill:var(--text);text-anchor:middle;font-family:var(--font-sans)}
.zm-most-popis{font-size:10.5px;fill:var(--text2);text-anchor:middle;font-family:var(--font-sans)}
.zm-most-osa{font-size:11px;fill:var(--text2);font-family:var(--font-sans)}
.zm-most-spoj{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3}
.zm-most-nula{stroke:var(--border);stroke-width:1}
.zm-most-table{max-width:760px}
.zm-most-table .zm-amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.zm-most-table .zm-lbl{font-weight:600;color:var(--text)}
.zm-most-suma-radek td{font-weight:800;background:var(--surface2);border-top:1.5px solid var(--text3)}

/* Dlaždice „Co se změnilo" na Finančním přehledu. */
.zmdl-veta{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:0 0 12px;margin-bottom:10px;
  border-bottom:1px solid var(--border)}
.zmdl-veta-popis{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text2)}
.zmdl-veta-cislo{font-size:23px;font-weight:750;letter-spacing:-.5px}
.zmdl-veta-pod{font-size:12px;color:var(--text2)}
.zmdl-firma{font-weight:700;color:var(--text);min-width:52px}
.zmdl-popis{flex:1;min-width:0;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zmdl-cislo{font-weight:700;white-space:nowrap;min-width:76px;text-align:right;font-variant-numeric:tabular-nums}

/* Srovnávací čipy na KPI kartách Finančního přehledu. */
.kpi-cipy{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:5px 0 2px}
.kpi-cip{font-size:11px;font-weight:750;border-radius:999px;padding:2px 8px;white-space:nowrap;cursor:help}
.kpi-cip-ok{background:#DCFCE7;color:#15803D}
.kpi-cip-zle{background:#FEE2E2;color:#B91C1C}
.kpi-cip-legenda{font-size:10.5px;color:var(--text2)}
[data-theme="dark"] .kpi-cip-ok{background:#14532D;color:#BBF7D0}
[data-theme="dark"] .kpi-cip-zle{background:#5C1D1D;color:#FECACA}

/* ── Legenda „jak to číst" ────────────────────────────────────────────────
 * Jeden proužek nad každou tabulkou i grafem. Bez něj je barevná matice jen
 * tapeta: nikde jinde se nedozvíte, že sytost znamená velikost změny a že se
 * porovnává s maximem v TÉTO tabulce, ne s pevnou hranicí. */
.zm-legenda{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 12px;
  padding:8px 13px;border-radius:var(--radius);background:var(--surface2);
  border:.5px solid var(--border);font-size:12px;color:var(--text)}
.zm-leg-cast{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.zm-leg-cast b{font-weight:750}
.zm-leg-tiche{color:var(--text2);white-space:normal}
.zm-leg-skala{display:inline-flex;gap:2px}
.zm-leg-skala i{width:15px;height:11px;border-radius:2px;display:inline-block;border:.5px solid var(--border)}
.zm-leg-body{width:11px;height:11px;border-radius:3px;display:inline-block}
.zm-leg-suma{background:var(--zm-most-suma)}
.zm-leg-plus{background:var(--zm-most-plus)}
.zm-leg-minus{background:var(--zm-most-minus)}

/* Matice: první sloupec zůstává vidět i při vodorovném rolování, mezi výnosy
   a náklady je dělicí čára a číslice mají stejnou šířku, aby se sloupce daly
   porovnávat okem. */
.zm-table{min-width:100%}
.zm-table td,.zm-table th{padding-top:7px;padding-bottom:7px}
.zm-table td.zm-amt{font-variant-numeric:tabular-nums;font-size:12.5px}
.zm-table th.zm-amt{padding-left:8px;padding-right:8px;max-width:110px;white-space:normal}
.zm-table .zm-lbl,.zm-table .zm-lbl-h{position:sticky;left:0;z-index:2;background:var(--surface);
  box-shadow:1px 0 0 var(--border)}
.zm-table tr.zm-total .zm-lbl{background:var(--surface2)}
.zm-table th.zm-th-del,.zm-table td.zm-td-del{border-left:1.5px solid var(--border)}
.zm-table tbody tr:hover td{background:var(--surface2)}
.zm-table tbody tr:hover td.zm-lbl{background:var(--surface2)}

/* Most: graf se na širokém monitoru neroztahuje do nekonečna — vodopád přes
   celou šířku 4K obrazovky se čte hůř než vyvážený blok uprostřed. */
.zm-most-graf{max-width:1180px}
.zm-most-table{margin-top:4px}
.zm-most-popis-suma{font-weight:750;fill:var(--text)}

/* ── Krokový pruh Změn a nákladů ──────────────────────────────────────────
 * Čtyři záložky nad týmiž daty vypadají v menu jako čtyři nesouvisející
 * stránky. Pruh ukazuje pořadí otázek (o kolik → kde → proč → u koho)
 * a kde v něm člověk právě je. */
.zm-kroky{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 12px}
.zm-krok{display:flex;align-items:center;gap:10px;padding:9px 13px;border-radius:11px;
  border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;
  font-family:var(--font-sans);transition:border-color .12s,background .12s;min-width:0}
.zm-krok:hover{border-color:var(--blue);background:var(--surface2)}
.zm-krok-cislo{flex:none;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;
  background:var(--surface2);color:var(--text2);font-size:12px;font-weight:800}
.zm-krok-text{display:flex;flex-direction:column;min-width:0}
.zm-krok-text b{font-size:13px;font-weight:700;color:var(--text);line-height:1.25}
.zm-krok-text i{font-style:normal;font-size:11px;color:var(--text2);line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zm-krok.on{background:var(--blue);border-color:var(--blue);
  box-shadow:0 1px 7px rgba(27,58,107,.24)}
.zm-krok.on .zm-krok-cislo{background:rgba(255,255,255,.2);color:#fff}
.zm-krok.on .zm-krok-text b{color:#fff}
.zm-krok.on .zm-krok-text i{color:#C7D6F5}
[data-theme="dark"] .zm-krok.on{background:#1E3A8A;border-color:#1E3A8A}

/* Kotevní čísla — tatáž trojice na všech čtyřech záložkách. */
.zm-kotva{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:0 0 14px;
  padding:11px 16px;border-radius:var(--radius);background:var(--surface);
  border:.5px solid var(--border);box-shadow:var(--shadow)}
.zm-kot-obdobi{display:flex;flex-direction:column;min-width:190px}
.zm-kot-mesic{font-size:15px;font-weight:750;color:var(--text);letter-spacing:-.2px;text-transform:capitalize}
.zm-kot-proti{font-size:11.5px;color:var(--text2)}
.zm-kot-cisla{display:flex;gap:26px;flex-wrap:wrap;flex:1}
.zm-kot-pol{display:flex;flex-direction:column;gap:1px}
.zm-kot-popis{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text2)}
.zm-kot-cislo{font-size:19px;font-weight:750;letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.zm-kot-jednotka{font-size:11.5px;color:var(--text2);white-space:nowrap}

/* Skupinová hlavička matice — nad sloupci stojí, co je výnos a co náklad. */
.zm-table th.zm-grp{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;
  color:var(--text2);text-align:center;padding:4px 6px;border-bottom:1px solid var(--border)}
.zm-table th.zm-grp-vyn{color:#0F766E}
.zm-table th.zm-grp-nak{color:#B45309}
[data-theme="dark"] .zm-table th.zm-grp-vyn{color:#5EEAD4}
[data-theme="dark"] .zm-table th.zm-grp-nak{color:#FCD9A0}

@media (max-width:1100px){
  .zm-kroky{grid-template-columns:repeat(2,1fr)}
}

/* Pás firem nad tabulkou driverů — každá firma se počítá zvlášť, tady je
   vedle sebe vidět, kolik z pohybu dělá která; klik zúží tabulku na jednu. */
.zm-firmy-pruh{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.zm-firma-chip{display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  padding:7px 13px;border-radius:10px;border:1px solid var(--border);background:var(--surface);
  cursor:pointer;font-family:var(--font-sans);min-width:96px}
.zm-firma-chip:hover{border-color:var(--blue);background:var(--surface2)}
.zm-chip-nazev{font-size:12.5px;font-weight:700;color:var(--text)}
.zm-chip-cislo{font-size:12px;font-weight:650;color:var(--text2);font-variant-numeric:tabular-nums}
.zm-firma-chip.on{background:var(--blue);border-color:var(--blue)}
.zm-firma-chip.on .zm-chip-nazev,.zm-firma-chip.on .zm-chip-cislo{color:#fff}
[data-theme="dark"] .zm-firma-chip.on{background:#1E3A8A;border-color:#1E3A8A}

/* Dodavatelé po firmách — jedna karta na firmu. */
.zm-firmy{display:flex;flex-direction:column;gap:20px}
.zm-firma-karta{border:.5px solid var(--border);border-radius:var(--radius);padding:13px 15px;background:var(--surface)}
.zm-firma-hlava{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:9px;
  padding-bottom:8px;border-bottom:1px solid var(--border)}
.zm-firma-nazev{font-size:14.5px;font-weight:750;color:var(--text)}
.zm-firma-souhrn{font-size:12px;color:var(--text2)}

/* Firma mimo horní filtr — vypsaná, ale bez čísel. */
.zm-table tr.zm-mimo td{color:var(--text3);background:var(--surface2)}
.zm-mimo-text{text-align:left;font-size:11.5px;font-style:italic}

/* Podbarvené rozdíly u dodavatelů — sloupec se prochází očima shora dolů
   a hledá se, co vyskočilo; samotná barva číslic to v široké tabulce nedá. */
.zm-cell-plus{background:#FEE2E2;color:#7F1D1D;font-weight:700}
.zm-cell-minus{background:#DCFCE7;color:#14532D;font-weight:700}
[data-theme="dark"] .zm-cell-plus{background:#4E1919;color:#FECACA}
[data-theme="dark"] .zm-cell-minus{background:#123821;color:#BBF7D0}

/* Dodavatel jako proklik na doklady. */
.zm-dod-link{font:inherit;color:var(--blue);background:none;border:0;padding:0;cursor:pointer;
  text-align:left;border-bottom:1px dotted var(--blue-3)}
.zm-dod-link:hover{color:var(--orange-dk);border-bottom-color:var(--orange-dk)}
.zm-dod-link-cekam{opacity:.5;cursor:progress}
[data-theme="dark"] .zm-dod-link{color:#93C5FD;border-bottom-color:#3A6DB5}

/* Velké varování u nedoúčtovaného měsíce — malý ⚠ v přepínači nestačí. */
.zm-alarm{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;padding:12px 15px;
  border-radius:var(--radius);background:#FEF3C7;border:1px solid #FCD34D;border-left:4px solid #D97706}
.zm-alarm-ikona{font-size:19px;line-height:1.1;color:#B45309}
.zm-alarm-text{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:#7C2D12;line-height:1.5}
.zm-alarm-text b{font-weight:750}
[data-theme="dark"] .zm-alarm{background:#3A2A12;border-color:#8A6A20;border-left-color:#D97706}
[data-theme="dark"] .zm-alarm-text{color:#FCD9A0}
[data-theme="dark"] .zm-alarm-ikona{color:#FCD34D}

/* Rada u hlídače — jen u stavů „pozor" a „řešit". */
.hp-rada{margin-top:6px;padding-top:6px;border-top:1px dashed var(--border);font-size:11.5px;line-height:1.5}
.hp-rada-r{color:var(--text)}
.hp-rada-lbl{display:inline-block;min-width:58px;font-weight:750;color:var(--text2);
  text-transform:uppercase;letter-spacing:.3px;font-size:10px}
.hp-rada-akce{color:var(--orange-dk)}

/* TOP 10 pohledávek k řešení. */
.pzp-table td,.pzp-table th{font-size:12.5px;vertical-align:middle}
.pzp-table .pzp-amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pzp-row{cursor:pointer}
.pzp-row:hover td{background:var(--surface2)}
.pzp-poradi{width:32px;text-align:right;font-weight:750;color:var(--text2)}
.pzp-zak{font-weight:650;color:var(--text)}
.pzp-firma,.pzp-doklad{color:var(--text2);white-space:nowrap}
.pzp-skore{font-weight:750}
.pzp-r1{color:#B45309}
.pzp-r2{color:#C2410C;font-weight:700}
.pzp-r3{color:#B91C1C;font-weight:750}
.pzp-pozor{font-size:10.5px;color:var(--text2)}
.pzp-bez{font-size:11px;color:var(--text3);font-style:italic}
[data-theme="dark"] .pzp-r1{color:#FCD9A0}
[data-theme="dark"] .pzp-r2{color:#FDBA74}
[data-theme="dark"] .pzp-r3{color:#FCA5A5}

/* Výhled inkasa. */
.pzv-souhrn{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:14px}
.pzv-karta{background:var(--surface2);border:.5px solid var(--border);border-radius:var(--radius);padding:12px 14px}
.pzv-karta span{display:block;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.3px;color:var(--text2)}
.pzv-karta b{display:block;font-size:22px;font-weight:750;color:var(--text);letter-spacing:-.4px;margin:3px 0}
.pzv-karta i{display:block;font-style:normal;font-size:11.5px;color:var(--text2);line-height:1.4}
.pzv-karta-warn{background:#FEF3C7;border-color:#FCD34D}
.pzv-karta-warn span,.pzv-karta-warn i{color:#92400E}
.pzv-karta-warn b{color:#7C2D12}
[data-theme="dark"] .pzv-karta-warn{background:#3A2A12;border-color:#8A6A20}
[data-theme="dark"] .pzv-karta-warn span,[data-theme="dark"] .pzv-karta-warn i,
[data-theme="dark"] .pzv-karta-warn b{color:#FCD9A0}
.pzv-graf{display:flex;flex-direction:column;gap:9px}
.pzv-radek{display:grid;grid-template-columns:170px 1fr 140px 52px;gap:12px;align-items:center}
.pzv-popis b{display:block;font-size:12.5px;font-weight:700;color:var(--text)}
.pzv-popis span{display:block;font-size:11px;color:var(--text2)}
.pzv-pruh{height:16px;background:var(--surface2);border:.5px solid var(--border);border-radius:5px;overflow:hidden}
.pzv-vypln{display:block;height:100%;border-radius:5px}
.pzv-pozde .pzv-vypln,.pzv-vypln.pzv-pozde{background:#DC2626}
.pzv-vypln.pzv-d30{background:#16A34A}
.pzv-vypln.pzv-d60{background:#65A30D}
.pzv-vypln.pzv-d90{background:#CA8A04}
.pzv-vypln.pzv-dal{background:#94A3B8}
.pzv-cislo{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.pzv-cislo span{display:block;font-size:11px;font-weight:500;color:var(--text2)}
.pzv-podil{text-align:right;font-size:12px;color:var(--text2)}

/* Datové problémy. */
.dp-dlazdice-pruh{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}
.dp-dlazdice{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:9px 13px;
  border-radius:10px;border:1px solid var(--border);background:var(--surface);cursor:pointer;
  font-family:var(--font-sans);min-width:150px}
.dp-dlazdice:hover{border-color:var(--blue)}
.dp-dlazdice.on{border-color:var(--blue);background:var(--blue-light)}
[data-theme="dark"] .dp-dlazdice.on{background:#1E3A5F}
.dp-dl-nazev{font-size:12.5px;font-weight:700;color:var(--text)}
.dp-dl-pocet{font-size:19px;font-weight:750;color:var(--text);letter-spacing:-.3px}
.dp-dl-castka{font-size:11.5px;color:var(--text2)}
.dp-jistota{display:inline-block;font-size:10px;font-weight:700;border-radius:999px;padding:1px 7px}
.dp-j-vysoká{background:#FEE2E2;color:#B91C1C}
.dp-j-střední{background:#FEF3C7;color:#92400E}
.dp-j-nízká{background:#E5E7EB;color:#4B5563}
[data-theme="dark"] .dp-j-vysoká{background:#4E1919;color:#FECACA}
[data-theme="dark"] .dp-j-střední{background:#3A2A12;color:#FCD9A0}
[data-theme="dark"] .dp-j-nízká{background:#334155;color:#CBD5E1}
.dp-table td,.dp-table th{font-size:12px;vertical-align:top}
.dp-table .dp-amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.dp-typ{font-weight:700;white-space:nowrap}
.dp-firma,.dp-datum,.dp-doklad,.dp-ucet{color:var(--text2);white-space:nowrap}
.dp-detail,.dp-navrh{color:var(--text);line-height:1.45;min-width:180px}
.dp-navrh{color:var(--text2)}

/* Dlaždice „Co se změnilo" — normální tabulka jako všude jinde v aplikaci.
   Vlastní řádky se v úzké dlaždici nezarovnaly: čísla končila u okraje panelu
   a nestála pod sebou. */
.zmdl-table{width:100%;table-layout:fixed}
.zmdl-table th,.zmdl-table td{font-size:12.5px}
.zmdl-t-firma{width:58px;font-weight:700;color:var(--text2);white-space:nowrap}
.zmdl-t-popis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.zmdl-t-bar{width:34%}
.zmdl-t-cislo{width:92px;text-align:right;font-weight:750;white-space:nowrap;
  font-variant-numeric:tabular-nums}
.zmdl-pruh{display:block;height:8px;border-radius:4px;background:var(--surface2);
  border:.5px solid var(--border);overflow:hidden}
.zmdl-vypln{display:block;height:100%;border-radius:4px}

/* Tabulka možných duplicit — pevné šířky, ať čísla stojí pod sebou. */
.zm-dupl-table{table-layout:fixed;width:100%;min-width:760px}
.zm-c-dod{width:26%}
.zm-c-castka{width:13%}
.zm-c-dok{width:16%}
.zm-c-odstup{width:9%}
.zm-dupl-table td,.zm-dupl-table th{overflow:hidden;text-overflow:ellipsis}
.zm-dupl-table .zm-dod-doklad{white-space:normal}
.zm-dupl-table .zm-dod-doklad b{display:block;font-weight:700;color:var(--text)}
.zm-dupl-table .zm-dod-doklad span{display:block;font-size:11px;color:var(--text2)}
.zm-dupl-table .zm-dod-popis{white-space:normal;line-height:1.4}

/* Report platební morálky pro zákazníka. */
.pmr-obal{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
.pmr-vyber .pmr-seznam-box{max-height:640px;overflow:auto;margin-top:9px;padding-right:4px}
.pmr-seznam{display:flex;flex-direction:column;gap:5px}
.pmr-polozka{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;
  padding:8px 11px;border-radius:9px;border:1px solid var(--border);background:var(--surface);
  cursor:pointer;font-family:var(--font-sans);width:100%}
.pmr-polozka:hover{border-color:var(--blue);background:var(--surface2)}
.pmr-polozka.on{border-color:var(--blue);background:var(--blue-light)}
[data-theme="dark"] .pmr-polozka.on{background:#1E3A5F}
.pmr-jmeno{font-size:12.5px;font-weight:700;color:var(--text)}
.pmr-meta{font-size:11px;color:var(--text2)}
.pmr-medi{font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;margin-top:2px}
.pmr-ok{background:#DCFCE7;color:#15803D}
.pmr-pozor{background:#FEF3C7;color:#92400E}
.pmr-zle{background:#FEE2E2;color:#B91C1C}
[data-theme="dark"] .pmr-ok{background:#14532D;color:#BBF7D0}
[data-theme="dark"] .pmr-pozor{background:#3A2A12;color:#FCD9A0}
[data-theme="dark"] .pmr-zle{background:#5C1D1D;color:#FECACA}

.pmr-report{border:.5px solid var(--border);border-radius:var(--radius);padding:22px 24px;background:var(--surface)}
.pmr-hlava{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding-bottom:14px;margin-bottom:16px;border-bottom:2px solid var(--blue)}
.pmr-nadpis{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.6px;color:var(--text2)}
.pmr-zak{font-size:21px;font-weight:750;color:var(--text);letter-spacing:-.3px}
.pmr-vystavil{text-align:right;font-size:12.5px;color:var(--text)}
.pmr-obdobi{font-size:11.5px;color:var(--text2);margin-top:3px}
.pmr-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.pmr-k{background:var(--surface2);border:.5px solid var(--border);border-radius:var(--radius);padding:11px 13px}
.pmr-k span{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text2)}
.pmr-k b{display:block;font-size:20px;font-weight:750;color:var(--text);letter-spacing:-.4px;margin-top:3px}
.pmr-k i{display:block;font-style:normal;font-size:11px;color:var(--text2)}
.pmr-k-ok{background:#DCFCE7;border-color:#9BD5BA}
.pmr-k-pozor{background:#FEF3C7;border-color:#FCD34D}
.pmr-k-zle{background:#FEE2E2;border-color:#FCA5A5}
[data-theme="dark"] .pmr-k-ok{background:#14532D;border-color:#1B5C34}
[data-theme="dark"] .pmr-k-pozor{background:#3A2A12;border-color:#8A6A20}
[data-theme="dark"] .pmr-k-zle{background:#4E1919;border-color:#7F2626}
.pmr-table{margin-bottom:16px}
.pmr-table .pmr-amt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pmr-pruh{width:34%}
.pmr-vypln{display:block;height:11px;border-radius:4px}
.pmr-v-ok{background:#16A34A}
.pmr-v-zle{background:#DC2626}
.pmr-tab2{max-width:520px}
.pmr-zaver{background:var(--blue-light);border-left:3px solid var(--blue);border-radius:8px;
  padding:12px 15px;font-size:13px;line-height:1.55;color:var(--text)}
[data-theme="dark"] .pmr-zaver{background:#1E3A5F;border-left-color:#3A6DB5}
.pmr-pozn{font-size:11.5px;color:var(--text2);margin-top:12px;line-height:1.5}
@media (max-width:1100px){.pmr-obal{grid-template-columns:1fr}}

/* Přepínač období reportu platební morálky. */
.pmr-okno{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 14px}
.pmr-okno-lbl{font-size:11.5px;font-weight:750;text-transform:uppercase;letter-spacing:.3px;
  color:var(--text2);margin-right:4px}
.pmr-okno button{font:inherit;font-size:12.5px;font-weight:650;padding:6px 13px;border-radius:8px;
  border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}
.pmr-okno button:hover{border-color:var(--blue)}
.pmr-okno button.on{background:var(--blue);border-color:var(--blue);color:#fff}
[data-theme="dark"] .pmr-okno button.on{background:#1E3A8A;border-color:#1E3A8A}
.pmr-bez{background:var(--surface2);color:var(--text2)}

/* Řazení seznamu odběratelů + hlavička počtu. Seznam už se neořezává na 60
 * položek, takže musí být poznat, kolik jich je a podle čeho jsou seřazení. */
.pmr-razeni{margin:-4px 0 14px}
.pmr-pocet{font-size:11px;font-weight:650;color:var(--text2);padding:2px 2px 7px;
  position:sticky;top:0;background:var(--surface);z-index:2;line-height:1.45}
.pmr-radek2{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:2px}
.pmr-radek2 .pmr-medi{margin-top:0}
.pmr-dopad{font-size:10.5px;font-weight:700;color:var(--text2);background:var(--surface2);
  border:1px solid var(--border);border-radius:999px;padding:1px 7px}
.pmr-skup{font-size:10.5px;font-weight:700;color:#6D28D9;background:#EDE9FE;
  border-radius:999px;padding:1px 7px}
[data-theme="dark"] .pmr-skup{color:#C4B5FD;background:#3B2A66}
.pmr-legenda{margin-top:14px;padding:11px 14px;border-radius:10px;background:var(--surface2);
  border:1px solid var(--border);font-size:11.5px;line-height:1.6;color:var(--text2)}
.pmr-legenda b{font-weight:750;color:var(--text)}

/* ── Proklik do detailu (P/Z souhrn, dlužníci, bankovní účty) ─────────────
   Číslo, ze kterého se dá prokliknout, vypadá jako číslo — ne jako modrý
   odkaz. Kurzor a tečkované podtržení při najetí stačí; tabulka plná
   modrých čísel by křičela. */
.pz-sum-link, .ink-dluznik-link { background: none; border: 0; padding: 0; font: inherit;
  color: inherit; cursor: pointer; text-align: inherit; }
.pz-sum-link:hover, .ink-dluznik-link:hover { text-decoration: underline dotted; color: var(--blue); }
.ink-dluznik-link { font-weight: 600; }
.uc-radek-klik { cursor: pointer; }
.uc-radek-klik:hover td { background: color-mix(in srgb, var(--blue) 6%, transparent); }

/* Proklik z rozbaleneho uctu ve statutarnich vykazech na radky deniku. */
.stat-acc-klik { cursor: pointer; }
.stat-acc-klik:hover td { background: color-mix(in srgb, var(--blue) 6%, transparent); }
.stat-acc-klik:hover .pl-acc-name { text-decoration: underline dotted; text-underline-offset: 3px; }

/* Chybí pravidelná faktura? (rep-pz-summary) */
.pzch-tbl td { vertical-align: middle; }
.pzch-chybi { background: #FEF2F2; }
[data-theme="dark"] .pzch-chybi { background: #3A1B1B; }
.pzch-ceka { background: var(--surface); }
.pzch-link { background: none; border: 0; padding: 0; font: inherit; font-weight: 600;
  color: inherit; cursor: pointer; text-align: left; }
.pzch-link:hover { text-decoration: underline dotted; color: var(--blue); }
.pzch-znacka { font-size: 11.5px; font-weight: 700; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.pzch-z-chybi { background: #FEE2E2; color: #B91C1C; }
.pzch-z-ceka { background: #FEF3C7; color: #92400E; }
.pzch-souhrn { margin-top: 10px; font-size: 12.5px; color: var(--text2); }
.pzch-souhrn b { color: var(--text); }

/* ── Globalni hledani (js/global-search.js, Ctrl+K) ─────────────────────── */
#ghlBg { position: fixed; inset: 0; z-index: 260; display: none; background: rgba(15, 23, 42, .45);
  padding: 7vh 16px 16px; overflow: auto; }
#ghlBg.vis { display: block; }
.ghl-okno { max-width: 860px; margin: 0 auto; background: var(--surface); border: .5px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow-lg); overflow: hidden; }
.ghl-hlava { display: flex; align-items: center; gap: 8px; padding: 12px 14px 8px; }
#ghlInput { flex: 1; border: .5px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface2); color: var(--text); font: inherit; font-size: 15px; padding: 9px 13px; }
#ghlInput:focus { outline: none; border-color: var(--blue); }
.ghl-zavrit { border: none; background: none; color: var(--text3); font-size: 16px; cursor: pointer;
  padding: 6px 8px; border-radius: 6px; }
.ghl-zavrit:hover { background: var(--surface2); color: var(--text); }
.ghl-hint { font-size: 12px; color: var(--text3); padding: 0 16px 10px; border-bottom: .5px solid var(--border2); }
#ghlVysledky { max-height: 62vh; overflow: auto; padding: 6px 10px 12px; }
.ghl-prazdno { padding: 26px 16px; text-align: center; color: var(--text3); font-size: 13px; }
.ghl-skup { margin-top: 10px; }
.ghl-skup-hdr { display: flex; align-items: center; gap: 10px; padding: 4px 6px 6px; }
.ghl-skup-hdr h3 { margin: 0; font-size: 13px; font-weight: 700; color: var(--text); }
.ghl-skup-hdr span { font-size: 12px; color: var(--text3); flex: 1; }
.ghl-radek { display: flex; align-items: baseline; gap: 10px; width: 100%; text-align: left;
  border: none; background: none; color: var(--text2); font: inherit; font-size: 12.5px;
  padding: 5px 8px; border-radius: 6px; cursor: pointer; }
.ghl-radek:hover { background: color-mix(in srgb, var(--blue) 7%, transparent); }
.ghl-radek-info { cursor: default; }
.ghl-radek-info:hover { background: var(--surface2); }
.ghl-dat { color: var(--text3); white-space: nowrap; }
.ghl-fir { font-weight: 700; color: var(--text); white-space: nowrap; min-width: 46px; }
.ghl-uc { color: var(--text3); white-space: nowrap; }
.ghl-pop { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ghl-amt { white-space: nowrap; font-weight: 600; color: var(--text); }
.ghl-vic { font-size: 12px; color: var(--text3); padding: 6px 8px; }

/* ── Financni analyza: dosazeni po mesicich (klik na bunku heat mapy) ───── */
.bsm-klik { cursor: pointer; }
.bsm-klik:hover { outline: 2px solid var(--blue); outline-offset: -2px; }
#bsmDetail { position: fixed; inset: 0; z-index: 250; background: rgba(15, 23, 42, .4);
  display: flex; align-items: center; justify-content: center; padding: 20px; }
.bsmd-okno { background: var(--surface); border: .5px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow-lg); max-width: 560px; width: 100%; padding: 14px 18px 16px; }
.bsmd-hlava { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text);
  padding-bottom: 9px; border-bottom: .5px solid var(--border2); margin-bottom: 9px; }
.bsmd-hlava .bsmd-zavrit { margin-left: auto; border: none; background: none; color: var(--text3);
  cursor: pointer; font-size: 15px; padding: 4px 6px; border-radius: 6px; }
.bsmd-hlava .bsmd-zavrit:hover { background: var(--surface2); color: var(--text); }
.bsmd-radek { display: flex; gap: 12px; font-size: 13px; color: var(--text); padding: 5px 0; }
.bsmd-radek > span:first-child { flex: 0 0 150px; color: var(--text3); font-size: 12px; }
.bsmd-pozn { margin-top: 9px; font-size: 12px; color: var(--text3); border-top: .5px dashed var(--border);
  padding-top: 8px; }

/* Seznam P/Z: dlouhy popis se zkrati s trojteckou (plny text v bubline
   a v exportech), aby pridany sloupec Doklad nevytlacil tabulku do posuvu. */
.pz-popis-b { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* tesnejsi bunky jen v seznamech P/Z — 13 sloupcu se jinak nevejde bez posuvu */
[data-section="rep-receivables"] .dash-table th, [data-section="rep-receivables"] .dash-table td,
[data-section="rep-payables"] .dash-table th, [data-section="rep-payables"] .dash-table td {
  padding-left: 7px; padding-right: 7px; }

/* ── Peněžní toky → Pravidelné platby (js/cf-pravidelne-view.js) ──────────
   Kalendářní mřížka je široká z podstaty (12–24 měsíců), takže vodorovný
   posuv je tady záměr, ne nedostatek — drží se ale uvnitř .scroll-x, stránka
   sama se neposouvá. */
.cfp-ovladani{display:flex;flex-direction:column;gap:10px}
.cfp-skupina{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.cfp-lbl{font-size:calc(10.5px * var(--ui-scale));font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;color:var(--text3);min-width:110px}
.cfp-skupina .table-search{min-width:280px;flex:0 1 340px}
.cfp-sp{flex:1}
.cfp-karty .dash-card .sub{font-size:calc(10.5px * var(--ui-scale));color:var(--text3);margin-top:3px}
.cfp-tbl td,.cfp-tbl th{vertical-align:middle}
.cfp-row{cursor:pointer}
.cfp-row:hover{background:var(--surface2)}
.cfp-nazev{font-weight:700}
.cfp-popis{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text2)}
.cfp-kdy{white-space:nowrap}
.cfp-firma{display:inline-block;background:var(--co-color,#888);color:#fff;border-radius:4px;
  padding:1px 5px;font-size:calc(9.5px * var(--ui-scale));font-weight:800;letter-spacing:.03em}
.cfp-tag{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:4px;
  background:var(--surface2);color:var(--text3);font-size:calc(9.5px * var(--ui-scale));font-weight:700;
  white-space:nowrap}
.cfp-tag.pevna{background:var(--green-light);color:var(--green)}
.cfp-druh{display:inline-block;padding:1px 7px;border-radius:9px;font-size:calc(10px * var(--ui-scale));
  font-weight:700;background:var(--surface2);color:var(--text2);white-space:nowrap}
.cfp-d-mzdy{background:#EEF2FF;color:#4338CA}
.cfp-d-dane{background:#FEF3C7;color:#92400E}
.cfp-d-uvery{background:#FEE2E2;color:#B91C1C}
.cfp-d-bankovni{background:#F1F5F9;color:#475569}
.cfp-d-najem{background:#ECFDF5;color:#047857}
.cfp-d-sluzby{background:#F0F9FF;color:#0369A1}
.cfp-bar{height:4px;border-radius:2px;background:var(--surface2);margin-top:3px;overflow:hidden}
.cfp-bar span{display:block;height:100%;background:var(--blue);border-radius:2px}
/* Grafický kalendář měsíce — týdny v řádcích, Po–Ne ve sloupcích. */
.cfp-kal-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.cfp-kal-nazev{font-size:calc(15px * var(--ui-scale));font-weight:800;min-width:150px;text-align:center}
.cfp-kal-hd select{max-width:170px}
.cfp-kal-sum{font-size:calc(12px * var(--ui-scale));color:var(--text2)}
.cfp-kal-sum strong{font-family:var(--font-mono);color:var(--text)}
.cfp-kal-mrizka{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cfp-dow{text-align:center;font-size:calc(10px * var(--ui-scale));font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:2px 0}
.cfp-dow.vikend{color:var(--text3);opacity:.6}
.cfp-cell{min-height:104px;border:1px solid var(--border);border-radius:7px;padding:5px;
  background:var(--surface);display:flex;flex-direction:column;gap:3px;overflow:hidden}
.cfp-cell.mimo{background:transparent;border-color:transparent}
.cfp-cell.vikend{background:var(--surface2)}
/* Sytost podle částky — velký den má jít poznat na dálku, ne až po čtení čísel. */
.cfp-cell.plna{background:color-mix(in srgb,var(--blue) calc(var(--sila) * 13%),var(--surface));
  border-color:color-mix(in srgb,var(--blue) calc(var(--sila) * 45%),var(--border))}
.cfp-cell-hd{display:flex;align-items:baseline;justify-content:space-between;gap:4px}
.cfp-cd{font-size:calc(12px * var(--ui-scale));font-weight:800;color:var(--text2)}
.cfp-cd-sum{border:0;background:transparent;cursor:pointer;padding:0;font-family:var(--font-mono);
  font-size:calc(11px * var(--ui-scale));font-weight:800;color:var(--blue)}
.cfp-cd-sum:hover{text-decoration:underline}
.cfp-cell-list{display:flex;flex-direction:column;gap:2px;min-height:0}
.cfp-ev{display:flex;align-items:center;gap:4px;width:100%;border:0;cursor:pointer;
  border-radius:4px;padding:2px 4px;text-align:left;font-size:calc(10px * var(--ui-scale));
  line-height:1.25;overflow:hidden}
.cfp-ev-n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cfp-ev b{font-family:var(--font-mono);white-space:nowrap}
.cfp-ev:hover{outline:1px solid var(--blue)}
.cfp-vic{border:0;background:transparent;cursor:pointer;color:var(--text3);text-align:left;
  font-size:calc(10px * var(--ui-scale));padding:1px 4px}
.cfp-vic:hover{color:var(--blue);text-decoration:underline}
.cfp-legenda{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;
  font-size:calc(10.5px * var(--ui-scale));color:var(--text2)}
.cfp-leg{display:inline-flex;align-items:center;gap:5px}
.cfp-leg i{width:11px;height:11px;border-radius:3px;display:inline-block}
@media(max-width:1150px){
  .cfp-cell{min-height:92px}
  .cfp-ev{font-size:calc(9.5px * var(--ui-scale))}
}
/* Na úzké obrazovce se jméno příjemce nevejde — zůstane barva druhu, značka
   firmy a částka, zbytek řekne bublina po najetí myší. */
@media(max-width:820px){
  .cfp-kal-mrizka{gap:2px}
  .cfp-cell{min-height:74px;padding:3px}
  .cfp-ev-n{display:none}
}
.cfp-vycet{display:flex;flex-wrap:wrap;gap:5px;max-width:640px;white-space:normal}
.cfp-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:9px;
  font-size:calc(10.5px * var(--ui-scale));cursor:pointer;border:1px solid transparent}
.cfp-chip:hover{border-color:var(--blue)}
@media(prefers-color-scheme:dark){
  .cfp-d-mzdy{background:#312E81;color:#C7D2FE}
  .cfp-d-dane{background:#78350F;color:#FDE68A}
  .cfp-d-uvery{background:#7F1D1D;color:#FECACA}
  .cfp-d-bankovni{background:#334155;color:#CBD5E1}
  .cfp-d-najem{background:#064E3B;color:#A7F3D0}
  .cfp-d-sluzby{background:#0C4A6E;color:#BAE6FD}
}

/* Pravidelné platby — souhrn po druzích, hlídač změn a výhled. */
.cfp-tag.vnitro{background:var(--surface2);color:var(--text3);font-style:italic}
.cfp-tag.no{background:var(--red-light,#FEE2E2);color:var(--red)}
.cfp-tag.warn{background:#FEF3C7;color:#92400E}
.cfp-druh-row{cursor:pointer}
.cfp-druh-row:hover{background:var(--surface2)}
.cfp-bar span.cfp-d-mzdy,.cfp-bar span.cfp-d-dane,.cfp-bar span.cfp-d-uvery,
.cfp-bar span.cfp-d-pojisteni,.cfp-bar span.cfp-d-najem,.cfp-bar span.cfp-d-bankovni,
.cfp-bar span.cfp-d-sluzby,.cfp-bar span.cfp-d-ostatni{border-radius:2px}
.cfp-zm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.cfp-zm{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface)}
.cfp-zm.no{border-color:var(--red);background:color-mix(in srgb,var(--red) 5%,var(--surface))}
.cfp-zm.warn{border-color:#D97706;background:color-mix(in srgb,#D97706 6%,var(--surface))}
.cfp-zm-hd{font-weight:800;font-size:calc(12px * var(--ui-scale));margin-bottom:2px}
.cfp-zm .app-hint{margin:0 0 7px}
.cfp-zm-list{display:flex;flex-direction:column;gap:3px}
.cfp-zm-i{display:flex;align-items:center;gap:6px;width:100%;border:0;background:transparent;
  cursor:pointer;padding:2px 4px;border-radius:4px;text-align:left;
  font-size:calc(11px * var(--ui-scale))}
.cfp-zm-i:hover{background:var(--surface2)}
.cfp-zm-n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cfp-zm-i b{font-family:var(--font-mono);white-space:nowrap}
/* Výhled — buňky odhadu mají přerušovaný rám, ať se nespletou se skutečností. */
.cfp-cell.odhad{border-style:dashed}
.cfp-cd-odhad{font-family:var(--font-mono);font-size:calc(11px * var(--ui-scale));
  font-weight:800;color:var(--text2)}
.cfp-vyhled-stav{display:flex;flex-wrap:wrap;gap:18px;padding:10px 12px;margin-bottom:10px;
  border:1px solid var(--border);border-radius:8px;background:var(--surface2)}
.cfp-vyhled-stav.zap{border-color:var(--red);background:color-mix(in srgb,var(--red) 6%,var(--surface))}
.cfp-vyhled-stav>div{display:flex;flex-direction:column;gap:1px}
.cfp-vyhled-stav strong{font-family:var(--font-mono);font-size:calc(13px * var(--ui-scale))}
.cfp-graf{margin-top:14px}
.cfp-graf svg{width:100%;height:130px;overflow:visible}
.cfp-g-kum{fill:none;stroke:var(--blue);stroke-width:2.5;vector-effect:non-scaling-stroke}
.cfp-g-dispon{stroke:var(--green);stroke-width:1.5;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.cfp-g-hot{stroke:#D97706;stroke-width:1.5;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.cfp-g-lbl{font-size:9px;fill:var(--text3)}
.cfp-graf-osa{display:flex;justify-content:space-between;color:var(--text3);
  font-size:calc(10px * var(--ui-scale));margin-top:2px}


/* Rychlé roky a rozsah dat ve filtru období (js/filters.js). */
.period-years{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;justify-content:center}
.period-year-btn{font-weight:800;border:1px solid var(--blue);color:var(--blue);
  background:var(--blue-light,transparent);border-radius:7px;padding:5px 12px;cursor:pointer;
  font-size:calc(12px * var(--ui-scale))}
.period-year-btn:hover{background:var(--blue);color:#fff}
/* Přepínač: rok je právě celý ve výběru (viz toggleCelyRok ve filters.js). */
.period-year-btn.aktivni{background:var(--blue);color:#fff}
.period-year-btn.aktivni::before{content:'✓ '}
.period-rozsah{margin-top:8px;color:var(--text3);font-size:calc(10.5px * var(--ui-scale))}


/* Verze planu po firmach + archiv minulych let (js/pl-plan-archiv-view.js). */
.pa-firma{font-weight:700}
.pa-kod{display:block;font-size:calc(10px * var(--ui-scale));color:var(--text3);font-weight:400}
.pa-nema{color:var(--text3);text-align:center}
.pa-verze-btn{border:1px solid var(--blue);color:var(--blue);background:transparent;
  border-radius:7px;padding:3px 10px;cursor:pointer;font-size:calc(11.5px * var(--ui-scale));font-weight:700}
.pa-verze-btn.aktivni{background:var(--blue);color:#fff}
.pa-verze-btn.aktivni::before{content:'\2713 '}
.pa-var26{max-width:260px;font-size:calc(11.5px * var(--ui-scale))}
.pa-controls{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 12px}
.pa-ctl label{font-weight:700;margin-right:6px;font-size:calc(11.5px * var(--ui-scale))}
.pa-tab{border:1px solid var(--border);background:transparent;color:var(--text2);
  border-radius:7px;padding:4px 11px;cursor:pointer;font-size:calc(11.5px * var(--ui-scale));font-weight:600}
.pa-tab.aktivni{border-color:var(--blue);background:var(--blue);color:#fff}
.pa-plus{color:var(--green,#16A34A)}
.pa-minus{color:var(--red,#DC2626)}
.pa-legenda{margin-top:10px;color:var(--text3);font-size:calc(10.5px * var(--ui-scale));line-height:1.5}


/* Zvyraznena polozka v menu — nova/klicova zalozka, at ji jde najit hned
   (ted: Planovani -> Verze planu a minule roky). */

.sb-badge-info{background:var(--blue);margin-left:6px;font-size:9px}

.planvar-firmy{font-weight:700;white-space:normal;text-align:right}

.pa-ctl-lbl{font-weight:700;margin-right:6px;font-size:calc(11.5px * var(--ui-scale))}


/* Prehled nahranych planu + zvyrazneni firem (js/pl-plan-archiv-view.js). */
.pa-preh-row td:first-child{border-left:4px solid var(--fi-color,var(--blue-mid))}
.pa-preh-first td{border-top:2px solid var(--border)}
.pa-firma-tag{display:inline-block;min-width:52px;text-align:center;color:#fff;font-weight:800;
  border-radius:6px;padding:2px 7px;margin-right:8px;font-size:calc(10px * var(--ui-scale));letter-spacing:.3px}
.pa-rok{font-weight:800}
.pa-zdroj code{font-size:calc(9.5px * var(--ui-scale));color:var(--text3);white-space:nowrap}
/* Zeleny stitek = verze, se kterou se opravdu pocita. */
.pa-chip-akt{display:inline-block;margin-left:8px;background:var(--green,#16A34A);color:#fff;
  border-radius:999px;padding:1px 9px;font-size:calc(9.5px * var(--ui-scale));font-weight:800}
.pa-detail{padding:3px 10px;font-size:calc(11px * var(--ui-scale));white-space:nowrap}

/* Seznam ulozenych variant: barevny prouzek firmy vlevo (barva prichazi
   inline z js/pl-plan-variants-list.js podle firmy varianty). */
.planvar-firma-tag{display:inline-block;min-width:52px;text-align:center;color:#fff;font-weight:800;
  border-radius:6px;padding:1px 6px;margin-right:8px;font-size:calc(9.5px * var(--ui-scale))}


/* Matice verzi planu: jeden blok na rok (js/pl-plan-archiv-view.js). */
.pa-rok-blok{margin-bottom:18px}
.pa-rok-nadpis{margin:0 0 8px;font-size:calc(14px * var(--ui-scale));font-weight:800}
.pa-rok-pozn{margin-left:10px;font-weight:600;color:var(--text3);font-size:calc(10.5px * var(--ui-scale))}
.pa-matice-tbl tr[style] td:first-child{border-left:4px solid var(--fi-color,var(--blue-mid))}
.pa-akt-cell{color:var(--text2);font-size:calc(11px * var(--ui-scale))}
.pa-pocet{margin-top:3px;color:var(--text3);font-size:calc(10px * var(--ui-scale))}
.pa-save-msg{margin-left:8px;font-size:calc(10.5px * var(--ui-scale));color:var(--green,#16A34A);font-weight:700}
.pa-save-msg.err{color:var(--red)}


/* Roky v matici verzi vedle sebe — dva ve sloupci, kazdy stejne siroky
   (js/pl-plan-archiv-view.js). Pri trech letech je treti pod prvnim, pri
   ctyrech jsou 2 a 2. Na uzkem okne se slozi pod sebe. */
.pa-matice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;align-items:start}
@media (max-width:1100px){.pa-matice-grid{grid-template-columns:minmax(0,1fr)}}
.pa-matice-grid .pa-rok-blok{margin-bottom:0}
.pa-matice-grid .pa-matice-tbl{font-size:calc(11.5px * var(--ui-scale))}
.pa-matice-grid .pa-matice-tbl td,.pa-matice-grid .pa-matice-tbl th{padding:5px 7px}
.pa-matice-grid .pa-sel{max-width:170px}
.pa-odkaz-panel .panel-hdr{align-items:center}
/* Převod plánovacího roku — potvrzení přímo v panelu, žádné vyskakovací okno. */
.pa-prevod-panel .panel-hdr{align-items:center;gap:8px;flex-wrap:wrap}
.pa-prevod-potvrzeni{margin:0 20px 14px;padding:10px 14px;border:1px solid var(--orange-border);
  background:var(--yellow-light);border-radius:var(--radius-sm);font-size:calc(12.5px * var(--ui-scale));line-height:1.5}
.pa-prevod-potvrzeni ol{margin:6px 0 10px 18px;padding:0}
.pa-prevod-akce{display:flex;gap:8px;flex-wrap:wrap}

/* Zahlavi skupiny firmy v seznamu ulozenych variant
   (js/pl-plan-variants-list.js) — varianty jedne firmy drzi pohromade. */
.planvar-group td{background:var(--surface2);padding:7px 10px;font-size:calc(11.5px * var(--ui-scale))}
.planvar-group-meta{margin-left:10px;color:var(--text3);font-weight:600;font-size:calc(10.5px * var(--ui-scale))}

/* Vyber firem v sekci Verze planu: barevny prouzek u prepinace firmy
   a odlisene tlacitko vazby na hlavni filtr (js/pl-plan-archiv-view.js). */
.pa-tab[style*="--fi-color"].aktivni{border-color:var(--fi-color);background:var(--fi-color)}
.pa-tab-hlavni{border-style:dashed}
.pa-tab-odvozeny{opacity:.92}

/* Zahlavi ROKU v seznamu ulozenych verzi (js/pl-plan-variants-list.js).
   Rok je hlavni oriеntacni bod v seznamu — vetsim cervenym pismem se najde
   na prvni pohled i v dlouhem vypisu zaloh. */
/* Selektor musi prebit pravidlo prilepeneho prvniho sloupce
   `.scroll-x > table.dash-table > tbody > tr > td:first-child`, ktere
   nastavuje bile pozadi — proto stejne dlouha cesta a o tridu navic. */
.scroll-x > table.dash-table.planvar-tbl > tbody > tr.planvar-rok > td{
  background:var(--red-light,#FEE2E2);padding:10px;
  border-top:2px solid var(--red,#DC2626);border-bottom:1px solid var(--red-border,#FCA5A5)}
.scroll-x > table.dash-table.planvar-tbl > tbody > tr.planvar-rok > td strong{color:var(--red,#DC2626);font-size:calc(15px * var(--ui-scale));
  font-weight:900;letter-spacing:.2px}
.planvar-rok .planvar-group-meta{color:var(--text2)}
[data-theme="dark"] .scroll-x > table.dash-table.planvar-tbl > tbody > tr.planvar-rok > td{background:rgba(220,38,38,.14)}
.pa-puvod{color:var(--text3);font-size:calc(9px * var(--ui-scale));margin-top:2px}

/* Karta „Kopie planu a model co kdyby" (js/pl-plan-model.js). */
.plan-model-card .plan-card-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px}
.plan-model-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 16px;margin:6px 0 12px}
.plan-model-pole{display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:calc(11.5px * var(--ui-scale));font-weight:650}
.plan-model-pole input{width:74px;text-align:right;padding:4px 6px;border:1px solid var(--border);
  border-radius:6px;background:var(--surface);color:var(--text)}

/* ── ŘÁDKOVÉ KARTY v „Nový plán, import a export" ────────────────────────
   Dlaždice ve třech sloupcích byly vysoké a rozházené — každá jinak dlouhá
   podle délky popisku. Stejný obsah v ŘÁDKU se čte líp: vlevo název s ikonou,
   za ním rovnou ovládání, popisek jako drobná řádka pod tím. DOM zůstává
   stejný, mění se jen rozvržení (poradí se řídí `order`). */
.plan-backup-grid{display:flex;flex-direction:column;gap:8px;padding:12px 20px 18px}
.plan-card{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 10px;
  padding:9px 14px;border-radius:10px;border-top-width:1px;border-left:4px solid var(--border)}
/* Ovladaci prvky v radku maji byt kompaktni — jinak jeden dlouhy select
   posune vsechno ostatni na dalsi radek. */
.plan-card .btn{padding:6px 12px;font-size:calc(11.5px * var(--ui-scale))}
.plan-card .view-toggle button{padding:4px 9px}
.plan-card .planNew-row{display:flex;align-items:center;gap:6px;margin:0}
.plan-card .planNew-row input,.plan-card .planNew-row select{margin:0}
.plan-card-ico{font-size:15px}
.plan-card h3{white-space:nowrap}
/* Ovládání teče v řádku za názvem; popisek a hlášky jdou pod ně. */
.plan-card > select,.plan-card > input[type="text"]{flex:0 1 210px;min-width:140px;margin-bottom:0}
.plan-card .btn{width:auto;flex:0 0 auto}
.plan-card .plan-file-btn{flex:0 0 auto}
.plan-card-sep{margin:0 2px;text-transform:none}
/* Popisek na DVA RADKY. Vysvetleni u karty ma smysl, ale osmiradkovy odstavec
   udelal z radku zase dlazdici — cely text je v bubline (title doplnuje
   js/pl-plan-backup.js). */
.plan-card-desc{order:90;flex:1 1 100%;margin:0;font-size:10.5px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.plan-card-desc:hover{-webkit-line-clamp:unset}
.plan-card .plan-backup-msg,.plan-card .plan-hint{order:95;flex:1 1 100%}
.plan-card .view-toggle{flex:0 0 auto}
/* Barevný akcent se přesouvá z horní hrany na levou — v řádku je čitelnější. */
.plan-card.save{border-left-color:var(--green)}
.plan-card.switch{border-left-color:var(--blue-3)}
.plan-card.excel{border-left-color:#1D6F42}
.plan-card.xlsimp{border-left-color:var(--orange)}
.plan-card.newplan{border-left-color:var(--green)}
.plan-card.vzorce{border-left-color:var(--blue)}
.plan-card.komplet{border-left-color:#6D28D9}
.plan-card .plan-check{flex:0 0 auto}
@media (max-width:820px){
  .plan-card{flex-direction:column;align-items:stretch}
  .plan-card .btn,.plan-card > select,.plan-card > input[type="text"]{width:100%;flex:1 1 auto}
}

/* ── Souhrn porady (js/porada-souhrn-view.js) ─────────────────────────────
   Jen grafy — na projektoru se tabulka o deseti sloupcích nepřečte.
   Pruh doprava = kladné, doleva = záporné; sytá barva skutečnost, světlá plán. */
.pu-lista{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 20px 16px}
.pu-popis{font-size:11.5px;font-weight:700;color:var(--text3);
  text-transform:uppercase;letter-spacing:.5px}
.pu-btn{padding:6px 14px;border-radius:999px;cursor:pointer;font-family:inherit;
  font-size:12.5px;font-weight:700;border:1px solid var(--border);
  background:var(--surface);color:var(--text2)}
.pu-btn:hover{border-color:var(--blue-3)}
.pu-btn.on{background:var(--blue);border-color:var(--blue);color:#fff}
.pu-pozn{font-size:11.5px;color:var(--text3)}

.ps-chip{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11.5px;
  font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.ps-chip.plus{background:var(--green-light);color:#15803D}
.ps-chip.minus{background:var(--red-light);color:var(--red)}
.ps-chip.nula{background:var(--surface2);color:var(--text3)}

.pg-legenda{display:flex;gap:14px;align-items:center;font-size:11.5px;
  font-weight:600;color:var(--text3);white-space:nowrap}
.pg-kl{display:inline-block;width:11px;height:11px;border-radius:2px;
  vertical-align:-1px;margin-right:5px}
.pg-kl.pg-skut{background:var(--blue)}
.pg-kl.pg-plan{background:var(--text3);opacity:.45}

.pg-graf{display:flex;flex-direction:column;gap:13px;padding:4px 20px 20px}
/* Hodnoty jsou nově ve štítcích přímo v grafu, sloupec čísel vpravo proto
   zmizel — zbyla jen odchylka. Graf tím dostal víc místa. */
.pg-radek{display:grid;grid-template-columns:172px 1fr 92px;gap:14px;align-items:center}
.pg-jmeno{font-size:12.5px;font-weight:700;color:var(--text2);line-height:1.3}
.pg-plocha{display:flex;flex-direction:column;gap:4px;min-width:0}
.pg-pas{position:relative;height:13px;background:var(--surface2);border-radius:3px}
.pg-nula{position:absolute;top:-2px;bottom:-2px;width:1px;background:var(--text3);opacity:.55}
.pg-bar{position:absolute;top:0;bottom:0;border-radius:3px}
.pg-bar.pg-skut{background:var(--blue)}
.pg-bar.pg-plan{background:var(--text3);opacity:.45}
.pg-bar.pg-skut.pg-zap{background:var(--red)}
.pg-cisla{display:flex;flex-direction:column;gap:4px;text-align:right}
.pg-cis{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;line-height:13px}
.pg-cis.zap{color:var(--red)}
.pg-cis.pg-planc{font-weight:600;color:var(--text3)}
.pg-odch{text-align:right}

/* HODNOTY PŘÍMO V GRAFU — bílý zaoblený štítek u konce pruhu (PH 18. 9. 2026).
   Štítek je nad pruhem, takže nezvětšuje výšku řádku; `pointer-events:none`,
   aby nepřekážel bublině s podrobnostmi. */
.pg-pas{overflow:visible}
.pg-hodn{position:absolute;top:50%;transform:translateY(-50%);margin-left:7px;
  padding:1px 8px;border-radius:999px;background:#fff;border:1px solid var(--border);
  box-shadow:0 1px 2px rgba(16,24,40,.06);font-size:11px;font-weight:750;line-height:15px;
  color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;z-index:2}
.pg-hodn-plan{font-weight:650;color:var(--text3)}
.pg-hodn-zap{margin-left:0;margin-right:7px;color:var(--red)}
.pg-hodn-uvnitr{transform:translate(-100%,-50%);margin-left:-7px}
.pg-hodn-uvnitr.pg-hodn-zap{transform:translate(100%,-50%);margin-right:-7px}
[data-theme="dark"] .pg-hodn{background:var(--surface);border-color:var(--border)}

/* Hodnota nad měsíčním sloupcem — stejný štítek, jen menší. */
.pm-hodn{text-align:center;margin-bottom:4px}
.pm-hodn::before{content:attr(data-x)}
.pm-sl .pm-hodn{font-size:10.5px;font-weight:750;color:var(--text);
  font-variant-numeric:tabular-nums;background:#fff;border:1px solid var(--border);
  border-radius:999px;padding:1px 6px;display:inline-block;box-shadow:0 1px 2px rgba(16,24,40,.06)}
[data-theme="dark"] .pm-sl .pm-hodn{background:var(--surface)}

/* Měsíční sloupce: nad osou kladné, pod osou záporné. */
.pm-graf{display:flex;gap:10px;align-items:stretch;padding:10px 20px 20px;overflow-x:auto}
.pm-sl{flex:1;min-width:38px;display:flex;flex-direction:column}
.pm-nad{height:76px;display:flex;gap:3px;align-items:flex-end;justify-content:center}
.pm-osa{height:1px;background:var(--border)}
.pm-pod{height:46px;display:flex;gap:3px;align-items:flex-start;justify-content:center}
.pm-bar{width:12px;border-radius:2px}
.pm-nad .pm-bar{align-self:flex-end}
.pm-bar.pg-skut{background:var(--blue)}
.pm-bar.pg-plan{background:var(--text3);opacity:.45}
.pm-bar.pg-skut.pg-zap{background:var(--red)}
.pm-mes{text-align:center;font-size:11px;font-weight:600;color:var(--text3);margin-top:6px}

@media(max-width:820px){
  .pg-radek{grid-template-columns:1fr 84px;grid-template-areas:'jmeno jmeno' 'plocha odch'}
  .pg-jmeno{grid-area:jmeno}.pg-plocha{grid-area:plocha}
  .pg-odch{grid-area:odch}
}

/* ── Souhrn středisek: tisková podoba ─────────────────────────────────────
   Na obrazovce jedna široká tabulka s vodorovným posuvem, na papíře bloky
   po několika střediscích pod sebou (js/controlling-cc-view.js).
   Bez toho se u firmy s mnoha středisky vytiskla necelá polovina středisek a chybějící
   sloupce nebyly nijak poznat. */
.ctrlcc-tisk{display:none}
@media print{
  .section[data-section="ctrl-costcenters"] .ctrlcc-obraz{display:none}
  .section[data-section="ctrl-costcenters"] .ctrlcc-tisk{display:block}
  .ctrlcc-blok{break-inside:avoid;page-break-inside:avoid;margin-bottom:5mm}
  .ctrlcc-blok-h{display:flex;justify-content:space-between;align-items:baseline;
    font-size:8pt;font-weight:800;color:#1B3A6B;margin-bottom:1mm;
    padding-bottom:.6mm;border-bottom:1px solid #C6D0DE}
  .ctrlcc-blok-h span{font-weight:600;color:#666}
  .ctrlcc-tisk table{width:100%;table-layout:fixed}
  .ctrlcc-tisk th,.ctrlcc-tisk td{font-size:6.2pt;padding:.5mm .8mm;line-height:1.25}
  .ctrlcc-tisk .pl-lbl{font-size:6.4pt;white-space:normal}
  .ctrlcc-tisk .ctrlcc-grouph{font-size:6.4pt}
  .ctrlcc-tisk .ctrlcc-ccname{font-size:5.4pt;font-weight:500}
  /* Panel s prokliky na detail střediska je na papíře k ničemu. */
  .section[data-section="ctrl-costcenters"] .plan-firma-toggle{display:none}
}

/* ── Dashboard 2.0 (sekce dashboard2) ─────────────────────────────────────
 * Prezentacni list pro majitele: pevna mrizka, tmave modra hlava, KPI pas.
 * Barvy jedou z promennych aplikace, aby drzel svetly i tmavy rezim. */
.db2-hlava { display: flex; justify-content: space-between; align-items: center; gap: 16px;
  background: linear-gradient(135deg, #14335F, #1F4E8C); color: #fff;
  border-radius: 10px; padding: 16px 22px; margin-bottom: 12px; }
.db2-h1 { font-size: 21px; font-weight: 700; }
.db2-h2 { font-size: 12.5px; opacity: .82; margin-top: 2px; }
.db2-hp { text-align: right; font-size: 15px; font-weight: 600; white-space: nowrap; }
.db2-kpi { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 12px; }
@media (max-width: 1500px) { .db2-kpi { grid-template-columns: repeat(3, 1fr); } }
.db2-karta { background: var(--panel-bg, var(--bg2, #fff)); border: 1px solid var(--border, #dfe5ee);
  border-radius: 10px; padding: 12px 14px; }
.db2-kl { font-size: 11.5px; font-weight: 600; color: var(--muted, #64748b);
  text-transform: none; margin-bottom: 5px; }
.db2-kv { font-size: 21px; font-weight: 750; letter-spacing: -.02em; }
.db2-kv.zle { color: #C43D3D; }
.db2-ks { margin-top: 5px; font-size: 11.5px; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.db2-delta { font-weight: 700; font-size: 11.5px; }
.db2-delta.ok { color: #1E8A4C; } .db2-delta.zle { color: #C43D3D; }
.db2-pozn { color: var(--muted, #64748b); font-size: 11.5px; }
/* Meziměsíční změna FTE — malé číslo v závorce vedle hodnoty (PH 19. 9. 2026).
   Záměrně bez zelené/červené: víc lidí není samo o sobě dobře ani špatně. */
/* Kompaktní tabulka lidí: měsíců bývá až dvanáct, takže se šetří každý
   pixel — menší písmo, užší buňky a změna se sází POD číslo, ne za něj. */
.db2-fte-tab { font-size: 11.5px; }
.db2-fte-tab th { padding: 5px 5px; font-size: 10.5px; }
.db2-fte-tab td { padding: 4px 5px; }
.db2-fte-tab .db2-fte-zm { display: block; margin-left: 0; line-height: 1.15; }
.db2-fte-zm { font-size: 10px; color: var(--muted, #64748b); margin-left: 3px; white-space: nowrap; }
/* Statistika účetnictví: štítek firmy u řady dokladů — bílá zaoblená buňka
   s barvou firmy v rámečku (PH 20. 9. 2026). */
.ustat-chip { display: inline-block; background: var(--panel-bg, #fff); border: 1px solid #c9d4e4;
  border-radius: 999px; padding: 1px 8px; margin: 1px 2px 1px 0; font-size: 11px; white-space: nowrap; }
.ustat-chip b { font-weight: 700; margin-left: 3px; }
[data-theme="dark"] .ustat-chip { background: transparent; }
.ustat-zm { font-size: 10px; color: var(--muted, #64748b); margin-left: 4px; white-space: nowrap; }
/* Roste/klesá u OBJEMU PRÁCE: modrá a šedá, ne zelená a červená — víc dokladů
   není samo o sobě dobře ani špatně, je to jen víc práce. */
/* Matice Fidoo: PH chce změnu poznat barvou — plus zeleně, minus červeně.
   Vlastní třídy, protože jinde (srovnání s trhem) znamená „nahoru" opak. */
.ustat-zm.plus { color: #1E8A4C; font-weight: 650; }
.ustat-zm.minus { color: #C43D3D; font-weight: 650; }
.ustat-zm.roste { color: #1F4E8C; }
.ustat-zm.klesa { color: #6B7A90; }
.ustat-vstup { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 10px 0 4px; }
.ustat-vstup label { font-size: 12.5px; font-weight: 600; display: flex; gap: 6px; align-items: center; }
.ustat-vstup input { padding: 3px 7px; border: 1px solid var(--border, #dfe5ee); border-radius: 7px; }
/* Legenda interaktivního grafu — klikem se kategorie vypíná. */
/* Záložky stránky Statistika účetnictví — co chci vidět (nahoře),
   pod nimi teprve filtry (za jaké období). */
.ustat-zalozky { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.ustat-zal { border: 1px solid var(--border, #dfe5ee); background: var(--panel-bg, #fff);
  color: var(--text, #1d2733); border-radius: 10px; padding: 7px 16px; font-size: 13px;
  font-weight: 650; cursor: pointer; }
.ustat-zal:hover { border-color: #1F4E8C; }
.ustat-zal.aktivni { background: #1F4E8C; border-color: #1F4E8C; color: #fff; }
.ustat-zal.ustat-zal-zelena { border-color: #2E9E63; color: #1E7A49; }
.ustat-zal.ustat-zal-zelena:hover { background: color-mix(in srgb, #2E9E63 10%, transparent); }
.ustat-zal.ustat-zal-zelena.aktivni { background: #2E9E63; border-color: #2E9E63; color: #fff; }
.ustat-zal.ustat-zal-modra { border-color: #3A6DB5; color: #2A5490; }
.ustat-zal.ustat-zal-modra:hover { background: color-mix(in srgb, #3A6DB5 10%, transparent); }
.ustat-zal.ustat-zal-modra.aktivni { background: #3A6DB5; border-color: #3A6DB5; color: #fff; }
.ustat-filtry { display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-start;
  padding: 8px 10px; border: 1px solid var(--border, #eef1f6); border-radius: 10px;
  background: color-mix(in srgb, var(--border, #eef1f6) 18%, transparent); margin-bottom: 8px; }
.ustat-fskupina { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; }
.ustat-fnadpis { font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em;
  color: var(--muted, #64748b); font-weight: 700; margin-right: 2px; }
/* Matice měsíců (Fidoo): první sloupec zůstává při posunu vidět, jinak
   by u dvanácti měsíců nebylo poznat, čí řádek je čí. */
.ustat-matice th, .ustat-matice td { white-space: nowrap; }
.ustat-matice thead th:first-child, .ustat-matice tbody td:first-child {
  position: sticky; left: 0; z-index: 2; background: var(--panel-bg, #fff); }
.ustat-matice thead th:first-child { background: #1F4E8C; }
[data-theme="dark"] .ustat-matice thead th:first-child { background: #24466F; }
.ustat-matice .db2-sum td:first-child { background: color-mix(in srgb, #1F4E8C 7%, var(--panel-bg, #fff)); }
.ustat-matice td.db2-klik { cursor: pointer; }
.ustat-matice td.db2-klik:hover { background: color-mix(in srgb, #1F4E8C 10%, var(--panel-bg, #fff)); }
/* Legenda grafu kategorií: mřížka se sloupci místo chumlu pilulek —
   v jedné řádce barva, účet, název a částka, všechno zarovnané pod sebou. */
/* Rychlá orientace na záložce Fidoo: řádek malých tlačítek, klik odroluje
   na blok a ten na okamžik blikne. */
.ustat-rychle { display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
  padding: 8px 10px; margin-bottom: 10px; border: 1px solid var(--border, #eef1f6);
  border-radius: 10px; background: color-mix(in srgb, var(--border, #eef1f6) 18%, transparent); }
.ustat-rychla { display: inline-flex; align-items: center; gap: 6px; cursor: pointer;
  border: 1px solid var(--border, #dfe5ee); background: var(--panel-bg, #fff);
  color: var(--text, #1d2733); border-radius: 999px; padding: 4px 11px; font-size: 11.5px;
  font-weight: 600; white-space: nowrap; }
.ustat-rychla:hover { border-color: #2E9E63; color: #1E7A49; }
.ustat-rychla span { font-size: 12.5px; opacity: .8; }
@keyframes ustatBlik {
  0% { background: color-mix(in srgb, #2E9E63 26%, transparent); }
  100% { background: transparent; }
}
.ustat-blik { animation: ustatBlik 1.5s ease-out; border-radius: 8px; }
/* Aby nadpis neskoncil schovany pod prilepenou horni listou. */
#uctoStatBox h4[id^="fidoo-"] { scroll-margin-top: 88px; }

.ustat-legenda { display: grid; grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));
  gap: 2px 14px; margin-bottom: 4px; }
.ustat-leg { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 8px;
  background: transparent; border: 1px solid transparent; border-radius: 8px; padding: 3px 8px;
  font-size: 12px; cursor: pointer; color: var(--text, #1d2733); text-align: left; width: 100%; }
.ustat-leg:hover { border-color: var(--border, #dfe5ee);
  background: color-mix(in srgb, #1F4E8C 6%, transparent); }
.ustat-leg.vyp { opacity: .5; }
.ustat-leg.vyp .ustat-leg-n { text-decoration: line-through; }
.ustat-leg-tec { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.ustat-leg-n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ustat-leg-v { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 650; }
.ustat-leg-v .db2-pozn { margin-left: 4px; font-weight: 400; }
.ustat-leg-ovl { margin: 2px 0 8px; }
.db2-fte-zm.ok { color: #1E8A4C; }
.db2-fte-zm.zle { color: #C43D3D; }
[data-theme="dark"] .db2-fte-zm.ok { color: #6FCB92; }
[data-theme="dark"] .db2-fte-zm.zle { color: #F09090; }

/* Export tabulek na dashboardu (PH 19. 9. 2026). Karty jsou uzke a hustе,
   proto se lista tlacitek drzi stranou a rozsviti se az pri najeti na panel
   nebo pri prechodu klavesnici — misto si drzi porad, aby layout neposkakoval. */
.section[data-section="dashboard2"] .tabx-lista { opacity: 0; transition: opacity .12s ease; }
.section[data-section="dashboard2"] .db2-panel:hover .tabx-lista,
.section[data-section="dashboard2"] .tabx-lista:focus-within { opacity: 1; }
.db2-grafy { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px; }
@media (max-width: 1300px) { .db2-grafy { grid-template-columns: 1fr; } }
.db2-panel { background: var(--panel-bg, var(--bg2, #fff)); border: 1px solid var(--border, #dfe5ee);
  border-radius: 10px; padding: 12px 14px; }
.db2-panel h3 { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: #1F4E8C;
  border-bottom: 2px solid var(--border, #dfe5ee); padding-bottom: 6px; }
[data-theme="dark"] .db2-panel h3 { color: #7FA8DC; }
.db2-panel svg { width: 100%; height: auto; display: block; }
/* Položky gridu mají implicitně min-width:auto — široká tabulka pak nejde
   zúžit a místo posuvníku uvnitř panelu vyjede celý sousední sloupec mimo
   obrazovku (PH 19. 9. 2026: „posunulo se to doprava a nezobrazuje se mi to").
   min-width:0 vrací panelům schopnost se smrsknout. */
.db2-stred > *, .db2-dole > *, .db2-cfblok > *, .db2-sloupec > * { min-width: 0; }
.db2-panel { min-width: 0; }
.db2-panel .scroll-x { max-width: 100%; }
.db2-stred { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; margin-bottom: 12px; }
@media (max-width: 1300px) { .db2-stred { grid-template-columns: 1fr; } }
.db2-sloupec { display: flex; flex-direction: column; gap: 10px; }
.db2-dole { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
@media (max-width: 1100px) { .db2-dole { grid-template-columns: 1fr; } }
.db2-tab { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.db2-tab th { font-size: 11px; color: #fff; background: #1F4E8C; padding: 6px 8px;
  text-align: left; font-weight: 600; }
[data-theme="dark"] .db2-tab th { background: #24466F; }
.db2-tab td { padding: 5.5px 8px; border-bottom: 1px solid var(--border, #e6ebf2); }
.db2-tab .c { text-align: right; white-space: nowrap; }
.db2-tab th.c { text-align: right; }
.db2-tab td.zle { color: #C43D3D; font-weight: 600; }
.db2-tab .db2-sum td { font-weight: 750; border-top: 2px solid #1F4E8C;
  background: color-mix(in srgb, #1F4E8C 7%, transparent); }
.db2-zavery { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 1100px) { .db2-zavery { grid-template-columns: 1fr; } }
.db2-zjisteni, .db2-kroky { border-radius: 10px; padding: 12px 16px; font-size: 12.5px; }
.db2-zjisteni { background: color-mix(in srgb, #C43D3D 9%, var(--panel-bg, #fff));
  border: 1px solid color-mix(in srgb, #C43D3D 30%, transparent); }
.db2-kroky { background: color-mix(in srgb, #1E8A4C 9%, var(--panel-bg, #fff));
  border: 1px solid color-mix(in srgb, #1E8A4C 30%, transparent); }
.db2-zjisteni h3 { color: #C43D3D; margin: 0 0 6px; font-size: 13px; }
.db2-kroky h3 { color: #1E8A4C; margin: 0 0 6px; font-size: 13px; }
.db2-zjisteni ul, .db2-kroky ol { margin: 0; padding-left: 20px; }
.db2-zjisteni li, .db2-kroky li { margin-bottom: 4px; }
/* grafy */
.db2-bar { fill: #1F4E8C; } .db2-bar.plan { fill: #9DB8DC; }
[data-theme="dark"] .db2-bar { fill: #4B84D0; } [data-theme="dark"] .db2-bar.plan { fill: #33507A; }
.db2-line { fill: none; stroke: #3FA36C; stroke-width: 2.5; }
.db2-line.c { stroke: #1F4E8C; } [data-theme="dark"] .db2-line.c { stroke: #7FA8DC; }
.db2-dot { fill: #3FA36C; } .db2-dot.c { fill: #1F4E8C; }
[data-theme="dark"] .db2-dot.c { fill: #7FA8DC; }
.db2-gv { font-size: 12px; font-weight: 700; fill: var(--text, #1d2733); }
.db2-gv.e { fill: #3FA36C; }
.db2-gl { font-size: 11px; fill: var(--muted, #64748b); }
.db2-leg { font-size: 11px; fill: var(--muted, #64748b); }
.db2-leg .lt { fill: #1F4E8C; } .db2-leg .le { fill: #3FA36C; }
[data-theme="dark"] .db2-gv { fill: #dfe7f2; }
.db2-kolstred { font-size: 21px; font-weight: 750; fill: var(--text, #1d2733); }
[data-theme="dark"] .db2-kolstred { fill: #dfe7f2; }
.db2-nula { stroke: #C43D3D; stroke-dasharray: 4 3; stroke-width: 1; }
.db2-dil { stroke: var(--panel-bg, #fff); stroke-width: 2; }
/* Dashboard 2.0 — dodatky: mesicni CF sloupce a tlacitko na strediska */
.db2-cf.ok { fill: #3FA36C; } .db2-cf.zle { fill: #C43D3D; }
.db2-osa { stroke: var(--border, #cbd5e1); stroke-width: 1; }
.db2-gv.m { font-size: 10.5px; }
.db2-btn { margin-top: 8px; border: 1px solid rgba(255,255,255,.55); background: rgba(255,255,255,.12);
  color: #fff; border-radius: 7px; padding: 5px 12px; font-size: 12px; font-weight: 600; cursor: pointer; }
.db2-btn:hover { background: rgba(255,255,255,.24); }
.db2-mrizka { stroke: var(--border, #dbe2ec); stroke-width: 1; stroke-dasharray: 2 4; opacity: .7; }
.db2-panel h3 .db2-pozn { float: right; font-weight: 500; }
.db2-gv.k { fill: #1F4E8C; font-size: 10.5px; }
[data-theme="dark"] .db2-gv.k { fill: #7FA8DC; }
/* Dashboard 2.0 — pozornost, psi, rychle akce, CF blok */
.db2-cfblok { display: grid; grid-template-columns: 1fr 2fr; gap: 10px; margin-bottom: 12px; }
@media (max-width: 1100px) { .db2-cfblok { grid-template-columns: 1fr; } }
.db2-grafy2 { grid-template-columns: repeat(2, 1fr) !important; }
@media (max-width: 1100px) { .db2-grafy2 { grid-template-columns: 1fr !important; } }
.db2-tecka { display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  margin-right: 7px; vertical-align: 1px; background: #9AA5B5; }
.db2-tecka.ok { background: #1E8A4C; } .db2-tecka.zle { background: #C43D3D; }
.db2-tecka.varuj { background: #E8A020; } .db2-tecka.seda { background: #9AA5B5; }
.db2-psi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1300px) { .db2-psi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.db2-pes { display: flex; gap: 9px; align-items: flex-start; border: 1px solid var(--border, #dfe5ee);
  border-radius: 9px; padding: 10px 12px; background: var(--card2, transparent); }
.db2-pes .db2-tecka { margin-top: 4px; flex: none; }
.db2-pes-n { font-size: 11.5px; font-weight: 600; color: var(--muted, #64748b); }
.db2-pes-h { font-size: 15.5px; font-weight: 750; margin-top: 1px; }
.db2-akce-obal { display: flex; flex-direction: column; gap: 7px; }
/* Rychlé akce přes celou šířku (PH 19. 9. 2026 — přeskládání dashboardu):
   tlačítka se srovnají vedle sebe a zalomí, místo sloupce pod sebou. */
.db2-akce-siroke .db2-akce-obal { flex-direction: row; flex-wrap: wrap; }
.db2-akce-siroke .db2-akce { flex: 1 1 200px; text-align: center; }
/* Financování a investice přes celou šířku: dvě úzké tabulky vedle sebe,
   měsíční dluhová služba pod nimi (ta má sloupec na každý měsíc). */
/* Tři drobné panely vedle sebe — Co vyžaduje pozornost, Klíčové ukazatele,
   Poslední 3 měsíce. Široké tabulky po firmách sem nepatří, ty jdou přes celou
   šířku (na notebooku má sloupec mřížky jen ~646 px a tabulka by se posouvala). */
/* Řádek se širokou tabulkou po firmách: dva sloupce až od 1500 px, níž pod
   sebou. Sloupec 2fr má při 1366 px jen ~646 px a tabulka s devíti sloupci
   (728 px) by se v něm musela posouvat — a posuvník PH výslovně nechce. */
.db2-rada-siroka { grid-template-columns: 2fr 1fr; }
/* 1340–1500 px (notebook): sloupec 2fr je těsný, tabulka se do něj dostane
   jen v kompaktním provedení a s větším podílem šířky. Pod 1340 px se řádek
   rozpadá pod sebe — radši delší stránka než posuvník doprava. */
@media (min-width: 1341px) and (max-width: 1500px) {
  .db2-rada-siroka { grid-template-columns: 2.4fr 1fr; }
  .db2-rada-siroka .db2-tab { font-size: 11.5px; }
  .db2-rada-siroka .db2-tab th { padding: 5px 5px; font-size: 10.5px; }
  .db2-rada-siroka .db2-tab td { padding: 4px 5px; }
}
@media (max-width: 1340px) { .db2-rada-siroka { grid-template-columns: 1fr; } }
/* Nakladove oblasti + Hlidaci psi: na velkem monitoru vedle sebe, na uzsim
   pod sebou (dlazdice psu potrebuji aspon dva sloupce, jinak se natahnou). */
.db2-rada-xl > * { min-width: 0; }
@media (min-width: 1600px) { .db2-rada-xl { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; } }
/* Hlidaci psi v uzkem bocnim sloupci (tretina sirky, ~420 px): ctyri
   dlazdice vedle sebe potrebuji ~480 px a ctvrta vyjizdela ven z panelu
   i z obrazovky (PH 21. 9. 2026). Tady jdou vzdy po dvou. */
@media (min-width: 1600px) { .db2-rada-xl .db2-psi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* A pojistka pro vsechny sirky: dlazdice se smi zuzit, text se zalomi,
   ale nic nevyleze z panelu. */
.db2-psi > .db2-pes { min-width: 0; }
.db2-pes > div { min-width: 0; overflow-wrap: anywhere; }
.db2-tri { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 12px; }
.db2-tri > * { min-width: 0; }
@media (max-width: 1250px) { .db2-tri { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 820px) { .db2-tri { grid-template-columns: 1fr; } }
.db2-fin-mriz { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
.db2-fin-mriz > * { min-width: 0; }
/* Rozpis úvěrů a leasingů (PH 22. 9. 2026): přes CELOU šířku panelu, ne
   v levém sloupci mřížky — tam se tabulka nevešla a měla vlastní posuvník.
   Světle modré pozadí odlišuje rozbalenou oblast od zbytku panelu. */
/* Stitek navrhujeme u stupne upominky: nic se neodeslalo (PH 23. 9. 2026). */
.pzp-navrh{font-style:normal;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text3);margin-right:2px}
/* Ovladaci lista na strance Report pro majitele: select mesice je
   nastylovany pro tmavou hlavicku zpravy CFO (bile pismo), tady je ale
   na svetlem panelu — prebarvuje se na tmave (PH 22. 9. 2026). */
#majBox .zpr-mesic{color:var(--text);border-color:var(--border);background:var(--surface)}
html[data-theme="dark"] #majBox .zpr-mesic{color:var(--text);background:var(--surface2)}
/* Report pro majitele (PH 22. 9. 2026): prouzek velikosti pod cislem,
   sekce podle ukazatele a cip se zmenou proti lonsku. */
/* Krizova tabulka Naklady centraly: uzsi sloupce, at se vejde bez posuvniku. */
.centrala-krizova{width:100%;table-layout:fixed}
/* Nazev utvaru se musi vejit CELY — hlavicka se zalamuje (PH 23. 9. 2026). */
.centrala-krizova th,.centrala-krizova td{padding:5px 4px;font-size:11.5px}
/* .db2-tab .c ma nowrap — u krizovych tabulek to hlavicku orezavalo,
   proto se tady prebiji vyssi specifikou (PH 23. 9. 2026). */
.centrala-krizova thead th,.centrala-krizova thead th.c,
.centrala-matice thead th,.centrala-matice thead th.c{white-space:normal;word-break:normal;
  overflow-wrap:anywhere;vertical-align:bottom;line-height:1.25;font-size:11px}
.centrala-krizova tbody td,.centrala-matice tbody td{white-space:nowrap}
.centrala-matice{width:100%;table-layout:fixed}
.centrala-matice th,.centrala-matice td{padding:5px 4px;font-size:11.5px}
.centrala-matice th:first-child,.centrala-matice td:first-child{width:20%;white-space:normal}
.centrala-krizova th:first-child,.centrala-krizova td:first-child{width:24%;white-space:normal}
.centrala-krizova th.c,.centrala-krizova td.c{text-align:right}
/* Vnitroskupinove financovani (PH 23. 9. 2026): barvy nesou smysl -
   odchozi penize cervene, prichozi zelene, vztahy uvnitr skupiny modre. */
.vfin-karty .db2-karta{border-left:4px solid var(--border)}
.vfin-karty .db2-karta.vfin-ven{border-left-color:#C43D3D}
.vfin-karty .db2-karta.vfin-dovnitr{border-left-color:#1E8A4C}
.vfin-karty .db2-karta.vfin-skupina{border-left-color:#1F4E8C}
.vfin-karty .db2-karta.vfin-obdobi{border-left-color:#7A4FBF}
.db2-tab td.vfin-p{background:rgba(30,138,76,.07)}
.db2-tab td.vfin-z{background:rgba(208,138,34,.09)}
.db2-tab th.vfin-p{background:#D8EBE0;color:#12331F}
.db2-tab th.vfin-z{background:#FBE7C7;color:#3B2A08}
.db2-tab tr.db2-sum td.vfin-p{background:rgba(30,138,76,.13)}
.db2-tab tr.db2-sum td.vfin-z{background:rgba(208,138,34,.16)}
html[data-theme="dark"] .db2-tab th.vfin-p{background:#24452F;color:#DCEFE3}
html[data-theme="dark"] .db2-tab th.vfin-z{background:#4A3A18;color:#F7E7C6}
.vfin-bar{display:block;height:3px;margin-top:3px;border-radius:2px;background:var(--surface2);overflow:hidden}
.vfin-bar i{display:block;height:100%;border-radius:2px}
.vfin-sipka{color:var(--text3);font-weight:700;margin-right:2px}
.vfin-tab tbody tr:hover td{background:rgba(31,78,140,.05)}
/* Hlavicka reportu pro majitele: tmave modry podklad, proto BILE pismo —
   popisek jednotek byl v sede (--text3) a nebyl citelny (PH 23. 9. 2026).
   Zaroven o neco vetsi pismo, at se hlavicka da precist. */
.maj-tab thead th{font-size:12px;line-height:1.35;padding:8px 8px}
.maj-tab thead th i,.maj-tab thead th .db2-pozn{color:rgba(255,255,255,.88);font-size:11px;font-style:normal;font-weight:600}
.maj-bar{display:block;height:3px;margin-top:3px;border-radius:2px;background:var(--surface2);overflow:hidden}
.maj-bar i{display:block;height:100%;border-radius:2px}
.maj-db{display:flex;align-items:center;gap:8px;min-width:128px}
.maj-db-t{flex:1;height:14px;border-radius:4px;background:var(--surface2);overflow:hidden}
.maj-db-t i{display:block;height:100%;border-radius:4px;opacity:.85}
.maj-db b{min-width:46px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.maj-tab td.maj-db-td{padding-left:10px;padding-right:10px}
.maj-prep{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-left:10px}
.maj-prep button{border:0;background:var(--surface);color:var(--text2);font:600 12.5px var(--font-sans);padding:6px 12px;cursor:pointer}
.maj-prep button+button{border-left:1px solid var(--border)}
.maj-prep button.on{background:var(--blue);color:#fff}
.majg-leg{display:flex;flex-wrap:wrap;gap:6px 16px;margin:2px 0 12px;font-size:12.5px;color:var(--text2)}
.majg-leg span,.majg-sk span{display:inline-flex;align-items:center;gap:6px}
.majg-leg i,.majg-sk i{display:inline-block;width:14px;height:10px;border-radius:3px}
.majg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,470px),1fr));gap:14px}
.majg-k{border:1px solid var(--border);border-left:4px solid var(--maj-ton,#1F4E8C);border-radius:10px;padding:12px 14px;background:var(--surface);min-width:0}
.majg-h{display:flex;align-items:center;gap:6px;font-size:15.5px;text-transform:uppercase;letter-spacing:.03em;
  margin:-12px -14px 8px;padding:10px 14px;border-radius:0 9px 0 0;background:color-mix(in srgb,var(--maj-ton,#1F4E8C) 15%,var(--surface,#fff));border-bottom:2px solid var(--maj-ton,#1F4E8C)}
.majg-h b{font-weight:800;color:var(--text)}.majg-h .maj-jedn{font-size:12px;text-transform:none}.majg-h .maj-tecka{width:10px;height:10px}
.majg-sk{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;color:var(--text2);padding:6px 0 8px;border-bottom:1px solid var(--border);margin-bottom:6px}
.majg-sk b{color:var(--text)}.majg-sk b.zle{color:#C43D3D}
.majg-skn{font-weight:700;color:var(--text)}
.majg-k .majg-leg{margin:0 0 6px;font-size:12px}
.majg-vysv{font-size:11.5px;color:var(--text2);line-height:1.4;margin:-2px 0 6px}
/* TISK A HTML EXPORT REPORTU PRO MAJITELE (PH 26. 9. 2026: „musí dobře sedět na
 * stránky, teď je to rozházené"). .rep-obsah = tisková / exportovaná kopie
 * (pz-report.js tiskStranky): bez druhého nadpisu a ovládání, bez rámečku
 * panelu; sekce tabulky, bloky a karty grafů se nedělí přes stránku. */
.rep-obsah .section[data-section="majitel-report"] > .section-head,.rep-obsah .maj-lista{display:none!important}
.rep-obsah #majBox > .db2-panel{border:0!important;box-shadow:none!important;padding:0!important;background:none!important}
.maj-tab tbody.maj-tb{break-inside:avoid;page-break-inside:avoid}
.maj-blok,.majg-k{break-inside:avoid;page-break-inside:avoid}
.rep-obsah .majg-grid{grid-template-columns:1fr 1fr;gap:12px}
.rep-obsah .majg-leg{break-after:avoid}
@media print{.maj-lista,.maj-prep{display:none!important}}
/* SOUČTOVÝ ŘÁDEK A ODDĚLENÍ SEKCÍ (PH 26. 9. 2026: „řádek Skupina jinak podbarvit,
 * ať je jasné, že je to suma kategorie; tabulky hezky oddělit"). */
.maj-tab tr.maj-suma td{background:color-mix(in srgb,var(--maj-ton,#1F4E8C) 13%,var(--surface,#fff))!important;
  border-top:2px solid var(--maj-ton,#1F4E8C)!important;border-bottom:2px solid var(--maj-ton,#1F4E8C)!important;font-weight:800;color:var(--text)}
.maj-tab tr.maj-suma td:first-child{border-left:4px solid var(--maj-ton,#1F4E8C)!important;letter-spacing:.01em}
.maj-tab tbody.maj-tb + tbody.maj-tb tr.maj-sekce td{border-top:14px solid var(--surface,#fff)!important}
.rep-obsah .maj-tab tbody.maj-tb + tbody.maj-tb tr.maj-sekce td{border-top-color:#fff!important}
.maj-str-lista{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.maj-str-m{height:28px;padding:0 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface);font:600 12.5px var(--font-sans);color:var(--text2);cursor:pointer}
.maj-str-m.on{background:var(--blue);border-color:var(--blue);color:#fff}
.maj-tab tr.maj-nezar td{color:var(--text2);font-style:italic}
.maj-tab tr.maj-elim td{color:var(--text2);font-style:italic;border-top:1px dashed var(--border)}
.maj-tab tr.maj-suma-sk td{background:color-mix(in srgb,#111F4D 12%,var(--surface,#fff))!important;border-top:3px solid #111F4D!important;font-size:13.5px}
.maj-kontrola{font-size:12.5px;font-weight:700;margin:8px 0 4px}.maj-kontrola.ok{color:#1E7A4C}.maj-kontrola.zle{color:#C0392B}
.rep-obsah .maj-str-lista{display:none!important}
.majg-tel{position:relative}
.majg-f{display:grid;grid-template-columns:118px 1fr;gap:8px;align-items:center;padding:5px 0;border-bottom:1px dashed var(--border)}
.majg-f:last-child{border-bottom:0}
.majg-fn{font-weight:700;font-size:12.5px;color:var(--text);line-height:1.3}
.majg-fn .maj-chip{margin:3px 0 0;display:inline-block}
.majg-rady{display:flex;flex-direction:column;gap:3px;min-width:0}
.majg-r{height:15px}
.majg-t{position:relative;display:block;height:100%}
.majg-zap .majg-t::before{content:"";position:absolute;left:var(--maj-nula);top:-2px;bottom:-2px;border-left:1.5px solid var(--text3)}
.majg-t i{position:absolute;top:1px;bottom:1px;border-radius:3px}
.majg-t b{position:absolute;top:50%;transform:translateY(-50%);font-size:11.5px;font-weight:700;color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}
.majg-t b.zle{color:#C43D3D}.majg-t b.majg-nic{color:var(--text3);font-weight:400}
.maj-tab tr.maj-sekce td{background:var(--surface2);font-weight:700;font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--text);padding:7px 8px;border-left:4px solid var(--maj-ton,#1F4E8C)}
.maj-tecka{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:var(--maj-ton,#1F4E8C);vertical-align:middle}
.maj-jedn{font-style:normal;text-transform:none;letter-spacing:0;font-weight:600;font-size:10.5px;color:var(--text3);margin-left:8px}
.maj-chip{display:inline-block;font-size:10.5px;font-weight:700;border-radius:99px;padding:1px 6px;margin-left:4px}
.maj-chip.plus{background:rgba(30,138,76,.16);color:#14653A}
.maj-chip.minus{background:rgba(196,61,61,.16);color:#9B2C2C}
.maj-chip.nula{background:var(--surface2);color:var(--text3)}
html[data-theme="dark"] .maj-chip.plus{background:rgba(124,199,156,.18);color:#BFEFD3}
html[data-theme="dark"] .maj-chip.minus{background:rgba(240,138,126,.18);color:#F6C9C3}
/* Dashboard: pohledavky vs. zavazky v jedne tabulce (PH 22. 9. 2026) —
   pohledavky do zelena, zavazky do oranzova; hlavicka o odstin syteji. */
.db2-tab td.db2-pz-p{background:rgba(30,138,76,.07)}
.db2-tab td.db2-pz-z{background:rgba(245,166,35,.09)}
/* Hlavicka ma bile pismo na tmave modre — pri svetlem podbarveni by
   zmizelo, proto se u techto sloupcu prebarvuje na tmave (PH 22. 9. 2026). */
.db2-tab th.db2-pz-p{background:#D8EBE0;color:#12331F}
.db2-tab th.db2-pz-z{background:#FBE7C7;color:#3B2A08}
html[data-theme="dark"] .db2-tab th.db2-pz-p{background:#24452F;color:#DCEFE3}
html[data-theme="dark"] .db2-tab th.db2-pz-z{background:#4A3A18;color:#F7E7C6}
.db2-tab tr.db2-sum td.db2-pz-p{background:rgba(30,138,76,.13)}
.db2-tab tr.db2-sum td.db2-pz-z{background:rgba(245,166,35,.16)}
html[data-theme="dark"] .db2-tab td.db2-pz-p{background:rgba(124,199,156,.10)}
html[data-theme="dark"] .db2-tab td.db2-pz-z{background:rgba(224,181,78,.12)}
/* Strida se podbarveni bloku firem a zvyrazneny pocet lidi (PH 23. 9. 2026). */
/* Specificita musi prebit pravidlo pro sticky prvni sloupec
   (.scroll-x > table.dash-table > tbody > tr > td:first-child). */
.scroll-x > table.dash-table > tbody > tr.prod-blok-alt > td,
.dash-table tbody tr.prod-blok-alt > td,
/* prvni sloupec je sticky a ma vlastni pozadi — musi se prebit taky */
.scroll-x > table.dash-table > tbody > tr.prod-blok-alt > td:first-child,
.dash-table tbody tr.prod-blok-alt > td:first-child{background:#EEF3FA}
html[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.prod-blok-alt > td,
html[data-theme="dark"] .dash-table tbody tr.prod-blok-alt > td,
html[data-theme="dark"] .scroll-x > table.dash-table > tbody > tr.prod-blok-alt > td:first-child,
html[data-theme="dark"] .dash-table tbody tr.prod-blok-alt > td:first-child{background:#232B36}
.prod-fte{font-size:15px;font-weight:800;color:var(--text);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
/* Prouzek velikosti v tabulce Produktivita a FTE (PH 22. 9. 2026). */
.prod-bar{display:block;height:4px;margin-top:4px;border-radius:2px;background:var(--surface2);overflow:hidden}
.prod-bar i{display:block;height:100%;border-radius:2px}
/* Klikaci bunka v Mesicni zprave CFO — proklik na doklady (PH 22. 9. 2026). */
.zpr-tbl td.zpr-klik{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.zpr-tbl td.zpr-klik:hover{background:rgba(31,78,140,.08)}
/* Přepínač viditelnosti závěrů na dashboardu (PH 22. 9. 2026). */
.db2-zavery-prep{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:12.5px;
  color:var(--text2);cursor:pointer;user-select:none}
.db2-zavery-prep input{width:16px;height:16px;cursor:pointer}
.db2-zavery-prep i{font-style:normal}
.db2-fin-rozpis { margin: 10px 0 4px; padding: 10px 12px; border-radius: var(--radius-sm);
  background: rgba(31, 78, 140, 0.06); border: 1px solid rgba(31, 78, 140, 0.18); }
.db2-fin-rozpis > .scroll-x { overflow-x: visible; }
.db2-fin-rozpis table { width: 100%; }
html[data-theme="dark"] .db2-fin-rozpis { background: rgba(120, 170, 235, 0.10); border-color: rgba(120, 170, 235, 0.22); }
@media (max-width: 1100px) { .db2-fin-mriz { grid-template-columns: 1fr; } }
.db2-akce { text-align: left; border: 1px solid var(--border, #dfe5ee); background: transparent;
  color: var(--text, #1d2733); border-radius: 8px; padding: 8px 12px; font-size: 12.5px;
  font-weight: 600; cursor: pointer; }
.db2-akce:hover { border-color: #1F4E8C; background: color-mix(in srgb, #1F4E8C 7%, transparent); }
[data-theme="dark"] .db2-akce { color: #dfe7f2; }
.db2-tlacitka { display: flex; gap: 8px; justify-content: flex-end; }
.db2-btn.on { background: rgba(255,255,255,.30); border-color: #fff; }
/* Dashboard 2.0 — barevne bunky P/Z, stitky srovnani, kompaktni tisk */
.db2-srov { font-size: 10.5px; color: var(--muted, #8a93a6); margin-top: 3px; }
.db2-bunka { display: inline-block; min-width: 54px; text-align: right; padding: 2px 8px;
  border-radius: 6px; font-weight: 650; font-size: 12px; }
.db2-bunka.ok { background: color-mix(in srgb, #1E8A4C 14%, transparent); color: #176A3B; }
.db2-bunka.pozdě { background: color-mix(in srgb, #E8A020 18%, transparent); color: #8A5A00; }
.db2-bunka.zle { background: color-mix(in srgb, #C43D3D 16%, transparent); color: #A32222; }
.db2-bunka.nula { color: var(--muted, #9aa5b5); }
[data-theme="dark"] .db2-bunka.ok { color: #6FD39A; }
[data-theme="dark"] .db2-bunka.pozdě { color: #F0C060; }
[data-theme="dark"] .db2-bunka.zle { color: #F09090; }
@media print {
  /* Kompaktni tisk dashboardu: mensi pismo, pevne mrizky, zadne lamani
   * uvnitr panelu, ovladaci prvky pryc. */
  [data-section="dashboard2"] .db2-btn, [data-section="dashboard2"] .db2-akce,
  [data-section="dashboard2"] .db2-tlacitka { display: none !important; }
  [data-section="dashboard2"] .db2-kpi { grid-template-columns: repeat(6, 1fr) !important; gap: 4px; }
  [data-section="dashboard2"] .db2-grafy2 { grid-template-columns: repeat(2, 1fr) !important; }
  [data-section="dashboard2"] .db2-stred { grid-template-columns: 2fr 1fr !important; }
  [data-section="dashboard2"] .db2-cfblok { grid-template-columns: 1fr 2fr !important; }
  [data-section="dashboard2"] .db2-psi { grid-template-columns: repeat(4, 1fr) !important; }
  [data-section="dashboard2"] .db2-zavery { grid-template-columns: 1fr 1fr !important; }
  [data-section="dashboard2"] .db2-panel, [data-section="dashboard2"] .db2-karta,
  [data-section="dashboard2"] .db2-pes, [data-section="dashboard2"] .db2-zjisteni,
  [data-section="dashboard2"] .db2-kroky { break-inside: avoid; box-shadow: none; padding: 6px 8px; }
  [data-section="dashboard2"] .db2-tab { font-size: 7.5pt; }
  [data-section="dashboard2"] .db2-tab td, [data-section="dashboard2"] .db2-tab th { padding: 2.5px 5px; }
  [data-section="dashboard2"] .db2-kv { font-size: 13pt; }
  [data-section="dashboard2"] .db2-hlava { padding: 8px 14px; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  [data-section="dashboard2"] .db2-bunka { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  [data-section="dashboard2"] .db2-zjisteni li, [data-section="dashboard2"] .db2-kroky li { font-size: 8pt; }
}
.db2-bar.mesic { opacity: .55; }
.db2-gvs { font-size: 10px; font-weight: 700; }
.db2-gvs.b { font-size: 10.5px; font-weight: 800; }
.db2-vbox { fill: var(--panel-bg, var(--bg2, #fff)); opacity: .94; }
.db2-gvt { font-size: 11.5px; font-weight: 750; fill: #16202E; }
.db2-gvt.b { font-size: 12.5px; font-weight: 800; }
.db2-gvt.zle { fill: #C43D3D; }
[data-theme="dark"] .db2-gvt { fill: #ECF0F6; }
[data-theme="dark"] .db2-gvt.zle { fill: #F09090; }
/* Dashboard — modal detailu dluhove sluzby a klikaci bunky */
.db2-ds-klik { cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.db2-ds-klik:hover { background: color-mix(in srgb, #1F4E8C 10%, transparent); }
#db2Modal { position: fixed; inset: 0; background: rgba(10, 18, 32, .45); z-index: 900;
  display: flex; align-items: center; justify-content: center; padding: 24px; }
.db2-modal-okno { background: var(--panel-bg, var(--bg2, #fff)); border-radius: 12px;
  max-width: 900px; width: 100%; max-height: 82vh; display: flex; flex-direction: column;
  box-shadow: 0 18px 50px rgba(0,0,0,.35); border: 1px solid var(--border, #dfe5ee); }
.db2-modal-hlava { display: flex; justify-content: space-between; align-items: center;
  gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border, #dfe5ee); }
.db2-modal-telo { overflow: auto; padding: 10px 16px 16px; }
tr.db2-klik { cursor: pointer; }
tr.db2-klik:hover td { background: color-mix(in srgb, #1F4E8C 8%, transparent); }
.db2-pz-klik { cursor: pointer; }
.db2-modal { position: fixed; inset: 0; background: rgba(10, 18, 32, .45); z-index: 900;
  display: flex; align-items: center; justify-content: center; padding: 24px; }
.vsk-diag { color: var(--muted, #9aa5b5); }
/* Klikaci bunky: oramovani pri najeti (PH — at je videt, ze se da kliknout) */
.db2-ds-klik:hover, .db2-pz-klik:hover, td.db2-klik:hover {
  outline: 2px solid #1F4E8C; outline-offset: -2px; border-radius: 4px; cursor: pointer; }
[data-theme="dark"] .db2-ds-klik:hover, [data-theme="dark"] .db2-pz-klik:hover,
[data-theme="dark"] td.db2-klik:hover { outline-color: #7FA8DC; }
.mdx-btn { font-size: 12px; }
/* Oramovani pri najeti i pro klikaci RADKY (dashboard: nakladove oblasti,
 * CAPEX; centrala: oblasti, protistrany) — bunky uz oramovani maji. */
tr.db2-klik:hover { outline: 2px solid #1F4E8C; outline-offset: -2px; cursor: pointer; }
[data-theme="dark"] tr.db2-klik:hover { outline-color: #7FA8DC; }
.vsk-blok td { background: color-mix(in srgb, #1F4E8C 10%, transparent);
  font-weight: 750; font-size: 12px; color: #1F4E8C; padding: 6px 8px; }
[data-theme="dark"] .vsk-blok td { color: #7FA8DC; }
.vsk-mezisoucet td { font-weight: 650; border-bottom: 2px solid var(--border, #dfe5ee);
  background: color-mix(in srgb, #1F4E8C 4%, transparent); }
.cfv-detail td { font-size: 11px; color: var(--muted, #5a6780); background: color-mix(in srgb, #1F4E8C 3%, transparent); }
/* Vyhledavani a razeni ve vyskakovacich oknech i na novych zalozkach */
.mdx-listice { display: flex; gap: 10px; align-items: center; margin: 6px 0 8px; padding: 0 2px; }
.db2-modal-okno .mdx-listice { padding: 8px 16px 0; margin: 0; }
/* Hledani v rozpadu dokladu (.jmodal) - lista je flex polozka okna,
   nesmi se smrsknout a musi zarovnat na odsazeni tabulky (PH 24. 9. 2026). */
.jmodal > .mdx-listice { flex-shrink: 0; padding: 10px 24px 0; margin: 0; }
.jmodal > .mdx-listice .mdx-hledat { flex: 1 1 320px; max-width: 480px; }
.cfd-box > .mdx-listice { flex-shrink: 0; padding: 8px 18px 0; margin: 0; }
.mdx-hledat { flex: 0 1 340px; border: 1px solid var(--border, #dfe5ee);
  border-radius: 7px; padding: 6px 10px; font-size: 12.5px;
  background: var(--surface2, transparent); color: var(--text, inherit); }
.db2-modal-okno thead th, #db2Box .db2-tab thead th, #centralaBox .db2-tab thead th,
#vskBox .db2-tab thead th, #topNBox .db2-tab thead th, #vsenBox .db2-tab thead th, #cfvBox .db2-tab thead th {
  cursor: pointer; user-select: none; }
th[data-mdx-smer="desc"]::after { content: " ▼"; font-size: 9px; }
th[data-mdx-smer="asc"]::after { content: " ▲"; font-size: 9px; }

/* ── Platební morálka odběratelů (sekce pz-moralka) ──────────────────── */
.mor-karty { display: grid; grid-template-columns: repeat(4, 1fr) 1.6fr; gap: 10px; margin-bottom: 12px; }
.mor-karta { display: flex; align-items: center; gap: 10px; background: var(--surface); border: 1px solid var(--border);
  border-radius: 10px; padding: 9px 12px; font-size: 12px; }
.mor-karta b { font-size: 14px; }
.mor-karta-znamka { width: 34px; height: 34px; border-radius: 8px; color: #fff; font-weight: 800;
  font-size: 17px; display: flex; align-items: center; justify-content: center; flex: none; }
.mor-znamka { display: inline-flex; width: 20px; height: 20px; border-radius: 5px; color: #fff;
  font-weight: 800; font-size: 11.5px; align-items: center; justify-content: center; }
.mor-pruh { display: inline-flex; width: 130px; height: 12px; border-radius: 6px; overflow: hidden;
  background: var(--border); vertical-align: middle; }
.mor-pruh span { display: block; height: 100%; }
.mor-hur { color: #C43D3D; font-weight: 600; }
.mor-lip { color: #1E8A4C; font-weight: 600; }
.mor-hledat { padding: 5px 9px; border: 1px solid var(--border); border-radius: 7px;
  background: var(--surface); color: var(--text); min-width: 170px; }
.mor-radek { cursor: pointer; }
.mor-radek:hover td { background: color-mix(in srgb, var(--blue) 6%, transparent); }
.mor-open td { background: color-mix(in srgb, var(--blue) 8%, transparent); }
.mor-detail td { background: color-mix(in srgb, var(--blue) 4%, transparent); }
.mor-mes th, .mor-mes td { font-size: 11.5px; }
@media (max-width: 1100px) { .mor-karty { grid-template-columns: repeat(2, 1fr); } }

/* Obecné: záporné číslo/varování v obyčejné tabulce (mimo db2 rámec). */
.tbl td.zle { color: #C43D3D; font-weight: 600; }
.cfpl-zle { color: #C43D3D; }

/* Popisky v SVG grafech nových stránek (cyklus peněz). */
.prod-gl { font-size: 10.5px; fill: var(--muted); }
.prod-gh { font-size: 10px; font-weight: 700; }

/* ── Co kdyby — výsledovka (sekce plan-cokdyby) ──────────────────────── */
.ck-skupina + .ck-skupina { margin-top: 10px; }
.ck-skupina h4 { margin: 0 0 7px; font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .5px; color: var(--muted); }
.ck-paky { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ck-paka { display: flex; flex-direction: column; gap: 3px; min-width: 0; box-sizing: border-box;
  background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px;
  transition: border-color .15s, box-shadow .15s; }
.ck-paka:hover { border-color: color-mix(in srgb, var(--blue) 35%, var(--border)); }
.ck-paka-on { border-color: color-mix(in srgb, var(--blue) 60%, var(--border));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--blue) 10%, transparent); }
.ck-paka-off { opacity: .6; }
.ck-paka-hlava { display: flex; align-items: center; justify-content: space-between; gap: 6px;
  font-size: 12px; font-weight: 600; }
/* Spodní řádek karty: posuvník a štítek dopadu — popisek nahoře má pak celou šířku. */
.ck-paka-spodek { display: flex; align-items: center; gap: 6px; }
.ck-paka-spodek input[type="range"] { flex: 1; min-width: 0; }
.ck-paka-spodek .ck-dopad { min-width: 50px; text-align: right; }
.ck-paka-hlava > span:first-child { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ck-paka-hodnota { display: inline-flex; align-items: center; gap: 4px; flex: none; }
.ck-paka-hodnota input { width: 52px; box-sizing: border-box; padding: 1px 5px; text-align: right;
  border: 1px solid var(--border); border-radius: 6px; background: var(--bg, #fff); color: var(--text);
  font: inherit; font-weight: 700; font-variant-numeric: tabular-nums; }
.ck-paka-hodnota i { font-style: normal; font-size: 11px; color: var(--muted); min-width: 22px; }
.ck-paka input[type="range"] { width: 100%; height: 14px; margin: 0; accent-color: var(--blue); }
.ck-paka-pod { font-size: 11px; color: var(--muted); line-height: 1.35; }
.ck-select { padding: 5px 9px; border: 1px solid var(--border); border-radius: 7px;
  background: var(--surface); color: var(--text); font: inherit; font-size: 12.5px; }
.ck-label { font-size: 12px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.ck-kpi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 12px; }
.db2-tab tr.ck-kp td { font-weight: 700; }
.db2-tab tr.ck-zmena td:first-child { box-shadow: inset 3px 0 0 color-mix(in srgb, var(--blue) 60%, transparent); }
.ck-kov-ok { color: #1E8A4C; font-weight: 700; }
.ck-kov-varovani { color: #B7791F; font-weight: 700; }
.ck-kov-zle { color: #C43D3D; font-weight: 700; }
.ck-scenare { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: -2px 0 10px; font-size: 12px; }
.ck-preset { padding: 3px 11px; border-radius: 12px; border: 1px solid color-mix(in srgb, var(--blue) 35%, var(--border));
  background: color-mix(in srgb, var(--blue) 6%, transparent); color: var(--text); font: inherit; font-size: 12px; cursor: pointer; }
.ck-preset:hover { background: color-mix(in srgb, var(--blue) 14%, transparent); }
.ck-napoveda { margin-left: auto; font-size: 11px; color: var(--muted); display: inline-flex; align-items: center; gap: 5px; }
.ck-leg { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-left: 4px; }
.ck-leg-plus { background: #1E8A4C; } .ck-leg-minus { background: #C43D3D; }
/* Barva karty = vliv páky na výsledek (zelená pomáhá, červená škodí), ne znaménko čísla. */
.ck-dopad { font-size: 10.5px; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ck-paka.ck-paka-plus { border-color: #8FCBA6; background: color-mix(in srgb, #1E8A4C 7%, var(--surface));
  box-shadow: 0 0 0 3px color-mix(in srgb, #1E8A4C 9%, transparent); }
.ck-paka.ck-paka-minus { border-color: #E2A3A3; background: color-mix(in srgb, #C43D3D 7%, var(--surface));
  box-shadow: 0 0 0 3px color-mix(in srgb, #C43D3D 9%, transparent); }
.ck-paka-plus .ck-dopad, .ck-paka-plus .ck-paka-hodnota input { color: #1E8A4C; }
.ck-paka-minus .ck-dopad, .ck-paka-minus .ck-paka-hodnota input { color: #C43D3D; }
.ck-paka-plus input[type="range"] { accent-color: #1E8A4C; }
.ck-paka-minus input[type="range"] { accent-color: #C43D3D; }
.ck-tab td.mor-lip { background: color-mix(in srgb, #1E8A4C 10%, transparent); }
.ck-tab td.mor-hur { background: color-mix(in srgb, #C43D3D 10%, transparent); }
@media (max-width: 1400px) { .ck-paky { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1100px) { .ck-paky { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .ck-kpi { grid-template-columns: repeat(2, 1fr); } }

/* ── Měsíční zpráva CFO (sekce mesicni-zprava) ───────────────────────── */
.zprava-hlava { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.zprava-akce { margin-left: auto; display: flex; gap: 8px; }
.zprava-shrnuti { margin: 2px 0 0 18px; padding: 0; font-size: 12.5px; line-height: 1.6; }
.zprava-drv-obal { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.zprava-drv ul { margin: 6px 0 4px 16px; font-size: 12.5px; line-height: 1.5; }
.zprava-pz-cisla { font-size: 12.5px; margin-bottom: 8px; }
.zprava-psi { margin: 4px 0 2px 16px; font-size: 12.5px; line-height: 1.6; list-style: none; padding: 0; }
.zprava-pes-ok b { color: #1E8A4C; }
.zprava-pes-warn b { color: #B7791F; }
.zprava-pes-err b { color: #C43D3D; }
td.zprava-pes-ok { color: #1E8A4C; }
td.zprava-pes-warn { color: #B7791F; font-weight: 600; }
td.zprava-pes-err { color: #C43D3D; font-weight: 700; }
.zprava-pozn { width: 100%; box-sizing: border-box; padding: 9px 11px; border: 1px solid var(--border);
  border-radius: 8px; background: var(--surface); color: var(--text); font: inherit; font-size: 12.5px; resize: vertical; }
@media (max-width: 1000px) { .zprava-drv-obal { grid-template-columns: 1fr; } }

/* ── Cíle KPI na dashboardu ──────────────────────────────────────────── */
.db2-cil { display: inline-block; margin-left: 7px; padding: 1px 7px; border-radius: 9px;
  font-size: 10.5px; font-weight: 700; }
.db2-cil-ok { background: color-mix(in srgb, #1E8A4C 14%, transparent); color: #1E8A4C; }
.db2-cil-ne { background: color-mix(in srgb, #C43D3D 14%, transparent); color: #C43D3D; }
.db2-cile-form { display: flex; flex-direction: column; gap: 12px; max-width: 560px; }
.db2-cile-form label { display: grid; grid-template-columns: 240px 130px 1fr; gap: 10px; align-items: center; font-size: 13px; }
.db2-cile-form input { padding: 6px 9px; border: 1px solid var(--border); border-radius: 7px;
  background: var(--surface); color: var(--text); font-weight: 700; }
.db2-cile-akce { margin-top: 6px; }
@media (max-width: 760px) { .db2-cile-form label { grid-template-columns: 1fr; gap: 3px; } }

/* ── Podklady pro plán (Příprava plánu 2027) ─────────────────────────── */
.p27-pod { display: flex; flex-direction: column; gap: 14px; max-width: 900px; }
.p27-pod-blok { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; }
.p27-pod-blok > b { display: block; margin-bottom: 7px; }
.p27-pod-radek { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 13px; }
.p27-pod-chk { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.p27-pod-radek select { padding: 5px 8px; border: 1px solid var(--border); border-radius: 7px;
  background: var(--surface); color: var(--text); }
.p27-pod-akce { display: flex; align-items: center; gap: 12px; }

/* Čísla v obecných tabulkách: vpravo, tabulkové číslice, bez zalomení —
 * „profesionální design" = sloupec částek zarovnaný pod sebou (PH 15. 9.). */
.tbl th.num, .tbl td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cyk-tbl td.cyk-delta { font-size: 11.5px; }

/* ── Měsíční zpráva CFO — vzhled dokumentu ───────────────────────────── */
.zpr-hero { display: flex; align-items: center; gap: 14px; border-radius: 12px; padding: 16px 20px;
  margin-bottom: 12px; color: #fff;
  background: linear-gradient(120deg, #111F4D 0%, #1B3A6B 55%, #2A4E8F 100%); }
.zpr-hero-nadpis { font-size: 19px; font-weight: 800; letter-spacing: .2px; }
.zpr-hero-sub { font-size: 12px; opacity: .78; margin-top: 3px; }
.zpr-hero-akce { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.zpr-mesic { padding: 6px 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.12); color: #fff; font-weight: 600; }
.zpr-mesic option { color: #1A202C; }
.zpr-karty { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 12px; }
.zpr-karta { background: var(--surface); border: 1px solid var(--border); border-radius: 10px;
  padding: 10px 12px; min-width: 0; }
.zpr-karta-zle { border-color: color-mix(in srgb, #C43D3D 45%, var(--border)); }
.zpr-karta-pozor { border-color: color-mix(in srgb, #F5A623 55%, var(--border)); }
.zpr-kl { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
.zpr-kv { font-size: 19px; font-weight: 800; margin: 3px 0 2px; font-variant-numeric: tabular-nums; }
.zpr-karta-zle .zpr-kv { color: #C43D3D; }
.zpr-ks { font-size: 11.5px; color: var(--muted); }
.zpr-prog { height: 5px; border-radius: 3px; background: var(--border); margin-top: 5px; overflow: hidden; }
.zpr-prog span { display: block; height: 100%; border-radius: 3px; }
.zpr-prog-ok { background: #1E8A4C; } .zpr-prog-warn { background: #F5A623; } .zpr-prog-zle { background: #C43D3D; }
.zpr-prog-pop { font-size: 10.5px; color: var(--muted); }
.zpr-gv { font-size: 10px; font-weight: 700; fill: var(--muted); }
.zpr-mrizka { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.zpr-mrizka .db2-panel { margin: 0; }
.zpr-panel { margin-bottom: 12px; }
.zpr-cislo { display: inline-flex; width: 22px; height: 22px; border-radius: 6px; margin-right: 8px;
  background: var(--blue); color: #fff; font-weight: 800; font-size: 12px;
  align-items: center; justify-content: center; flex: none; }
.zpr-detail { font-size: 12px; }
.zpr-tbl th.c, .zpr-tbl td.c { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.zpr-tbl tbody tr:hover td { background: color-mix(in srgb, var(--blue) 5%, transparent); }
.zpr-bar { height: 8px; border-radius: 4px; background: var(--border); overflow: hidden; min-width: 90px; }
.zpr-bar span { display: block; height: 100%; background: color-mix(in srgb, var(--blue) 65%, transparent); border-radius: 4px; }
.zpr-chip { display: inline-block; padding: 2px 9px; border-radius: 10px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.zpr-chip-ok { background: color-mix(in srgb, #1E8A4C 13%, transparent); color: #1E8A4C; }
.zpr-chip-warn { background: color-mix(in srgb, #F5A623 18%, transparent); color: #B7791F; }
.zpr-chip-err { background: color-mix(in srgb, #C43D3D 14%, transparent); color: #C43D3D; }
.zpr-psi { display: flex; flex-direction: column; gap: 7px; }
.zpr-pes { display: flex; gap: 9px; align-items: baseline; font-size: 12.5px; }
.zpr-drv { min-width: 0; }
.zpr-drv-nadpis { font-weight: 700; font-size: 12.5px; margin-bottom: 6px; }
.zpr-drv-radek { display: grid; grid-template-columns: 92px 1fr 70px; gap: 8px; align-items: center;
  padding: 3px 0; font-size: 12.5px; }
.zpr-drv-castka { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums;
  padding: 1px 7px; border-radius: 8px; white-space: nowrap; }
.zpr-pill-zle { background: color-mix(in srgb, #C43D3D 12%, transparent); color: #C43D3D; }
.zpr-pill-ok { background: color-mix(in srgb, #1E8A4C 12%, transparent); color: #1E8A4C; }
.zpr-drv-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zpr-drv-bar { height: 7px; border-radius: 4px; background: var(--border); overflow: hidden; }
.zpr-drv-bar i { display: block; height: 100%; border-radius: 4px; }
.zpr-bari-zle { background: #C43D3D; } .zpr-bari-ok { background: #1E8A4C; }
.zpr-penize { display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; }
.zpr-pen-radek { display: flex; gap: 10px; align-items: baseline; border-bottom: 1px dashed var(--border); padding-bottom: 6px; }
.zpr-pen-radek span:first-child { color: var(--muted); min-width: 170px; }
.zpr-pen-radek b { font-variant-numeric: tabular-nums; }
@media (max-width: 1250px) { .zpr-karty { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 950px) { .zpr-mrizka { grid-template-columns: 1fr; } .zprava-drv-obal { grid-template-columns: 1fr; } }

/* Klikací buňka ve vyskakovacích oknech Nákladů centrály. */
#centralaModal td.cen-klik { cursor: pointer; text-decoration: underline dotted color-mix(in srgb, var(--blue) 55%, transparent); text-underline-offset: 3px; }
#centralaModal td.cen-klik:hover { background: color-mix(in srgb, var(--blue) 10%, transparent); }

/* Tabulky morálky a cyklu: text vlevo, čísla vpravo, známka s odstupem. */
.mor-tbl th, .cyk-tbl th { text-align: left; }
.mor-tbl th.num, .cyk-tbl th.num { text-align: right; }
.mor-tbl td:first-child { width: 34px; padding-right: 8px; }
.mor-tbl td, .mor-tbl th { vertical-align: middle; padding-top: 4px; padding-bottom: 4px; }
.mor-tbl tbody tr + tr td, .cyk-tbl tbody tr + tr td { border-top: 1px solid color-mix(in srgb, var(--border) 70%, transparent); }
.cyk-tbl td:first-child { font-weight: 600; }

/* Klikací částka ve vyskakovacích oknech TOP režijních a Všech nákladů. */
.db2-modal td.bunka-klik { cursor: pointer; text-decoration: underline dotted color-mix(in srgb, var(--blue) 55%, transparent); text-underline-offset: 3px; }
.db2-modal td.bunka-klik:hover { background: color-mix(in srgb, var(--blue) 10%, transparent); }

/* ── Sjednocení nových stránek se vzhledem ostatních tabulek (PH 15. 9. 2026) ──
 * Nové stránky dřív stály na třídách .tbl/.panel — .tbl v aplikaci žádný styl
 * nemá (výchozí velké písmo prohlížeče) a .panel nemá vnitřní okraj (text na
 * hraně). Teď db2-panel + db2-tab jako dashboardy; tady jen hlavička s ovládáním. */
.nv-hlava { display: flex; align-items: center; gap: 8px 10px; flex-wrap: wrap; margin-bottom: 10px; }
.db2-panel .nv-hlava h3 { margin: 0; }
.nv-hlava .db2-pozn { float: none; }
.db2-tab th.num, .db2-tab td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mor-tbl td { font-size: 12px; }

/* Podklady pro plán — tabulka firem a středisek */
.p27-pod2-lista { display: flex; flex-direction: column; gap: 10px; background: var(--surface);
  border: 1px solid var(--border); border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.p27-pod2-info { font-size: 12.5px; }
.p27-pod2-volby, .p27-pod2-akce { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; font-size: 12.5px; }
.p27-pod2-oddel { width: 1px; height: 18px; background: var(--border); }
.p27-pod2-tab tr.p27-pod2-firma td { font-weight: 600; background: color-mix(in srgb, var(--blue) 7%, transparent); }
.p27-pod2-odsaz { display: inline-block; padding-left: 20px; }
.p27-pod2-chk { width: 28px; text-align: center; }
.p27-pod2-btn { padding: 2px 9px; font-size: 11.5px; }
.btn.p27-pod2-exp { background: #E6F4EA; border: 1px solid #8FCBA6; color: #14532d; }
.btn.p27-pod2-exp:hover:not(:disabled) { background: #D2EBDA; }
.btn.p27-pod2-exp:disabled { opacity: .55; cursor: default; }
.p27-pod2-nowrap { white-space: nowrap; }
.p27v-hod { font-size: 10.5px; color: var(--text3); }
.p27v-rozpeti { white-space: nowrap; }
.p27-obdobi-varovani { color: #B45309; font-weight: 600; font-size: 12px; }
.p27-own tr.p27o-u0 td { background: color-mix(in srgb, var(--blue) 13%, var(--surface)); font-weight: 700; border-top: 2px solid color-mix(in srgb, var(--blue) 45%, var(--surface)); }
.p27-own tr.p27o-u0 td .p27v-inp { font-weight: 600; }
.p27-own .p27o-odsaz { display: inline-block; padding-left: 18px; }
.p27-own td:first-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p27o-akce { white-space: nowrap; }
.p27o-plus { border: 1px solid var(--border); background: var(--surface); color: var(--text2); border-radius: 4px; padding: 0 5px; cursor: pointer; font-weight: 700; }
.p27o-plus:hover { color: var(--blue-mid); border-color: var(--blue-mid); }
.p27k-kdo { font-size: 10.5px; font-weight: 400; color: var(--text2); }
.p27o-prehled td { white-space: normal !important; padding: 5px 6px !important; }
.p27o-prehled tr.p27o-u0 td { background: color-mix(in srgb, var(--blue) 13%, var(--surface)); }
.p27o-prevzato { font-size: 10.5px; color: var(--text3); font-style: italic; }
.p27o-stav { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.p27o-stav-ok { background: #E6F4EA; color: #14532D; }
.p27o-stav-firma { background: #E0ECFA; color: #1B3A6B; }
.p27o-stav-castecne { background: #FEF3C7; color: #92400E; }
.p27o-stav-chybi { background: #FDECEC; color: #9B1C1C; }
.p27v-rozpeti .p27v-inp { width: 50%; min-width: 64px; display: inline-block; }
.p27k-schval-td { min-width: 190px; }
.p27k-schval { font-size: 12px; padding: 2px 4px; border-radius: 6px; border: 1px solid var(--border); background: var(--surface); color: var(--text); }
.p27k-s-schvaleno { background: #E6F4EA; color: #14532D; border-color: #8FCBA6; }
.p27k-s-vraceno { background: #FDECEC; color: #9B1C1C; border-color: #F1A9A9; }
.p27k-s-odevzdano { background: #E0ECFA; color: #1B3A6B; border-color: #9DB9E3; }
.p27k-pozn { margin-top: 3px; font-size: 11.5px; }
/* Cíle a most EBITDA */
.p27c-tab tbody tr { cursor: pointer; }
.p27c-tab tr.p27c-u0 td { font-weight: 700; background: color-mix(in srgb, var(--blue) 10%, transparent); }
.p27c-tab tr.p27c-u1 td { font-weight: 600; background: color-mix(in srgb, var(--blue) 5%, transparent); }
.p27c-tab tr.p27c-u2 .p27c-odsaz { padding-left: 20px; display: inline-block; }
.p27c-tab tr.p27c-vybrany td { box-shadow: inset 0 -2px 0 var(--blue-mid); }
.p27c-tab .p27v-inp.p27c-inp { min-width: 0; }
.p27c-tab .p27c-rozdil { font-size: 11px; }
.p27c-tab th { cursor: default; }
/* Snímky nastavení */
.p27s-nazev { max-width: 420px; border: 1px solid var(--border) !important; background: var(--surface) !important; }
.p27s-tab tr.p27s-ted td { background: color-mix(in srgb, var(--blue) 7%, transparent); }
.p27s-akce { white-space: nowrap; text-align: right; }
.p27s-auto { display: inline-block; padding: 0 6px; border-radius: 8px; background: #EEF0F4; color: #5A6478; font-size: 10.5px; }
.p27c-soucet { font-size: 10.5px; color: var(--text3); font-weight: 400; text-align: right; }
.p27c-rozdil.zle { color: #C43D3D; font-weight: 700; }
.p27c-rozdil.dobre { color: #1E8A4C; font-weight: 700; }
.p27c-tab span.dobre, .p27c-most td.dobre { color: #1E8A4C; }
.p27c-tab span.zle, .p27c-most td.zle { color: #C43D3D; font-weight: 700; }
.p27c-most { margin-top: 12px; }
.p27c-most-hlava { font-size: 13px; margin-bottom: 8px; }
.p27c-most-tab { width: 100%; max-width: 900px; border-collapse: collapse; font-size: 12.5px; }
.p27c-most-tab td { padding: 5px 8px; border-bottom: 1px solid var(--border); }
.p27c-most-tab td.num { width: 110px; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.p27c-most-tab tr.p27c-celek td { font-weight: 700; }
.p27c-most-tab tr.zle td { color: #C43D3D; font-weight: 700; }
.p27c-most-tab tr.dobre td { color: #1E8A4C; font-weight: 700; }
.p27c-bar-td { width: 45%; }
.p27c-bar { height: 12px; border-radius: 3px; }
.p27c-b-celek { background: #1B3A6B; }
.p27c-b-cil { background: #D97706; }
.p27c-b-plus { background: #1E8A4C; }
.p27c-b-minus { background: #C43D3D; }
/* Kontrola odevzdání výhledů */
.p27k { margin-top: 10px; }
.p27k-hlava { font-size: 13px; margin-bottom: 8px; }
.p27k-stav { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.p27k-ok { background: #E6F4EA; color: #14532D; }
.p27k-pozor { background: #FEF3C7; color: #92400E; }
.p27k-rozprac { background: #E0ECFA; color: #1B3A6B; }
.p27k-nic { background: #EEF0F4; color: #5A6478; }
.p27k-up { font-size: 12px; min-width: 260px; }
.p27v-pred { background: #FFF4DF; color: #5C3A00; border: 1px solid #F3D9A4; border-radius: 8px; padding: 6px 12px; font-size: 12.5px; margin: 8px 0; }

/* Náhled sešitu podkladů — list vypadá jako v Excelu (papír je vždy bílý). */
.p27-nahled { margin-bottom: 12px; }
.p27-nahled-hlava { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; align-items: center; font-size: 12.5px; margin-bottom: 8px; }
.p27-nahled-akce { display: flex; gap: 6px; }
.p27-nahled-listy { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--border); margin-bottom: 0; }
.p27-nahled-list { border: 1px solid var(--border); border-bottom: none; background: var(--surface); color: var(--text);
  padding: 4px 12px; font-size: 12px; border-radius: 6px 6px 0 0; cursor: pointer; }
.p27-nahled-list.on { background: #1B3A6B; color: #fff; border-color: #1B3A6B; font-weight: 600; }
.p27-nahled-papir { background: #fff; color: #1A202C; border: 1px solid var(--border); border-top: none; max-height: 72vh; overflow: auto; }
.p27-nahled-tab { border-collapse: collapse; table-layout: fixed; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.p27-nahled-tab td { padding: 3px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; }

/* Platební morálka — řazení klikem na hlavičku sloupce. */
.mor-tbl th.mor-sort { cursor: pointer; user-select: none; white-space: nowrap; }
.mor-tbl th.mor-sort i { font-style: normal; font-size: 10px; margin-left: 4px; opacity: .5; }
.mor-tbl th.mor-sort-on i { opacity: 1; }
.mor-tbl th.mor-sort:hover { filter: brightness(1.12); }

/* Okno dokladů P/Z — směr dluhu u každého řádku. */
.pzm-smer { white-space: nowrap; font-size: 11.5px; font-weight: 600; }
.pzm-smer-p { color: #1E8A4C; }
.pzm-smer-z { color: #B45309; }

/* Platební morálka — pás součtů nahoře a řádek Celkem pod tabulkou. */
.mor-souhrn { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
.mor-souhrn .zpr-kv { font-size: 22px; }
.mor-tbl tfoot tr.mor-celkem td { font-size: 13px; font-weight: 800; padding-top: 7px; padding-bottom: 7px; }
@media (max-width: 1000px) { .mor-souhrn { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Co kdyby — každá sekce pák vlastní jemnou barvou (PH 15. 9. 2026: „pro lepší orientaci").
 * Karty uvnitř zůstávají bílé; barvy zlepšuje/zhoršuje (ck-paka-plus/minus) mají přednost. */
.ck-skupina { border: 1px solid var(--sk-okraj, var(--border)); border-left: 4px solid var(--sk-barva, var(--blue));
  border-radius: 10px; padding: 8px 10px 10px; background: var(--sk-pozadi, transparent); }
.ck-skupina h4 { color: var(--sk-barva, var(--muted)); }
.ck-sk-plosne { --sk-barva: #1F4E8C; --sk-pozadi: #F1F6FC; --sk-okraj: #D6E3F3; }
.ck-sk-trzby { --sk-barva: #1E8A4C; --sk-pozadi: #F1F9F4; --sk-okraj: #D2EBDA; }
.ck-sk-lide { --sk-barva: #7C5CBF; --sk-pozadi: #F6F3FC; --sk-okraj: #E2DAF3; }
.ck-sk-radky { --sk-barva: #B7791F; --sk-pozadi: #FCF8F0; --sk-okraj: #F1E3C8; }
.ck-skupina .ck-paka:not(.ck-paka-plus):not(.ck-paka-minus) { border-color: var(--sk-okraj, var(--border)); }
.ck-skupina .ck-paka:not(.ck-paka-plus):not(.ck-paka-minus) input[type="range"] { accent-color: var(--sk-barva, var(--blue)); }

/* Co kdyby — rychlé scénáře ve čtyřech barevných skupinách (PH 15. 9. 2026). */
.ck-scenare-hlava { display: flex; align-items: center; gap: 8px; margin: -2px 0 6px; }
.ck-preset.on { background: var(--sc-barva, var(--blue)); border-color: var(--sc-barva, var(--blue)); color: #fff; font-weight: 700; }
.ck-slozeni { margin: 8px 0 12px; padding: 8px 12px; border-radius: 8px; border: 1px dashed var(--border); font-size: 12.5px; display: grid; gap: 5px; }
.ck-slozeni .ck-sl-zrus { margin-left: 8px; padding: 2px 10px; font-size: 11.5px; }
.ck-sl-paky { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.ck-sl-paka { padding: 2px 9px; border-radius: 10px; background: color-mix(in srgb, var(--blue) 10%, transparent); white-space: nowrap; }
.ck-sl-paka.ck-sl-rucne { background: color-mix(in srgb, #B7791F 18%, transparent); outline: 1px solid #B7791F; }
.ck-sl-rucne-txt { color: #B7791F; font-weight: 700; }
.ck-sc-nadpis { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--muted); }
.ck-scenare { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
.ck-sc-sloupec { border-radius: 8px; padding: 6px 8px 8px; background: var(--sc-pozadi); border: 1px solid var(--sc-okraj);
  border-top: 3px solid var(--sc-barva); }
.ck-sc-titul { font-size: 11px; font-weight: 700; color: var(--sc-barva); margin-bottom: 5px; text-transform: uppercase; letter-spacing: .4px; }
.ck-sc-chipy { display: flex; flex-wrap: wrap; gap: 4px; }
.ck-sc-rust { --sc-barva: #1E8A4C; --sc-pozadi: #F1F9F4; --sc-okraj: #D2EBDA; }
.ck-sc-uspory { --sc-barva: #1F4E8C; --sc-pozadi: #F1F6FC; --sc-okraj: #D6E3F3; }
.ck-sc-rizika { --sc-barva: #C43D3D; --sc-pozadi: #FDF3F3; --sc-okraj: #F1D2D2; }
.ck-sc-naklady { --sc-barva: #B7791F; --sc-pozadi: #FCF8F0; --sc-okraj: #F1E3C8; }
.ck-sc-sloupec .ck-preset { border: 1px solid var(--sc-okraj); background: #fff; color: var(--sc-barva);
  font-weight: 600; font-size: 11.5px; padding: 2px 9px; }
.ck-sc-sloupec .ck-preset:hover, .ck-sc-sloupec .ck-preset.on { background: var(--sc-barva); border-color: var(--sc-barva); color: #fff; }
@media (max-width: 1100px) { .ck-scenare { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Administrace → Uživatelé: výběr + přehled + detail ve 4 kartách (PH 15. 9. 2026). */
.adm2-in { box-sizing: border-box; padding: 6px 9px; border: 1px solid var(--border); border-radius: 7px;
  background: var(--surface); color: var(--text); font: inherit; font-size: 12.5px; width: 100%; }
.adm2-in:focus { outline: none; border-color: var(--blue); }
.adm2-in:disabled { opacity: .65; }
.adm2-w { width: auto; min-width: 190px; }
.adm2-tab tbody tr { cursor: pointer; }
.adm2-tab tbody tr:hover td { background: color-mix(in srgb, var(--blue) 5%, transparent); }
.adm2-tab tbody tr.adm2-sel td { background: color-mix(in srgb, var(--blue) 12%, transparent); }
.adm2-tab tbody tr.adm2-sel td:first-child { box-shadow: inset 3px 0 0 var(--blue); }
.adm2-jmeno { font-weight: 600; }
.adm2-mail { font-size: 11px; color: var(--muted); }
.adm2-dedi { font-size: 11px; color: var(--muted); font-style: italic; }
.adm2-chip-off { background: color-mix(in srgb, #64748B 14%, transparent); color: #475569; }
[data-theme="dark"] .adm2-chip-off { color: #CBD5E1; }
.adm2-prazdno { padding: 14px 4px; color: var(--muted); font-size: 12.5px; }
.adm2-napoveda { font-size: 11.5px; color: var(--muted); margin: 4px 0 8px; line-height: 1.45; }
.adm2-legenda { margin: 8px 0 0; }
.adm2-hlava { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; margin-top: 12px; }
.adm2-avatar { width: 38px; height: 38px; border-radius: 50%; background: #1F4E8C; color: #fff; font-weight: 700;
  display: flex; align-items: center; justify-content: center; font-size: 13px; flex: none; }
.adm2-kdo-jm { font-size: 15px; font-weight: 700; }
.adm2-smazat { color: #C43D3D; }
.adm2-sloupce { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; margin-top: 12px; }
.adm2-sloupec { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
@media (max-width: 1150px) { .adm2-sloupce { grid-template-columns: minmax(0, 1fr); } }
.adm2-sloupec .db2-panel h3 { display: flex; align-items: center; }
.adm2-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; }
.adm2-pole { display: flex; flex-direction: column; gap: 4px; min-width: 0; align-items: flex-start; }
.adm2-pole .adm2-in { align-self: stretch; }
.adm2-cely { grid-column: 1 / -1; }
.adm2-lbl { display: block; font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; }
.adm2-seg { display: inline-flex; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; flex: none; }
.adm2-seg button { border: 0; background: var(--surface); color: var(--text); font: inherit; font-size: 11.5px;
  padding: 3px 10px; cursor: pointer; white-space: nowrap; }
.adm2-seg button + button { border-left: 1px solid var(--border); }
.adm2-seg button:hover { background: color-mix(in srgb, var(--blue) 7%, var(--surface)); }
.adm2-seg button.on { font-weight: 700; cursor: default; }
.adm2-seg button.on.role { background: color-mix(in srgb, #1F4E8C 14%, var(--surface)); color: #1F4E8C; }
.adm2-seg button.on.yes { background: color-mix(in srgb, #1E8A4C 15%, var(--surface)); color: #1E8A4C; }
.adm2-seg button.on.no { background: color-mix(in srgb, #C43D3D 14%, var(--surface)); color: #C43D3D; }
[data-theme="dark"] .adm2-seg button.on.role { color: #7FA8DC; }
.adm2-rozsah { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; margin-bottom: 10px; }
.adm2-vysledek { font-size: 12px; margin: 4px 0 0; padding-top: 8px; border-top: 1px solid var(--border); }
.adm2-dd { position: relative; align-self: stretch; }
.adm2-dd-btn { display: flex; justify-content: space-between; align-items: center; gap: 8px; cursor: pointer; text-align: left; }
.adm2-dd-btn > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm2-dd-sipka { color: var(--muted); }
.adm2-dd.open .adm2-dd-btn { border-color: var(--blue); }
.adm2-dd-menu { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px); background: var(--surface);
  border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 10px 28px rgba(15, 23, 42, .16);
  padding: 8px; max-height: 330px; overflow: auto; }
.adm2-dd-q { margin-bottom: 6px; }
.adm2-dd-akce { display: flex; gap: 14px; margin: 0 2px 4px; }
.adm2-link { border: 0; background: none; padding: 0; color: var(--blue); font: inherit; font-size: 11.5px; cursor: pointer; }
.adm2-link:hover { text-decoration: underline; }
.adm2-dd-opt { display: flex; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 5px; cursor: pointer; font-size: 12.5px; }
.adm2-dd-opt:hover { background: color-mix(in srgb, var(--blue) 7%, transparent); }
.adm2-tecka { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.adm2-radek { display: flex; align-items: center; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--border); font-size: 12.5px; }
.adm2-radek > span:first-child { flex: 1; min-width: 0; }
.adm2-radek.off > span:first-child { color: var(--muted); }
.adm2-radek.cast { padding-left: 16px; font-size: 12px; }
.adm2-tlacitka { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.adm2-tlacitka .adm2-napoveda { margin: 0; }
.adm2-oblast { border: 1px solid var(--border); border-radius: 8px; margin-bottom: 6px; }
.adm2-oblast > summary { display: flex; align-items: center; gap: 8px; padding: 6px 8px 6px 10px; cursor: pointer; list-style: none; font-size: 12.5px; }
.adm2-oblast > summary::-webkit-details-marker { display: none; }
.adm2-oblast > summary::before { content: '▸'; color: var(--muted); width: 10px; }
.adm2-oblast[open] > summary::before { content: '▾'; }
.adm2-oblast[open] > summary { border-bottom: 1px solid var(--border); }
.adm2-oblast-nazev { flex: 1; font-weight: 600; min-width: 0; }
.adm2-pocet { font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 9px; color: #B7791F;
  background: color-mix(in srgb, #F5A623 16%, transparent); }
.adm2-pocet.vse { color: #1E8A4C; background: color-mix(in srgb, #1E8A4C 13%, transparent); }
.adm2-pocet.nic { color: #C43D3D; background: color-mix(in srgb, #C43D3D 12%, transparent); }
.adm2-oblast-telo { padding: 2px 10px 6px; }
.adm2-oblast-telo .adm2-radek:last-child { border-bottom: 0; }
.adm2-h4 { margin: 12px 0 4px; font-size: 12px; font-weight: 700; color: #1F4E8C; text-transform: uppercase; letter-spacing: .4px; }
.adm2-hesla-box { margin-top: 10px; padding-top: 10px; border-top: 2px solid var(--border); }
.adm2-hesla-box .nv-hlava h3 { border: 0; padding: 0; }
.adm2-tab th.adm2-raz { cursor: pointer; user-select: none; white-space: nowrap; }
.adm2-tab th.adm2-raz:hover { background: #2A5FA6; }
.adm2-sip { margin-left: 4px; font-size: 9.5px; opacity: .5; }
.adm2-raz.on .adm2-sip { opacity: 1; }
.adm2-uroven { display: inline-flex; gap: 3px; flex: none; }
.adm2-uv { font-size: 10.5px; font-weight: 700; padding: 1px 6px; border-radius: 8px; white-space: nowrap; border: 1px solid transparent; }
.adm2-uv.ano { color: #1E8A4C; background: color-mix(in srgb, #1E8A4C 11%, transparent); }
.adm2-uv.ne { color: #C43D3D; background: color-mix(in srgb, #C43D3D 10%, transparent); }
.adm2-uv:not(.vysl) { opacity: .75; }
.adm2-uv.vysl.zmena { border-color: currentColor; }
.adm2-prihlaseni, .adm2-kontrola { margin-bottom: 12px; }
.adm2-prihlaseni .nv-hlava, .adm2-kontrola .nv-hlava { margin-bottom: 6px; }
.adm2-prihlaseni .adm2-napoveda { margin: 0; }
.adm2-varovani { color: #C43D3D; }
.adm2-kontrola-seznam { display: flex; flex-direction: column; gap: 4px; }
.adm2-nalez { display: flex; align-items: baseline; gap: 8px; text-align: left; width: 100%;
  border: 1px solid var(--border); border-left: 3px solid #94A3B8; border-radius: 6px;
  background: var(--surface); color: var(--text); font: inherit; font-size: 12.5px; padding: 5px 10px; cursor: pointer; }
.adm2-nalez:hover { background: color-mix(in srgb, var(--blue) 6%, var(--surface)); }
.adm2-nalez.chyba { border-left-color: #C43D3D; }
.adm2-nalez.pozor { border-left-color: #F5A623; }
.adm2-nalez-ico { font-weight: 800; width: 12px; flex: none; text-align: center; }
.adm2-nalez.chyba .adm2-nalez-ico { color: #C43D3D; }
.adm2-nalez.pozor .adm2-nalez-ico { color: #B7791F; }
.adm2-nalez.info .adm2-nalez-ico { color: #64748B; }
.adm2-radek-in { display: flex; gap: 6px; align-items: center; align-self: stretch; }
.adm2-radek-in .adm2-in { flex: 1; min-width: 0; }
.adm2-hist { font-size: 12px; }
.adm2-hist td { vertical-align: top; }
.adm2-nowrap { white-space: nowrap; }
.adm2-z { color: var(--muted); text-decoration: line-through; }
.adm-role-hist { margin-top: 14px; }
.adm2-toast { position: fixed; right: 22px; bottom: 64px; z-index: 960; max-width: 440px; box-shadow: 0 10px 28px rgba(15, 23, 42, .18); }

/* ══ HLAVIČKA STATUTÁRNÍHO VÝKAZU (.vyk-) ═══════════════════════════════════
   PROČ VZNIKLA: .panel-hdr je JEDNA vodorovná řada — nadpis, podnadpis,
   přepínače, hledání i export vedle sebe. Statutární výkazy mají v liště
   nejvíc ovládání ze všech stránek a k tomu dlouhý podnadpis („ALFA, BETA, GAMA,
   DELTA, EPSILON · leden–září 2026 · po firmách · v tisících Kč"), takže se
   text lámal mezi tlačítka a lišta vypadala náhodně naházená.

   JAK: .vyk-hdr je jen MODIFIKÁTOR — třída .panel-hdr na prvku ZŮSTÁVÁ, aby
   dál platily vzhledy z designs.css (report, karty, linky, dataroom,
   prezentace). Hlavička se rozdělí na dvě patra: nadpis s podnadpisem přes
   celou šířku, pod ním ovládání v pojmenovaných skupinách.
   Na .panel-hdr samotný se NESAHÁ — používá ho 126 dalších panelů. */
.panel-hdr.vyk-hdr{display:block;padding-bottom:0}
.vyk-hdr-txt{margin-bottom:12px}
.vyk-hdr-txt h2{font-size:calc(14px * var(--ui-scale));font-weight:650}
/* Podnadpis se NEZALAMUJE — je to jedna věta „co je právě ve výkazu"
   (firmy · období · pohled · jednotky). V úzkém okně se radši ořízne třemi
   tečkami, celé znění zůstává v bublině; dvouřádkový podnadpis by posouval
   celou lištu pod sebou pokaždé, když se změní výběr firem. */
.vyk-hdr-txt p{margin-top:3px;font-size:calc(11.5px * var(--ui-scale));color:var(--text3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vyk-lista{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px 18px;padding-bottom:14px}
.vyk-sk{display:flex;flex-direction:column;gap:6px;min-width:0}
.vyk-sk-l{font-size:calc(9.5px * var(--ui-scale));font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text3);line-height:1;white-space:nowrap}
.vyk-sk-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vyk-sk-hled{flex:1 1 180px;max-width:280px}
.vyk-sk-hled .table-search{width:100%;min-width:0}
.vyk-sk-exp{margin-left:auto}                     /* export vpravo i po zalomení */
/* Jednotky nejsou pohled na data, jen měřítko — proto nejsou modré jako
   přepínač sloupců, ať nesplývají dvě různé volby do jedné barvy. */
.vyk-jedn button.on{background:var(--text2);border-color:var(--text2);color:#fff}
/* Rozbalit / Sbalit jsou AKCE, ne stav — nesmí vypadat jako zapnutá volba. */
.vyk-akce button{background:transparent}
.vyk-akce button:hover{background:var(--blue-light);color:var(--blue);border-color:var(--blue-border)}
/* Hlavní dva výstupy nesou barvu toho, co vyrobí (Excel zelená, tisk modrá).
   CSV a Přepočítat zůstávají neutrální, ať je na první pohled vidět, co je
   hlavní cesta ven a co jen doplněk. */
.btn.secondary.vyk-xlsx{background:color-mix(in srgb,var(--green) 12%,transparent);
  border-color:color-mix(in srgb,var(--green) 45%,transparent);color:var(--green)}
.btn.secondary.vyk-xlsx:hover{background:var(--green);border-color:var(--green);color:#fff}
/* Úřední tiskopis je jiný druh výstupu než pracovní tisk — proto tmavá,
   „razítková“ barva a ne modrá jako běžné Tisk / PDF. */
.btn.secondary.vyk-urad{background:color-mix(in srgb,var(--text) 8%,transparent);
  border-color:color-mix(in srgb,var(--text) 35%,transparent);color:var(--text);font-weight:600}
.btn.secondary.vyk-urad:hover{background:var(--text);border-color:var(--text);color:var(--surface)}
/* Přepínač barevné varianty tiskopisu — zapnutý stav musí být vidět na první
   pohled, protože se pamatuje mezi návštěvami. */
.btn.secondary.vyk-barva.on{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.secondary.vyk-tisk{background:color-mix(in srgb,var(--blue) 10%,transparent);
  border-color:color-mix(in srgb,var(--blue) 40%,transparent);color:var(--blue)}
.btn.secondary.vyk-tisk:hover{background:var(--blue);border-color:var(--blue);color:#fff}
/* Úzké okno: export už nemá kam utéct doprava a podnadpis se radši zalomí,
   než aby z něj zbyly tři tečky. */
@media (max-width:900px){
  .vyk-sk-exp{margin-left:0}
  .vyk-hdr-txt p{white-space:normal;overflow:visible}
}

/* Úvodní stránka role (Administrace → Uživatelské úrovně) — samostatný řádek
   nad sloupci editoru, ať je vidět i u zamčené systémové role. */
.adm-uvodni { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0 14px;
  padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px;
  background: color-mix(in srgb, var(--blue) 4%, transparent); }
.adm-uvodni-lbl { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.adm-uvodni-lbl select { min-width: 260px; max-width: 360px; }
.adm-uvodni .app-hint { margin: 0; }

/* ── FAKTURACE (fakturace-view.js) — vydané lehce zeleně, přijaté lehce červeně ── */
.fak-souhrn { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.fak-souhrn-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.fak-souhrn .zpr-karta { position: relative; overflow: hidden; padding: 11px 14px 10px 17px; min-width: 0; }
.fak-souhrn .zpr-karta::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--border); }
.fak-souhrn .zpr-kv { font-size: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fak-souhrn .zpr-ks { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fak-k-vydane, .fak-souhrn-vydane .zpr-karta { background: color-mix(in srgb, #1E8A4C 6%, var(--surface)); }
.fak-k-vydane::before, .fak-souhrn-vydane .zpr-karta::before { background: #1E8A4C; }
.fak-k-vydane .zpr-kl, .fak-souhrn-vydane .zpr-kl { color: #1E8A4C; font-weight: 700; }
.fak-k-prijate, .fak-souhrn-prijate .zpr-karta { background: color-mix(in srgb, #C43D3D 5%, var(--surface)); }
.fak-k-prijate::before, .fak-souhrn-prijate .zpr-karta::before { background: #C43D3D; }
.fak-k-prijate .zpr-kl, .fak-souhrn-prijate .zpr-kl { color: #B03535; font-weight: 700; }
.fak-k-rozdil { background: color-mix(in srgb, var(--blue) 6%, var(--surface)); }
.fak-k-rozdil::before { background: var(--blue); }
.fak-k-rozdil .zpr-kl { color: var(--blue); font-weight: 700; }
.fak-souhrn .zpr-karta.zpr-karta-zle::before { background: #C43D3D; }
.fak-souhrn .zpr-karta.fak-k-zle.zpr-karta-zle { background: color-mix(in srgb, #C43D3D 9%, var(--surface)); }
.fak-po { color: #C43D3D; font-weight: 700; }
.fak-dvoj { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; margin-bottom: 12px; }
.fak-dvoj > .db2-panel { margin: 0; min-width: 0; }
.fak-p-vydane { border-top: 3px solid #1E8A4C; }
.fak-p-vydane h3 { color: #1E8A4C; }
.fak-p-vydane .db2-tab thead th { background: color-mix(in srgb, #1E8A4C 9%, var(--surface)); }
.fak-p-prijate { border-top: 3px solid #C43D3D; }
.fak-p-prijate h3 { color: #B03535; }
.fak-p-prijate .db2-tab thead th { background: color-mix(in srgb, #C43D3D 8%, var(--surface)); }
.fak-p-vydane h3 .db2-pozn, .fak-p-prijate h3 .db2-pozn { color: var(--muted); font-weight: 400; }
.fak-mes th.fak-h-vydane { background: color-mix(in srgb, #1E8A4C 10%, var(--surface)); color: #1E8A4C; }
.fak-mes th.fak-h-prijate { background: color-mix(in srgb, #C43D3D 9%, var(--surface)); color: #B03535; }
.fak-bar { height: 9px; background: color-mix(in srgb, var(--text) 6%, transparent); border-radius: 5px; overflow: hidden; }
.fak-bar i { display: block; height: 100%; border-radius: 5px; }
.fak-bar-vydane { background: linear-gradient(90deg, #5FBF86, #1E8A4C); }
.fak-bar-prijate { background: linear-gradient(90deg, #E68A8A, #C43D3D); }
.fak-lista { flex-wrap: wrap; margin-bottom: 10px; }
.fak-tab td { vertical-align: top; }
.fak-nowrap { white-space: nowrap; }
.fak-popis { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fak-sort { cursor: pointer; user-select: none; white-space: nowrap; }
.fak-sort i { font-style: normal; opacity: .45; margin-left: 3px; font-size: 10px; }
.fak-sort.on i { opacity: 1; }
.fak-dobropis td { background: color-mix(in srgb, #F5A623 7%, transparent); }
.fak-stav { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 650; white-space: nowrap; }
.fak-st-otev { background: color-mix(in srgb, var(--blue) 12%, transparent); color: var(--blue); }
.fak-st-po { background: color-mix(in srgb, #C43D3D 14%, transparent); color: #B03535; }
.fak-st-vyr { background: color-mix(in srgb, #1E8A4C 13%, transparent); color: #1E8A4C; }
.fak-st-nic { background: color-mix(in srgb, var(--text) 7%, transparent); color: var(--muted); }
.fak-pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 10px 0 4px; font-size: 12.5px; }
.fak-pozn { margin-top: 10px; }
@media (max-width: 1250px) { .fak-souhrn, .fak-souhrn-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .fak-dvoj { grid-template-columns: 1fr; } .fak-souhrn, .fak-souhrn-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media print { .fak-dvoj { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fak-souhrn { grid-template-columns: repeat(6, minmax(0, 1fr)); } .fak-souhrn-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* Světle podbarvené hlavičky Fakturace — tmavé písmo místo bílého z .db2-tab th (PH 16. 9. 2026). */
.fak-p-vydane .db2-tab thead th, .fak-p-prijate .db2-tab thead th,
.fak-mes th.fak-h-vydane, .fak-mes th.fak-h-prijate { color: var(--text); font-weight: 700; }
/* Řádek přehledu nahraných plánů, jehož detail je právě v tabulce pod ním. */
.pa-preh-row.pa-preh-vybrany td{background:color-mix(in srgb,var(--blue) 9%,var(--surface))!important}
.pa-preh-row.pa-preh-vybrany td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
/* Příprava plánu — období skutečnosti, ze kterého zadání vychází */
.p27-obdobi{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 0 16px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--blue) 28%,var(--border));border-left:4px solid var(--blue);border-radius:8px;background:color-mix(in srgb,var(--blue) 5%,var(--surface));font-size:12.5px}
.p27-obdobi-l{font-weight:700;color:var(--blue);margin-right:4px}
.p27-obd-sel{padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-size:12.5px}
.p27-obdobi-pozn{flex-basis:100%;color:var(--text2);font-size:11.5px}
/* Příprava plánu — zadání v2: povinné body, předpoklady, okruh CFO */
.p27-hvezda{display:inline-block;margin-right:6px;color:#D97706;font-weight:900}
.p27-tbl tbody tr.p27-povinne td:first-child{box-shadow:inset 3px 0 0 #F5A623}
.p27-povinne-souhrn{display:inline-block;margin:-6px 0 16px;padding:4px 12px;border-radius:999px;background:color-mix(in srgb,#F5A623 16%,var(--surface));color:#92400E;font-size:12px;font-weight:700}
.p27-pred{margin-bottom:24px}
.p27-secno-pred{background:#F5A623;color:#1A202C}
.p27-pred-hod{font-weight:800;color:var(--text)}
.p27-pred-hod.p27-pred-chybi{color:var(--text3);font-weight:400;font-style:italic}
.p27-sec-info .p27-secno{background:var(--text3)}
.p27-sec-info .p27-sech h3{color:var(--text2)}
.p27-sec-info .p27-tbl thead th{background:var(--text3);border-color:var(--text3)}
.p27-sec-info .p27-tbl tbody td{color:var(--text3)}
/* Příprava plánu — Obchodní výhledy v2 */
.p27v-karty{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.p27v-karta{position:relative;padding:10px 14px 9px 17px;border:1px solid var(--border);border-radius:10px;background:var(--surface);overflow:hidden}
.p27v-karta::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--blue)}
.p27v-karta span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}
.p27v-karta b{display:block;font-size:20px;font-weight:800;margin:2px 0;font-variant-numeric:tabular-nums}
.p27v-karta i{font-style:normal;font-size:11.5px;color:var(--text3)}
.p27v-karta.p27v-dobre::before{background:#1E8A4C}.p27v-karta.p27v-dobre b{color:#1E8A4C}
.p27v-karta.p27v-zle::before{background:#C43D3D}.p27v-karta.p27v-zle b{color:#C43D3D}
.p27v-lista{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}
.p27v-oddel{width:1px;height:22px;background:var(--border);margin:0 4px}
.p27v-soubor{cursor:pointer}
.p27v-pozor{margin-bottom:10px;padding:8px 12px;border-left:4px solid #F5A623;background:color-mix(in srgb,#F5A623 9%,var(--surface));border-radius:6px;font-size:12.5px}
.p27v-tbl td{padding:3px 5px!important;vertical-align:middle!important}
.p27v-tbl th.num,.p27v-tbl td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.p27v-tbl td.zle{color:#C43D3D}
.p27v-inp{width:100%;min-width:60px;padding:4px 6px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text);font-size:12.5px;font-family:var(--font-sans)}
.p27v-inp:hover{border-color:var(--border)}
.p27v-inp:focus{border-color:var(--blue-mid);background:var(--surface);outline:none}
.p27v-inp.num{text-align:right;min-width:70px}
.p27v-inp.p27v-zak{min-width:200px;font-weight:600}
.p27v-tbl tr.p27v-skup td{background:color-mix(in srgb,var(--blue) 7%,var(--surface))!important;font-weight:700;color:var(--text)}
.p27v-firma{display:inline-block;padding:1px 7px;border-radius:5px;background:var(--blue);color:#fff;font-size:11px;margin-right:4px}
.p27v-tbl tr.p27v-konci td{opacity:.62}
.p27v-prazdno{border:1px dashed var(--border);border-radius:10px;padding:26px!important;margin:6px 0}
@media (max-width:900px){.p27v-karty{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Příprava plánu 2027 — v menu světle fialově, ať je vidět na první pohled (PH 17. 9. 2026) */
.sb-subnav a[data-nav="src-plan-2027"]{background:#F3E8FF;border-left:3px solid #8B5CF6;font-weight:650;color:#5B21B6}
.sb-subnav a[data-nav="src-plan-2027"] .dot{background:#8B5CF6}
.sb-subnav a[data-nav="src-plan-2027"]:hover{background:#E9D5FF}
.sb-subnav a[data-nav="src-plan-2027"].active{background:#8B5CF6;color:#fff}
.sb-subnav a[data-nav="src-plan-2027"].active .dot{background:#fff}
[data-theme="dark"] .sb-subnav a[data-nav="src-plan-2027"]{background:#2E1A47;color:#D8B4FE}
.p27v-rezim{margin-bottom:12px}
.p27v-tbl td.p27v-hist{color:var(--text3)}
.p27v-tbl td.p27v-vypl{background:color-mix(in srgb,#F5A623 10%,var(--surface))!important}
.p27v-tbl th.p27v-vypl-h{background:#D97706!important;border-color:#B45309!important}
/* Výhledy bez posuvníku + zvýrazněná pole k vyplnění (PH 17. 9. 2026) */
.p27v-obal{width:100%;overflow-x:auto}
.p27v-kompakt{table-layout:fixed;width:100%;min-width:980px;font-size:12px}
.p27v-kompakt th,.p27v-kompakt th.num{padding:5px 5px!important;font-size:11px;line-height:1.25;white-space:normal!important;word-break:normal;overflow-wrap:normal;hyphens:manual;vertical-align:bottom}
.p27v-kompakt th.p27v-sk{vertical-align:middle}
.p27v-kompakt th,.p27v-kompakt th small{text-transform:none!important;letter-spacing:0!important}
.p27v-kompakt th.p27v-sk{text-align:center;border-bottom:1px solid rgba(255,255,255,.35)!important}
.p27v-kompakt td{padding:2px 3px!important;overflow:hidden}
.p27v-kompakt .p27v-inp,.p27v-kompakt .p27v-inp.num,.p27v-kompakt .p27v-inp.p27v-zak{min-width:0;font-size:12px;padding:3px 4px}
.p27v-kompakt .p27v-inp.p27v-zak{text-overflow:ellipsis}
.p27v-kompakt td.p27v-vypl{background:transparent!important}
.p27v-kompakt td.p27v-vypl .p27v-inp{background:color-mix(in srgb,#F5A623 13%,var(--surface));border:1px solid color-mix(in srgb,#F5A623 45%,var(--border))}
.p27v-kompakt td.p27v-vypl .p27v-inp:hover{border-color:#D97706}
.p27v-kompakt td.p27v-vypl .p27v-inp:focus{background:var(--surface);border-color:var(--blue-mid);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue-mid) 25%,transparent)}
.p27v-kompakt .p27v-inp::placeholder{color:var(--text3);opacity:.85;font-style:italic;font-weight:400}
.p27v-kompakt td .p27v-hod{font-size:10px}
.p27v-kompakt tr.p27v-skup td{white-space:nowrap;text-overflow:ellipsis;background:color-mix(in srgb,var(--blue) 13%,var(--surface))!important;color:var(--text)!important;font-weight:700;border-top:2px solid color-mix(in srgb,var(--blue) 45%,var(--surface))}
.p27v-kompakt tr.p27v-skup td .p27v-hod{color:var(--text2)}
.p27v-kompakt tr.p27v-celkem td{white-space:nowrap;text-overflow:ellipsis;background:var(--blue)!important;color:#fff!important;font-weight:700;font-size:11.5px}
.p27v-kompakt tr.p27v-celkem td .p27v-hod{color:rgba(255,255,255,.8)}
.p27v-kompakt td.p27v-hist{color:var(--text2)}
.p27v-kompakt td.p27-act{padding:0!important;text-align:center}
.p27v-kompakt td.p27-act .p27-del{padding:0 3px;min-width:0}
.p27v-legenda{display:inline-block;padding:0 6px;border-radius:4px;background:color-mix(in srgb,#F5A623 13%,var(--surface));border:1px solid color-mix(in srgb,#F5A623 45%,var(--border))}
.p27-pred-inp{max-width:160px;font-weight:700}
.p27-pred-2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;align-items:start}
.p27-pred-2 .p27-pred-tab{margin:0}
.p27-pred-tab td{padding:4px 8px;font-size:12.5px;vertical-align:middle}
.p27-pred-pozn{font-size:11px;color:var(--text3);line-height:1.25}
.p27-pred-hodn{width:130px}
.p27-pred-hodn .p27-pred-inp{width:120px;padding:3px 6px}
@media (max-width:900px){.p27-pred-2{grid-template-columns:1fr}}
.p27-pod-prehled{padding:2px 8px;border-radius:6px;background:#F3E8FF;color:#5B21B6;font-weight:650}

/* Minulé období statutárních výkazů — jedna volba pro všechny (js/stat-minule.js) */
.stat-minule-lista { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 8px 20px 10px; font-size: 12.5px; }
.stat-minule-l { font-weight: 700; color: var(--text); }
.stat-minule-tg button { font-size: 12px; padding: 3px 10px; }
.stat-minule-popis { color: var(--text2); }
/* Rozsah statutárních výkazů a nulové řádky (js/stat-rozsah.js) — skupiny sedí
   přímo v liště výkazu (.vyk-lista), obal je jen místo, kam je modul vkládá. */
.stat-rz-sada { display: contents; }
.stat-rz-vel { font-size: 12px; padding: 5px 8px; min-width: 0; max-width: 200px; }
.type-toggle button.stat-rz-dis { opacity: .45; cursor: not-allowed; }
.type-toggle button.stat-rz-dis:hover { background: var(--surface2); color: var(--text2); }
.stat-rozsah-pozn { margin: 0 20px 10px; font-size: 12.5px; color: var(--text2); line-height: 1.45; }
.stat-rozsah-pozn strong { color: var(--text); }
/* Kategorie účetní jednotky nad statutárními výkazy (js/stat-kategorie.js) */
.stat-kat-obal { margin-bottom: 12px; }
.stat-kat-obal:empty { display: none; }
/* Panel kategorie je ve výchozím stavu skrytý — ukáže ho červené tlačítko „Kategorie ÚJ" v liště výkazu.
   Na stránce Zdroj dat a kontrola (bez lišty výkazu) je vidět vždy. */
html:not(.stat-kat-otevreno) .stat-kat-obal:not(.stat-kat-stale) { display: none; }
.btn.stat-kat-btn { background: #C43D3D; border: 1px solid #C43D3D; color: #fff; font-weight: 700; white-space: nowrap; }
.btn.stat-kat-btn:hover { background: #A83232; border-color: #A83232; }
.btn.stat-kat-btn.on { background: var(--surface); color: #C43D3D; }
.stat-kat-tab td, .stat-kat-tab th { vertical-align: middle; }
.stat-kat-tab td.c { font-variant-numeric: tabular-nums; }
.stat-kat-nad { display: block; font-size: 10.5px; font-weight: 600; color: #B7791F; line-height: 1.2; }
.stat-kat-chybi { color: #B7791F; font-style: italic; }
.stat-kat-odhad, .stat-kat-zmena { font-size: 10.5px; font-weight: 600; color: var(--text3); white-space: nowrap; }
.stat-kat-zmena { color: #B7791F; }
.stat-kat-vyb td { font-weight: 650; background: color-mix(in srgb, #1F4E8C 6%, transparent); }
.stat-kat-legenda { margin: 10px 0 0; }
.pl-table th.stat-min-h small, .stat-tbl th small { font-weight: 400; text-transform: none; letter-spacing: 0; opacity: .85; }

/* Příprava plánu 2027 — části ve dvou řádcích a předpoklady ve 3 sloupcích (PH 17. 9. 2026) */
.p27-casti{display:flex;flex-direction:column;gap:8px;padding:2px 0 4px}
.p27-casti-radek{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.p27-casti-radek + .p27-casti-radek{padding-top:8px;border-top:1px dashed var(--border)}
.p27-casti-l{flex:0 0 118px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}
.p27-casti-tl{flex-wrap:wrap}
.p27-pred-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;max-width:1150px}
.p27-pred-pol{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;
  border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:text}
.p27-pred-txt{display:flex;flex-direction:column;min-width:0;font-size:12.5px;line-height:1.3}
.p27-pred-txt b{font-weight:700;color:var(--text)}
.p27-pred-grid .p27-pred-pozn{font-size:11px;color:var(--text3)}
.p27-pred-grid .p27-pred-inp{flex:0 0 96px;width:96px;text-align:right;padding:4px 7px}
@media (max-width:1250px){.p27-pred-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.p27-pred-grid{grid-template-columns:1fr}.p27-casti-l{flex-basis:100%}}

/* Zakázky: součtový řádek NAHOŘE pod hlavičkou (PH 21. 9. 2026) — oddělený
   od řádků pod ním, aby nesplýval s první zakázkou. */
.db2-tab tr.zak-sum-hore > td { border-bottom: 2px solid var(--border, #dfe5ee); }
.db2-tab tr.zak-sum-hore + tr:not(.zak-sum-hore) > td { padding-top: 7px; }
/* „+N" odběratelů — zakázka fakturovala víc firmám. */
.zak-vic-odb { display: inline-block; margin-left: 4px; padding: 0 5px; border-radius: 8px;
  font-size: 10.5px; font-weight: 700; background: #FEF3C7; color: #92400E; cursor: help; }
:root[data-theme="dark"] .zak-vic-odb { background: #4A3A12; color: #FCD34D; }

/* Zakázka bez přiřazených nákladů — marže není skutečná (PH 21. 9. 2026). */
.zak-beznakl { display: inline-block; padding: 0 6px; border-radius: 8px; font-size: 10.5px;
  font-weight: 650; background: var(--surface2, #F1F5F9); color: var(--text3, #64748b); cursor: help;
  white-space: nowrap; }

/* Rozpis KPI dlaždice po najetí myší / ťuknutí (PH 21. 9. 2026: „po najetí
   myši se podívat, z čeho to bere výpočet") — Čistý dluh, Peníze. */
.db2-ma-rozpis { position: relative; cursor: help; }
.db2-ma-rozpis:focus { outline: 2px solid color-mix(in srgb, #1F4E8C 40%, transparent); outline-offset: 1px; }
.db2-rz-i { font-size: 11px; color: var(--muted, #64748b); font-weight: 400; }
.db2-rozpis { display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 60;
  width: min(520px, 92vw); max-height: 70vh; overflow: auto; padding: 10px 12px;
  background: var(--panel-bg, var(--bg2, #fff)); border: 1px solid var(--border, #dfe5ee);
  border-radius: 10px; box-shadow: 0 10px 28px rgba(15, 23, 42, .18); font-size: 12px; cursor: auto; }
.db2-rz-vpravo .db2-rozpis { left: auto; right: 0; }
.db2-ma-rozpis:hover .db2-rozpis, .db2-ma-rozpis:focus-within .db2-rozpis { display: block; }
.db2-rz { width: 100%; border-collapse: collapse; }
.db2-rz td { padding: 3px 6px; vertical-align: top; border-bottom: .5px solid var(--border2, #eef2f7); }
.db2-rz td.c { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.db2-rz td.zle { color: #C43D3D; }
.db2-rz-h td { padding-top: 9px; font-weight: 700; color: var(--muted, #64748b); font-size: 11px;
  text-transform: uppercase; letter-spacing: .3px; border-bottom: 1px solid var(--border, #dfe5ee); }
.db2-rz-s td { font-weight: 700; }
.db2-rz-v td { background: color-mix(in srgb, #1F4E8C 8%, transparent); }
/* Otočení nahoru, když by okno vyjelo pod okraj obrazovky (js/rozpis.js). */
.db2-rz-nahoru .db2-rozpis { top: auto; bottom: calc(100% + 6px); }
.dash-card.db2-ma-rozpis .lbl .db2-rz-i { text-transform: none; }
@media print { .db2-rozpis { display: none !important; } }

/* Konsolidace skupiny (PH 24. 9. 2026). Sloupce vysledku se odlisuji barvou,
   aby oko hned rozeznalo: firmy -> souhrn -> ciSteni -> konsolidovane. */
.kons-tab td.kons-oz{white-space:nowrap;color:var(--text3);font-size:11.5px;font-family:var(--font-mono,monospace)}
.kons-tab th.kons-souhrn,.kons-tab td.kons-souhrn{background:rgba(31,78,140,.06);border-left:2px solid rgba(31,78,140,.25)}
.kons-tab th.kons-elim,.kons-tab td.kons-elim{background:rgba(208,138,34,.08)}
.kons-tab th.kons-vysl,.kons-tab td.kons-vysl{background:rgba(30,138,76,.08);border-left:2px solid rgba(30,138,76,.35)}
.kons-tab thead th.kons-souhrn{background:#D6E1F0;color:#11233F}
.kons-tab thead th.kons-elim{background:#FBE7C7;color:#3B2A08}
.kons-tab thead th.kons-vysl{background:#D8EBE0;color:#12331F}
html[data-theme="dark"] .kons-tab thead th.kons-souhrn{background:#23344F;color:#DCE6F5}
html[data-theme="dark"] .kons-tab thead th.kons-elim{background:#4A3A18;color:#F7E7C6}
html[data-theme="dark"] .kons-tab thead th.kons-vysl{background:#24452F;color:#DCEFE3}
.kons-tab td.kons-elim.db2-klik{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.kons-matice td.kons-x{color:var(--text3);background:var(--surface2)}
.kons-ano{display:inline-block;padding:1px 9px;border-radius:99px;font-size:11.5px;font-weight:700;background:rgba(30,138,76,.12);color:#1E6E43}
.kons-ne{display:inline-block;padding:1px 9px;border-radius:99px;font-size:11.5px;font-weight:700;background:rgba(196,61,61,.12);color:#A61B1B}
html[data-theme="dark"] .kons-ano{color:#7CC79C}
html[data-theme="dark"] .kons-ne{color:#F08A7E}
.kons-dvojice{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}
.kons-strana{font-size:12px;font-weight:700;color:var(--text2);margin:0 0 6px}
.kons-metodika .kons-kap{padding:12px 0 10px;border-bottom:1px solid var(--border)}
.kons-metodika .kons-kap:last-of-type{border-bottom:none}
.kons-metodika h4{margin:0 0 6px;font-size:14px;display:flex;align-items:center;gap:9px;color:var(--text)}
.kons-kap-c{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:99px;background:#1F4E8C;color:#fff;font-size:12px;font-weight:700}
.kons-metodika p{margin:0 0 8px;line-height:1.6;font-size:13px;color:var(--text2)}
.kons-priklad{margin:4px 0 2px;padding:9px 13px;border-radius:8px;background:rgba(30,138,76,.07);border-left:3px solid #1E8A4C;font-size:12.5px;line-height:1.55}
.kons-priklad-hl{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#1E6E43;margin-bottom:3px}
html[data-theme="dark"] .kons-priklad-hl{color:#7CC79C}
.kons-nalez{margin:8px 0;padding:9px 13px;border-radius:8px;font-size:12.5px;line-height:1.55;border-left:4px solid var(--border);background:var(--surface2)}
.kons-nalez-hl{font-weight:700;margin-bottom:2px}
.kons-nalez-pozor{border-left-color:#D08A22;background:rgba(245,166,35,.10)}
.kons-nalez-ok{border-left-color:#1E8A4C;background:rgba(30,138,76,.08)}
.kons-nalez-info{border-left-color:#1F4E8C;background:rgba(31,78,140,.06)}
.db2-tab tr.kons-skup td{background:var(--surface2);padding-top:7px}
.db2-tab td.kons-sedi{background:rgba(30,138,76,.10)}
.db2-tab td.kons-nesedi{background:rgba(245,166,35,.13)}
.db2-tab tr.kons-radek-nesedi td{background:rgba(196,61,61,.06)}
iframe.kons-dok{width:100%;min-height:400px;border:1px solid var(--border);border-radius:8px;background:#fff}
/* Konsolidace — mustky (waterfall). Barvy dle vzoru aplikace: modra celek, zelena zvyseni, cervena snizeni. */
.kmost-obal{width:100%;overflow:hidden}
.kmost-svg{width:100%;height:auto;display:block}
.kmost-celek{fill:#1F4E8C}
.kmost-plus{fill:#1E8A4C;opacity:.9}
.kmost-minus{fill:#C43D3D;opacity:.9}
.kmost-nevysv{fill:#D08A22;opacity:.9}
.kmost-hod{font-size:13px;font-weight:700;fill:var(--text);font-family:var(--font-sans)}
.kmost-osa{font-size:11.5px;fill:var(--text2);font-family:var(--font-sans)}
.kmost-spoj{stroke:var(--text3);stroke-width:1;stroke-dasharray:3 3;opacity:.7}
.kmost-nula{stroke:var(--border);stroke-width:1}
.kmost-zasah{fill:transparent}
.kmost-klik{cursor:pointer}
.kmost-klik:hover .kmost-zasah{fill:rgba(31,78,140,.06)}
/* Přehled konsolidace: 6 grafů po dvou vedle sebe (PH 24. 9. 2026) */
.kons-grafy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.kons-grafy>.db2-panel{margin:0;min-width:0}
.db2-kpi.kons-kpi4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.db2-kpi.kons-kpi4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){.kons-grafy{grid-template-columns:minmax(0,1fr)}}
.kons-grafy .kmost-hod{font-size:12px}
.kons-grafy .kmost-osa{font-size:11px}
.kons-grafy .nv-hlava h3 .db2-pozn{margin-left:8px;font-weight:400}
.kmost-osa-b{font-weight:700;fill:var(--text)}
.kmost-uvnitr{fill:#9DB4D3}
.kmost-leg{display:flex;flex-wrap:wrap;gap:14px;font-size:11.5px;color:var(--text2);margin-top:6px}
.kmost-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.kmost-leg i.kmost-celek{background:#1F4E8C}
.kmost-leg i.kmost-uvnitr{background:#9DB4D3}
.kons-tab td.kons-bunka:hover{background:rgba(31,78,140,.08)}
.kel-tab td,.kel-tab th{vertical-align:top}
.kel-apl{display:block;font-size:11px;font-weight:500;color:var(--text3);white-space:nowrap}
.kel-apl.ok{color:#1E8A4C}
.kel-apl.ne{color:#C43D3D;font-weight:700}
.kel-mat td.kel-x{color:var(--text3);background:var(--bg2,rgba(0,0,0,.03))}
.db2-tab.kel-mat tbody th{text-align:left;white-space:nowrap;background:transparent;color:var(--text);font-weight:700;position:static}
.db2-tab th.kel-roh{font-size:10.5px;font-weight:500;color:#fff;white-space:nowrap;text-align:left}
.db2-tab th.kel-vyn{background:#DCE8F5;color:#12335C}
.db2-tab th.kel-nak{background:#F7DEDE;color:#5C1414}
html[data-theme="dark"] .db2-tab th.kel-vyn{background:#1E3A5C;color:#DCE8F5}
html[data-theme="dark"] .db2-tab th.kel-nak{background:#4A2020;color:#F7DEDE}
.db2-tab thead th .db2-pozn{color:rgba(255,255,255,.78);font-weight:400}
.db2-tab thead th.kel-vyn .db2-pozn,.db2-tab thead th.kel-nak .db2-pozn{color:inherit}
.kel-zas{display:inline-block;margin:0 10px 2px 0;white-space:nowrap}
.kel-odkaz{text-decoration:underline;cursor:pointer}
.k26-tab td{vertical-align:top}
.k26-tab tr.k26-skupina td{background:var(--bg2,rgba(31,78,140,.06));font-weight:700;font-size:12px}
.k26-stav{white-space:nowrap;font-weight:700;font-size:12px}
.k26-ano{color:#1E8A4C}
.k26-odhad{color:#B7791F}
.k26-ne{color:#C43D3D}
.k26-info{color:var(--text2)}
.k26-taby{margin:0 0 12px;flex-wrap:wrap}
.k26-form{display:flex;flex-wrap:wrap;gap:12px 18px;margin:4px 0 10px}
.k26-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text2)}
.k26-form input{font-size:13px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface,#fff);color:var(--text);min-width:170px}
.k26-cislo{width:110px;font-size:12.5px;padding:3px 6px;text-align:right;border:1px solid var(--border);border-radius:5px;background:var(--surface,#fff);color:var(--text)}
.k26-akce{display:flex;gap:8px;margin-top:10px}
.kaud-karty{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:8px 0 10px}
.kaud-karta{border:1px solid var(--border);border-left:4px solid #1E8A4C;border-radius:10px;padding:10px 12px;background:var(--surface,#fff);min-width:0}
.kaud-karta.ne{border-left-color:#C43D3D}
.kaud-kn{font-size:12px;color:var(--text2)}
.kaud-kv{font-size:20px;font-weight:700;margin:2px 0}
.kaud-kv span{font-size:11px;font-weight:500;color:var(--text3)}
.kaud-ks{font-size:12px}
.kaud-karta.ok .kaud-ks:not(.db2-pozn){color:#1E8A4C}
.kaud-karta.ne .kaud-ks:not(.db2-pozn){color:#C43D3D;font-weight:600}
.kaud-souhrn{font-size:13px;margin:4px 0 8px}
.kaud-prep{font-size:12px;display:flex;gap:6px;align-items:center;cursor:pointer;white-space:nowrap}
.kaud-tab tr.kaud-hl td{font-weight:700}
.kaud-tab td.kaud-jinak{color:#B26B00}
.db2-tab.mst-tab thead th:first-child,.db2-tab.kel-mat thead th:first-child{background:#1F4E8C;color:#fff}
html[data-theme="dark"] .db2-tab.mst-tab thead th:first-child,html[data-theme="dark"] .db2-tab.kel-mat thead th:first-child{background:#24466F}
.pl-pohledy{margin:0 0 12px}
.section[data-section="profit-loss"] #plStrPanel{display:none}
.section[data-section="profit-loss"][data-plpohled="strediska"] > :not(.dash-head):not(#plPohledy):not(#plStrPanel){display:none}
.section[data-section="profit-loss"][data-plpohled="strediska"] #plStrPanel{display:block}
.mst-ovladani{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0 0 10px}
.mst-prep{margin:0}
.mst-tab td.mst-str{padding-left:18px}
.mst-tab tr.mst-firma td{background:var(--bg2,rgba(31,78,140,.06));color:var(--text);font-size:12.5px;padding-top:8px}
.mst-tab tr.mst-zbytek td{font-style:italic;color:var(--text2)}
.mst-tab tr.mst-skupina td{border-top:2px solid var(--text2)}
.mst-tab tr.mst-kontrola td{font-size:11.5px;color:var(--text2)}
.mst-tab td.zle{color:#C43D3D}
.pozor-blok{margin:10px 0 4px;padding:9px 13px;border-radius:8px;background:rgba(245,166,35,.12);border:1px solid rgba(208,138,34,.45);font-size:12.5px}

/* Demo režim — přepínač scénáře v pásu (24. 9. 2026) */
.demo-pas-volba{white-space:nowrap;font-weight:600;font-size:12px}
.demo-pas-volba select{margin-left:4px;font-size:12px;padding:2px 6px;border-radius:5px;border:1px solid rgba(255,255,255,.6);background:#fff;color:#7A3E00}
/* Nastavení → Demo režim: karty scénářů, parametry, náhled (PH 24. 9. 2026: „dynamická designová záložka") */
.dmo-karty{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:7px;margin:4px 0 12px}
.dmo-karta{border:1px solid var(--border);border-radius:8px;padding:7px 9px;background:var(--surface,#fff);cursor:pointer;display:flex;flex-direction:column;gap:4px;min-width:0;transition:border-color .12s,box-shadow .12s}
.dmo-karta-h{align-items:flex-start}
.dmo-karta-h .dmo-nazev{min-width:0;line-height:1.2}
.dmo-karta .dmo-obory .dmo-dalsi{background:transparent;border:1px dashed var(--border);padding:0 6px}
.dmo-karta:hover{border-color:#1F4E8C;box-shadow:0 2px 10px rgba(31,78,140,.12)}
.dmo-karta.on{border-color:#1F4E8C;box-shadow:inset 0 0 0 2px #1F4E8C;background:rgba(31,78,140,.05)}
.dmo-karta-h{display:flex;align-items:center;gap:6px;font-weight:700;font-size:12.5px}
.dmo-karta-h .dmo-ikona{font-size:17px;line-height:1}
.dmo-karta-h .dmo-firem{margin-left:auto;font-size:11px;font-weight:600;color:var(--text2);white-space:nowrap}
.dmo-karta p{margin:0;font-size:11.5px;color:var(--text2);line-height:1.4}
.dmo-karta .dmo-obory{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.dmo-karta .dmo-obory span{font-size:10.5px;padding:1px 7px;border-radius:999px;background:var(--bg2,rgba(31,78,140,.08));color:var(--text2)}
.dmo-parametry{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 16px;margin:6px 0 12px}
.dmo-parametry label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--text2);font-weight:600}
.dmo-parametry select,.dmo-parametry input{font-size:12.5px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface,#fff);color:var(--text)}
.dmo-parametry .dmo-pozn{font-weight:400;font-size:10.5px}
.dmo-akce{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}
.dmo-smaz-bunka{width:28px;padding:0 4px}
.dmo-smaz{border:1px solid var(--border,#d8dde3);background:transparent;color:var(--muted,#6b7480);border-radius:4px;width:22px;height:22px;line-height:20px;font-size:12px;cursor:pointer;padding:0}
.dmo-smaz:hover{color:#fff;background:#c0392b;border-color:#c0392b}
.dmo-firmy-tab td.dmo-barva{width:14px}
.dmo-firmy-tab i.dmo-tecka{display:inline-block;width:10px;height:10px;border-radius:50%}
.dmo-stav{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:6px 0 10px;font-size:12px}

/* ── Vývoj obratu dodavatelů + ABC (js/dodavatele-vyvoj.js, 25. 9. 2026) ── */
.dvj-ovladani .dvj-radek{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:12.5px;margin:2px 0 6px}
.dvj-ovladani label{display:flex;gap:6px;align-items:center;color:var(--text2)}
.dvj-ovladani input[type=text]{min-width:280px}
.dvj-ovladani input[type=number]{width:58px;padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}
.dvj-ovladani select{padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit}
.dvj-pruh-radek{display:grid;grid-template-columns:160px 1fr;gap:10px;align-items:center;margin:6px 0 10px}
.dvj-pruh-popis{font-size:12px;color:var(--text2)}
.dvj-pruh{display:flex;height:26px;border-radius:6px;overflow:hidden;gap:2px;background:var(--surface)}
.dvj-pruh>div{display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden}
.dvj-pruh>div span{font-size:11px;font-weight:700;color:#fff;white-space:nowrap;padding:0 4px}
.dvj-abc{display:inline-block;min-width:20px;padding:1px 6px;border-radius:999px;font-size:11px;font-weight:700;color:#fff}
.dvj-abc-A{background:#1F4E8C}.dvj-abc-B{background:#5B84BF}.dvj-abc-C{background:#A9BEDD;color:#14335F}
.dvj-tab td.ok{color:#1E8A4C}.dvj-tab td.zle{color:#C43D3D}
.dvj-leg{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;margin-right:3px}
.dvj-leg-lon{background:#9DB4D6}.dvj-leg-let{background:#1F4E8C}
.dvj-graf text{font-family:var(--font-sans)}

/* ── Konsolidace: archiv starších let (js/konsolidace-archiv.js, 25. 9. 2026) ── */
.karch-tab tr.karch-hl td{font-weight:700;background:var(--surface2,rgba(31,78,140,.05))}
.karch-tab td.zle{color:#C43D3D}
.karch-dva{grid-template-columns:1fr 1fr}
@media (max-width:1300px){.karch-dva{grid-template-columns:1fr}}
.karch-info{border-left:4px solid #9DB4D6}

/* ── Administrace → Název a vzhled aplikace (js/znacka-aplikace.js) ── */
.znk-pole{min-width:280px}
.znk-nahled{display:flex;flex-direction:column;gap:12px;align-items:center;padding:8px}
.znk-nahled-logo{background:linear-gradient(145deg,var(--blue),var(--blue-3,#1F4E8C));color:#fff;border-radius:10px;padding:16px 22px;text-align:center;min-width:220px}
.znk-nahled-logo .ln-badge{font-size:22px;font-weight:900;line-height:1.1}
.znk-nahled-logo .ls{margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.znk-logo-vlastni{display:block;max-width:100%;max-height:64px;object-fit:contain;margin:0 auto}
.znk-nahled-logo .znk-logo-vlastni{max-height:90px;max-width:260px}
.znk-logo-auth{max-height:110px;max-width:320px}
.znk-nahled-pata{font-size:12px;color:var(--text3);border-top:1px solid var(--border);padding-top:8px;width:100%;text-align:center}
.dvj-tab th.dvj-sort{cursor:pointer;user-select:none;white-space:nowrap}
.dvj-tab th.dvj-sort:hover{text-decoration:underline}
.dvj-tab th.dvj-sort .dvj-sipka{margin-left:4px;font-size:10px;opacity:.45}
.dvj-tab th.dvj-sort.on .dvj-sipka{opacity:1}
/* Analýza dodavatele — rozšíření (js/dodavatele-rozsireni.js) */
.dvr-dod{cursor:pointer;font-weight:600}
.dvr-tab td.db2-pozn{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db2-tab td.ok{color:#1E8A4C}
/* Platební morálka — sesouhlasení s přehledem (25. 9. 2026) */
.mor-ses-tab td:first-child{min-width:260px}
.mor-ses-tab td.num{text-align:right;white-space:nowrap;min-width:120px}
.mor-ses-tab td.muted{font-size:11.5px}
/* Analýza dodavatele — rozbalení všech dodavatelů v druhu nákladu (25. 9. 2026) */
.dvr-vsichni{padding:2px 8px;font-size:11.5px;white-space:nowrap}
tr.dvr-rozbal > td{background:var(--bg2,#f6f8fb);padding:8px 10px 12px}
tr.dvr-rozbal .db2-tab thead th{position:sticky;top:0;z-index:1;background:var(--panel-bg,#fff)}
/* Pole pro částky s oddělenými tisíci (js/cisla-vstup.js, 25. 9. 2026) */
input[data-kc]{text-align:right;font-variant-numeric:tabular-nums}
.dvj-ovladani input.dvr-kc{min-width:0;width:13ch;padding:3px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}
.dvj-ovladani input.dvr-nasobek{width:7ch;padding:4px 6px}
.pz-ana-filters input[data-kc]{width:130px}
.kk-limit[data-kc]{max-width:150px;min-width:130px}
.cfs-in[data-kc]{width:150px}
.k26-cislo[data-kc]{width:130px}
/* Koncentrace — vývoj po měsících (25. 9. 2026) */
.dvj-ovladani input.dvr-hledat{min-width:0;width:220px}
.dvr-mes td:first-child{white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
/* Analýza dodavatele — další pohledy a grafy (js/dodavatele-pohledy.js, 25. 9. 2026) */
.dps-panel .nv-hlava,.dps-vlozeny .nv-hlava{display:flex;align-items:center;gap:8px}
.dps-vlozeny{margin:6px 0 12px;padding-top:4px}
.dps-sbal{padding:2px 10px;font-size:11.5px;white-space:nowrap}
.dps-legenda{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:11.5px;margin:4px 0 8px}
.dps-leg{display:inline-flex;align-items:center;gap:5px;color:var(--text2)}
.dps-leg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.dps-bod{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.dps-podnadpis{margin:14px 0 6px;font-size:13px}
.dps-klik{cursor:pointer}
.dps-klik:hover rect{filter:brightness(1.08)}
.dps-graf text,.dps-mapa text{font-family:inherit}
/* Vývoj obratu dodavatelů — Přehled / Zobrazení v měsících bez posuvníku (25. 9. 2026) */
.dvj-obal{width:100%}
.dvj-tab{width:100%}
.dvj-tab td.dvj-dod{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dvj-tab td.dvj-druh{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dvj-tab-mes{table-layout:fixed;font-size:11.5px}
.dvj-tab-mes th,.dvj-tab-mes td{padding-left:3px;padding-right:3px}
.dvj-tab-mes th:nth-child(1),.dvj-tab-mes td:nth-child(1){width:34px}
.dvj-tab-mes th:nth-child(2),.dvj-tab-mes td:nth-child(2){width:210px}
.dvj-tab-mes th:nth-child(3),.dvj-tab-mes td:nth-child(3){width:38px}
.dvj-tab-mes th:last-child,.dvj-tab-mes td:last-child{width:70px}
.dvj-pohled button{padding:4px 12px}
@media (max-width:1100px){.dvj-obal{overflow-x:auto}}
/* Noví, ztracení a výkyvy — rychlý proklik; Vývoj obratu — přehled bez posuvníku (25. 9. 2026) */
.dvr-skoky{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}
.dvr-skoky .btn{padding:4px 12px;font-size:12px}
.dvr-cil{scroll-margin-top:84px}
[data-dps]{scroll-margin-top:84px}
.dvj-tab-prehled{font-size:12px}
.dvj-tab-prehled th,.dvj-tab-prehled td{padding-left:5px;padding-right:5px}
.dvj-tab-prehled td.dvj-dod{max-width:210px}
.dvj-tab-prehled td.dvj-druh{max-width:120px}
.dvj-tab-prehled th.dvj-sort{white-space:normal}
/* Noví a ztracení vedle sebe (25. 9. 2026) */
.dvr-dvojice{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px}
.dvr-dvojice > .db2-panel{margin-bottom:0 !important;min-width:0}
.dvr-dvojice .scroll-x{max-height:520px;overflow:auto}
.dvr-dvojice thead th{position:sticky;top:0;z-index:1}
.dvr-dvojice td:first-child{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:1100px){.dvr-dvojice{grid-template-columns:minmax(0,1fr)}}
@media print{.dvr-dvojice .scroll-x{max-height:none;overflow:visible}}
/* Dvojice tabulek na Noví/ztracení/výkyvy: bez vodorovného posuvníku, hlavičky na 2 řádky (25. 9. 2026) */
.dvr-dvojice .scroll-x{overflow-x:hidden;overflow-y:auto}
.dvr-dvojice table{width:100%;table-layout:fixed;font-size:12px}
.dvr-dvojice th{white-space:normal !important;line-height:1.2;vertical-align:bottom;padding-left:5px;padding-right:5px}
.dvr-dvojice td{padding-left:5px;padding-right:5px}
.dvr-dvojice th:first-child,.dvr-dvojice td:first-child{width:36%}
.dvr-dvojice td:first-child{max-width:none}
/* Koncentrace — přepínač jednotky Kč / tis. Kč / mil. Kč (25. 9. 2026) */
.dvr-jedn button{padding:3px 10px;font-size:11.5px}
.dvj-radek .panel-hdr-sp{flex:1}
/* Koncentrace — TOP tabulka se vejde na šířku (hlavičky druhů zalomené, dlouhé názvy zkrácené, celé v titulku) */
.dvr-top{font-size:12px}
.dvr-top th{white-space:normal !important;line-height:1.2;vertical-align:bottom;min-width:0 !important;word-break:normal;hyphens:auto}
.dvr-top th,.dvr-top td{padding-left:4px;padding-right:4px}
.dvr-top td:nth-child(2){max-width:165px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dvr-top td.db2-pozn{max-width:150px}
/* Porady/Prezentace — typy porad jemně podbarvené (PH 25. 9. 2026) */
.sb-subnav a.sb-porada-typ{background:rgba(232,112,42,.08);border-left:2px solid rgba(232,112,42,.55)}
.sb-subnav a.sb-porada-typ:hover{background:rgba(232,112,42,.14)}

/* ══ PREZENTAČNÍ ŠABLONA PORAD (js/prezentace-sablona.js, 25. 9. 2026) ══
 * Snímek má pevných 1280 × 720 px a škáluje se transformací — náhled,
 * promítání i tisk tak vypadají stejně. Barvy firemní šablony, písmo Arial. */
.pz-snimek{position:relative;width:1280px;height:720px;overflow:hidden;background:#fff;color:#111A26;font-family:'Segoe UI',Arial,sans-serif;box-sizing:border-box;text-align:left;line-height:1.25}
.pz-snimek *{box-sizing:border-box}
.pz-titul{background:linear-gradient(125deg,#072E5E 0%,#072E5E 55%,#0C458B 100%);color:#fff}
.pz-vodoznak{position:absolute;right:-130px;top:-90px;width:720px;height:720px;opacity:.28;pointer-events:none}
.pz-vodoznak-q{position:absolute;right:-60px;top:20px;width:520px;height:520px;border:110px solid rgba(255,255,255,.12);border-radius:50%}
.pz-titul-obsah{position:absolute;left:66px;top:120px;right:420px}
.pz-titul-k{font-size:30px;color:#B9C8DE;margin-bottom:14px}
.pz-titul-logo{height:128px;display:block;margin-bottom:26px}
.pz-titul-cara{width:88px;height:7px;background:#EE7125;margin:10px 0 22px}
.pz-titul h1{font-size:40px;font-weight:700;margin:0 0 12px;color:#fff;letter-spacing:-.3px}
.pz-titul-p{font-size:22px;color:#D5DEEA}
.pz-titul-m{font-size:17px;color:#B9C8DE;margin-top:10px}
.pz-titul-jm{margin-top:34px;font-size:23px;font-weight:700;color:#fff}
.pz-titul-jm span{display:block;margin-top:4px;font-size:18px;font-weight:400;color:#D5DEEA}
.pz-titul-svetly .pz-titul-jm{color:#0C458B}.pz-titul-svetly .pz-titul-jm span{color:#1F2B3A}
.pz-pata{position:absolute;left:0;right:0;bottom:0;height:52px;background:#072E5E;display:flex;align-items:center;gap:20px;padding:0 30px 0 0;color:#B9C8DE;font-size:12px}
.pz-pata-tit{background:transparent;border-top:1px solid rgba(213,222,234,.28);left:58px;right:58px;height:60px;padding:0}
.pz-pata-motiv{width:26px;height:52px;background:#EE7125;clip-path:polygon(0 0,62% 0,100% 100%,0 100%);flex:none}
.pz-pata-l{flex:none;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pz-pata-loga{flex:1;display:flex;align-items:center;justify-content:space-around;gap:18px;opacity:.92}
.pz-pata-loga img{display:block;max-width:180px}
.pz-pata-r{flex:none;color:#fff;font-weight:700;font-size:14px;letter-spacing:1px}
.pz-hlava{position:absolute;left:58px;right:58px;top:36px;display:flex;justify-content:space-between;align-items:flex-start;gap:30px}
.pz-kicker{font-size:14px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:#EE7125;margin-bottom:8px}
.pz-hlava h2,.pz-kap-r h2{font-size:38px;font-weight:700;color:#0C458B;margin:0;letter-spacing:-.4px;line-height:1.1}
.pz-podnadpis{font-size:18px;color:#1F2B3A;margin-top:8px}
.pz-logo{height:43px;flex:none;margin-top:14px}
.pz-telo{position:absolute;left:58px;right:58px;top:160px;display:flex;gap:28px}
.pz-hlava:has(.pz-podnadpis)~.pz-telo{top:186px}
.pz-sloupec{display:flex;flex-direction:column;gap:14px;min-width:0}
.pz-blok{min-height:0;flex:1}
.pz-graf svg{display:block}
.pz-karty{display:grid;gap:14px}
.pz-karta{position:relative;background:#EEF3F9;border-radius:14px;padding:16px 20px 14px 26px;display:flex;flex-direction:column;justify-content:center;min-height:0;overflow:hidden}
.pz-karta::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:5px;border-radius:0 4px 4px 0;background:#EE7125}
.pz-karta.pz-ok::before{background:#1E7A4C}.pz-karta.pz-zle::before{background:#C0392B}
.pz-karta-n{font-size:19px;font-weight:700;color:#0C458B}
.pz-karta-p{font-size:13px;color:#1F2B3A;margin-top:3px}
.pz-karta-v{font-size:36px;font-weight:700;color:#111A26;margin-top:6px;letter-spacing:-.5px;white-space:nowrap}
.pz-karta-z{font-size:15px;font-weight:700;margin-top:5px}
.pz-karta.pz-ok .pz-karta-z:not(.pz-z2){color:#1E7A4C}.pz-karta.pz-zle .pz-karta-z:not(.pz-z2){color:#C0392B}
.pz-karta-z.ok{color:#1E7A4C}.pz-karta-z.zle{color:#C0392B}
.pz-karta-z span{font-weight:700;color:#1F2B3A;font-size:13px}
.pz-karta-hl{background:#D3E2F5;box-shadow:inset 0 0 0 2px #0C458B}
.pz-karta-hl .pz-karta-n{color:#0C458B}.pz-karta-hl .pz-karta-v{color:#0B1A2E}.pz-karta-hl .pz-karta-p,.pz-karta-hl .pz-karta-z span{color:#1F2B3A}
/* zvýrazněná karta je SVĚTLE modrá — červené i zelené písmo musí být čitelné (PH 25. 9. 2026) */
.pz-tab-obal{overflow:hidden}
.pz-tab{width:100%;border-collapse:collapse;font-size:17px}
.pz-tab th{background:#0C458B;color:#fff;font-weight:700;text-align:left;padding:10px 14px;border:1px solid #D5DEEA}
.pz-tab td{padding:9px 14px;border:1px solid #D5DEEA;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
.pz-tab-pevna{table-layout:fixed}.pz-tab-zalom td:first-child{white-space:normal;line-height:1.2}.pz-tab-pevna td{max-width:none}.pz-tab-pevna th{overflow:hidden;overflow-wrap:break-word}
/* Úsporné karty (víc karet pod sebou) */
.pz-karty-kompakt .pz-karta{padding:8px 16px 8px 24px}.pz-karty-kompakt .pz-karta-n{font-size:16px}.pz-karty-kompakt .pz-karta-v{font-size:28px;margin-top:2px}.pz-karty-kompakt .pz-karta-p{font-size:11.5px;margin-top:1px}.pz-karty-kompakt .pz-karta-z{font-size:13px;margin-top:2px}
.pz-karty-mini .pz-karta{padding:6px 14px 6px 22px}.pz-karty-mini .pz-karta-n{font-size:14.5px}.pz-karty-mini .pz-karta-v{font-size:24px;margin-top:1px;line-height:1.1}.pz-karty-mini .pz-karta-p{display:none}.pz-karty-mini .pz-karta-z{font-size:12px;margin-top:1px}.pz-karty-mini .pz-karta-z.pz-z2{display:none}
.pz-tab td:first-child{font-weight:700}
.pz-tab .r{text-align:right}
.pz-tab tr.hl td{background:#FDEFE6}
.pz-tab tr.suma td{background:#EEF3F9;font-weight:700}
.pz-tab th.pz-vh{background:#3A68A6}.pz-tab td.pz-vh{background:#EAF1FA}.pz-tab tr.suma td.pz-vh{background:#DCE7F5}
/* SLOUPCE OBDOBÍ BAREVNĚ (PH 26. 9. 2026: „rok 2024, 2025, 2026 i výhled barevně
 * lehce oddělit celé sloupce"). Stejné barvy jako legenda grafů: 2 roky zpět šedomodrá,
 * loni oranžová, letos modrá, výhled světle modrá. Záhlaví má proužek barvy období. */
.maj-hlavni,.maj-str-tab{--maj-r0:#AEB9C9;--maj-r1:#F5B27E;--maj-ytd:#0C458B;--maj-fc:#8DB0DC}
.maj-hlavni thead th:nth-child(2),.maj-str-tab thead th:nth-child(2){box-shadow:inset 0 -4px 0 var(--maj-r0)}
.maj-hlavni thead th:nth-child(3),.maj-str-tab thead th:nth-child(3){box-shadow:inset 0 -4px 0 var(--maj-r1)}
.maj-hlavni thead th:nth-child(4),.maj-str-tab thead th:nth-child(4){box-shadow:inset 0 -4px 0 #6E96CB}
.maj-hlavni thead th:nth-child(5),.maj-str-tab thead th:nth-child(5){background:#3A68A6!important;box-shadow:inset 0 -4px 0 var(--maj-fc)}
.maj-hlavni tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(2),.maj-str-tab tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(2){background:color-mix(in srgb,var(--maj-r0) 16%,var(--surface,#fff))!important}
.maj-hlavni tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(3),.maj-str-tab tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(3){background:color-mix(in srgb,var(--maj-r1) 13%,var(--surface,#fff))!important}
.maj-hlavni tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(4),.maj-str-tab tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(4){background:color-mix(in srgb,var(--maj-ytd) 7%,var(--surface,#fff))!important}
.maj-hlavni tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(5),.maj-str-tab tbody tr:not(.maj-sekce):not(.maj-suma):not(.maj-hl-opak) td:nth-child(5){background:color-mix(in srgb,var(--maj-fc) 24%,var(--surface,#fff))!important}
.maj-hlavni td:nth-child(n+2):nth-child(-n+5),.maj-str-tab td:nth-child(n+2):nth-child(-n+5){border-left:1px solid rgba(12,69,139,.12)}
.maj-tab tr.maj-hl-opak td{background:#1B2F5E!important;color:#fff!important;font-size:11px;font-weight:700;padding:4px 8px!important;border-color:#2A3A6E!important}
.maj-tab tr.maj-hl-opak td:first-child{font-weight:600;color:#C8D2EB!important}
.maj-tab tr.maj-hl-opak td:nth-child(2){box-shadow:inset 0 -3px 0 #AEB9C9}.maj-tab tr.maj-hl-opak td:nth-child(3){box-shadow:inset 0 -3px 0 #F5B27E}
.maj-tab tr.maj-hl-opak td:nth-child(4){box-shadow:inset 0 -3px 0 #6E96CB}.maj-tab tr.maj-hl-opak td:nth-child(5){background:#3A68A6!important;box-shadow:inset 0 -3px 0 #8DB0DC}
.maj-spoj{height:30px;padding:0 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font:600 12.5px var(--font-sans);color:var(--text2);cursor:pointer}
.maj-spoj.on{background:#E3F2EA;border-color:#1E7A4C;color:#14653A}
.pz-tab td.ok{color:#1E7A4C;font-weight:700}.pz-tab td.zle{color:#C0392B;font-weight:700}
.pz-tab-maly{font-size:14px}.pz-tab-maly th,.pz-tab-maly td{padding:6px 10px}
.pz-text{background:#EEF3F9;border-radius:14px;padding:20px 26px;overflow:hidden}
.pz-text h4{margin:0 0 10px;font-size:20px;color:#0C458B}
.pz-text ul{margin:0;padding-left:22px;font-size:18px;line-height:1.45}
.pz-text li::marker{color:#EE7125}
.pz-text-velky ul{font-size:22px}
.pz-cislo{background:#EEF3F9;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}
.pz-cislo-v{font-size:64px;font-weight:700;color:#0C458B;letter-spacing:-1px}
.pz-cislo.ok .pz-cislo-v{color:#1E7A4C}.pz-cislo.zle .pz-cislo-v{color:#C0392B}
.pz-cislo-p{font-size:17px;color:#1F2B3A;margin-top:6px}
.pz-html{overflow:hidden;border:1px solid #D5DEEA;border-radius:12px;background:#fff}
.pz-html-v{transform-origin:0 0;padding:8px}
.pz-zdroj{position:absolute;left:58px;right:58px;bottom:58px;font-size:12px;color:#1F2B3A}
.pz-program{position:absolute;left:58px;right:58px;top:160px;bottom:74px;display:grid;gap:18px 22px;grid-auto-rows:1fr}
.pz-prog{background:#EEF3F9;border-radius:14px;padding:14px 22px;overflow:hidden}
.pz-prog.hl{background:#D3E2F5;box-shadow:inset 0 0 0 2px #0C458B}
.pz-prog-c{font-size:32px;font-weight:700;color:#EE7125}
.pz-prog-t{font-size:18px;font-weight:700;color:#0C458B;margin-top:4px;line-height:1.2}
.pz-prog.hl .pz-prog-t{color:#0C458B}
.pz-kapitola{background:#fff}
.pz-kap-l{position:absolute;left:0;top:0;bottom:52px;width:470px;background:#072E5E;overflow:hidden}
.pz-kap-cislo{position:absolute;left:58px;top:170px;font-size:190px;font-weight:700;color:#EE7125;letter-spacing:-6px;line-height:1}
.pz-kap-motiv{position:absolute;right:-40px;bottom:-40px;width:260px;height:300px;background:rgba(255,255,255,.07);clip-path:polygon(0 0,45% 0,100% 100%,55% 100%)}
.pz-kap-r{position:absolute;left:540px;right:70px;top:240px}
.pz-kap-r p{font-size:20px;color:#1F2B3A;margin:14px 0 0;line-height:1.4}
.pz-nahled{position:relative;overflow:hidden;border-radius:6px;box-shadow:0 1px 3px rgba(7,46,94,.18);background:#fff;flex:none}
.pz-nahled-in{position:absolute;left:0;top:0;width:1280px;height:720px;transform-origin:0 0;pointer-events:none}
.pz-show{position:fixed;inset:0;z-index:2000;background:#0A1628;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pz-show-plocha{flex:1;display:flex;align-items:center;justify-content:center;width:100%;cursor:pointer}
.pz-show-ram{box-shadow:0 10px 40px rgba(0,0,0,.5);overflow:hidden;border-radius:4px;background:#fff}
.pz-show-lista{display:flex;align-items:center;gap:8px;width:100%;padding:8px 20px 12px;color:#B9C8DE;font:13px Arial,sans-serif}
.pz-show-lista button{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:6px 12px;cursor:pointer;font:600 13px Arial,sans-serif}
.pz-show-lista button:hover{background:rgba(238,113,37,.35);border-color:#EE7125}
.pz-show-sp{flex:1}
.pz-show-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.08)}
.pz-show-progress i{display:block;height:100%;background:#EE7125;transition:width .25s}
.pz-show-pozn{position:absolute;left:50%;transform:translateX(-50%);bottom:64px;max-width:900px;background:rgba(7,46,94,.94);color:#fff;border-left:4px solid #EE7125;border-radius:8px;padding:12px 18px;font:16px/1.4 Arial,sans-serif}
.pz-show-dlazdice{position:absolute;inset:0 0 56px;overflow:auto;background:rgba(10,22,40,.97);display:flex;flex-wrap:wrap;gap:18px;padding:30px;align-content:flex-start}
.pz-dl{background:none;border:2px solid transparent;border-radius:8px;padding:4px;cursor:pointer;color:#D5DEEA;font:12px Arial,sans-serif;text-align:left;display:flex;flex-direction:column;gap:6px;max-width:252px}
.pz-dl.on,.pz-dl:hover{border-color:#EE7125}
.pz-dl span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* panel prezentace v záložce porady */
.pzp{border:1px solid rgba(238,113,37,.35);background:linear-gradient(180deg,rgba(238,113,37,.05),transparent 120px)}
.pzp-lista{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.pzp-lista label{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--text2)}
.pzp-lista .pzp-sp{flex:1}
.pzp-cta{background:#EE7125 !important;border-color:#EE7125 !important;color:#fff !important}
.pzp-mrizka{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.pzp-dl{border:1px solid var(--border);border-radius:10px;padding:8px;background:var(--surface);display:flex;flex-direction:column;gap:6px;cursor:pointer}
.pzp-dl.off{opacity:.45}
.pzp-dl-hl{display:flex;gap:6px;align-items:center;font-size:12px}
.pzp-dl-hl b{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzp-dl-hl button{padding:1px 6px;font-size:11px}
.pzp-archiv{margin-top:14px}
.pzp-archiv table{width:100%}
@media print{.pz-show{position:static;background:#fff}.pz-show-lista,.pz-show-progress{display:none}}
.pzp-cc{display:inline-flex;gap:4px;align-items:center;margin:2px 10px 2px 0;font-size:12px;white-space:nowrap}

/* PH 25. 9. 2026: v prezentaci žádné světle šedé písmo; kompaktní tabulka pro střediska */
.pz-tab-mini{font-size:12.5px}.pz-tab-mini th,.pz-tab-mini td{padding:4px 8px}
/* Velikost písma hodnot a popisků (volba prezentace: větší / velká) */
.pz-p2 .pz-tab{font-size:19px}.pz-p2 .pz-tab-maly{font-size:16px}.pz-p2 .pz-tab-mini{font-size:14px}
.pz-p3 .pz-tab{font-size:21px}.pz-p3 .pz-tab-maly{font-size:18px}.pz-p3 .pz-tab-mini{font-size:15.5px}
/* Varianty titulního snímku: světlý a s fotkou */
.pz-titul-svetly{background:#fff;color:#111A26}
.pz-titul-svetly::before{content:'';position:absolute;right:0;top:0;width:430px;bottom:52px;background:#EEF3F9}
.pz-titul-svetly .pz-vodoznak-q{border-color:rgba(12,69,139,.07)}
.pz-titul-svetly .pz-titul-k{color:#EE7125;font-weight:700}
.pz-titul-svetly h1{color:#0C458B}
.pz-titul-svetly .pz-titul-p,.pz-titul-svetly .pz-titul-m{color:#1F2B3A}
.pz-titul-svetly .pz-pata-tit{left:0;right:0;height:52px;background:#072E5E;border-top:0;padding:0 160px}
/* Závěrečný snímek „Děkuji za pozornost" — tmavý jako titul */
/* PH 25. 9. 2026: „Děkuji" výrazně níž, zhruba doprostřed výšky, pořád vlevo;
   pod ním víc prostoru a teprve pak jméno. Logo zůstává nahoře. */
.pz-konec-obsah{position:absolute;left:66px;top:0;right:420px;height:660px}
.pz-konec-logo{position:absolute;left:0;top:84px;height:60px;display:block}
.pz-konec h1{position:absolute;left:0;right:0;top:282px;font-size:62px;font-weight:700;margin:0;color:#fff;letter-spacing:-.5px;line-height:1.1}
.pz-konec-p{position:absolute;left:0;top:360px;font-size:22px;color:#D5DEEA}
.pz-konec .pz-titul-cara{position:absolute;left:0;top:410px;margin:0}
.pz-konec-jm{position:absolute;left:0;top:462px;font-size:28px;font-weight:700;color:#fff}
.pz-konec-fce{position:absolute;left:0;top:502px;font-size:20px;color:#D5DEEA}
.pz-konec-kt{position:absolute;left:0;top:538px;font-size:17px;color:#B9C8DE}
/* Komentář na snímku a obrázek na vlastním snímku */
.pz-komentar{position:absolute;z-index:4;padding:12px 16px 12px 20px;border-radius:12px;border-left:6px solid;font-size:17px;line-height:1.35;font-weight:600;color:#111A26;box-shadow:0 6px 20px rgba(7,46,94,.18);box-sizing:border-box}
.pz-obr{display:flex;align-items:center;justify-content:center;overflow:hidden}.pz-obr img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
/* Přechody v promítání */
.pz-show .pz-odk{transition:opacity .35s ease}.pz-show .pz-skryto{opacity:0;visibility:hidden}
.pz-anim-prolnuti{animation:pzProl .45s ease both}@keyframes pzProl{from{opacity:0}to{opacity:1}}
.pz-anim-posun{animation:pzPosun .45s ease both}@keyframes pzPosun{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}
.pz-titul-foto-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.pz-titul-foto .pz-titul-obsah{right:560px}

/* ══ PREZENTAČNÍ STUDIO PORAD (js/porada-studio.js, 25. 9. 2026) ══
 * Administrace: jasná, zarovnaná, bez textu přes okraje (PH). Každý řádek
 * i buňka má pevnou šířku sloupce a dlouhý text končí třemi tečkami. */
.pzs{padding:0;overflow:hidden;border:1px solid var(--border);border-top:3px solid #EE7125;margin-bottom:16px}
.pzs *{box-sizing:border-box}
.pzs-hlava{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;justify-content:space-between;padding:18px 22px 14px;background:linear-gradient(180deg,rgba(12,69,139,.05),transparent)}
.pzs-tit{min-width:0;flex:1 1 320px}
.pzs-kicker{font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:#EE7125}
.pzs-tit h2{margin:4px 0 4px;font-size:22px;line-height:1.2;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzs-meta{font-size:12.5px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzs-vzor{color:#C0392B}
.pzs-akce{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.pzs-akce .btn{height:34px;padding:0 14px;display:inline-flex;align-items:center;white-space:nowrap}
.pzs-pole{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.4px}
.pzs-pole select{height:34px;min-width:150px;font-size:13px;text-transform:none;letter-spacing:0}
.pzs-cta{background:#EE7125 !important;border-color:#EE7125 !important;color:#fff !important;font-weight:700}
.pzs-cta:hover{filter:brightness(1.06)}
.pzs-oddel{width:1px;align-self:stretch;background:var(--border);margin:0 2px}
.pzs-zalozky{display:flex;gap:2px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--surface)}
.pzs-zalozky button{border:0;background:none;padding:11px 16px 10px;font:600 13px var(--font-sans);color:var(--text2);border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}
.pzs-zalozky button:hover{color:var(--text)}
.pzs-zalozky button.on{color:#0C458B;border-bottom-color:#0C458B}
.pzs-zalozky i{font-style:normal;display:inline-block;min-width:22px;padding:1px 6px;margin-left:4px;border-radius:10px;background:rgba(12,69,139,.1);color:#0C458B;font-size:11px;text-align:center}
.pzs-telo{padding:16px 20px 20px}
/* Snímky: seznam + náhled */
.pzs-snimky{display:grid;grid-template-columns:minmax(380px,420px) minmax(0,1fr);gap:20px;align-items:start}
.pzs-seznam{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.pzs-seznam-hl{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);font-size:13px}
.pzs-seznam-hl span{font-size:11.5px;color:var(--text2);white-space:nowrap}
.pzs-seznam-b{max-height:560px;overflow-y:auto}
.pzs-radek{display:grid;grid-template-columns:16px 18px 24px minmax(0,1fr) 72px 40px;gap:6px;align-items:center;height:38px;padding:0 8px 0 6px;border-bottom:1px solid var(--border);font-size:13px;cursor:pointer;background:var(--surface)}
.pzs-radek:last-child{border-bottom:0}
.pzs-radek:hover{background:rgba(12,69,139,.04)}
.pzs-radek.on{background:rgba(12,69,139,.09);box-shadow:inset 3px 0 0 #0C458B}
/* Vypnutý snímek: červeně přeškrtnutý (PH 26. 9. 2026: „ať to lépe vidím") */
.pzs-radek.off{background:#FDF1F0}.pzs-radek.off .pzs-n,.pzs-radek.off .pzs-c{color:#C0392B;text-decoration:line-through;text-decoration-color:#C0392B;text-decoration-thickness:2px}
.pzs-radek.tah{opacity:.4}
.pzs-radek.cil{box-shadow:inset 0 2px 0 #EE7125}
.pzs-uchop{color:var(--text3);cursor:grab;font-size:12px;letter-spacing:-2px;text-align:center;user-select:none}
.pzs-radek input{margin:0;width:15px;height:15px}
.pzs-c{font-variant-numeric:tabular-nums;color:var(--text2);font-size:12px;text-align:right}
.pzs-n{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzs-kap{font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzs-st{font-size:11px;font-weight:700;text-align:center;border-radius:10px;padding:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text2)}
.pzs-st.ok{color:#1E7A4C;background:rgba(30,122,76,.1)}
.pzs-st.warn{color:#B45309;background:rgba(217,119,6,.12)}
.pzs-st.off{color:var(--text3);background:rgba(0,0,0,.04)}
.pzs-sipky{display:flex;gap:2px;justify-content:flex-end}
.pzs-sipky button{width:18px;height:22px;padding:0;border:1px solid var(--border);background:var(--surface);border-radius:4px;font-size:8px;color:var(--text2);cursor:pointer}
.pzs-sipky button:disabled{opacity:.3;cursor:default}
.pzs-seznam-pata{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--border);font-size:12.5px;background:rgba(0,0,0,.015)}
.pzs-seznam-pata label{display:flex;gap:6px;align-items:center}
.pzs-prava{min-width:0}
.pzs-nahled-hl{display:flex;align-items:center;gap:12px;margin-bottom:10px;min-width:0}
.pzs-nahled-hl b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pzs-nahled-hl span{font-size:12px;color:var(--text2);white-space:nowrap;flex:1}
.pzs-nahledy{display:flex;flex-direction:column;gap:12px}
.pzs-nahled-ram{cursor:pointer;border-radius:8px;display:inline-block;max-width:100%}
.pzs-nahled-ram .pz-nahled{box-shadow:0 2px 10px rgba(7,46,94,.16);border:1px solid var(--border)}
.pzs-nahled-ram:hover .pz-nahled{box-shadow:0 0 0 3px rgba(238,113,37,.45)}
.pzs-pozn{display:flex;flex-direction:column;gap:5px;margin-top:14px;font-size:12.5px;font-weight:600;color:var(--text)}
.pzs-pozn i{font-weight:400;color:var(--text2);font-style:normal}
.pzs-pozn textarea,.pzs-sekce textarea{width:100%;font:13px/1.45 var(--font-sans);padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);resize:vertical}
.pzs-prazdno{border:1px dashed var(--border);border-radius:12px;padding:40px 30px;text-align:center;background:rgba(12,69,139,.02)}
.pzs-prazdno-male{padding:24px}
.pzs-prazdno-ik{font-size:34px;color:#0C458B;opacity:.5}
.pzs-prazdno h3{margin:8px 0 6px;font-size:17px}
.pzs-prazdno p{margin:0 auto 16px;max-width:520px;color:var(--text2);font-size:13px;line-height:1.5}
.pzs-prazdno-akce{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.pzs-mrizka-hl{display:flex;align-items:center;gap:14px;margin-top:16px;flex-wrap:wrap}
.pzs-upoz{font-size:12px;color:#B45309}
.pzs-mrizka{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:14px;margin-top:12px}
.pzs-dl{display:flex;flex-direction:column;gap:6px;cursor:pointer;min-width:0}
.pzs-dl span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzs-dl:hover .pz-nahled{box-shadow:0 0 0 3px rgba(238,113,37,.45)}
/* sekce (Střediska, Úkoly, Nastavení, Archiv) */
.pzs-sekce h3,.pzs-archiv h3{margin:0 0 4px;font-size:15px}
.pzs-sekce p,.pzs-archiv p{margin:0 0 12px;font-size:13px;color:var(--text2);line-height:1.5}
.pzs-sekce-hl{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:12px;flex-wrap:wrap}
.pzs-sekce-hl>div:first-child{flex:1 1 420px;min-width:0}
.pzs-sekce-akce{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pzs-info{font-size:12px;color:var(--text2)}
.pzs-pozn-mala{font-size:12px !important;color:var(--text2)}
.pzs-cc-mrizka{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.pzs-cc-firma{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.pzs-cc-hl{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:rgba(12,69,139,.06);border-bottom:1px solid var(--border);font-size:13px}
.pzs-cc-hl span{font-size:11.5px;color:var(--text2)}
.pzs-cc{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:center;padding:5px 12px;font-size:12.5px;border-bottom:1px solid rgba(0,0,0,.04);cursor:pointer}
.pzs-cc:last-child{border-bottom:0}
.pzs-cc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pzs-cc input{margin:0}
.pzs-dva{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px}
.pzs-tipy{margin:0;padding-left:18px;font-size:13px;line-height:1.6;color:var(--text)}
.pzs-form{display:flex;flex-direction:column;gap:10px;max-width:860px;margin-bottom:18px}
.pzs-pole-r{display:grid;grid-template-columns:170px minmax(0,1fr);gap:14px;align-items:center;font-size:13px}
.pzs-pole-r>span:first-child{font-weight:600;color:var(--text)}
.pzs-pole-r>span:last-child{display:flex;gap:8px;align-items:center;color:var(--text2)}
.pzs-pole-r input[type=text]{height:34px;padding:0 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;background:var(--surface);color:var(--text);max-width:420px}
.pzs-h3{margin:18px 0 4px !important}
.pzs-loga{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:8px 0 6px}
.pzs-logo,.pzs-logo-f{border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.pzs-logo-n{font-size:12.5px}
.pzs-logo-v{height:80px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border);overflow:hidden}
.pzs-logo-v.tmave{background:#072E5E}
.pzs-logo-v img{max-width:92%;max-height:70px;object-fit:contain}
.pzs-logo-f .pzs-logo-v img{max-height:44px}
.pzs-logo-v span{font-size:12px;color:#9AA5B1}
.pzs-logo-a{display:flex;gap:6px;flex-wrap:wrap}
.pzs-loga-firem{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:8px}
.pzs-logo-f .pzs-logo-v{height:56px}
.pzs-logo-pridat{align-items:center;justify-content:center;border-style:dashed;cursor:pointer;font-size:13px;color:#0C458B;font-weight:600;min-height:110px}
.pzs-tab{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.pzs-tab th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--text2);padding:8px 10px;border-bottom:2px solid var(--border)}
.pzs-tab td{padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.pzs-tab th:nth-child(1){width:22%}.pzs-tab th:nth-child(2){width:20%}.pzs-tab th:nth-child(3){width:16%}
.pzs-tab .r{text-align:right}
.pzs-tab td.r .btn{margin-left:4px}
/* původní sestava (kopie obrazovek) — sbalená pod studiem */
.pzs-stare{margin:4px 0 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:0 14px}
.pzs-stare>summary{cursor:pointer;padding:12px 0;font-weight:600;font-size:13px;color:var(--text2)}
.pzs-stare[open]>summary{border-bottom:1px solid var(--border);margin-bottom:12px}
.pzs-stare-hl{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.pzs-stare-hl p{flex:1 1 100%;margin:0;font-size:12.5px;color:var(--text2)}
@media (max-width:1100px){.pzs-snimky,.pzs-dva{grid-template-columns:minmax(0,1fr)}.pzs-seznam-b{max-height:340px}}

.pzs-skup{padding:9px 12px 5px;font-size:10.5px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#EE7125;background:rgba(0,0,0,.02);border-bottom:1px solid var(--border)}

.pzs-pata-akce{display:flex;gap:6px}
.pzs-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pzs-chip{height:28px;padding:0 12px;border-radius:14px;border:1px solid var(--border);background:var(--surface);font:600 12.5px var(--font-sans);color:var(--text2);cursor:pointer}
.pzs-chip.on{background:#0C458B;border-color:#0C458B;color:#fff}
.pzs-pole-r select{height:34px;min-width:280px;font-size:13px}
.pzs-zpet{margin-left:auto}
.pzs-zpet-btn{margin-left:14px;vertical-align:middle;font-size:12px}
/* Souhrnný přehled: lišta pořadí bloku (= pořadí snímků prezentace) a graf CF */
.ps-blok{margin-bottom:4px}
.ps-poradi{display:flex;align-items:center;gap:6px;margin:10px 20px 6px;padding:5px 10px;border-radius:8px;background:rgba(12,69,139,.05);font-size:12.5px;color:var(--text)}
.ps-poradi span{flex:1}.ps-poradi b{color:#EE7125;margin-right:4px}
.ps-poradi .btn{height:26px;padding:0 10px}
.ps-cf-graf{padding:4px 20px 10px}.ps-cf-graf svg{width:100%;height:auto;display:block}
.pu-lista .pu-sp{flex:1}
/* Prezentační mód stránky (js/prezentace-stranky.js) */
.pst{position:fixed;inset:0;z-index:9000;background:#0A1628;display:flex;flex-direction:column}
.pst-plocha{flex:1;overflow:hidden;display:flex;justify-content:center;align-items:flex-start;padding:18px 30px 0;cursor:pointer}
.pst-karta{flex:none;transform-origin:top center;background:var(--surface,#fff);border-radius:14px;padding:18px 20px;box-shadow:0 10px 40px rgba(0,0,0,.45);box-sizing:border-box}
.pst-karta .panel,.pst-karta .db2-panel{margin:0;box-shadow:none}
.pst-lista{display:flex;align-items:center;gap:8px;padding:8px 16px;color:#B9C8DE;font-size:13px}
.pst-lista button{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:5px 12px;cursor:pointer;font:inherit}
.pst-lista b{color:#fff}.pst-sp{flex:1;text-align:right;opacity:.8}
.pst-prog{height:3px;background:rgba(255,255,255,.08)}.pst-prog i{display:block;height:100%;background:#EE7125;width:0}.pu-lista .btn{height:32px;white-space:nowrap}

/* Firmy jen pro jeden snímek (studio porady) */
.pzs-firmy-sn{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:rgba(12,69,139,.03)}
.pzs-firmy-sn-l{font-size:12.5px;font-weight:700;color:var(--text);margin-right:4px;white-space:nowrap}
.pzs-fa-sk{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%}
.pzs-fa-skn{font-size:11.5px;font-weight:700;color:var(--text2);min-width:92px;text-transform:uppercase;letter-spacing:.03em}
.pzs-firmy-sn .pzs-oddel{height:22px;align-self:center}
.pzs-chip.zakl{background:rgba(12,69,139,.14);border-color:rgba(12,69,139,.35);color:#0C458B}
.pzs-vl{color:#B45309;font-weight:600}
.pzs-vl-tecka{display:inline-block;width:8px;height:8px;border-radius:50%;background:#EE7125;margin-right:6px;vertical-align:1px}
/* Volby jednoho snímku, šablony nastavení, fotka titulu (studio porady) */
.pzs-sn-volby{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:rgba(12,69,139,.03)}
.pzs-sn-volby label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--text)}
.pzs-sn-volby select{height:30px;font-size:12.5px}
.pzs-pole-r select+select{margin-left:6px}
.pzs-sablony{display:flex;flex-direction:column;gap:6px;margin:6px 0 18px;max-width:760px}
.pzs-sablona{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}
.pzs-sablona b{flex:1;font-size:13px}.pzs-sablona span{font-size:12px;color:var(--text)}
.pzs-sablona.on{border-color:#0C458B;background:rgba(12,69,139,.05)}
.pzs-sablony>.btn{align-self:flex-start}
/* Vlastní snímek a komentář na snímku (studio porady) */
.pzs-vs{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:rgba(238,113,37,.04)}
.pzs-vs-hl{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;font-size:13px}
.pzs-vs label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--text)}
.pzs-vs input,.pzs-vs textarea,.pzs-vs select{font-size:13px}
.pzs-vs-text{grid-column:1/-1}
.pzs-vs-obr{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;font-weight:600}
.pzs-vs-obr img{height:48px;max-width:120px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}
.pzs-kom{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:rgba(12,69,139,.03)}
.pzs-kom textarea{flex:1;min-width:260px;font-size:13px}
.pzs-kom select{height:30px;font-size:12.5px}
.pzs-kom-barva{width:22px;height:22px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--border);cursor:pointer}
.pzs-kom-barva.on{box-shadow:0 0 0 2px #111A26}
.pzs-foto-nahled{height:34px;width:60px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}
.pzs-ok{color:#1E7A4C}
.pzs-sabl-hlaska{display:inline-block;margin-left:8px;padding:3px 10px;border-radius:12px;background:#E3F2EA;border:1px solid #1E7A4C;color:#1E7A4C;font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;white-space:nowrap;animation:pzsHlaska .4s ease}
.pzs-sabl-hlaska.err{background:#FBE7E5;border-color:#C0392B;color:#C0392B}
.pzs-pole .pzs-sabl-hlaska{margin:4px 0 0}
@keyframes pzsHlaska{from{transform:scale(.9);opacity:0}to{transform:none;opacity:1}}
/* Zelené potvrzení uložení (js/ulozeno-potvrzeni.js) — v celé aplikaci */
.ulp{position:fixed;right:18px;bottom:18px;z-index:10000;display:flex;flex-direction:column;gap:2px;padding:10px 16px;border-radius:12px;background:#1E7A4C;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.22);font:600 13px var(--font-sans);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .25s,transform .25s}
.ulp.on{opacity:1;transform:none}
.ulp b{font-size:14px}.ulp span{font-weight:500;font-size:12px;opacity:.92}
.ulp.err{background:#C0392B}
.pzs-cc-firma.spojene{background:#EAF2FB;border-color:#9DB9DD;grid-column:span 2}
.pzs-cc-firma.spojene .pzs-cc-hl b{color:#0C458B}
.pzs-cc i{font-style:normal;font-size:11px;color:#0C458B;margin-left:4px}
.pzs-spojit{height:36px;padding:0 14px;border-radius:18px;border:1px solid var(--border);background:var(--surface);font:700 12.5px var(--font-sans);color:var(--text);cursor:pointer;white-space:nowrap}
.pzs-spojit.on{background:#0C458B;border-color:#0C458B;color:#fff}
.pzs-ul{margin-left:6px;font-weight:600;white-space:nowrap}.pzs-ul.ok{color:#1E7A4C}.pzs-ul.warn{color:#B45309}.pzs-ul.err{color:#C0392B}
.pzs-zalozky button.pzs-blik{animation:pzsBlik 1s ease-in-out 3;box-shadow:0 0 0 2px #EE7125 inset}
@keyframes pzsBlik{50%{background:#FDEFE6}}

/* ══ CELÁ OBRAZOVKA (js/cela-obrazovka.js, 25. 9. 2026) ══
 * Tlačítko v horní liště; v režimu se skryje levé menu a stránka se roztáhne
 * přes celou šířku bez okrajů plovoucí karty. Horní lišta s filtry zůstává. */
.tb-cela{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;flex:none;
  border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.85);font-size:16px;cursor:pointer}
.tb-cela:hover{background:rgba(255,255,255,.18);color:#fff}
.tb-cela.aktivni{background:#fff;color:#1F4E8C}
html.cela-stranka{--inset:0px}
html.cela-stranka body{padding:0 !important}
html.cela-stranka .shell{max-width:none !important;border-radius:0 !important;border:0 !important;box-shadow:none !important;min-height:100vh}
html.cela-stranka .sidebar{display:none !important}
html.cela-stranka .content{padding:18px 22px}
/* Klíčové ukazatele (dashboard): dlouhá poznámka na vlastním zalamovaném řádku. */
.db2-tab tr.db2-ukaz-pozn td{white-space:normal;padding-top:0;border-top:0;line-height:1.35;overflow-wrap:anywhere}
/* HTML export / tisk stránky: ovládací tlačítka a zdvojený nadpis stránky pryč (hlavička reportu má titul). */
.rep-obsah .db2-btn,.rep-obsah .section > .section-head h1{display:none!important}
/* Komentář v náhledu snímku ve studiu jde přetáhnout myší (porada-studio.js). */
.pzs-nahled-ram .pz-komentar{cursor:move;touch-action:none;outline:2px dashed transparent;outline-offset:3px}
.pzs-nahled-ram .pz-komentar:hover,.pzs-nahled-ram .pz-komentar.tah{outline-color:rgba(12,69,139,.55)}
.pzs-nahled-ram .pz-komentar.tah{opacity:.9;box-shadow:0 12px 30px rgba(7,46,94,.35)}

/* ── Cokoliv z aplikace do porady (js/porada-zachyt.js, PH 26. 9. 2026) ── */
.tb-doporady span{font-weight:700}
.tb-doporady[hidden]{display:none}
.pzz-zvyr{outline:3px solid #EE7125 !important;outline-offset:4px;border-radius:12px}
.pzz{position:fixed;inset:0;z-index:9100;background:rgba(10,22,40,.38);display:flex;align-items:flex-start;justify-content:flex-end;padding:72px 24px 24px}
.pzz-okno{width:min(560px,100%);max-height:calc(100vh - 96px);display:flex;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 50px rgba(7,46,94,.3);overflow:hidden}
.pzz-hl{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid var(--border)}
.pzz-hl b{display:block;font-size:15px}
.pzz-hl span{display:block;font-size:12px;color:var(--text2);margin-top:2px}
.pzz-x{border:none;background:none;font-size:16px;cursor:pointer;color:var(--text2);padding:2px 6px;border-radius:6px}
.pzz-x:hover{background:var(--surface2);color:var(--text)}
.pzz-lista{display:flex;align-items:center;gap:6px;padding:8px 16px;font-size:11.5px;color:var(--text2)}
.pzz-lista span{margin-left:auto}
.pzz-seznam{overflow:auto;padding:4px 10px 10px;flex:1;min-height:80px}
.pzz-pol{display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:9px;cursor:pointer}
.pzz-pol:hover{background:var(--surface2)}
.pzz-c{flex:none;width:22px;height:22px;border-radius:50%;background:#EAF1FA;color:#0C458B;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.pzz-n{display:flex;flex-direction:column;min-width:0}
.pzz-n b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pzz-n i{font-style:normal;font-size:11.5px;color:var(--text2)}
.pzz-pata{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface2)}
.pzz-pata label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;font-weight:600;color:var(--text2)}
.pzz-pata select{font-size:13px}
.pzz-sp{flex:1}
.pzz-hlaska{padding:0 16px;font-size:12.5px}
.pzz-hlaska:not(:empty){padding:10px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pzz-hlaska .ok{color:#1E7A4C;font-weight:700}
.pzz-hlaska .err{color:#C0392B;font-weight:700}
.pzz-prazdno{padding:18px 16px;color:var(--text2);font-size:13px}
.pzz-stranky{width:min(620px,100%)}
.pzz-hledat{margin:10px 16px 4px;padding:8px 10px;font-size:13px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}
.pzz-sl{display:flex;flex-wrap:wrap;gap:4px 6px;align-content:flex-start}
.pzz-skup{flex-basis:100%;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text2);margin:10px 4px 2px}
.pzz-str{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:5px 10px;font-size:12.5px;cursor:pointer}
.pzz-str:hover{border-color:#0C458B;background:#EAF1FA;color:#0C458B}
.pzs-vs-dva{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
.pzs-vs-dva input{margin-bottom:4px}
.pzs-vs-hl .pzs-info{flex:1;margin:0 10px;font-weight:400}
@media (max-width:700px){.pzz{padding:60px 8px 8px}.pzs-vs-dva{grid-template-columns:1fr}}
.pzz-cast{padding-left:26px}
.pzz-cast .pzz-c{background:transparent;color:var(--text2)}

/* ── Platby mimo výsledovku — vizuální přehled (PH 26. 9. 2026) ── */
.mvz-panel{margin-bottom:14px}
.mvz-panel svg{max-width:1180px}
.mvz-klik{cursor:pointer}
.mvz-klik:hover rect,.mvz-klik:hover circle{filter:brightness(1.08)}
g.mvz-klik:hover text{text-decoration:underline}
.zpr-karta.mvz-klik:hover{box-shadow:0 4px 14px rgba(31,78,140,.14)}
.mvz-mrizka{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:14px}
.mvz-mrizka>.db2-panel{margin-bottom:14px}
.mvz-leg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;margin:0 0 6px}
.mvz-leg span{display:inline-flex;align-items:center;gap:6px}
.mvz-leg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.mvz-tab tr.mvz-obl{cursor:pointer;background:color-mix(in srgb,var(--surface2) 70%,transparent)}
.mvz-tab tr.mvz-obl:hover{background:var(--surface2)}
.mvz-tab tr.mvz-obl td{border-top:1px solid var(--border)}
.mvz-tab tr.mvz-ucet{cursor:pointer}
.mvz-tab tr.mvz-ucet td:first-child{padding-left:34px}
.mvz-tab tr.mvz-ucet:hover{background:#EAF1FA}
.mvz-sip{display:inline-block;width:14px;color:var(--text2);font-size:11px}
.mvz-tecka{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;vertical-align:-1px}
.mvz-poc{color:var(--text2);font-size:11.5px;font-weight:500}
.mvz-tab .mvz-kat{color:var(--text2);font-size:11.5px}
.mvz-tab .mvz-kl{color:#1E7A4C;font-weight:600}
.mvz-nic{color:var(--text2)}
.mvz-f{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 6px;margin:1px 3px 1px 0;border-radius:9px;background:#EAF1FA;color:#1F4E8C}
.mvz-pruh{display:inline-flex;align-items:center;gap:6px;min-width:120px;justify-content:flex-end}
.mvz-pruh i{display:inline-block;height:8px;border-radius:4px;max-width:70px;min-width:1px;flex:none}
.mvz-pruh b{font-weight:600;min-width:44px;text-align:right}
.mvz-det{margin-top:8px}
.mvz-det summary{cursor:pointer;font-size:12.5px;font-weight:600;color:#1F4E8C;padding:4px 0}
.mvz-presun{display:flex;align-items:baseline;gap:12px;font-size:12.5px;margin:6px 0 4px}
.mvz-presun b{font-size:19px;font-weight:800;font-variant-numeric:tabular-nums}
@media (max-width:1100px){.mvz-mrizka{grid-template-columns:1fr}.mvz-karty2{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.mvz-karty2{grid-template-columns:repeat(2,1fr)}}

/* ── Vlastní stránky (js/vlastni-stranky.js, PH 26. 9. 2026) ── */
.vst-mrizka{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:start}
.vst-blok{grid-column:span 6;margin:0}
.vst-blok.vst-w2{grid-column:span 3}
.vst-blok.vst-w3{grid-column:span 2}
.vst-blok svg{max-width:1180px}
.vst-karty{margin:0}
.vst-text{font-size:12.5px;line-height:1.55;color:var(--text)}
.vst-text h4{margin:8px 0 4px;font-size:13.5px;color:#1F4E8C}
.vst-text p{margin:0 0 6px}
.vst-text ul{margin:0 0 6px;padding-left:20px}
.vst-odkazy{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.vst-odkaz{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer}
.vst-odkaz:hover{border-color:#1F4E8C;background:#EAF1FA;color:#1F4E8C}
.vst-odkaz span{color:#1F4E8C}
.vst-zdroj{font-size:11px;color:var(--text2);margin:-4px 0 8px}
.vst-obr{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--border);margin-bottom:6px}
.vst-admin{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:14px;align-items:start}
.vst-pol{position:relative;display:flex;flex-direction:column;gap:2px;padding:9px 60px 9px 10px;border-radius:9px;cursor:pointer;border:1px solid transparent}
.vst-pol:hover{background:var(--surface2)}
.vst-pol.on{background:#EAF1FA;border-color:#C9D8EE}
.vst-pol b{font-size:13px}
.vst-pol span{font-size:11.5px;color:var(--text2)}
.vst-pol-a{position:absolute;right:6px;top:8px;display:flex;gap:2px}
.vst-pol-a button{border:1px solid var(--border);background:var(--surface);border-radius:6px;font-size:10px;padding:2px 5px;cursor:pointer}
.vst-ul{margin-top:8px;font-size:11.5px}
.vst-fs{border:0;padding:0;margin:0;min-width:0}
.vst-ed-pole{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:6px 0}
.vst-ed-pole label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;font-weight:600;color:var(--text2)}
.vst-ed-pole input,.vst-ed-pole select,.vst-ed-pole textarea{font-size:12.5px}
.vst-ed-str{grid-template-columns:repeat(4,minmax(0,1fr))}
.vst-sir,.vst-f{grid-column:1/-1}
.vst-f{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.vst-f>span{font-size:11.5px;font-weight:600;color:var(--text2);margin-right:4px}
.vst-ch{flex-direction:row !important;align-items:center;gap:6px !important}
.vst-bloky{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.vst-ed-blok{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:color-mix(in srgb,var(--surface2) 50%,transparent)}
.vst-ed-hl{display:flex;align-items:center;gap:6px;font-size:12.5px}
.vst-inl{font-size:11.5px;color:var(--text2);display:inline-flex;align-items:center;gap:4px}
.vst-odk-vyber{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;max-height:220px;overflow:auto}
.vst-pridat{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:8px;border-top:1px solid var(--border);font-size:12px;font-weight:600}
@media (max-width:1100px){.vst-blok.vst-w2,.vst-blok.vst-w3{grid-column:span 6}.vst-admin{grid-template-columns:1fr}.vst-ed-str{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── Šablony oborů: katalog + náhled (26. 9. 2026) ─────────────────────────
   Karty oborů ve stylu karet demo scénářů, vybraná šablona se rozbalí do
   náhledu z db2-panelů (vzor Měsíční zpráva CFO). Vodopád je ilustrační SVG. */
.sabk-uvod{margin:0 0 12px}
.sabk-katalog{margin-bottom:12px}
.sabk-filtr{display:flex;flex-wrap:wrap;gap:5px}
.sabk-f{border:1px solid var(--border);background:var(--surface);color:var(--text2);border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600;cursor:pointer}
.sabk-f:hover{border-color:#1F4E8C;color:#1F4E8C}
.sabk-f.on{background:#1F4E8C;border-color:#1F4E8C;color:#fff}
.sabk-karty{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:4px 0 12px}
.sabk-karta{all:unset;box-sizing:border-box;border:1px solid var(--border);border-radius:9px;padding:9px 11px;background:var(--surface,#fff);cursor:pointer;display:flex;flex-direction:column;gap:5px;min-width:0;transition:border-color .12s,box-shadow .12s}
.sabk-karta:hover{border-color:#1F4E8C;box-shadow:0 2px 10px rgba(31,78,140,.12)}
.sabk-karta:focus-visible{outline:2px solid #1F4E8C;outline-offset:1px}
.sabk-karta.on{border-color:#1F4E8C;box-shadow:inset 0 0 0 2px #1F4E8C;background:rgba(31,78,140,.05)}
.sabk-karta.sabk-vych{border-top:3px solid #1E8A4C}
.sabk-karta.sabk-vlastni{border-top:3px solid var(--green)}
.sabk-k-h{display:flex;align-items:center;gap:7px;font-weight:750;font-size:12.5px;color:var(--text);flex-wrap:wrap}
.sabk-ikona{font-size:18px;line-height:1}
.sabk-nazev{min-width:0;line-height:1.25}
.sabk-k-h .zpr-chip{font-size:10px;padding:1px 7px;margin-left:auto}
.sabk-k-popis{font-size:11.5px;color:var(--text2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sabk-k-chipy{display:flex;flex-wrap:wrap;gap:4px}
.sabk-k-chipy span{font-size:10.5px;padding:1px 7px;border-radius:999px;background:var(--bg2,rgba(31,78,140,.08));color:var(--text2);font-weight:600}
.sabk-k-chipy .sabk-ch-demo{background:rgba(31,78,140,.12);color:#1F4E8C}
.sabk-k-chipy .sabk-ch-ted{background:color-mix(in srgb,#1E8A4C 14%,transparent);color:#1E8A4C}
.sabk-detail{margin-bottom:12px;scroll-margin-top:70px}
.sabk-d-hlava{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}
.sabk-d-ikona{font-size:32px;line-height:1;padding-top:2px}
.sabk-d-txt{min-width:0;flex:1}
.sabk-d-txt h2{margin:0 0 3px;font-size:17px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sabk-d-txt p{margin:0;font-size:12.5px;color:var(--text2);line-height:1.5}
.sabk-d-akce{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 10px}
.sabk-poznamky{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.sabk-poznamky .met-note{margin:0}
.sabk-mrizka{margin-bottom:12px;align-items:start}
.sabk-sloupec{display:flex;flex-direction:column;gap:12px;min-width:0}
.sabk-detail > .db2-panel{margin-bottom:12px}
.sabk-dop ul,.sabk-detail .met-note ul{margin:4px 0 0;padding-left:18px}
.sabk-dop{margin:0 0 10px}
.sabk-strom td{padding-top:4px;padding-bottom:4px}
.sabk-strom .sabk-kp td{background:color-mix(in srgb,#1F4E8C 5%,transparent)}
.sabk-strom .sabk-kp td:first-child{padding-left:8px}
.sabk-strom .sabk-katr td:first-child{padding-left:22px}
.sabk-kat{display:inline-flex;align-items:center;gap:7px}
.sabk-kat i{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}
.sabk-strom .zpr-chip{font-size:10.5px;padding:1px 7px}
.sabk-vodopad{max-width:760px;margin:0 auto 6px}
.sabk-vv{font-size:10.5px;font-weight:700;fill:var(--text,#1A202C);font-variant-numeric:tabular-nums}
.sabk-vl{font-size:10px;fill:var(--muted,#64748b)}
.sabk-vl-b{font-weight:700;fill:var(--text,#1A202C)}
.sabk-leg{display:inline-block;width:10px;height:10px;border-radius:2px}
.sabk-ch-vykaz{background:rgba(31,78,140,.12);color:#1F4E8C}
.sabk-ch-evid{background:color-mix(in srgb,#64748B 16%,transparent);color:#475569}
.sabk-pasmo{white-space:nowrap}
.db2-tab td.sabk-jine,b.sabk-jine{font-weight:800;color:#1F4E8C}
.sabk-map td.mono{white-space:nowrap}
.sabk-porid{margin-bottom:12px}
.sabk-porid-txt{margin:0 0 8px;font-size:12.5px;color:var(--text2)}
@media (max-width:1100px){.sabk-poznamky{grid-template-columns:1fr}.sabk-mrizka{grid-template-columns:1fr}}
/* Demo režim: štítek šablony oboru u scénáře a volba struktury výkazu */
.dmo-karta .dmo-sab{font-size:10.5px;color:#1F4E8C;font-weight:600}

/* ── Názvy a texty (js/aplikace-texty.js, PH 27. 9. 2026) ──
   ✎ v horní liště, obrys textu v režimu úprav, okénko pro nový text a tabulky v Administraci. */
.tb-texty span{font-weight:700}
.tb-texty[hidden]{display:none}
html.atx-uprava .atx-cil{outline:2px dashed #EE7125 !important;outline-offset:2px;cursor:text !important}
.atx-lista{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:10050;display:flex;gap:12px;align-items:center;
  flex-wrap:wrap;max-width:calc(100vw - 32px);padding:9px 14px;border-radius:10px;background:#111F4D;color:#fff;font-size:12.5px;
  box-shadow:0 8px 28px rgba(7,20,60,.35)}
.atx-lista .atx-lista-msg{color:#FFD9BF}
.atx-lista .btn{flex:none}
.atx-pop{position:fixed;z-index:10060;width:340px;max-width:calc(100vw - 32px);padding:12px 14px;border-radius:10px;
  background:var(--surface,#fff);color:var(--text,#1b2433);border:1px solid var(--border,#dfe5ee);box-shadow:0 12px 32px rgba(7,20,60,.22);
  font-size:12.5px;text-align:left;font-weight:400;text-transform:none;letter-spacing:normal}
.atx-pop-hl{font-weight:750;margin-bottom:4px}
.atx-pop-puv{color:var(--text2,#4b5567);margin-bottom:8px;overflow-wrap:anywhere}
.atx-pop label{display:block;margin-top:8px}
.atx-pop input[type="text"],.atx-tab input[type="text"],.atx-tab select{width:100%;box-sizing:border-box;padding:5px 8px;font-size:12.5px;
  border:1px solid var(--border,#dfe5ee);border-radius:6px;background:var(--surface,#fff);color:var(--text,#1b2433)}
.atx-pop label input[type="text"]{margin-top:4px}
.atx-pop-akce{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.atx-pop-msg{margin-top:6px;font-size:11.5px}
.atx-pop-msg.warn{color:#B45309}
.atx-hl{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.atx-tab td{vertical-align:middle}
.atx-tab tr.atx-blok td{background:var(--surface2,#f3f6fa);font-weight:750;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.atx-tab tr.atx-zmena td:first-child{box-shadow:inset 3px 0 0 #EE7125}
.atx-stav{font-size:11.5px;padding:2px 9px;border-radius:10px;background:#FEF3C7;color:#8A5A00;font-weight:600}
.atx-stav.ok{background:#DCFCE7;color:#166534}
.btn.atx-potvrd{background:#C43D3D;color:#fff;border-color:#C43D3D}

/* Čísla nedodělků v levém menu (js/nedodelky.js, 27. 9. 2026) — nahrazují
   staré jednotlivé odznaky; červeně chyba, oranžově jen pozor. */
.sb-nav.ned-znacky #mapBadge,.sb-nav.ned-znacky #mapGroupBadge,.sb-nav.ned-znacky #cfPtBadge{display:none!important}
.sb-badge.sb-badge-pozor{background:var(--yellow)}
.sb-item .sb-badge-ned + .sb-tree-toggle,.sb-subitem-parent .sb-badge-ned + .sb-tree-toggle{margin-left:6px}
/* Panel „Na této stránce čeká k vyřešení" (js/nedodelky.js) — co nesedí, jak to
   vyřešit, dotčené účty a návrh, který umí provést program. */
.ned-stranka{margin:0 0 16px;border:1px solid var(--red);border-left-width:4px;background:var(--red-light);border-radius:var(--radius-sm,8px);padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.ned-stranka.ned-st-pozor{border-color:var(--orange-border);background:var(--orange-light)}
.ned-st-hl{display:flex;align-items:center;gap:8px;font-size:13px}
.ned-st-hl .ned-ico{font-weight:800;color:var(--red)}
.ned-st-pozor .ned-st-hl .ned-ico{color:var(--orange-dk)}
.ned-st-n{margin-left:auto;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--surface);color:var(--text2)}
.ned-st-pol{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.ned-st-pol.ned-chyba{border-left:3px solid var(--red)}
.ned-st-pol.ned-pozor{border-left:3px solid var(--orange)}
.ned-st-t{font-size:12.5px}
.ned-st-det{font-size:12px;color:var(--text2);overflow-wrap:anywhere}
.ned-st-jak{margin:0;font-size:12.5px;line-height:1.5}
.ned-st-seznam{font-size:12px;color:var(--text2);overflow-x:auto}
.ned-st-tab{border-collapse:collapse;width:100%;font-size:12px}
.ned-st-tab th{text-align:left;font-weight:700;color:var(--text2);border-bottom:1px solid var(--border);padding:4px 8px}
.ned-st-tab td{padding:4px 8px;border-bottom:1px solid var(--border);color:var(--text)}
.ned-st-vic{font-size:11.5px;color:var(--text2);margin-top:4px}
.ned-st-akce{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ned-st-zprava{font-size:12px;color:var(--text2)}

/* ── PRODUKTOVÝ KATALOG (js/katalog.js, 27. 9. 2026) ─────────────────── */
.kat{display:flex;flex-direction:column;gap:14px;min-width:0}
.kat .db2-panel{min-width:0}
.kat-radek{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:10px 0 4px}
.kat-radek .btn{white-space:nowrap}
.kat-pole{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;color:var(--text2);min-width:200px}
.kat-pole input,.kat-pole select,.kat-pole textarea{font:inherit;font-size:12.5px;font-weight:400;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:6px 9px}
.kat-pole textarea{resize:vertical;min-height:40px}
.kat-uzke{min-width:130px;max-width:160px}
.kat-siroke{flex:1;min-width:260px;max-width:520px}
.kat-cela{grid-column:1 / -1}
.kat-prubeh{margin:10px 0 4px;display:flex;flex-direction:column;gap:6px}
.kat-bar{height:8px;border-radius:999px;background:var(--surface2);overflow:hidden;border:1px solid var(--border)}
.kat-bar i{display:block;height:100%;background:linear-gradient(90deg,#2A4E8F,#EE7125);transition:width .3s ease}
.kat-prubeh-t{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--text);flex-wrap:wrap}
.kat-prubeh-t span{color:var(--text2)}
.kat-stav{font-size:12.5px;color:var(--text);margin-top:8px}
.kat-sila{font-size:11.5px;color:var(--text2);margin:2px 0 8px}
.kat-sila.warn{color:var(--orange-dk)}
.kat-sila.ok{color:var(--green)}
.kat-export-stav{font-size:12px;color:var(--text2);min-height:16px}
.kat-msg{font-size:12.5px;padding:0 2px;min-height:0}
.kat-msg:empty{display:none}
.kat-msg.ok{color:var(--green)}
.kat-msg.warn{color:var(--orange-dk)}
.kat-msg.err{color:var(--red)}
.kat-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.kat-chip.ok{background:var(--green-light);color:var(--green);border-color:transparent}
.kat-chip.warn{background:var(--orange-light);color:var(--orange-dk);border-color:var(--orange-border)}
.kat-chip.err{background:var(--red-light);color:var(--red);border-color:transparent}
.kat-chip.info{background:var(--blue-light);color:var(--blue);border-color:transparent}
button.kat-chip{cursor:pointer;font-family:inherit}
.kat-bez{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.kat-tab-obal{overflow-x:auto;min-width:0}
.kat-tab{width:100%}
.kat-tab td{vertical-align:top}
.kat-tab .kat-txt{width:100%;min-width:260px;font:inherit;font-size:12.5px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,8px);padding:5px 8px;resize:vertical}
.kat-cesta{color:var(--text2);font-size:11.5px;white-space:nowrap}
.kat-klic{font-family:var(--font-mono);font-size:10.5px;color:var(--text3)}
.kat-nyni{font-size:11.5px;color:var(--text2);margin-top:3px;line-height:1.45}
.kat-mrizka{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:10px 0}
.kat-mrizka .kat-pole{min-width:0}
.kat-balicky{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:10px 0}
.kat-bal{border:1px solid var(--border);border-radius:var(--radius,10px);padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.kat-bal.top{border-color:var(--orange-border);box-shadow:inset 3px 0 0 var(--orange)}
.kat-bal .kat-pole{min-width:0}
@media (max-width:900px){.kat-balicky,.kat-mrizka{grid-template-columns:1fr}.kat-pole{min-width:0;flex:1}}

/* Administrace → Protokol vývoje (js/protokol-vyvoje.js) — den jako rozklikávací řádek. */
.pv-den{padding:0}
.pv-den-hlava{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:10px 14px;border:0;background:none;
  font:inherit;font-size:12.5px;color:var(--text);text-align:left;cursor:pointer}
.pv-den-hlava:hover{background:var(--surface2)}
.pv-sipka{width:12px;color:var(--text2)}
.pv-oblasti{margin-left:auto}
.pv-seznam{margin:0;padding:4px 18px 12px 38px;font-size:12.5px;line-height:1.5}
.pv-seznam li{margin:0 0 10px}
.pv-popis{color:var(--text2);margin-top:2px}
@media (max-width:640px){.pv-oblasti{margin-left:0;width:100%}}
.pv-souhrn{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.pv-souhrn>div{background:var(--surface2);border-radius:8px;padding:8px 10px}
.pv-souhrn span{display:block;font-size:11px;color:var(--text2)}
.pv-souhrn strong{font-size:14px}
.pv-kde{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}
