/* ==========================================================================
   neprinetadmin – vzhled administrace NepriNET (WebGuard, 10/2026)
   Náhrada vzhledu focus2. Staví na Bootstrap 4.3 (stejný jako focus2), takže
   všechny stránky administrace a moduly fungují beze změny značení.

   1. Proměnné (světlý / tmavý režim)
   2. Základ
   3. Rozvržení – postranní menu, horní lišta, obsah, patička
   4. Kompatibilita s focus2 (content-body, page-titles, welcome-text…)
   5. Bootstrap komponenty – karty, tlačítka, formuláře, tabulky, odznaky…
   6. Pluginy – DataTables, Select2, SweetAlert2, toastr, Nestable
   7. Přihlášení
   8. Nástěnka
   9. Responzivita, tisk, omezení pohybu
   ========================================================================== */

/* 1. Proměnné ------------------------------------------------------------- */
:root {
    --npa-primary-base: #2563EB;
    --npa-primary-base-700: #1D4ED8;
    --npa-primary-base-deep: #0F172A;
    --npa-primary-base-900: #020617;
    --npa-accent: #0284C7;
    --npa-accent-600: #0369A1;
    --npa-accent-light: #7DD3FC;
    --npa-accent-soft: #E0F2FE;

    --npa-bg: #F3F5F9;
    --npa-surface: #FFFFFF;
    --npa-surface-2: #F8F9FC;
    --npa-text: #1B232E;
    --npa-text-2: #3A4452;
    --npa-muted: #626C7A;
    --npa-line: #E2E6EE;
    --npa-line-2: #CDD3DE;
    --npa-input-bg: #FFFFFF;
    --npa-hover: #F1F4FA;

    --npa-primary: var(--npa-primary-base);
    --npa-primary-hover: var(--npa-primary-base-deep);
    --npa-primary-soft: #E8EFFE;
    --npa-success: #1E7B45;   --npa-success-soft: #E6F4EC;
    --npa-danger:  #B3261E;   --npa-danger-soft:  #FCEBEA;
    --npa-warning: #9A6700;   --npa-warning-soft: #FFF4D6;
    --npa-info:    #0B6A8F;   --npa-info-soft:    #E3F2F8;

    --npa-sidebar-bg: var(--npa-primary-base-deep);
    --npa-sidebar-text: rgba(255, 255, 255, .78);
    --npa-sidebar-hover: rgba(255, 255, 255, .07);
    --npa-sidebar-active: rgba(125, 211, 252, .14);

    --npa-radius: 12px;
    --npa-radius-sm: 8px;
    --npa-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .06);
    --npa-shadow-lg: 0 12px 32px rgba(16, 24, 40, .14);
    --npa-focus: 0 0 0 3px rgba(2, 132, 199, .45);

    --npa-sidebar-w: 272px;
    --npa-sidebar-mini: 76px;
    --npa-topbar-h: 64px;
    --npa-font: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

html[data-theme="dark"] {
    --npa-bg: #0E1422;
    --npa-surface: #161E30;
    --npa-surface-2: #1B2438;
    --npa-text: #E6EAF2;
    --npa-text-2: #C9D0DD;
    --npa-muted: #9AA4B5;
    --npa-line: #263049;
    --npa-line-2: #34405C;
    --npa-input-bg: #111829;
    --npa-hover: #1F2A42;

    --npa-primary: #60A5FA;
    --npa-primary-hover: #93C5FD;
    --npa-primary-soft: #172554;
    --npa-success: #5BC98A;   --npa-success-soft: #14301F;
    --npa-danger:  #F0857D;   --npa-danger-soft:  #3A1A19;
    --npa-warning: #38BDF8;   --npa-warning-soft: #0C2A3D;
    --npa-info:    #5FC0E3;   --npa-info-soft:    #102D3A;

    --npa-sidebar-bg: #0A1020;
    --npa-shadow: 0 1px 2px rgba(0, 0, 0, .4);
    --npa-shadow-lg: 0 12px 32px rgba(0, 0, 0, .5);
    color-scheme: dark;
}

/* 2. Základ --------------------------------------------------------------- */
html { scroll-behavior: smooth; }
body.npa {
    margin: 0;
    font-family: var(--npa-font);
    font-size: 15px;
    line-height: 1.55;
    color: var(--npa-text);
    background: var(--npa-bg);
    -webkit-font-smoothing: antialiased;
}
.npa a { color: var(--npa-primary); }
.npa a:hover { color: var(--npa-primary-hover); }
.npa h1, .npa h2, .npa h3, .npa h4, .npa h5, .npa h6 { color: var(--npa-text); font-weight: 700; }
.npa hr { border-color: var(--npa-line); }
.npa ::selection { background: var(--npa-accent-light); color: #111; }
.npa :focus-visible { outline: none; box-shadow: var(--npa-focus); }
.npa .text-muted { color: var(--npa-muted) !important; }
.npa .text-dark { color: var(--npa-text) !important; }
.npa .text-primary { color: var(--npa-primary) !important; }
.npa .text-pink { color: var(--npa-accent) !important; }
.npa .bg-light { background-color: var(--npa-surface-2) !important; }
.npa .bg-white { background-color: var(--npa-surface) !important; }
.npa .border, .npa .border-bottom, .npa .border-top { border-color: var(--npa-line) !important; }

.npa-skip {
    position: fixed; left: 12px; top: -60px; z-index: 2000;
    padding: 10px 16px; border-radius: 0 0 8px 8px;
    background: var(--npa-accent); color: #111 !important; font-weight: 700;
    transition: top .15s;
}
.npa-skip:focus { top: 0; }

/* 3. Rozvržení ------------------------------------------------------------ */
.npa-sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 1040;
    width: var(--npa-sidebar-w);
    display: flex; flex-direction: column;
    background: var(--npa-sidebar-bg);
    background-image: radial-gradient(circle at 0 0, rgba(2, 132, 199, .16), transparent 45%);
    color: var(--npa-sidebar-text);
    transition: width .2s ease, transform .25s ease;
}
.npa-brand {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    height: var(--npa-topbar-h); padding: 0 14px 0 18px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    flex: none;
}
.npa-brand-link { display: flex; align-items: center; gap: 12px; min-width: 0; color: #fff !important; text-decoration: none !important; }
.npa-brand-logo { flex: none; width: 36px; height: 36px; }
.npa-brand-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.npa-brand-text strong { font-size: 14px; font-weight: 700; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.npa-brand-text small { font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--npa-accent-light); }
.npa-brand .npa-sidebar-close { display: none; color: #fff; }

.npa-nav-search { position: relative; margin: 14px 14px 6px; flex: none; }
.npa-nav-search i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); font-size: 13px; opacity: .55; }
.npa-nav-search input {
    width: 100%; height: 38px; padding: 0 12px 0 34px;
    border: 1px solid rgba(255, 255, 255, .12); border-radius: 10px;
    background: rgba(255, 255, 255, .06); color: #fff; font-size: 14px;
}
.npa-nav-search input::placeholder { color: rgba(255, 255, 255, .5); }
.npa-nav-search input:focus { outline: none; border-color: var(--npa-accent-light); box-shadow: var(--npa-focus); }

