@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root {
    /* BRAVE System: černá (struktura) + fialová (akce), podle www.bravesystem.cz */
    --brand-900:#141414; --brand-800:#1c1c1c; --brand-700:#2b2b2b; --brand-600:#87219c;
    --brand-500:#a239b7; --brand-400:#b75ccb; --brand-300:#d09bdc; --brand-200:#e5c8eb;
    --brand-100:#f1e2f4; --brand-50:#f9f2fa;
    --accent:#a239b7; --accent-600:#87219c; --accent-100:#f1e2f4;
    --gray-900:#141414; --gray-800:#1f1f1f; --gray-700:#3f3f3f; --gray-600:#555;
    --gray-500:#6f6f6f; --gray-400:#999; --gray-300:#c9c9c9; --gray-200:#e6e6e6;
    --gray-100:#f0f0f0; --gray-50:#f7f7f7; --white:#fff;
    --red-600:#dc2626; --red-500:#ef4444; --red-100:#fee2e2;
    --green-600:#16a34a; --green-500:#22c55e; --green-100:#dcfce7;
    --amber-600:#d97706; --amber-500:#f59e0b; --amber-100:#fef3c7;
    --blue-500:#3b82f6; --blue-100:#dbeafe;
    --shadow-sm:0 1px 3px rgba(0,0,0,.07); --shadow:0 4px 16px rgba(0,0,0,.09);
    --shadow-lg:0 12px 40px rgba(0,0,0,.18); --shadow-brand:0 6px 18px rgba(162,57,183,.32);
    --radius:10px; --radius-lg:16px; --radius-xl:24px;
    --font:'Space Grotesk',system-ui,sans-serif; --font-display:'Space Grotesk',system-ui,sans-serif;
}

/* BRAVE: tlačítka jako pilulky, logo jako obrázek */
.btn{border-radius:999px !important;}
.navbar-brand .brand-logo{height:22px;width:auto;display:block;}
.navbar-brand-text span{color:var(--brand-300) !important;font-weight:600;}
.navbar-brand-sep{width:1px;height:22px;background:rgba(255,255,255,.22);}
.demo-ribbon{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent);border-radius:999px;padding:.2rem .55rem;line-height:1.2;}
.login-box-logo .brand-logo{height:34px;width:auto;margin:0 auto 1rem;display:block;}
.login-demo{margin-top:1.25rem;padding:.8rem 1rem;border-radius:var(--radius);background:var(--brand-50);border:1px solid var(--brand-100);font-size:.86rem;color:var(--gray-700);line-height:1.55;}
.login-demo code{font-family:inherit;font-weight:700;color:var(--brand-600);}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;}
body{font-family:var(--font);color:var(--gray-900);background:var(--gray-50);line-height:1.6;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;}

