/* Anežka admin — UX 1 (A1–A4). Admin-only styly; NIKDY needit app.css (sdílené se zákaznickým formulářem).
   Načteno po app.css → přebíjí stejnou specificitou přes pořadí v cascade (viz poznámky u jednotlivých bloků). */

/* A1 — plná šířka adminu (zákaznický formulář zůstává na .wrap max 820px z app.css) */
.wrap{max-width:1400px;}

/* A1 — top bar: „provoz" (poptávky/přehled akcí/e-maily) + „nastavení ▾" (zbytek) + uživatel; mobil = menu tlačítko */
.topnav{border-bottom:1px solid var(--line); margin-bottom:22px;}
.navtoggle{display:none; background:none; border:1px solid var(--line); color:var(--ink); font:inherit; font-size:12.5px;
  padding:6px 14px; cursor:pointer; text-transform:lowercase; margin-bottom:10px;}
.navbar{display:flex; align-items:center; gap:22px; flex-wrap:wrap; padding-bottom:2px;}
.navgroup{display:flex; gap:22px; flex-wrap:wrap;}
.navuser{margin-left:auto; display:flex; align-items:center; gap:10px;}
.navdd{background:none; border:none; font:inherit;}
@media(max-width:760px){
  .navtoggle{display:inline-block;}
  .navbar{display:none; flex-direction:column; align-items:flex-start; gap:12px; padding:4px 0 18px;}
  .navbar.open{display:flex;}
  .navgroup{flex-direction:column; gap:10px;}
  .navuser{margin-left:0;}
}

/* obecná rozbalovací nabídka (nastavení v navigaci, „tisk ▾" v detailu poptávky) */
.dropdown{position:relative; display:inline-block;}
.dd-menu{position:absolute; top:100%; left:0; margin-top:6px; background:var(--panel); border:1px solid var(--line);
  min-width:190px; max-width:calc(100vw - 32px); z-index:30; display:flex; flex-direction:column;}
.dd-menu > *{display:block; padding:9px 14px; color:var(--ink); text-decoration:none; font-size:13.5px;
  text-transform:lowercase; cursor:pointer; white-space:nowrap; border:none;}
.dd-menu > *:hover{background:var(--bg);}

/* A2 — seznam poptávek: aktivní/uzavřené jako segmentovaný přepínač (.seg z app.css), filtry v jednom řádku, řazení sloupců */
.listbar{display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:16px;}
.listFilters{display:flex; flex-wrap:wrap; align-items:center; gap:10px; flex:1;}
.listFilters > *{min-width:0; width:auto;}
.listFilters #f_search{flex:1 1 220px;}
.listFilters .fbarlbl{white-space:nowrap;} /* N21/13D: „datum akce od/do" — jinak jen prázdný nativní placeholder */
th.sortable{cursor:pointer; user-select:none;}
th.sortable:hover{color:var(--ink);}
th.sorted{color:var(--ink);}
.ts{white-space:nowrap;}
/* N4: seznam poptávek se posouvá ve vlastním boxu, stránka nikdy není širší než okno (nahrazuje dřívější table.list display:block hack) */
#listTableWrap{overflow-x:auto; -webkit-overflow-scrolling:touch;}

/* round 13D (D2) — přehled akcí: souhrn počet+součet podle stavu/typu nad hlavní tabulkou; úzké tabulky
   bez table.list min-width (ta je pro širokou tabulku se scrollem, tady stačí zalomit na mobilu) */
.sumgrid{display:flex; flex-wrap:wrap; gap:24px; margin-bottom:16px;}
.sumgrid > div{min-width:200px;}
table.sumtable{width:100%; border-collapse:collapse; font-size:13.5px;}
table.sumtable th{font-size:11px; font-weight:400; text-transform:lowercase; letter-spacing:.8px; color:var(--dim); text-align:left; padding:3px 10px 3px 0;}
table.sumtable td{padding:3px 10px 3px 0; border-bottom:1px solid var(--line-soft);}

/* N20: Položky v detailu poptávky mají jiné sloupce než zákaznická table.items — nepoužívat mobilní
   reflow z app.css (ten schová hlavičku i skupinové řádky typu cateringu), místo toho vodorovný scroll */