.npa-nav { flex: 1; overflow-y: auto; padding: 6px 10px 16px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent; }
.npa-nav-list, .npa-sub { list-style: none; margin: 0; padding: 0; }
.npa-nav-label {
    margin: 18px 10px 6px; font-size: 11px; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: rgba(255, 255, 255, .42);
}
.npa-nav-item { margin: 1px 0; }
.npa-nav-link {
    display: flex; align-items: center; gap: 12px; width: 100%;
    min-height: 42px; padding: 8px 12px;
    border: 0; border-radius: 10px; background: none;
    color: var(--npa-sidebar-text) !important; font-size: 14.5px; font-weight: 500; text-align: left;
    text-decoration: none !important; cursor: pointer;
    transition: background .15s, color .15s;
}
.npa-nav-link:hover { background: var(--npa-sidebar-hover); color: #fff !important; }
.npa-nav-icon { flex: none; width: 20px; text-align: center; font-size: 15px; opacity: .85; }
.npa-nav-text { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.npa-nav-chevron { flex: none; font-size: 11px; opacity: .6; transition: transform .2s; }
.npa-nav-item.is-open > .npa-nav-link .npa-nav-chevron { transform: rotate(180deg); }
.npa-nav-item.is-active > .npa-nav-link { background: var(--npa-sidebar-active); color: #fff !important; }
.npa-nav-item.is-active > .npa-nav-link .npa-nav-icon { color: var(--npa-accent-light); opacity: 1; }
.npa-sub { margin: 2px 0 6px 22px; padding-left: 12px; border-left: 1px solid rgba(255, 255, 255, .12); }
.npa-sub a {
    display: block; padding: 7px 10px; border-radius: 8px;
    color: rgba(255, 255, 255, .68) !important; font-size: 14px; text-decoration: none !important;
}
.npa-sub a:hover { color: #fff !important; background: var(--npa-sidebar-hover); }
.npa-sub a.is-active { color: #fff !important; font-weight: 600; background: var(--npa-sidebar-active); box-shadow: inset 3px 0 0 var(--npa-accent-light); }
.npa-ext { font-size: 10px; opacity: .6; }
.npa-nav-empty { padding: 12px; font-size: 14px; opacity: .6; }
.npa-nav-hit { background: rgba(125, 211, 252, .3); color: #fff; border-radius: 2px; }

.npa-sidebar-foot {
    flex: none; display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 12px 16px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: 12px; color: rgba(255,255,255,.5);
}
.npa-web-link { display: inline-flex; align-items: center; gap: 8px; color: var(--npa-accent-light) !important; font-weight: 600; font-size: 13px; }

.npa-backdrop { position: fixed; inset: 0; z-index: 1035; background: rgba(9, 15, 30, .5); backdrop-filter: blur(2px); }

.npa-shell { min-height: 100vh; margin-left: var(--npa-sidebar-w); display: flex; flex-direction: column; transition: margin-left .2s ease; }

.npa-topbar {
    position: sticky; top: 0; z-index: 1030;
    display: flex; align-items: center; gap: 8px;
    height: var(--npa-topbar-h); padding: 0 20px;
    background: color-mix(in srgb, var(--npa-surface) 88%, transparent);
    backdrop-filter: saturate(1.4) blur(10px);
    border-bottom: 1px solid var(--npa-line);
}
.npa-topbar-title { flex: 1; min-width: 0; font-weight: 700; font-size: 16px; color: var(--npa-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0; transition: opacity .2s; }
.npa-topbar-title.is-visible { opacity: 1; }
.npa-topbar-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.npa-icon-btn {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; padding: 0;
    border: 0; border-radius: 10px; background: none; color: var(--npa-text-2); font-size: 17px; cursor: pointer;
    transition: background .15s, color .15s;
}
.npa-icon-btn:hover { background: var(--npa-hover); color: var(--npa-text); }
.npa-menu-btn { display: none; }
.npa-dot { position: absolute; top: 9px; right: 10px; width: 9px; height: 9px; border-radius: 50%; background: #E5484D; box-shadow: 0 0 0 2px var(--npa-surface); }
.npa-dot[hidden] { display: none; }
.npa-ico-light { display: none; }
html[data-theme="dark"] .npa-ico-light { display: inline-block; }
html[data-theme="dark"] .npa-ico-dark { display: none; }

.npa-pill { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border-radius: 999px; font-size: 13.5px; font-weight: 600; text-decoration: none !important; }
.npa-pill-warn { background: var(--npa-warning-soft); color: var(--npa-warning) !important; }

.npa-user { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 4px 10px 4px 4px; border: 0; border-radius: 999px; background: none; color: var(--npa-text); cursor: pointer; }
.npa-user:hover { background: var(--npa-hover); }
.npa-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex: none; }
.npa-avatar-txt { display: inline-flex; align-items: center; justify-content: center; background: var(--npa-primary-base); color: #fff; font-weight: 700; }
.npa-user-name { font-weight: 600; font-size: 14px; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.npa-user-chev { font-size: 10px; color: var(--npa-muted); }
.npa-user-menu { min-width: 260px; }
.npa-jazyky { display: flex; flex-wrap: wrap; gap: 4px; padding: 4px 16px 8px; }
.npa-jazyk { display: inline-flex; padding: 4px; border-radius: 6px; border: 1px solid transparent; }
.npa-jazyk:hover { background: var(--npa-hover); }
.npa-jazyk.is-active { border-color: var(--npa-accent); }

.npa-notif { width: 340px; max-width: calc(100vw - 24px); padding: 0; overflow: hidden; }
.npa-notif-head { padding: 12px 16px; font-weight: 700; border-bottom: 1px solid var(--npa-line); }
.npa-notif-empty { margin: 0; padding: 22px 16px; color: var(--npa-muted); text-align: center; }
.npa-notif-item { display: flex !important; gap: 12px; align-items: flex-start; padding: 10px 16px !important; white-space: normal !important; border-bottom: 1px solid var(--npa-line); }
.npa-notif-item i { margin-top: 3px; color: var(--npa-muted); }
.npa-notif-item.is-unread { background: var(--npa-primary-soft); }
.npa-notif-item.is-unread i { color: var(--npa-primary); }
.npa-notif-title { display: block; font-weight: 500; color: var(--npa-text); }
.npa-notif-time { display: block; font-size: 12.5px; color: var(--npa-muted); }
.npa-notif-all { display: block; padding: 10px 16px; text-align: center; font-weight: 600; }
.npa-notif > :nth-last-child(2) { max-height: none; }

.npa-main { flex: 1; outline: none; }
.npa-footer { padding: 18px 28px 22px; font-size: 13px; color: var(--npa-muted); }
.npa-footer a { color: var(--npa-muted); text-decoration: underline; }

/* Zúžené menu (jen ikony) */
html.npa-mini .npa-sidebar { width: var(--npa-sidebar-mini); }
html.npa-mini .npa-shell { margin-left: var(--npa-sidebar-mini); }
html.npa-mini .npa-mini-btn i { transform: rotate(180deg); }
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-brand-text,
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-nav-text,
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-nav-chevron,
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-nav-label,
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-nav-search,
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-sub,
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-sidebar-foot span,
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-sidebar-foot small { display: none; }
html.npa-mini .npa-sidebar:not(:hover):not(:focus-within) .npa-nav-link { justify-content: center; padding: 8px; }
html.npa-mini .npa-sidebar:hover, html.npa-mini .npa-sidebar:focus-within { width: var(--npa-sidebar-w); box-shadow: var(--npa-shadow-lg); }

/* 4. Kompatibilita s focus2 ---------------------------------------------- */
.npa .content-body { padding: 24px 28px 8px; min-height: auto; margin: 0; }
.npa .content-body > .container-fluid { padding: 0; max-width: 1600px; margin: 0 auto; }
.npa .page-titles {
    display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
    gap: 8px 16px; margin: 0 0 22px !important; padding: 0; background: none; border: 0;
}
.npa .page-titles > [class*="col-"] { flex: 1 1 auto; max-width: none; width: auto; padding: 0 !important; margin: 0 !important; }
.npa .page-titles > [class*="col-"]:last-child { flex: 0 1 auto; }
.npa .welcome-text h4 { margin: 0; font-size: 24px; font-weight: 800; letter-spacing: -.01em; line-height: 1.25; color: var(--npa-text); }
.npa .welcome-text h4 i { color: var(--npa-accent); margin-right: 4px; font-size: .85em; }
.npa .welcome-text h4 i:empty { margin: 0; }
.npa .welcome-text span { display: block; margin: 4px 0 0 !important; color: var(--npa-muted); font-size: 14.5px; }
.npa .page-titles .breadcrumb { margin: 0; padding: 0; background: none; font-size: 13px; }
.npa .breadcrumb { background: none; padding: 0; margin-bottom: 0; }
.npa .breadcrumb-item, .npa .breadcrumb-item a { color: var(--npa-muted); }
.npa .breadcrumb-item a:hover { color: var(--npa-primary); }
.npa .breadcrumb-item.active { color: var(--npa-text-2); font-weight: 500; }
.npa .breadcrumb-item + .breadcrumb-item::before { content: "›"; color: var(--npa-line-2); }
.npa .form-body { padding: 0; }
.npa .form-actions { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--npa-line); display: flex; flex-wrap: wrap; gap: 8px; }
.npa .btn-xs { padding: 2px 8px; font-size: 12px; border-radius: 6px; }
.npa .btn-circle { border-radius: 50%; object-fit: cover; }
.npa .btn-circle-sm { width: 36px; height: 36px; }
.npa .btn-circle-md { width: 48px; height: 48px; }
.npa .stat-widget-one { display: flex; align-items: center; gap: 16px; }
.npa .stat-widget-one .fa-3x { font-size: 2em; color: var(--npa-accent) !important; }
.npa .stat-text { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: var(--npa-muted) !important; }
.npa .stat-digit { font-size: 26px; font-weight: 800; color: var(--npa-text); }
.npa .accordion__item { border: 1px solid var(--npa-line); border-radius: var(--npa-radius-sm); margin-bottom: 8px; overflow: hidden; background: var(--npa-surface); }
.npa .accordion__header { padding: 12px 16px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; font-weight: 600; }
.npa .accordion__header:hover { background: var(--npa-hover); }
.npa .accordion__body--text { padding: 12px 16px; border-top: 1px solid var(--npa-line); }
.npa .pulse-css { display: none; }
.npa #preloader { display: none !important; }

/* 5. Bootstrap komponenty ------------------------------------------------- */
/* karty */
.npa .card {
    background: var(--npa-surface); color: var(--npa-text);
    border: 1px solid var(--npa-line); border-radius: var(--npa-radius);
    box-shadow: var(--npa-shadow); margin-bottom: 24px;
}
.npa .card-header {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px;
    padding: 16px 20px; margin: 0;
    background: transparent; border-bottom: 1px solid var(--npa-line);
}
.npa .card-header:first-child { border-radius: calc(var(--npa-radius) - 1px) calc(var(--npa-radius) - 1px) 0 0; }
.npa .card-header.row > [class*="col-"] { padding: 0; flex: 1 1 auto; max-width: none; width: auto; }
.npa .card-header.row > [class*="col-"]:last-child { flex: 0 1 auto; flex-wrap: wrap; gap: 6px; }
.npa .card-title { margin: 0; font-size: 17px; font-weight: 700; color: var(--npa-text); text-transform: none; }
.npa .card-body { padding: 20px; }
.npa .card-footer { background: var(--npa-surface-2); border-top: 1px solid var(--npa-line); padding: 14px 20px; }
.npa .card-img-top { border-radius: calc(var(--npa-radius) - 1px) calc(var(--npa-radius) - 1px) 0 0; }

/* tlačítka */
.npa .btn { border-radius: var(--npa-radius-sm); font-weight: 600; font-size: 14px; padding: .45rem .95rem; transition: background .15s, border-color .15s, color .15s, box-shadow .15s; }
.npa .btn:focus, .npa .btn.focus { box-shadow: var(--npa-focus) !important; }
.npa .btn-sm { padding: .3rem .65rem; font-size: 13px; border-radius: 7px; }
.npa .btn-lg { padding: .65rem 1.3rem; font-size: 16px; border-radius: 10px; }
.npa .btn i + span, .npa .btn > i:first-child { margin-right: 2px; }
.npa .btn-primary { background: var(--npa-primary-base); border-color: var(--npa-primary-base); color: #fff; }
.npa .btn-primary:hover, .npa .btn-primary:not(:disabled):not(.disabled):active { background: var(--npa-primary-base-deep); border-color: var(--npa-primary-base-deep); color: #fff; }
html[data-theme="dark"] .npa .btn-primary { background: #1D4ED8; border-color: #1D4ED8; }
html[data-theme="dark"] .npa .btn-primary:hover { background: #3B82F6; border-color: #3B82F6; }
.npa .btn-secondary { background: var(--npa-surface-2); border-color: var(--npa-line-2); color: var(--npa-text); }
.npa .btn-secondary:hover { background: var(--npa-hover); border-color: var(--npa-line-2); color: var(--npa-text); }
.npa .btn-success { background: #1E7B45; border-color: #1E7B45; color: #fff; }
.npa .btn-success:hover { background: #17633a; border-color: #17633a; color: #fff; }
.npa .btn-danger { background: #B3261E; border-color: #B3261E; color: #fff; }
.npa .btn-danger:hover { background: #941f18; border-color: #941f18; color: #fff; }
.npa .btn-warning { background: var(--npa-accent); border-color: var(--npa-accent); color: #111; }
.npa .btn-warning:hover { background: var(--npa-accent-600); border-color: var(--npa-accent-600); color: #111; }
.npa .btn-info { background: #0B6A8F; border-color: #0B6A8F; color: #fff; }
.npa .btn-info:hover { background: #095673; border-color: #095673; color: #fff; }
.npa .btn-dark { background: #2A3342; border-color: #2A3342; color: #fff; }
/* tlačítka jako <a> (Zpět…) - bez barvy textu by vyhrálo .npa a { color: navy } a text byl nečitelný */
.npa .btn-dark:hover, .npa .btn-dark:focus { background: #1b2230; border-color: #1b2230; color: #fff; }
.npa .btn-light { background: var(--npa-surface-2); border-color: var(--npa-line); color: var(--npa-text); }
.npa .btn-light:hover { background: var(--npa-hover); color: var(--npa-text); }
.npa .btn-link { color: var(--npa-primary); font-weight: 600; }
.npa .btn-outline-primary { color: var(--npa-primary); border-color: color-mix(in srgb, var(--npa-primary) 45%, transparent); background: transparent; }
.npa .btn-outline-primary:hover, .npa .btn-outline-primary.active { background: var(--npa-primary-soft); color: var(--npa-primary); border-color: var(--npa-primary); }
.npa .btn-outline-secondary { color: var(--npa-text-2); border-color: var(--npa-line-2); background: var(--npa-surface); }
.npa .btn-outline-secondary:hover, .npa .btn-outline-secondary.active { background: var(--npa-hover); color: var(--npa-text); border-color: var(--npa-line-2); }
.npa .btn-outline-danger { color: var(--npa-danger); border-color: color-mix(in srgb, var(--npa-danger) 45%, transparent); }
.npa .btn-outline-danger:hover { background: var(--npa-danger-soft); color: var(--npa-danger); border-color: var(--npa-danger); }
.npa .btn-outline-success { color: var(--npa-success); border-color: color-mix(in srgb, var(--npa-success) 45%, transparent); }
.npa .btn-outline-success:hover { background: var(--npa-success-soft); color: var(--npa-success); border-color: var(--npa-success); }
.npa .btn-outline-warning { color: var(--npa-warning); border-color: color-mix(in srgb, var(--npa-warning) 45%, transparent); }
.npa .btn-outline-warning:hover { background: var(--npa-warning-soft); color: var(--npa-warning); }
.npa .btn-outline-dark { color: var(--npa-text); border-color: var(--npa-line-2); }
.npa .btn-outline-dark:hover { background: var(--npa-hover); color: var(--npa-text); }
.npa .btn-group > .btn { border-radius: 0; }
.npa .btn-group > .btn:first-child { border-radius: var(--npa-radius-sm) 0 0 var(--npa-radius-sm); }
.npa .btn-group > .btn:last-child { border-radius: 0 var(--npa-radius-sm) var(--npa-radius-sm) 0; }

/* formuláře */
.npa label, .npa .form-label { font-weight: 600; font-size: 14px; color: var(--npa-text-2); margin-bottom: 6px; }
.npa .form-check-label, .npa .custom-control-label { font-weight: 400; color: var(--npa-text); }
.npa .form-control, .npa .custom-select {
    min-height: 40px; border-radius: var(--npa-radius-sm);
    border: 1px solid var(--npa-line-2); background-color: var(--npa-input-bg); color: var(--npa-text);
    font-size: 14.5px; transition: border-color .15s, box-shadow .15s;
}
.npa textarea.form-control { min-height: 80px; }
.npa .form-control-sm { min-height: 32px; font-size: 13.5px; }
.npa .form-control:focus, .npa .custom-select:focus { border-color: var(--npa-accent); box-shadow: var(--npa-focus); background-color: var(--npa-input-bg); color: var(--npa-text); }
.npa .form-control::placeholder { color: var(--npa-muted); opacity: .8; }
.npa .form-control:disabled, .npa .form-control[readonly] { background-color: var(--npa-surface-2); color: var(--npa-muted); }
.npa .form-control-file { font-size: 14px; }
.npa .form-text { color: var(--npa-muted); font-size: 13px; }
.npa .form-group { margin-bottom: 1.1rem; }
.npa .input-group-text { background: var(--npa-surface-2); border-color: var(--npa-line-2); color: var(--npa-muted); }
.npa .input-group > .form-control:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.npa .input-group-append .btn, .npa .input-group-append .input-group-text { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.npa .input-group-prepend .btn, .npa .input-group-prepend .input-group-text { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.npa .custom-control-input:checked ~ .custom-control-label::before { background-color: var(--npa-primary-base); border-color: var(--npa-primary-base); }
html[data-theme="dark"] .npa .custom-control-input:checked ~ .custom-control-label::before { background-color: #1D4ED8; border-color: #1D4ED8; }
.npa .custom-control-input:focus ~ .custom-control-label::before { box-shadow: var(--npa-focus); }
.npa .custom-control-label::before { background-color: var(--npa-input-bg); border-color: var(--npa-line-2); }
.npa .custom-switch .custom-control-label::after { background-color: var(--npa-muted); }
.npa .custom-switch .custom-control-input:checked ~ .custom-control-label::after { background-color: #fff; }
.npa .form-check-input { accent-color: var(--npa-primary-base); }
.npa .is-invalid { border-color: var(--npa-danger) !important; }
.npa .invalid-feedback { color: var(--npa-danger); }
.npa fieldset { margin-bottom: 18px; }
.npa legend { font-size: 15px; font-weight: 700; color: var(--npa-text); padding-bottom: 6px; margin-bottom: 14px; border-bottom: 1px solid var(--npa-line); }

/* tabulky */
.npa .table { color: var(--npa-text); margin-bottom: 0; }
.npa .table th, .npa .table td { border-top: 1px solid var(--npa-line); vertical-align: middle; padding: .7rem .75rem; }
.npa .table thead th {
    border-bottom: 1px solid var(--npa-line); border-top: 0;
    font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    color: var(--npa-muted); background: var(--npa-surface-2); white-space: nowrap;
}
.npa .table-sm th, .npa .table-sm td { padding: .45rem .6rem; }
.npa .table-hover tbody tr:hover { background: var(--npa-hover); color: var(--npa-text); }
.npa .table-striped tbody tr:nth-of-type(odd) { background: color-mix(in srgb, var(--npa-surface-2) 70%, transparent); }
.npa .table-bordered, .npa .table-bordered th, .npa .table-bordered td { border-color: var(--npa-line); }
.npa .table-responsive { border-radius: var(--npa-radius-sm); }
.npa .table .thead-light th, .npa .table .thead-dark th { background: var(--npa-surface-2); color: var(--npa-muted); border-color: var(--npa-line); }

/* odznaky */
.npa .badge { font-weight: 600; font-size: 12px; padding: .35em .65em; border-radius: 999px; letter-spacing: .01em; }
.npa .badge-primary { background: var(--npa-primary-soft); color: var(--npa-primary); }
.npa .badge-secondary { background: var(--npa-surface-2); color: var(--npa-text-2); border: 1px solid var(--npa-line); }
.npa .badge-success { background: var(--npa-success-soft); color: var(--npa-success); }
.npa .badge-danger { background: var(--npa-danger-soft); color: var(--npa-danger); }
.npa .badge-warning { background: var(--npa-warning-soft); color: var(--npa-warning); }
.npa .badge-info { background: var(--npa-info-soft); color: var(--npa-info); }
.npa .badge-light { background: var(--npa-surface-2); color: var(--npa-text-2); }
.npa .badge-dark { background: #2A3342; color: #fff; }

/* upozornění */
.npa .alert { border-radius: var(--npa-radius-sm); border: 1px solid transparent; padding: .8rem 1rem; }
.npa .alert-success { background: var(--npa-success-soft); border-color: color-mix(in srgb, var(--npa-success) 30%, transparent); color: var(--npa-success); }
.npa .alert-danger { background: var(--npa-danger-soft); border-color: color-mix(in srgb, var(--npa-danger) 30%, transparent); color: var(--npa-danger); }
.npa .alert-warning { background: var(--npa-warning-soft); border-color: color-mix(in srgb, var(--npa-warning) 30%, transparent); color: var(--npa-warning); }
.npa .alert-info { background: var(--npa-info-soft); border-color: color-mix(in srgb, var(--npa-info) 30%, transparent); color: var(--npa-info); }
.npa .alert-primary { background: var(--npa-primary-soft); color: var(--npa-primary); }
.npa .alert-secondary, .npa .alert-light { background: var(--npa-surface-2); color: var(--npa-text-2); border-color: var(--npa-line); }
.npa .alert a, .npa .alert .alert-link { color: inherit; text-decoration: underline; font-weight: 700; }

/* záložky, menu, stránkování, modální okna */
.npa .nav-tabs { border-bottom: 1px solid var(--npa-line); gap: 4px; }
.npa .nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; border-radius: 0; color: var(--npa-muted); font-weight: 600; padding: .7rem 1rem; }
.npa .nav-tabs .nav-link:hover { color: var(--npa-text); border-bottom-color: var(--npa-line-2); }
.npa .nav-tabs .nav-link.active, .npa .nav-tabs .nav-item.show .nav-link { color: var(--npa-primary); background: none; border-bottom-color: var(--npa-accent); }
.npa .nav-pills .nav-link { border-radius: var(--npa-radius-sm); color: var(--npa-text-2); }
.npa .nav-pills .nav-link.active { background: var(--npa-primary-base); color: #fff; }
.npa .tab-content { padding-top: 16px; }
.npa .dropdown-menu {
    border: 1px solid var(--npa-line); border-radius: var(--npa-radius); box-shadow: var(--npa-shadow-lg);
    background: var(--npa-surface); color: var(--npa-text); padding: 6px; font-size: 14px;
}
.npa .dropdown-item { border-radius: 8px; padding: .5rem .75rem; color: var(--npa-text); }
.npa .dropdown-item:hover, .npa .dropdown-item:focus { background: var(--npa-hover); color: var(--npa-text); }
.npa .dropdown-item.text-danger { color: var(--npa-danger) !important; }
.npa .dropdown-item i { color: var(--npa-muted); margin-right: 6px; }
.npa .dropdown-divider { border-color: var(--npa-line); }
.npa .dropdown-header { color: var(--npa-muted); font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; }
.npa .page-link { color: var(--npa-primary); background: var(--npa-surface); border-color: var(--npa-line); }
.npa .page-item.active .page-link { background: var(--npa-primary-base); border-color: var(--npa-primary-base); color: #fff; }
.npa .page-item.disabled .page-link { background: var(--npa-surface); color: var(--npa-muted); border-color: var(--npa-line); }
.npa .pagination { gap: 4px; }
.npa .page-item .page-link { border-radius: 8px !important; }
.npa .modal-content { border: 0; border-radius: 16px; background: var(--npa-surface); color: var(--npa-text); box-shadow: var(--npa-shadow-lg); }
.npa .modal-header { border-bottom: 1px solid var(--npa-line); padding: 16px 20px; }
.npa .modal-footer { border-top: 1px solid var(--npa-line); padding: 12px 20px; }
.npa .modal-title { font-weight: 700; }
.npa .close { color: var(--npa-text); text-shadow: none; opacity: .6; }
.npa .modal-backdrop.show { opacity: .55; }
.npa .list-group-item { background: var(--npa-surface); border-color: var(--npa-line); color: var(--npa-text); }
.npa .progress { background: var(--npa-surface-2); border-radius: 999px; height: 8px; }
.npa .progress-bar { background: var(--npa-primary-base); }
.npa .popover, .npa .tooltip-inner { border-radius: 8px; }

/* výběr více položek (select multiple) */
.npa select[multiple].form-control option { padding: 6px 8px; border-radius: 6px; }
.npa select[multiple].form-control option:checked { background: var(--npa-primary-soft) linear-gradient(0deg, var(--npa-primary-soft), var(--npa-primary-soft)); color: var(--npa-primary); font-weight: 600; }

/* 6. Pluginy -------------------------------------------------------------- */
/* DataTables */
.npa .dataTables_wrapper { color: var(--npa-text); font-size: 14px; }
.npa .dataTables_wrapper .dataTables_length select,
.npa .dataTables_wrapper .dataTables_filter input {
    height: 36px; padding: 0 10px; border: 1px solid var(--npa-line-2); border-radius: var(--npa-radius-sm);
    background: var(--npa-input-bg); color: var(--npa-text);
}
.npa .dataTables_wrapper .dataTables_filter input:focus { outline: none; border-color: var(--npa-accent); box-shadow: var(--npa-focus); }
.npa .dataTables_wrapper .dataTables_length, .npa .dataTables_wrapper .dataTables_filter { margin-bottom: 12px; }
.npa .dataTables_wrapper .dataTables_info { color: var(--npa-muted); padding-top: 14px; }
.npa .dataTables_wrapper .dataTables_paginate { padding-top: 10px; }
.npa .dataTables_wrapper .dataTables_paginate .paginate_button {
    border: 1px solid var(--npa-line) !important; border-radius: 8px; margin-left: 4px; padding: .3em .75em;
    background: var(--npa-surface) !important; color: var(--npa-text) !important;
}
.npa .dataTables_wrapper .dataTables_paginate .paginate_button:hover { background: var(--npa-hover) !important; color: var(--npa-text) !important; }
.npa .dataTables_wrapper .dataTables_paginate .paginate_button.current,
.npa .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { background: var(--npa-primary-base) !important; border-color: var(--npa-primary-base) !important; color: #fff !important; }
.npa .dataTables_wrapper .dataTables_paginate .paginate_button.disabled { opacity: .45; }
.npa table.dataTable { border-collapse: collapse !important; }
.npa table.dataTable thead th, .npa table.dataTable thead td { border-bottom: 1px solid var(--npa-line); padding: 10px 18px 10px 10px; }
.npa table.dataTable tbody tr { background: transparent; }
.npa table.dataTable tbody td { border-top: 1px solid var(--npa-line); }
.npa table.dataTable.no-footer { border-bottom: 1px solid var(--npa-line); }
.npa table.dataTable tbody tr.selected { background: var(--npa-primary-soft); }
.npa .dt-buttons { display: inline-flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.npa .dt-buttons .dt-button, .npa .dt-buttons .btn {
    margin: 0; padding: .35rem .8rem; border-radius: var(--npa-radius-sm) !important;
    border: 1px solid var(--npa-line-2); background: var(--npa-surface); color: var(--npa-text-2); font-size: 13px; font-weight: 600;
}
.npa .dt-buttons .dt-button:hover { background: var(--npa-hover) !important; border-color: var(--npa-line-2) !important; color: var(--npa-text) !important; }

/* Select2 */
.npa .select2-container--default .select2-selection--single,
.npa .select2-container--default .select2-selection--multiple {
    min-height: 40px; border: 1px solid var(--npa-line-2); border-radius: var(--npa-radius-sm); background: var(--npa-input-bg);
}
.npa .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 38px; color: var(--npa-text); padding-left: 12px; }
.npa .select2-container--default .select2-selection--single .select2-selection__arrow { height: 38px; }
.npa .select2-container--default.select2-container--focus .select2-selection--multiple,
.npa .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--npa-accent); box-shadow: var(--npa-focus); }
.npa .select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--npa-primary-soft); border: 0; border-radius: 6px; color: var(--npa-primary); padding: 2px 8px; }
.npa .select2-dropdown { border-color: var(--npa-line-2); border-radius: var(--npa-radius-sm); background: var(--npa-surface); color: var(--npa-text); overflow: hidden; }
.npa .select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--npa-primary-base); }
.npa .select2-container--default .select2-search--dropdown .select2-search__field { border-color: var(--npa-line-2); border-radius: 6px; background: var(--npa-input-bg); color: var(--npa-text); }
.npa .select2-container--default .select2-results__option[aria-selected=true] { background: var(--npa-hover); }

/* SweetAlert2 / toastr */
.npa .swal2-popup { border-radius: 16px; font-family: var(--npa-font); background: var(--npa-surface); color: var(--npa-text); }
.npa .swal2-title { color: var(--npa-text); }
.npa .swal2-styled.swal2-confirm { background: var(--npa-primary-base) !important; border-radius: var(--npa-radius-sm); }
.npa .swal2-styled.swal2-cancel { border-radius: var(--npa-radius-sm); }
.npa .swal2-styled:focus { box-shadow: var(--npa-focus) !important; }
.npa #toast-container > div { border-radius: 10px; box-shadow: var(--npa-shadow-lg); opacity: .98; }
.npa #toast-container > .toast-success { background-color: #1E7B45; }
.npa #toast-container > .toast-error { background-color: #B3261E; }
.npa #toast-container > .toast-info { background-color: var(--npa-primary-base); }
.npa #toast-container > .toast-warning { background-color: #9A6700; }

/* Nestable (řazení menu/stránek) */
.npa .dd-handle { border-color: var(--npa-line); border-radius: var(--npa-radius-sm); background: var(--npa-surface); color: var(--npa-text); height: auto; padding: 8px 12px; }
.npa .dd-handle:hover { background: var(--npa-hover); color: var(--npa-primary); }
.npa .dd-placeholder { border-color: var(--npa-accent); background: var(--npa-accent-soft); border-radius: var(--npa-radius-sm); }

/* CKEditor 5 v tmavém režimu – editor necháváme světlý kvůli věrnosti obsahu */
html[data-theme="dark"] .npa .ck-editor__editable { color: #1B232E; }

/* 7. Přihlášení ----------------------------------------------------------- */
body.npa-login { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, 520px); background: var(--npa-surface); }
.npa-login-brand {
    position: relative; overflow: hidden;
    display: flex; flex-direction: column; justify-content: space-between; gap: 32px;
    padding: 48px 56px; color: #fff;
    background: var(--npa-primary-base-deep);
    background-image: radial-gradient(circle at 15% 10%, rgba(2, 132, 199, .35), transparent 45%), radial-gradient(circle at 100% 100%, rgba(29, 78, 216, .9), transparent 60%);
}
.npa-login-brand::after { content: ""; position: absolute; right: -160px; bottom: -160px; width: 520px; height: 520px; border-radius: 50%; border: 80px solid rgba(255,255,255,.04); }
.npa-login-logo { display: flex; align-items: center; gap: 14px; position: relative; z-index: 1; }
.npa-login-logo img { width: 52px; height: 52px; }
.npa-login-logo strong { display: block; font-size: 18px; }
.npa-login-logo small { display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--npa-accent-light); }
.npa-login-claim { position: relative; z-index: 1; max-width: 520px; }
.npa-login-claim h1 { color: #fff; font-size: clamp(30px, 3.6vw, 46px); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; margin: 0 0 16px; }
.npa-login-claim p { margin: 0; font-size: 17px; color: rgba(255,255,255,.82); }
.npa-login-foot { position: relative; z-index: 1; font-size: 13px; color: rgba(255,255,255,.55); }
.npa-login-form { display: flex; align-items: center; justify-content: center; padding: 40px 28px; background: var(--npa-surface); }
.npa-login-form .authincation, .npa-login-form .authincation > .container-fluid,
.npa-login-form .authincation .row { height: auto !important; min-height: 0; margin: 0; padding: 0; display: block; width: 100%; }
.npa-login-form .authincation { max-width: 400px; margin: 0 auto; }
.npa-login-form .authincation [class*="col-"] { max-width: 100%; flex: none; padding: 0; width: 100%; }
.npa-login-form .authincation-content { background: none; box-shadow: none; border: 0; }
.npa-login-form .auth-form { padding: 0; }
.npa-login-form #logo, .npa-login-form .auth-form > a:first-child { display: none; }
.npa-login-form .auth-form h4 { font-size: 26px; font-weight: 800; text-align: left !important; margin-bottom: 8px !important; color: var(--npa-text); }
.npa-login-form .auth-form h4:first-of-type br { display: none; }
.npa-login-form .auth-form h4:first-of-type:has(#logo) { display: none; }
.npa-login-form .form-control { min-height: 48px; font-size: 15.5px; }
.npa-login-form .btn-access { min-height: 50px; font-size: 16px; border-radius: 10px; }
.npa-login-form .text-dark, .npa-login-form h6 { color: var(--npa-text) !important; }
.npa-login-intro { margin: 0 0 24px; color: var(--npa-muted); }

/* 8. Nástěnka ------------------------------------------------------------- */
.npa-dash-hello { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.npa-dash-hello h1 { margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -.01em; }
.npa-dash-hello p { margin: 4px 0 0; color: var(--npa-muted); }
.npa-dash-quick { display: flex; flex-wrap: wrap; gap: 8px; }
.npa-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; margin-bottom: 24px; }
.npa-kpi {
    position: relative; display: flex; gap: 14px; align-items: flex-start;
    padding: 18px; border-radius: var(--npa-radius); border: 1px solid var(--npa-line);
    background: var(--npa-surface); box-shadow: var(--npa-shadow); color: var(--npa-text) !important; text-decoration: none !important;
    transition: transform .15s, box-shadow .15s, border-color .15s;
}
a.npa-kpi:hover { transform: translateY(-2px); box-shadow: var(--npa-shadow-lg); border-color: var(--npa-line-2); }
.npa-kpi-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--npa-primary-soft); color: var(--npa-primary); font-size: 18px; }
.npa-kpi.is-warn .npa-kpi-ico { background: var(--npa-warning-soft); color: var(--npa-warning); }
.npa-kpi.is-ok .npa-kpi-ico { background: var(--npa-success-soft); color: var(--npa-success); }
.npa-kpi.is-gold .npa-kpi-ico { background: var(--npa-accent-soft); color: var(--npa-accent); }
html[data-theme="dark"] .npa-kpi.is-gold .npa-kpi-ico { background: #0C2A3D; color: var(--npa-accent-light); }
.npa-kpi-num { display: block; font-size: 28px; font-weight: 800; line-height: 1.1; }
.npa-kpi-label { display: block; font-size: 13.5px; color: var(--npa-muted); font-weight: 500; }
.npa-kpi-sub { display: block; margin-top: 4px; font-size: 12.5px; color: var(--npa-muted); }
.npa-kpi-badge { position: absolute; top: 14px; right: 14px; }
.npa-dash-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
.npa-dash-grid > .card { margin: 0; }
.npa-span-8 { grid-column: span 8; }
.npa-span-6 { grid-column: span 6; }
.npa-span-4 { grid-column: span 4; }
.npa-span-12 { grid-column: span 12; }
.npa-list { list-style: none; margin: 0; padding: 0; }
.npa-list li { display: flex; align-items: center; gap: 14px; padding: 12px 20px; border-top: 1px solid var(--npa-line); }
.npa-list li:first-child { border-top: 0; }
.npa-list-date {
    flex: none; width: 52px; text-align: center; padding: 6px 0; border-radius: 10px;
    background: var(--npa-surface-2); border: 1px solid var(--npa-line); line-height: 1.05;
}
.npa-list-date b { display: block; font-size: 19px; font-weight: 800; color: var(--npa-text); }
.npa-list-date span { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--npa-accent); letter-spacing: .04em; }
.npa-list-main { flex: 1; min-width: 0; }
.npa-list-main a, .npa-list-main strong { display: block; font-weight: 600; color: var(--npa-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.npa-list-main a:hover { color: var(--npa-primary); }
.npa-list-main small { display: block; color: var(--npa-muted); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.npa-list-side { flex: none; text-align: right; font-size: 13px; color: var(--npa-muted); }
.npa-meter { width: 80px; height: 6px; border-radius: 999px; background: var(--npa-surface-2); overflow: hidden; margin-top: 4px; margin-left: auto; }
.npa-meter span { display: block; height: 100%; background: var(--npa-success); border-radius: inherit; }
.npa-meter.is-malo span { background: var(--npa-accent); }
.npa-meter.is-plno span { background: var(--npa-danger); }
.npa-empty { padding: 28px 20px; text-align: center; color: var(--npa-muted); }
.npa-empty i { display: block; font-size: 26px; margin-bottom: 8px; opacity: .5; }
.npa-card-link { font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.npa-banner { display: flex; gap: 12px; align-items: center; padding: 12px 16px; margin-bottom: 20px; border-radius: var(--npa-radius); background: var(--npa-warning-soft); color: var(--npa-warning); font-weight: 500; }
.npa-activity li { align-items: flex-start; }
.npa-activity .npa-avatar-txt { width: 32px; height: 32px; font-size: 13px; }

/* Co je nového + verze modulů (nástěnka) */
.npa-zmeny li { align-items: flex-start; }
.npa-zmena-typ { flex: 0 0 auto; min-width: 74px; text-align: center; margin-top: 2px; }
.npa-zmena-main { flex: 1 1 auto; min-width: 0; }
.npa-zmena-main strong { display: block; color: var(--npa-text); line-height: 1.35; }
.npa-zmena-main p { margin: 4px 0 0; color: var(--npa-text-2); font-size: 13.5px; line-height: 1.5; }
.npa-zmena-meta { display: block; margin-top: 4px; font-size: 12px; color: var(--npa-muted); }
.npa-zmena-novy { display: none; margin-left: 6px; vertical-align: 1px; background: var(--npa-accent); color: #111; }
.npa-zmeny li.is-novy .npa-zmena-novy { display: inline-block; }
.npa-zmeny li.is-novy { background: color-mix(in srgb, var(--npa-accent) 7%, transparent); }
.npa-zmeny-starsi > summary { cursor: pointer; padding: 12px 20px; border-top: 1px solid var(--npa-line); font-weight: 600; font-size: 13.5px; color: var(--npa-primary); list-style: none; }
.npa-zmeny-starsi > summary::-webkit-details-marker { display: none; }
.npa-zmeny-starsi[open] > summary { border-bottom: 1px solid var(--npa-line); }
.npa-moduly li { padding: 9px 20px; gap: 12px; }
.npa-moduly i { width: 18px; text-align: center; color: var(--npa-muted); }
.npa-moduly a { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--npa-text); font-weight: 500; }
.npa-verze { flex: 0 0 auto; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; padding: 2px 8px; border-radius: 999px; background: var(--npa-surface-2); color: var(--npa-text-2); border: 1px solid var(--npa-line); }
.npa-verze.is-update { background: var(--npa-accent-soft); color: #0C4A6E; border-color: var(--npa-accent); }
@media (max-width: 575.98px) { .npa-zmena-typ { min-width: 0; } .npa-zmeny li { flex-wrap: wrap; gap: 6px 12px; } .npa-zmena-main { flex-basis: 100%; } }

/* 9. Responzivita, tisk, omezení pohybu ---------------------------------- */
@media (max-width: 1199.98px) {
    .npa-span-8, .npa-span-4, .npa-span-6 { grid-column: span 12; }
}
@media (max-width: 991.98px) {
    .npa-sidebar { transform: translateX(-100%); width: min(86vw, var(--npa-sidebar-w)) !important; box-shadow: var(--npa-shadow-lg); }
    html.npa-menu-open .npa-sidebar { transform: none; }
    html.npa-menu-open { overflow: hidden; }
    .npa-shell, html.npa-mini .npa-shell { margin-left: 0; }
    .npa-menu-btn { display: inline-flex; }
    .npa-mini-btn { display: none; }
    .npa-brand .npa-sidebar-close { display: inline-flex; }
    html.npa-mini .npa-sidebar .npa-brand-text, html.npa-mini .npa-sidebar .npa-nav-text,
    html.npa-mini .npa-sidebar .npa-nav-label, html.npa-mini .npa-sidebar .npa-nav-search { display: revert; }
    .npa-topbar { padding: 0 10px; }
    .npa .content-body { padding: 18px 16px 4px; }
    .npa-footer { padding: 14px 16px 18px; }
    body.npa-login { grid-template-columns: 1fr; }
    .npa-login-brand { padding: 28px 24px; gap: 18px; }
    .npa-login-claim h1 { font-size: 28px; }
    .npa-login-claim p, .npa-login-foot { display: none; }
}
@media (max-width: 575.98px) {
    .npa .welcome-text h4 { font-size: 20px; }
    .npa .card-header { padding: 14px 16px; }
    .npa .card-body { padding: 16px; }
    .npa-list li { padding: 12px 16px; }
    .npa-list-main a, .npa-list-main strong, .npa-list-main small { white-space: normal; }
    .npa-kpi-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .npa-kpi { padding: 14px; flex-direction: column; gap: 10px; }
    .npa-kpi-num { font-size: 24px; }
    .npa .dataTables_wrapper .dataTables_filter, .npa .dataTables_wrapper .dataTables_length { float: none; text-align: left; }
    .npa .dataTables_wrapper .dataTables_filter input { width: 100%; margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .npa *, .npa *::before, .npa *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media print {
    .npa-sidebar, .npa-topbar, .npa-footer, .npa-backdrop, .npa-skip { display: none !important; }
    .npa-shell { margin: 0 !important; }
    .npa .card { box-shadow: none; border-color: #ccc; break-inside: avoid; }
    body.npa { background: #fff; }
}

/* 10. NepriNET – přepínač spravovaného webu v horní liště ---------------- */
.npa-web-switch { margin-left: .25rem; min-width: 0; }
.npa-web-switch-btn {
    display: inline-flex; align-items: center; gap: .5rem; max-width: 100%;
    height: 40px; padding: 0 .875rem; border: 1px solid var(--npa-line);
    border-radius: 999px; background: var(--npa-surface-2); color: var(--npa-text);
    font: 500 .9rem/1 var(--npa-font); cursor: pointer; transition: background .15s, border-color .15s;
}
.npa-web-switch-btn:hover { background: var(--npa-hover); border-color: var(--npa-line-2); }
.npa-web-switch-btn:focus-visible { outline: none; box-shadow: var(--npa-focus); }
.npa-web-switch-btn .fa-globe { color: var(--npa-accent); }
.npa-web-switch-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.npa-web-switch-chev { font-size: .7rem; color: var(--npa-muted); }
.npa-web-switch-menu { min-width: 260px; max-height: 70vh; overflow-y: auto; }
.npa-web-switch-menu .dropdown-item { display: flex; align-items: center; gap: .5rem; }
.npa-web-switch-menu .dropdown-item.active,
.npa-web-switch-menu .dropdown-item:active { background: var(--npa-primary-soft); color: var(--npa-primary); }
.npa-web-switch-menu .fa-circle { opacity: .35; font-size: .7rem; }
@media (max-width: 575.98px) {
    .npa-web-switch-name { max-width: 110px; }
    .npa-web-switch-btn { padding: 0 .625rem; }
}

/* Zvýrazněné řádky tabulek (table-info / -active …) čitelně i v tmavém režimu */
html[data-theme="dark"] .table-info, html[data-theme="dark"] .table-info > td, html[data-theme="dark"] .table-info > th,
html[data-theme="dark"] .table-active, html[data-theme="dark"] .table-active > td, html[data-theme="dark"] .table-active > th {
    background-color: var(--npa-primary-soft) !important; color: var(--npa-text) !important;
}
html[data-theme="dark"] .table-info .text-muted, html[data-theme="dark"] .table-info small { color: var(--npa-muted) !important; }
