/*
 * Financial Management — Control Panel provozovatele. © 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.
 */
/* JEN DOPLŇKY PANELU. Vzhled (tokeny vč. tmavého motivu, písma, levé menu, horní lišta, db2-panel,
   db2-tab, dash-card, btn, met-note, zpr-chip) je z aplikace: balíček (web/nastroje/balicek_controlpanel.py)
   kopíruje App/css/{fonts,tokens,base,components}.css a App/fonts do assets/css a assets/fonts —
   změna stylu aplikace se tak do panelu dostane při dalším sestavení. Bez vložených stylů (CSP). */

.cp-skryte{display:none!important}
.cp-mono{font-family:var(--font-mono);font-size:12px;overflow-wrap:anywhere}
.cp-pozn{color:var(--text2);font-size:12.5px}

/* horní lišta: pilulky vpravo (motiv, aplikace, odhlášení) */
.topbar .filter-bar{margin-left:auto}
.topbar .filter-pill{text-decoration:none}
.cp-verze{font-size:10px;color:var(--text3);text-align:center;margin-top:4px}

/* tmavý motiv: tokeny aplikace (tokens.css) + podklady karet a písmo menu, které aplikace dobarvuje až skriptem vzhledu */
[data-theme="dark"] .db2-panel,[data-theme="dark"] .dash-card{background:var(--surface);border-color:var(--border)}
[data-theme="dark"] .sb-item,[data-theme="dark"] .sb-subnav a,[data-theme="dark"] .sb-logo-txt .ls{color:#C9D7EE}
[data-theme="dark"] .sb-item svg{color:#9DB5DA}
/* skupiny menu a jméno správce: čitelný kontrast (≥ 4,5 : 1) ve světlém i tmavém motivu */
.sb-block,.sb-user-role,.sb-paticka{color:#5B6472}
[data-theme="dark"] .sb-block,[data-theme="dark"] .sb-user-role,[data-theme="dark"] .sb-paticka{color:#A3B0C4}
[data-theme="dark"] .sb-item.active,[data-theme="dark"] .sb-subnav a.active{background:var(--blue-light);color:#fff}
[data-theme="dark"] .sb-item:hover,[data-theme="dark"] .sb-subnav a:hover{background:var(--surface2);color:#fff}
[data-theme="dark"] .ln-badge{background:#24466F}
[data-theme="dark"] a{color:#93B4E6}
[data-theme="dark"] .btn.primary{background:#2B5190}

/* panely a mřížky */
.cp-mrizka{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:14px;margin-bottom:14px}
.cp-mrizka>.db2-panel{margin-bottom:0}
.db2-panel{margin-bottom:14px}
.cp-posuv{max-width:100%;overflow-x:auto}
.db2-tab tr.cp-klik{cursor:pointer}
.db2-tab tr.cp-klik:hover td{background:var(--blue-light)}
.db2-tab td{vertical-align:top}
.db2-tab td.cp-zalom{white-space:normal;overflow-wrap:anywhere}
.db2-tab td.cp-cas{white-space:nowrap}
.dash-grid.cp-kpi{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}
.dash-card.cp-kpi-klik{cursor:pointer}
.dash-card.cp-kpi-klik:hover{border-color:var(--blue-3)}
.dash-card .val.zle{color:var(--red)}
.zpr-chip-info{background:var(--surface2);color:var(--text2)}
.cp-kv{display:grid;grid-template-columns:minmax(130px,max-content) 1fr;gap:3px 14px;margin:0 0 6px;font-size:12.5px}
.cp-kv dt{color:var(--text2)}
.cp-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}

/* formuláře */
.cp-form{display:grid;gap:10px;max-width:600px}
.cp-form-siroky{max-width:none;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr))}
.cp-pole{display:grid;gap:3px;min-width:0;font-size:12.5px}
.cp-pole>span{font-weight:600;color:var(--text)}
.cp-pole small{color:var(--text3)}
.cp-pole input,.cp-pole select,.cp-pole textarea,.cp-vstup{font:inherit;font-size:12.5px;padding:7px 9px;border:1px solid var(--border);
  border-radius:6px;background:var(--surface);color:var(--text);min-width:0;width:100%}
.cp-pole textarea{min-height:70px;resize:vertical}
.cp-pole input[type=checkbox],.cp-pole input[type=radio],.cp-zaskrt input,.cp-moduly input,.db2-tab input[type=checkbox]{width:auto;padding:0;flex:0 0 auto;margin:3px 0 0}
.cp-pole input:focus,.cp-pole select:focus,.cp-pole textarea:focus,.cp-vstup:focus{outline:2px solid color-mix(in srgb,var(--blue-3) 40%,transparent);border-color:var(--blue-3)}
.cp-zaskrt{display:flex;gap:7px;align-items:flex-start;font-weight:600;font-size:12.5px}
.cp-zaskrt input{margin-top:3px}
.cp-moduly{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:4px 12px;margin:4px 0}
.cp-moduly label{display:flex;gap:6px;align-items:flex-start;font-size:12.5px}
.cp-akce{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 2px;align-items:center}
.cp-radek{display:flex;gap:6px;min-width:0}
.cp-radek select{flex:1 1 auto;min-width:0}
input.cp-cislo{max-width:130px;text-align:right}
.cp-moduly label>span{min-width:0;overflow-wrap:anywhere}
.cp-mrizka-rozpis{margin-top:10px}
.cp-mrizka-rozpis h3,.db2-panel h3+.sec-grid{margin-top:4px}

/* tisk (Bezpečnost platformy a další stránky): bez menu, lišty a tlačítek */
@media print{
  .sidebar,.topbar,.cp-netisk,.cp-akce,.cp-menu-tlacitko{display:none!important}
  .shell,.app-main,.content{display:block!important;margin:0!important;padding:0!important}
  .db2-panel,.sec-card{break-inside:avoid}
}
.btn.cp-nebezpeci{background:var(--red-light);color:#B91C1C;border:.5px solid color-mix(in srgb,#B91C1C 35%,transparent)}
.btn.cp-nebezpeci:hover{background:#B91C1C;color:#fff}
.btn[disabled]{opacity:.45;cursor:not-allowed}
[data-theme="dark"] .btn.cp-nebezpeci{background:rgba(185,28,28,.22);color:#FCA5A5;border-color:rgba(252,165,165,.35)}
[data-theme="dark"] .btn.cp-nebezpeci:hover{background:#B91C1C;color:#fff}

/* hlášky a vložené potvrzení (žádná vyskakovací okna) */
.cp-hlaska{margin:8px 0;padding:8px 10px;border-radius:6px;overflow-wrap:anywhere;font-size:12.5px}
.cp-hlaska-chyba{background:var(--red-light);color:#991B1B}
.cp-hlaska-ok{background:var(--green-light);color:#166534}
.cp-hlaska-varovani{background:var(--yellow-light);color:#92400E}
.cp-hlaska-info{background:var(--blue-light);color:var(--blue)}
[data-theme="dark"] .cp-hlaska-chyba{color:#FCA5A5}
[data-theme="dark"] .cp-hlaska-ok{color:#86EFAC}
[data-theme="dark"] .cp-hlaska-varovani{color:#FCD34D}
[data-theme="dark"] .cp-hlaska-info{color:#93C5FD}
.cp-potvrzeni{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0;padding:8px 10px;border:1px solid color-mix(in srgb,#B91C1C 35%,transparent);
  border-radius:8px;background:color-mix(in srgb,var(--red-light) 60%,var(--surface))}
.cp-potvrzeni .cp-vstup{width:auto;min-width:150px;flex:0 1 220px}
.cp-potvrzeni span{flex:1 1 240px}
.cp-seznam{margin:6px 0;padding-left:18px}
.cp-tajemstvi{font-family:var(--font-mono);font-size:15px;letter-spacing:.08em;padding:8px 10px;background:var(--surface2);border-radius:6px;overflow-wrap:anywhere}
.cp-kody{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr));gap:6px;margin:8px 0 10px}
.cp-kody span{font-family:var(--font-mono);font-size:14px;letter-spacing:.06em;text-align:center;padding:7px 8px;border-radius:6px;
  background:var(--surface2);border:.5px solid var(--border)}
.cp-ukazka{font-family:var(--font-mono);font-size:12px;padding:8px 10px;background:var(--surface2);border-radius:6px;white-space:pre-wrap;overflow-wrap:anywhere}
.cp-prubeh{height:10px;border-radius:5px;background:var(--surface2);overflow:hidden;margin:8px 0 4px}
.cp-prubeh>div{height:100%;width:0;background:var(--blue-3);transition:width .2s}

/* přihlášení a průvodce — stejná karta jako shell aplikace */
.cp-samostatne{max-width:980px;margin:0 auto}
.cp-samostatne .topbar{border-radius:var(--radius) var(--radius) 0 0;position:relative}
.cp-samostatne-obsah{background:var(--surface2);border:.5px solid var(--border);border-top:0;border-radius:0 0 var(--radius) var(--radius);
  padding:20px 22px 26px;box-shadow:var(--shadow-lg)}
.cp-prihlaseni{max-width:440px;margin:6vh auto 0}
.cp-kroky{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0 0 12px;padding:0;counter-reset:krok}
.cp-kroky li{counter-increment:krok;flex:1 1 170px;min-width:0;padding:7px 10px;border-radius:8px;background:var(--surface);color:var(--text2);
  border:.5px solid var(--border);font-size:12.5px}
.cp-kroky li::before{content:counter(krok) '. ';font-weight:700}
.cp-kroky li.aktivni{background:var(--blue);color:#fff;border-color:var(--blue)}
.cp-kroky li.hotovo{background:var(--green-light);color:var(--green);border-color:var(--green-border)}
.cp-pata{margin-top:16px;color:var(--text3);text-align:center;font-size:11px}

/* úzká obrazovka: řádky tabulek pod sebe, žádný vodorovný posuvník stránky */
@media (max-width:760px){
  .sidebar{height:auto;position:relative;top:auto}
  .sb-nav{max-height:none}
  .cp-rozlozit thead{display:none}
  .cp-rozlozit,.cp-rozlozit tbody,.cp-rozlozit tr,.cp-rozlozit td{display:block;width:100%}
  .cp-rozlozit tr{border-bottom:1px solid var(--border);padding:4px 0}
  .cp-rozlozit td{border:0;padding:2px 8px;text-align:left!important;white-space:normal!important}
  .cp-rozlozit td[data-k]::before{content:attr(data-k) ': ';color:var(--text3);font-size:11px}
  .cp-kv{grid-template-columns:1fr}
  .cp-samostatne-obsah{padding:14px 12px 20px}
  .topbar{padding:10px 14px}
}
.cp-menu-tlacitko{display:none!important}
@media (max-width:760px){
  .cp-menu-zavrene .sb-nav,.cp-menu-zavrene .sb-bottom{display:none}
  .cp-menu-tlacitko{display:flex!important}
  .sb-logo{padding:10px}
}
.cp-totp{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.cp-totp-qr{flex:0 0 auto;text-align:center;background:#fff;padding:8px;border-radius:8px;border:1px solid var(--border)}.cp-totp-qr svg{display:block;width:220px;height:220px;max-width:100%}.cp-totp-text{flex:1 1 280px;min-width:0}

/* detail zákazníka po záložkách (kontrakt bod 10) — pilulky jako přepínač pohledů aplikace (.cf-tabs), zalomí se na úzké obrazovce */
.cp-zalozky{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.cp-zalozky a{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600;
  text-decoration:none;white-space:nowrap}
.cp-zalozky a:hover{border-color:var(--blue);color:var(--blue)}
.cp-zalozky a.on{background:var(--blue);border-color:var(--blue);color:#fff}
[data-theme="dark"] .cp-zalozky a{color:var(--text)}
[data-theme="dark"] .cp-zalozky a.on{background:#2B5190;border-color:#2B5190;color:#fff}
@media (max-width:760px){.cp-zalozky{gap:5px}.cp-zalozky a{flex:1 1 auto;text-align:center;padding:6px 10px;font-size:12px}}
.cp-semafor-hlava{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 8px}
.cp-delegace{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:8px;margin:6px 0}
.cp-delegace label{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);
  font-size:12.5px;min-width:0}
.cp-delegace input{margin-top:3px;flex:0 0 auto}
.cp-delegace small{display:block;color:var(--text2);font-weight:400;margin-top:2px}
.cp-delegace span{min-width:0;overflow-wrap:anywhere}
.cp-role{border:1px solid var(--border);border-radius:8px;background:var(--surface);margin:0 0 8px;padding:4px 10px 6px}
.cp-role>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:5px 0;font-size:12.5px}
.cp-role[open]>summary{border-bottom:1px solid var(--border2);margin-bottom:8px}
.cp-predani{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.cp-tajemstvi.cp-odkaz{flex:1 1 320px;min-width:0;font-size:12px;letter-spacing:0}
.cp-logo-nahled{display:block;max-width:min(300px,100%);max-height:100px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:4px;margin:2px 0 6px}
.cp-scenare{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:10px;margin:10px 0}
.cp-scenar{display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;
  background:var(--surface);min-width:0;font-size:12.5px}
.cp-scenar-hlava{display:flex;gap:10px;align-items:flex-start;min-width:0}
.cp-scenar-hlava>div{min-width:0;overflow-wrap:anywhere}
.cp-scenar-ikona{font-size:22px;line-height:1.1;flex:0 0 auto}
.cp-scenar .btn{align-self:flex-start;white-space:normal;text-align:left}
.db2-panel h3{overflow-wrap:anywhere}
label.cp-scenar{cursor:pointer}
label.cp-scenar.on{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue-3) 30%,transparent)}
.cp-scenar-hlava input{margin-top:3px;flex:0 0 auto}
.cp-blok{display:block}
.cp-delegace label.cp-zasedle{opacity:.55}

/* kontrakt bod 11: počet „Vyžaduje pozornost" v menu, smazaný zákazník, graf využití, podnadpis stránky */
.sb-item .cp-menu-pocet{margin-left:auto;min-width:20px;padding:1px 6px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:700;
  line-height:16px;text-align:center}
.db2-tab tr.cp-smazany td{color:var(--text3)}
.db2-tab tr.cp-smazany td a{color:var(--text2)}
.db2-tab td.cp-nula{color:var(--text3)}
.cp-podnadpis{font-size:15px;font-weight:700;margin:18px 0 10px;color:var(--text)}
.cp-vlozeny{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);margin:6px 0}
.cp-graf{display:block;width:100%;height:auto;max-height:160px;margin:4px 0 10px}
.cp-graf-sloupec{fill:var(--blue-3)}
.cp-graf-nula{fill:var(--border)}
.cp-graf-zasah{fill:transparent}
.cp-graf-den:hover .cp-graf-sloupec{fill:var(--blue)}
.cp-graf-osa{stroke:var(--border);stroke-width:1}
.cp-graf-popis{fill:var(--text3);font-size:11px;font-family:inherit}
[data-theme="dark"] .cp-graf-den:hover .cp-graf-sloupec{fill:#93B4E6}