.polozky-table{overflow-x:auto; -webkit-overflow-scrolling:touch;}
@media(max-width:540px){
  .polozky-table table.items, .polozky-table table.items tbody{display:table; width:auto; min-width:520px;}
  .polozky-table table.items tr{display:table-row;}
  .polozky-table table.items tr:has(th){display:table-row;}
  .polozky-table table.items td{display:table-cell; border:none; border-bottom:1px solid var(--line-soft); padding:9px 6px;}
}

/* A3 — hlavička detailu: jméno jak je napsané (bez lowercase transformace zděděné z h1), status, primární + vedlejší akce */
.dtop{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; margin-bottom:18px;}
.dheader{min-width:0; overflow-wrap:anywhere;} /* QA ADMIN-04: dlouhý název akce bez mezer nesmí roztáhnout stránku */
.dkicker{letter-spacing:.5px; margin-bottom:2px;}
.dname{text-transform:none;}
.dsub{color:var(--muted); font-size:16px; margin:0 0 10px;}
.dmeta{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.dactions{display:flex; gap:10px; align-items:flex-start; flex-wrap:wrap;}

/* A3 — přehled: název/typ akce editovatelné přímo v řádku kv mřížky (žádný druhý formulář pod tím) */
.kv input.input, .kv select.kvedit{padding:5px 9px; font-size:13.5px; max-width:480px;} /* N18: neroztahovat na celou šířku širokého panelu */

/* A3 — historie: sloučená časová osa (verze + zásahy manažera), verze rozbalitelné */
.tline{display:flex; flex-direction:column;}
.trow{padding:10px 0; border-bottom:1px solid var(--line-soft); font-size:13.5px;}
.trow:last-child{border-bottom:none;}
.tver{cursor:default;}
.tver summary{cursor:pointer; list-style:none;}
.tver summary::-webkit-details-marker{display:none;}
.tver summary::before{content:"+ "; color:var(--dim);}
.tver[open] summary::before{content:"− ";}
.tver .tbody{margin-top:8px; padding-left:14px; border-left:2px solid var(--line-soft); color:var(--soft); font-size:13px;}

/* Everywhere in admin — button hierarchy: primární (plné) tlačítko akcentem, sekundární (ghost) zůstává neutrální
   outline (ne akcentem — bez tohoto přepisu by zdědilo akcentovou barvu okraje ze základního .btn níže),
   tichá textová akce (btn-quiet — deaktivovat/smazat/odebrat) nakloněná do „bad" (na této paletě stejný tón jako accent) */
.btn{background:var(--accent); border-color:var(--accent); color:#242424; font-weight:600;} /* N18: stejná váha jako CTA formuláře (.btn.accent) */
.btn:hover{background:transparent; color:var(--accent);}
.btn.ghost{border-color:var(--line);}
.btn.ghost:hover{border-color:var(--ink);}
.btn-quiet{border-bottom-color:var(--bad-line);}
.btn-quiet:hover{color:var(--bad); border-color:var(--bad);}
/* round 10 (bod 22): nové stavy zakázky + tlačítko „zrušit…" */
.st-deposit_paid, .st-paid{border-color:var(--accent2); color:var(--accent2);}
.st-done{border-color:var(--ok); color:var(--ok); border-style:dashed;}
.st-closed{border-color:var(--dim); color:var(--dim);}
.st-cancelled{border-color:var(--bad); color:var(--bad); border-style:dashed;}
.btn.ghost.danger{color:var(--bad); border-color:var(--bad-line);}
.btn.ghost.danger:hover{background:var(--bad); color:var(--bg); border-color:var(--bad);}
.dactions .hint{flex-basis:100%;}
/* round 10: přehled akcí na mobilu — tabulka se posouvá ve vlastním boxu (jako seznam poptávek), částky nejsou uříznuté */
.tscroll{overflow-x:auto; -webkit-overflow-scrolling:touch;}
/* round 13G (F-11): dlouhý text bez mezer (název akce, jméno, důvod zrušení, popis) se v tabulkách zalomí — částky a stav
   zůstanou vidět; min-width, aby se běžná slova nelámala po písmenech */
table.list td.wrap, table.list .wrap{overflow-wrap:anywhere;}
table.list td.wrap{min-width:9em;}