/* NAVBAR */
.navbar{background:var(--brand-900);padding:0 1.75rem;display:flex;align-items:center;justify-content:space-between;height:64px;position:sticky;top:0;z-index:100;box-shadow:0 1px 0 rgba(255,255,255,.08);}
.navbar-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;}
.navbar-brand .logo-mark{width:38px;height:38px;flex:none;}
.navbar-brand-text{font-family:var(--font-display);font-size:1.3rem;font-weight:800;letter-spacing:.02em;color:#fff;line-height:1;}
.navbar-brand-text span{color:var(--brand-300);}
.navbar-nav{display:flex;align-items:center;gap:.15rem;list-style:none;}
.navbar-nav a{color:rgba(255,255,255,.72);text-decoration:none;padding:.4rem 1rem;border-radius:8px;font-size:.9rem;font-weight:600;transition:all .15s;}
.navbar-nav a:hover,.navbar-nav a.active{background:rgba(255,255,255,.12);color:#fff;}
/* Ukazatel denního stropu odesílání v hlavičce (na každé stránce) */
.send-meter{display:flex;align-items:center;gap:.5rem;margin-left:auto;margin-right:1rem;padding:.35rem .75rem;
    border-radius:999px;background:rgba(255,255,255,.10);color:rgba(255,255,255,.85);text-decoration:none;
    font-size:.78rem;font-weight:600;line-height:1;transition:background .15s;white-space:nowrap;}
.send-meter:hover{background:rgba(255,255,255,.18);color:#fff;}
.send-meter-label{color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;}
.send-meter-value{color:#fff;font-weight:800;}
.send-meter-bar{width:64px;height:6px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden;}
.send-meter-bar i{display:block;height:100%;background:var(--accent);border-radius:999px;}
.send-meter-queue{color:rgba(255,255,255,.6);}
.send-meter.is-warn .send-meter-bar i{background:var(--amber-500,#f59e0b);}
.send-meter.is-full{background:rgba(239,68,68,.22);}
.send-meter.is-full .send-meter-bar i{background:var(--red-500);}
@media(max-width:1024px){.send-meter-label,.send-meter-queue{display:none;}.send-meter{margin-right:.5rem;}}
@media(max-width:640px){.send-meter-bar{display:none;}}
.navbar-user{display:flex;align-items:center;gap:.7rem;font-size:.85rem;}
.navbar-user strong{color:#fff;font-weight:600;}

/* LAYOUT */
.layout{display:flex;flex:1;padding-left:250px;}
.sidebar{width:250px;background:var(--white);border-right:1px solid var(--gray-200);padding:1.5rem 0;flex-shrink:0;position:fixed;top:64px;left:0;height:calc(100vh - 64px);overflow-y:auto;z-index:50;}
.sidebar-inner{display:flex;flex-direction:column;min-height:100%;}
.sidebar-section{margin-bottom:1rem;}
.sidebar-title{font-size:.67rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gray-400);padding:0 1.35rem .35rem;}
.sidebar-nav{list-style:none;}
.sidebar-nav a{display:flex;align-items:center;gap:.7rem;padding:.5rem 1.35rem;color:var(--gray-600);text-decoration:none;font-size:.925rem;font-weight:600;transition:all .12s;border-left:3px solid transparent;}
.sidebar-nav a:hover{background:var(--brand-50);color:var(--brand-700);border-left-color:var(--brand-300);}
.sidebar-nav a.active{background:var(--brand-50);color:var(--brand-700);border-left-color:var(--accent);}
.nav-ico{flex:none;width:30px;height:30px;border-radius:9px;display:inline-grid;place-items:center;background:var(--brand-50);box-shadow:inset 0 0 0 1px var(--brand-100);transition:all .14s;color:var(--brand-600);}
.nav-ico svg{width:17px;height:17px;}
.sidebar-nav a:hover .nav-ico{background:var(--brand-100);box-shadow:inset 0 0 0 1px var(--brand-300);}
.sidebar-nav a.active .nav-ico{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:#fff;transform:translateY(-1px);}
/* overflow-x:clip drží široký obsah v mezích, ale (na rozdíl od overflow:auto) NEDĚLÁ
   ze stránky vlastní posuvnou oblast – jinak by uvnitř nefungovalo position:sticky. */
.main{flex:1;padding:1.9rem 2.3rem;overflow-x:clip;min-width:0;}

/* Patička sidebaru – karta uživatele a verze */
.sidebar-card{margin:.75rem 1.35rem 0;padding:.7rem .9rem;background:var(--brand-50);border-radius:var(--radius);border:1px solid var(--brand-100);display:flex;align-items:center;gap:.65rem;}
.sidebar-avatar{width:34px;height:34px;border-radius:50%;background:var(--brand-500);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:800;color:#fff;}
.sidebar-card-name{font-weight:700;font-size:.86rem;color:var(--brand-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sidebar-card-login{font-size:.74rem;color:var(--brand-600);}
.sidebar-version{display:block;text-align:center;text-decoration:none;margin:.6rem 1.35rem 0;line-height:1.3;}
.sidebar-version span{display:block;font-size:.7rem;color:var(--gray-400);}
.sidebar-version span+span{font-size:.68rem;color:var(--brand-600);font-weight:600;}

/* ══ SBALENÉ LEVÉ MENU (desktop) ══
   Přepíná tlačítko v navbaru, stav se pamatuje v localStorage (klíč directmail:nav).
   Z menu zůstane úzký proužek s ikonami, popisky se ukazují jako bublina (title). */
@media(min-width:1025px){
    .layout{transition:padding-left .18s ease;}
    .sidebar{transition:width .18s ease;}
    html.nav-collapsed .layout{padding-left:68px;}
    html.nav-collapsed .sidebar{width:68px;overflow-x:hidden;}
    html.nav-collapsed .sidebar-nav a{justify-content:center;gap:0;padding:.45rem 0;border-left-width:0;border-right:3px solid transparent;}
    html.nav-collapsed .sidebar-nav a.active{border-right-color:var(--accent);}
    html.nav-collapsed .sidebar-nav a:hover{border-right-color:var(--brand-300);}
    html.nav-collapsed .nav-label{display:none;}
    html.nav-collapsed .sidebar-title{height:1px;margin:.5rem 1rem;padding:0;overflow:hidden;color:transparent;background:var(--gray-200);}
    html.nav-collapsed .sidebar-card{margin:.75rem auto 0;padding:.35rem;justify-content:center;background:none;border:none;}
    html.nav-collapsed .sidebar-card>div:last-child,
    html.nav-collapsed .sidebar-version span+span{display:none;}
    html.nav-collapsed .sidebar-version{margin:.5rem .3rem 0;}
    html.nav-collapsed body:has(.sidebar) footer,
    html.nav-collapsed footer{margin-left:68px;}
}

/* PAGE HEADER
   Lišta s názvem stránky a tlačítky (Uložit, Náhled…) se při rolování drží pod navbarem,
   takže Uložit nemusí uživatel hledat na konci dlouhého formuláře. Roztažení do stran
   přes zápornou marži = při přilepení kryje celou šířku obsahu. */
.page-header{position:sticky;top:64px;z-index:40;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;
    background:var(--gray-50);padding:1.1rem 2.3rem .9rem;margin:-1.9rem -2.3rem 1.35rem;
    border-bottom:1px solid transparent;transition:box-shadow .15s,border-color .15s;}
.page-header.is-stuck{border-bottom-color:var(--gray-200);box-shadow:0 6px 16px rgba(15,23,42,.07);}
.page-title{font-family:var(--font-display);font-size:1.9rem;font-weight:800;color:var(--brand-900);letter-spacing:-.01em;line-height:1.1;}
.page-subtitle{color:var(--gray-500);font-size:.9rem;margin-top:.25rem;}
.page-subtitle a{color:var(--brand-600);font-weight:600;text-decoration:none;}
.page-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}

/* CARDS */
.card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--gray-200);overflow:hidden;}
.card-header{padding:1rem 1.4rem;border-bottom:1px solid var(--gray-100);font-weight:700;font-size:.95rem;color:var(--gray-800);display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--gray-50);}
.card-body{padding:1.4rem;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.15rem;border-radius:var(--radius);font-family:var(--font);font-size:.9rem;font-weight:700;cursor:pointer;border:none;text-decoration:none;transition:all .15s;line-height:1.4;white-space:nowrap;}
.btn svg{width:16px;height:16px;}
.btn:active{transform:translateY(1px);}
.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-brand);}
.btn-primary:hover{background:var(--accent-600);}
.btn-secondary{background:var(--white);color:var(--gray-700);border:1px solid var(--gray-300);}
.btn-secondary:hover{background:var(--gray-100);}
.btn-danger{background:var(--red-100);color:#991b1b;}
.btn-danger:hover{background:var(--red-500);color:#fff;}
.btn-success{background:var(--green-100);color:#166534;}
.btn-success:hover{background:var(--green-500);color:#fff;}
.btn-sm{padding:.32rem .8rem;font-size:.82rem;border-radius:7px;}
.btn-lg{padding:.8rem 1.8rem;font-size:1.02rem;border-radius:var(--radius-lg);}
.btn[disabled]{opacity:.55;cursor:not-allowed;}

/* ACTION ICONS */
.action-btn{width:34px;height:34px;padding:0;flex:0 0 auto;border:none;border-radius:50%;background:transparent;color:#94a3b8;display:inline-grid;place-items:center;cursor:pointer;text-decoration:none;transition:all .15s;line-height:0;}
.action-btn:hover{transform:scale(1.12);}
.action-btn--detail:hover{background:var(--brand-100);color:var(--brand-600);}
.action-btn--edit:hover{background:var(--blue-100);color:#2563eb;}
.action-btn--delete:hover{background:var(--red-100);color:#dc2626;}
.action-btn--send:hover{background:var(--green-100);color:#16a34a;}
.action-group{display:inline-flex;gap:2px;align-items:center;}
.action-group form{display:inline;margin:0;}
@media(hover:none){.action-btn{width:40px;height:40px;}}

/* FORMS */
.form-group{margin-bottom:1.25rem;}
.form-label{display:block;font-size:.85rem;font-weight:700;color:var(--gray-700);margin-bottom:.4rem;}
.form-hint{font-size:.78rem;color:var(--gray-400);margin-top:.3rem;}
.form-control{width:100%;padding:.6rem .9rem;border:1.5px solid var(--gray-300);border-radius:var(--radius);font-family:var(--font);font-size:.93rem;color:var(--gray-900);background:var(--white);transition:border-color .15s,box-shadow .15s;outline:none;}
.form-control:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(40,66,131,.18);}
select.form-control{cursor:pointer;}
textarea.form-control{resize:vertical;min-height:90px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem;}
.checkbox-row{display:flex;align-items:center;gap:.55rem;font-size:.9rem;color:var(--gray-700);cursor:pointer;}
.checkbox-row input{width:17px;height:17px;accent-color:var(--brand-500);cursor:pointer;}
/* Volba oslovení v kampani – přepínač osobní × společné + pole na společný text */
.radio-row{display:flex;align-items:flex-start;gap:.55rem;font-size:.88rem;color:var(--gray-700);cursor:pointer;line-height:1.45;}
.radio-row+.radio-row{margin-top:.45rem;}
.radio-row input{margin-top:.2rem;width:16px;height:16px;flex:none;accent-color:var(--accent);cursor:pointer;}
.salutation-choice{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);padding:.85rem 1rem;}
.salutation-choice .form-control{margin-top:.6rem;}
.salutation-choice .form-control[readonly]{background:var(--gray-100);color:var(--gray-400);cursor:not-allowed;}
.salutation-choice .form-hint{margin-top:.45rem;}

/* TABLES */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:.92rem;}
thead th{background:var(--gray-50);padding:.7rem 1.05rem;text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray-500);border-bottom:2px solid var(--gray-200);}
tbody td{padding:.8rem 1.05rem;border-bottom:1px solid var(--gray-100);color:var(--gray-700);vertical-align:middle;}
tbody tr:hover{background:var(--brand-50);}
tbody tr:last-child td{border-bottom:none;}
.table-empty{text-align:center;padding:3rem 1rem;color:var(--gray-400);}
/* Seznam klientů: pomocné sloupce (výběr, stav, akce) mají užší odsazení,
   aby zbylé místo připadlo na jméno klienta a skupiny. Šířky řeší <colgroup>.
   Na mobilu (kartové zobrazení níže) tahle pravidla neplatí – přebije je specifičtější selektor. */
.clients-table{table-layout:fixed;}
.clients-table td:nth-child(3){overflow-wrap:anywhere;}   /* dlouhý e-mail se zalomí, nerozpíná sloupec */
.clients-table th.col-pick,.clients-table td.col-pick{padding-left:.6rem;padding-right:.35rem;}
.clients-table th.col-state,.clients-table td.col-state{padding-left:.5rem;padding-right:.5rem;}
.clients-table th.col-actions,.clients-table td.col-actions{padding-left:.35rem;padding-right:.75rem;}
.clients-table td.col-state .badge{white-space:nowrap;}

/* ALERTS */
.alert{padding:.85rem 1.1rem;border-radius:var(--radius);font-size:.9rem;margin-bottom:1.4rem;display:flex;align-items:center;gap:.55rem;border-left:4px solid;}
.alert-success{background:var(--green-100);color:#166534;border-color:var(--green-500);}
.alert-danger{background:var(--red-100);color:#991b1b;border-color:var(--red-500);}
.alert-error{background:var(--red-100);color:#991b1b;border-color:var(--red-500);}
.alert-warning{background:var(--amber-100);color:#92400e;border-color:var(--amber-500);}
.alert-info{background:var(--brand-50);color:var(--brand-800);border-color:var(--brand-400);}

/* BADGES */
.badge{display:inline-block;padding:.22rem .6rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em;}
.badge-brand{background:var(--brand-100);color:var(--brand-700);}
.badge-blue{background:var(--blue-100);color:#1e40af;}
.badge-green{background:var(--green-100);color:#166534;}
.badge-red{background:var(--red-100);color:#991b1b;}
.badge-amber{background:var(--amber-100);color:#92400e;}
.badge-gray{background:var(--gray-100);color:var(--gray-600);}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1.15rem;margin-bottom:1.75rem;}
.stat-card{background:var(--white);border-radius:var(--radius-lg);padding:1.35rem 1.4rem;border:1px solid var(--gray-200);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);}
.stat-label{font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--gray-400);margin-bottom:.45rem;}
.stat-value{font-family:var(--font-display);font-size:2.1rem;font-weight:800;color:var(--brand-900);line-height:1;}
.stat-sub{font-size:.8rem;color:var(--gray-500);margin-top:.35rem;}
.stat-card.accent{background:var(--brand-900);border-color:var(--brand-800);}
.stat-card.accent::before{background:var(--brand-400);}
.stat-card.accent .stat-label{color:var(--brand-300);}
.stat-card.accent .stat-value{color:#fff;}
.stat-card.accent .stat-sub{color:rgba(255,255,255,.5);}
.stat-card.green::before{background:var(--green-500);} .stat-card.green .stat-value{color:#166534;}
.stat-card.amber::before{background:var(--amber-500);} .stat-card.amber .stat-value{color:#92400e;}
.stat-card.red::before{background:var(--red-500);} .stat-card.red .stat-value{color:#991b1b;}

/* PROGRESS BAR */
.progress{height:9px;background:var(--gray-200);border-radius:999px;overflow:hidden;}
.progress-bar{height:100%;background:var(--brand-500);border-radius:999px;transition:width .4s;}
.progress-bar.green{background:var(--green-500);} .progress-bar.blue{background:var(--blue-500);}
.progress-bar.red{background:var(--red-500);} .progress-bar.amber{background:var(--amber-500);}

/* FILTR PANEL + LIST (klienti) */
.split{display:grid;grid-template-columns:270px 1fr;gap:1.4rem;align-items:start;}
.filter-panel{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.25rem;position:sticky;top:80px;}
.filter-panel h3{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray-400);margin-bottom:.7rem;}
.filter-group{margin-bottom:1.3rem;}
.filter-list{list-style:none;display:flex;flex-direction:column;gap:.15rem;}
.filter-list a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .65rem;border-radius:8px;text-decoration:none;color:var(--gray-700);font-size:.9rem;font-weight:600;transition:all .12s;}
.filter-list a:hover{background:var(--brand-50);color:var(--brand-700);}
.filter-list a.active{background:var(--brand-500);color:#fff;}
.filter-list a.active .filter-count{background:rgba(255,255,255,.25);color:#fff;}
.filter-count{background:var(--gray-100);color:var(--gray-500);font-size:.72rem;font-weight:700;border-radius:999px;padding:.05rem .5rem;min-width:24px;text-align:center;}
.filter-dot{width:9px;height:9px;border-radius:50%;flex:none;display:inline-block;}

/* FILTR SCROLL (dlouhý seznam skupin) */
.filter-scroll{max-height:340px;overflow-y:auto;}
.filter-scroll::-webkit-scrollbar{width:8px;}
.filter-scroll::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px;}

/* PAGINATION */
.pager{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;justify-content:center;padding:1rem;border-top:1px solid var(--gray-100);}
.pager .pg{min-width:34px;text-align:center;padding:.35rem .6rem;border:1px solid var(--gray-200);border-radius:8px;text-decoration:none;color:var(--gray-700);font-size:.85rem;font-weight:600;background:var(--white);transition:all .12s;}
.pager .pg:hover{background:var(--brand-50);border-color:var(--brand-300);color:var(--brand-700);}
.pager .pg.is-current{background:var(--brand-500);border-color:var(--brand-500);color:#fff;}
.pager .pg.disabled{opacity:.4;pointer-events:none;}
.pager .pg-dots{padding:0 .2rem;color:var(--gray-400);}

/* TOOLBAR */
.toolbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1.1rem;}
.toolbar .search{flex:1;min-width:180px;position:relative;}
.toolbar .search input{width:100%;padding:.55rem .9rem .55rem 2.3rem;border:1.5px solid var(--gray-300);border-radius:var(--radius);font-family:var(--font);font-size:.9rem;outline:none;}
.toolbar .search input:focus{border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(40,66,131,.18);}
.toolbar .search svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--gray-400);}

/* HROMADNÉ AKCE (klienti) */
.bulk-check{width:17px;height:17px;accent-color:var(--brand-500);cursor:pointer;}
.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
    margin-top:.7rem;padding:.6rem .85rem;border-radius:var(--radius);
    background:var(--brand-50);border:1.5px solid var(--brand-200);}
.bulk-info{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;font-size:.88rem;color:var(--brand-800);}
.bulk-info b{font-weight:800;}
.bulk-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.bulk-actions .form-control{padding:.32rem .6rem;font-size:.82rem;height:auto;}
.bulk-sep{width:1px;height:22px;background:var(--brand-200);margin:0 .2rem;}
.bulk-link{background:none;border:none;padding:0;font:inherit;color:var(--brand-600);text-decoration:underline;cursor:pointer;}
.bulk-link:hover{color:var(--accent-600);}
@media(max-width:768px){.bulk-bar{position:sticky;bottom:0;z-index:5;box-shadow:0 -4px 14px rgba(15,23,42,.10);}}

/* COMPOSE */
.compose-grid{display:grid;grid-template-columns:1fr 320px;gap:1.4rem;align-items:start;}
/* Panel editoru se při rolování drží pod plovoucí lištou stránky – u dlouhé kampaně
   se tak nemusí kvůli každé úpravě rolovat nahoru. Odsazení shora (navbar + lišta stránky)
   měří skript ve footer.php do --editor-tb-top, protože lišta má proměnnou výšku.
   PODMÍNKA: žádný předek nesmí mít overflow hidden/auto – proto má karta s editorem
   třídu .card--sticky (overflow:visible). Se `overflow:hidden` sticky uvnitř nefunguje. */
.editor-shell .ql-toolbar.ql-snow{position:sticky;top:var(--editor-tb-top,152px);z-index:30;
    border-radius:var(--radius) var(--radius) 0 0;border-color:var(--gray-300);background:var(--gray-50);
    box-shadow:0 4px 12px rgba(15,23,42,.06);}
.card--sticky{overflow:visible;}
.editor-shell .ql-container.ql-snow{border-radius:0 0 var(--radius) var(--radius);border-color:var(--gray-300);min-height:340px;font-family:var(--font);font-size:.95rem;}
.editor-shell .ql-editor{min-height:340px;}
.chip-select{display:flex;flex-wrap:wrap;gap:.5rem;}
.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .7rem;border:1.5px solid var(--gray-300);border-radius:999px;font-size:.85rem;font-weight:600;color:var(--gray-600);cursor:pointer;user-select:none;transition:all .12s;}
.chip input{display:none;}
.chip:hover{border-color:var(--brand-400);}
.chip.checked{background:var(--brand-500);border-color:var(--brand-500);color:#fff;}
/* Skupiny ve dvou zleva zarovnaných sloupcích (abecedně shora dolů) – místo „mraku" chipů.
   column-count plní nejdřív levý sloupec, teprve pak pravý, takže se v abecedě dobře hledá. */
.chip-select--cols{display:block;column-count:2;column-gap:.7rem;}
.chip-select--cols .chip{display:flex;width:100%;justify-content:flex-start;border-radius:8px;padding:.35rem .6rem;margin-bottom:.4rem;break-inside:avoid;-webkit-column-break-inside:avoid;}
@media(max-width:620px){ .chip-select--cols{column-count:1;} }
.attach-item{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.5rem .7rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;font-size:.85rem;margin-bottom:.4rem;}
.editor-shell .ql-editor img{max-width:100%;cursor:pointer;}
.editor-shell .ql-editor img.img-selected{outline:3px solid var(--brand-400);outline-offset:2px;}
/* Plovoucí panel pro obrázek */
.img-tools{position:absolute;z-index:9999;display:flex;align-items:center;gap:.25rem;background:var(--brand-900);color:#fff;padding:.3rem .4rem;border-radius:9px;box-shadow:var(--shadow-lg);}
.img-tools .it-grp{display:flex;gap:.15rem;}
.img-tools .it-sep{width:1px;height:20px;background:rgba(255,255,255,.2);margin:0 .2rem;}
.img-tools button{background:rgba(255,255,255,.1);border:none;color:#fff;font-family:var(--font);font-size:.75rem;font-weight:600;padding:.3rem .5rem;border-radius:6px;cursor:pointer;line-height:1;transition:background .12s;}
.img-tools button:hover{background:var(--brand-500);}
.img-tools button.it-del:hover{background:var(--red-500);}
/* Tlačítko s odkazem v textu kampaně – klik ho otevře k úpravě */
/* width:auto přebíjí globální table{width:100%} – v e-mailu se tabulka smrskne na obsah,
   v editoru musí vypadat stejně (editor je „co vidíš, to dostaneš"). */
.editor-shell .ql-editor table.mnk-btn{width:auto;cursor:pointer;border-radius:8px;}
.editor-shell .ql-editor table.mnk-btn:hover{outline:2px solid var(--brand-300);outline-offset:4px;}
.editor-shell .ql-editor table.mnk-btn a{cursor:pointer;}
/* Quill při načítání HTML dopisuje prázdný řádek všude, kde „vidí" svislou mezeru (matchSpacing).
   Tlačítko má odsazení 18 px, takže by při každém otevření kampaně jeden prázdný řádek přibyl.
   Ve skrytém schránkovém kontejneru, kde se měří, proto odsazení potlačíme. */
.ql-clipboard table.mnk-btn{margin:0 !important;}
/* Tabulka v textu kampaně – taky vlastní blok, klik ji otevře k úpravě.
   Šířku si nese v inline stylu (e-mailová bezpečnost), takže globální table{width:100%} nevadí. */
.editor-shell .ql-editor table.mnk-table{cursor:pointer;}
.editor-shell .ql-editor table.mnk-table:hover{outline:2px solid var(--brand-300);outline-offset:3px;}
.ql-clipboard table.mnk-table{margin:0 !important;}
/* Dialog pro tabulku – mřížka polí pro buňky */
.mnk-tbl-grid{display:grid;gap:.3rem;margin-top:.5rem;max-height:46vh;overflow:auto;padding:.15rem;}
.mnk-tbl-grid input{width:100%;min-width:80px;padding:.35rem .5rem;border:1.5px solid var(--gray-200);border-radius:6px;font-family:var(--font);font-size:.85rem;color:var(--gray-800);}
.mnk-tbl-grid input:focus{outline:none;border-color:var(--brand-400);}
.mnk-tbl-grid input.is-head{background:var(--gray-50);font-weight:700;}
.mnk-tbl-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.8rem;}
.mnk-tbl-tools .btn{padding:.35rem .7rem;font-size:.8rem;}
.mnk-tbl-panel{width:min(760px,100%);}
/* Dialog pro tlačítko */
.mnk-dialog{position:fixed;inset:0;z-index:10000;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:1rem;}
.mnk-dialog[hidden]{display:none;}
.mnk-dialog-panel{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(480px,100%);padding:1.5rem;}
.mnk-dialog-title{margin:0 0 1.1rem;font-size:1.05rem;color:var(--gray-900);}
.mnk-dialog-row{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;margin-top:1.1rem;}
.mnk-choice{display:flex;gap:.35rem;margin-top:.35rem;}
.mnk-choice button{background:#fff;border:2px solid var(--gray-200);border-radius:8px;padding:.4rem .6rem;font-family:var(--font);font-size:.82rem;font-weight:600;color:var(--gray-600);cursor:pointer;line-height:1;transition:border-color .12s,color .12s;}
.mnk-choice button:hover{border-color:var(--gray-300);}
.mnk-choice button.is-active{border-color:var(--accent);color:var(--gray-900);}
.mnk-choice button span{display:block;width:22px;height:22px;border-radius:5px;}
.mnk-dialog-actions{display:flex;align-items:center;gap:.5rem;margin-top:1.5rem;}
.mnk-dialog [hidden]{display:none;}   /* .btn má vlastní display, jinak by ho atribut hidden nepřebil */
.mnk-dialog-spacer{flex:1;}

/* LOGIN */
.login-wrap{flex:1;display:flex;align-items:stretch;background:var(--brand-900);}
.login-brand{flex:1;display:flex;flex-direction:column;justify-content:center;padding:3rem;color:#fff;background:radial-gradient(1000px 380px at 15% 0%,rgba(162,57,183,.22),transparent),var(--brand-900);}
.login-brand .logo-mark{width:64px;height:64px;margin-bottom:1.5rem;}
.login-brand h1{font-family:var(--font-display);font-size:2.6rem;font-weight:800;line-height:1.05;letter-spacing:-.01em;}
.login-brand h1 span{color:var(--brand-300);}
.login-brand p{margin-top:1rem;font-size:1.05rem;color:rgba(255,255,255,.72);max-width:420px;}
.login-points{margin-top:2rem;list-style:none;display:flex;flex-direction:column;gap:.7rem;}
.login-points li{display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:rgba(255,255,255,.85);}
.login-points li svg{width:18px;height:18px;color:var(--brand-300);flex:none;}
.login-form-col{width:460px;max-width:100%;background:var(--white);display:flex;flex-direction:column;justify-content:center;padding:3rem;}
.login-form-col h2{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--brand-900);margin-bottom:.35rem;}
.login-form-col .sub{color:var(--gray-500);font-size:.9rem;margin-bottom:1.75rem;}
/* Vycentrovaný přihlašovací box */
.login-wrap--center{align-items:center;justify-content:center;padding:1rem;}
.login-box{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:420px;max-width:100%;padding:2.5rem;}
.login-box-logo{text-align:center;margin-bottom:1.75rem;}
.login-box-logo .logo-mark{width:56px;height:56px;margin:0 auto .75rem;display:block;}
.login-box-title{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--brand-900);letter-spacing:-.01em;}
.login-box-title span{color:var(--accent);}
.login-box-sub{color:var(--gray-500);font-size:.9rem;margin-top:.25rem;}
@media(max-width:520px){.login-box{padding:2rem 1.5rem;}}

/* FOOTER */
footer{background:var(--brand-900);color:rgba(255,255,255,.45);text-align:center;padding:1.4rem;font-size:.8rem;}
body:has(.sidebar) footer{margin-left:250px;}
footer a{color:var(--brand-300);text-decoration:none;}

/* UTILITY */
.text-muted{color:var(--gray-500);} .text-center{text-align:center;} .text-right{text-align:right;}
.mt-1{margin-top:.5rem;} .mt-2{margin-top:1rem;} .mt-3{margin-top:1.5rem;}
.mb-1{margin-bottom:.5rem;} .mb-2{margin-bottom:1rem;} .mb-3{margin-bottom:1.5rem;}
.d-flex{display:flex;} .align-center{align-items:center;} .justify-between{justify-content:space-between;}
.gap-1{gap:.5rem;} .gap-2{gap:1rem;} .flex-wrap{flex-wrap:wrap;}
.fw-bold{font-weight:700;} .w-100{width:100%;} .flex-1{flex:1;}
.muted-num{font-size:.8rem;color:var(--gray-400);}

/* Hamburger + drawer */
.navbar-toggle{display:flex;align-items:center;margin-right:.35rem;background:none;border:none;cursor:pointer;padding:.35rem .5rem;color:#fff;border-radius:6px;}
.navbar-toggle:hover{background:rgba(255,255,255,.1);}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(2px);z-index:199;}

/* ══ RESPONSIVE ══ */
@media(max-width:1100px){ .compose-grid{grid-template-columns:1fr;} }
@media(max-width:1024px){
    body{overflow-x:hidden;}
    .navbar{height:auto;min-height:56px;padding:.4rem 1rem;gap:.5rem;}
    .navbar-brand{flex:1;min-width:0;}
    .navbar-toggle{display:flex;align-items:center;margin-right:.5rem;}
    .navbar--auth .navbar-nav{display:none;}
    .sidebar{position:fixed;top:56px;left:0;height:calc(100vh - 56px);z-index:200;transform:translateX(-270px);transition:transform .25s ease;box-shadow:4px 0 20px rgba(15,23,42,.15);padding:1rem 0;}
    .sidebar.is-open{transform:translateX(0);}
    .sidebar-nav a{padding:.75rem 1.35rem;font-size:1rem;}
    .sidebar-overlay{display:block;opacity:0;pointer-events:none;transition:opacity .25s;}
    .sidebar-overlay.is-open{opacity:1;pointer-events:auto;}
    .layout{display:block;padding-left:0;}
    .main{padding:1.15rem;}
    body:has(.sidebar) footer{margin-left:0;}
    .split{grid-template-columns:1fr;}
    .filter-panel{position:static;}
    .login-brand{display:none;}
    .login-form-col{width:100%;padding:2.25rem 1.5rem;}
    .form-row{grid-template-columns:1fr;}
    .page-title{font-size:1.55rem;}
    /* navbar je na mobilu nižší (56 px) a .main má menší odsazení */
    .page-header{top:56px;padding:.8rem 1.15rem .7rem;margin:-1.15rem -1.15rem 1rem;}
}
@media(max-width:768px){
    .main{padding:.85rem;}
    .page-header{padding:.7rem .85rem .6rem;margin:-.85rem -.85rem .9rem;}
    .stats-grid{grid-template-columns:repeat(2,1fr);}
    /* karetní tabulky */
    .table-wrap:not(.no-cards) table{display:block;}
    .table-wrap:not(.no-cards) thead{display:none;}
    .table-wrap:not(.no-cards) tbody{display:block;}
    .table-wrap:not(.no-cards) tbody tr{display:block;margin-bottom:.65rem;border:1px solid var(--gray-200);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);}
    .table-wrap:not(.no-cards) tbody tr:hover{background:#fff;}
    .table-wrap:not(.no-cards) tbody td{display:flex;align-items:center;gap:.65rem;padding:.5rem .9rem;border-bottom:1px solid var(--gray-100);font-size:.88rem;}
    .table-wrap:not(.no-cards) tbody td:last-child{border-bottom:none;}
    .table-wrap:not(.no-cards) tbody td[data-label]::before{content:attr(data-label);font-size:.67rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--gray-400);min-width:90px;flex-shrink:0;}
    .table-wrap:not(.no-cards) tbody td:not([data-label]):has(.btn,button,form,.action-group){justify-content:flex-end;background:var(--gray-50);}
}
@media(max-width:480px){
    .stats-grid{grid-template-columns:1fr;}
    .navbar-user strong{display:none;}
    .page-title{font-size:1.35rem;}
}

/* ══ NÁPOVĚDA A PŘÍRUČKA ══ */
.navbar-help{display:inline-flex;align-items:center;gap:.4rem;margin-left:auto;margin-right:.9rem;padding:.35rem .75rem;border-radius:999px;
    color:rgba(255,255,255,.8);text-decoration:none;font-size:.82rem;font-weight:600;border:1px solid rgba(255,255,255,.18);transition:all .15s;}
.navbar-help:hover{color:#fff;border-color:var(--brand-300);background:rgba(162,57,183,.25);}
.send-meter ~ .navbar-help{margin-left:0;}   /* ukazatel stropu už je odsazený doprava sám */
@media(max-width:640px){.navbar-help span{display:none;}.navbar-help{padding:.4rem;margin-right:.5rem;}}

.help-search{margin-bottom:1.4rem;}
.help-search .form-control{font-size:1rem;padding:.75rem 1rem;}
.help-results{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem;}
.help-results a{display:flex;flex-direction:column;gap:.15rem;padding:.75rem 1rem;border:1px solid var(--gray-200);border-radius:var(--radius);text-decoration:none;color:var(--gray-700);transition:all .12s;}
.help-results a:hover{border-color:var(--brand-300);background:var(--brand-50);}
.help-results b{color:var(--gray-900);}
.help-results span{font-size:.85rem;color:var(--gray-500);}
.help-results .help-hit-chapter{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-600);}

.help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem;}
.help-card{display:flex;flex-direction:column;gap:.5rem;padding:1.15rem 1.25rem;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);
    text-decoration:none;color:var(--gray-700);box-shadow:var(--shadow-sm);transition:all .15s;}
.help-card:hover{border-color:var(--brand-300);box-shadow:var(--shadow);transform:translateY(-2px);}
.help-card-head{display:flex;align-items:center;gap:.6rem;color:var(--gray-900);font-size:1.02rem;}
.help-card-perex{font-size:.88rem;line-height:1.5;}
.help-card-list{font-size:.76rem;color:var(--gray-400);line-height:1.5;}

.help-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:1.4rem;align-items:start;}
.help-toc{position:sticky;top:170px;padding:1rem;display:flex;flex-direction:column;max-height:calc(100vh - 190px);overflow:auto;}
.help-toc a{display:block;padding:.35rem .6rem;border-radius:8px;color:var(--gray-600);text-decoration:none;font-size:.88rem;font-weight:600;}
.help-toc a:hover{background:var(--brand-50);color:var(--gray-900);}
.help-toc a.active{background:var(--accent);color:#fff;}
.help-toc a.help-toc-sub{font-weight:500;font-size:.8rem;padding:.25rem .6rem .25rem 1.3rem;color:var(--gray-500);}
.help-article{display:flex;flex-direction:column;gap:1rem;min-width:0;}
.help-section{scroll-margin-top:170px;}
.help-section h2{font-size:1.2rem;color:var(--gray-900);margin-bottom:.7rem;}
.help-body{color:var(--gray-700);line-height:1.7;font-size:.95rem;}
.help-body p{margin:0 0 .75rem;}
.help-body ul,.help-body ol{margin:0 0 .85rem 1.3rem;}
.help-body li{margin-bottom:.35rem;}
.help-body a{color:var(--brand-600);font-weight:600;}
.help-body code{background:var(--gray-100);border-radius:5px;padding:.05rem .35rem;font-size:.86em;}
.help-body .ui{display:inline-block;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:6px;padding:0 .4rem;font-size:.86em;font-weight:600;color:var(--gray-900);white-space:nowrap;}
.help-steps{counter-reset:krok;list-style:none;margin-left:0 !important;}
.help-steps>li{counter-increment:krok;position:relative;padding-left:2.4rem;margin-bottom:.8rem;}
.help-steps>li::before{content:counter(krok);position:absolute;left:0;top:.05rem;width:1.7rem;height:1.7rem;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:.85rem;display:grid;place-items:center;}
.help-tip,.help-warn{border-radius:var(--radius);padding:.75rem 1rem;margin:.4rem 0 .85rem;font-size:.9rem;border-left:4px solid;}
.help-tip{background:var(--brand-50);border-color:var(--accent);}
.help-warn{background:var(--amber-100);border-color:var(--amber-500);}
.help-table{width:100%;border-collapse:collapse;margin:.3rem 0 .9rem;font-size:.9rem;}
.help-table th,.help-table td{border:1px solid var(--gray-200);padding:.45rem .7rem;text-align:left;vertical-align:top;}
.help-table th{background:var(--gray-50);color:var(--gray-900);}
.help-pager{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.4rem;}
@media(max-width:1024px){.help-layout{grid-template-columns:1fr;}.help-toc{position:static;max-height:none;}}

.help-manual{display:flex;flex-direction:column;gap:1.2rem;}
.help-manual .page-header{margin-bottom:0;}
.manual-cover .card-body,.manual-chapter .card-body{padding:2rem 2.4rem;}
.manual-logo{height:40px;width:auto;margin-bottom:1.2rem;}
.manual-cover h1{font-size:2.6rem;line-height:1;color:var(--gray-900);}
.manual-sub{color:var(--gray-500);margin:.4rem 0 1.6rem;}
.manual-toc-title{font-size:1.1rem;margin-bottom:.6rem;}
.manual-toc{margin-left:1.3rem;line-height:1.9;color:var(--gray-600);font-size:.92rem;}
.manual-toc a{color:var(--gray-900);text-decoration:none;}
.manual-chapter h1{font-size:1.6rem;color:var(--gray-900);border-bottom:3px solid var(--accent);padding-bottom:.4rem;margin-bottom:.5rem;}
.manual-perex{color:var(--gray-500);margin-bottom:1.2rem;}
.manual-chapter h2{font-size:1.1rem;color:var(--gray-900);margin:1.3rem 0 .5rem;}

@media print{
    @page{margin:16mm 14mm;}
    html,body{background:#fff !important;}
    .navbar,.sidebar,.sidebar-overlay,footer,.no-print,.page-header{display:none !important;}
    .layout{padding-left:0 !important;}
    .main{padding:0 !important;}
    .card{box-shadow:none !important;border:none !important;}
    .manual-cover .card-body,.manual-chapter .card-body{padding:0 !important;}
    .manual-cover{page-break-after:always;}
    .manual-chapter{page-break-before:always;}
    .manual-chapter h2{page-break-after:avoid;}
    .help-tip,.help-warn,.help-table,.help-steps>li{page-break-inside:avoid;}
    .help-body a{color:inherit;text-decoration:none;}
    *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}
