/* ============================================================
   EESA — Plan Wydań | style.css
   Wydzielone z index.html, etap 1 refaktoryzacji.
   Logika aplikacji bez zmian.
   ============================================================ */

/* ══════════════════════════════════════════════
           EESA — Design System  |  Elektrometal Energetyka SA
           Granat: #003366  Akcent: #E8700A  Jasny: #EEF3FA
        ══════════════════════════════════════════════ */
        :root {
            --ee-navy:      #003366;
            --ee-navy-mid:  #004080;
            --ee-navy-lt:   #0A5299;
            --ee-orange:    #E8700A;
            --ee-orange-lt: #F47920;
            --ee-orange-bg: #FEF3E9;
            --ee-bg:        #EDF1F9;
            --ee-card:      #FFFFFF;
            --ee-border:    #DDE6F2;
            --ee-text:      #0D1F3C;
            --ee-muted:     #6B7A99;
            --ee-light:     #F4F7FD;
            --ee-shadow-sm: 0 1px 3px rgba(0,31,68,0.07), 0 1px 2px rgba(0,31,68,0.04);
            --ee-shadow-md: 0 4px 14px rgba(0,31,68,0.10), 0 2px 4px rgba(0,31,68,0.04);
            --ee-shadow-lg: 0 12px 36px rgba(0,31,68,0.14), 0 4px 8px rgba(0,31,68,0.06);
            --ee-radius:    13px;
        }

        * { font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif; box-sizing: border-box; }
        body {
            background: #E8EEF8;
            background-image: radial-gradient(ellipse at 20% 0%, rgba(0,51,102,0.07) 0%, transparent 60%),
                              radial-gradient(ellipse at 80% 100%, rgba(232,112,10,0.05) 0%, transparent 50%);
            min-height: 100vh;
            margin: 0; color: var(--ee-text);
        }

        /* ── LOGIN ─────────────────────────────────── */
        #widokLogowania {
            background: linear-gradient(135deg, #001F44 0%, #003366 60%, #0A5299 100%);
            z-index: 1055; position: fixed; inset: 0;
            display: none; align-items: center; justify-content: center;
        }
        #widokLogowania .login-card {
            background: white; border-radius: 20px;
            padding: 44px 40px; width: 390px;
            box-shadow: 0 32px 90px rgba(0,0,0,0.45);
        }
        .login-logo {
            display: flex; align-items: center; gap: 10px;
            margin-bottom: 6px;
        }
        .login-logo-icon {
            width: 40px; height: 40px;
            background: var(--ee-orange);
            border-radius: 8px;
            display: flex; align-items: center; justify-content: center;
            font-size: 1.1rem; font-weight: 900; color: white; letter-spacing: -1px;
        }
        .login-logo-text { font-size: 1.1rem; font-weight: 700; color: var(--ee-navy); letter-spacing: -0.3px; }
        .login-logo-text span { color: var(--ee-orange); }
        .login-sub { font-size: 0.82rem; color: var(--ee-muted); margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px solid var(--ee-border); }
        .login-label { font-size: 0.75rem; font-weight: 600; color: var(--ee-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 5px; }
        #widokLogowania .form-control { border-color: var(--ee-border); border-radius: 8px; height: 40px; font-size: 0.9rem; }
        #widokLogowania .form-control:focus { border-color: var(--ee-navy); box-shadow: 0 0 0 3px rgba(0,51,102,0.12); }
        #widokLogowania .btn-primary { background: var(--ee-navy); border-color: var(--ee-navy); border-radius: 8px; font-weight: 600; height: 42px; }
        #widokLogowania .btn-primary:hover { background: var(--ee-navy-mid); }
        .login-footer { margin-top: 20px; text-align: center; font-size: 0.72rem; color: #b0bbd0; }

        /* ── SPINNER ───────────────────────────────── */
        #globalSpinner {
            display: none; position: fixed; inset: 0;
            background: rgba(255,255,255,0.7); backdrop-filter: blur(2px);
            z-index: 9998; align-items: center; justify-content: center;
        }
        .spinner-border { color: var(--ee-orange) !important; }

        /* ── TOASTS ────────────────────────────────── */
        #toastContainer {
            position: fixed; bottom: 1.5rem; right: 1.5rem;
            z-index: 9999; display: flex; flex-direction: column;
            gap: 8px; min-width: 300px;
        }

        /* ── NAVBAR ────────────────────────────────── */
        .app-nav {
            background: linear-gradient(110deg, #001530 0%, #002558 50%, #003878 100%);
            border-bottom: 3px solid var(--ee-orange);
            padding: 0 24px; height: 62px;
            display: flex; align-items: center; gap: 14px;
            position: sticky; top: 0; z-index: 100;
            box-shadow: 0 3px 24px rgba(0,0,0,0.35);
        }
        .nav-brand {
            display: flex; align-items: center; gap: 8px;
            color: white; font-size: 1rem; font-weight: 700;
            white-space: nowrap; letter-spacing: -0.2px;
        }
        .nav-brand-icon {
            width: 28px; height: 28px; background: var(--ee-orange);
            border-radius: 5px; display: flex; align-items: center;
            justify-content: center; font-size: 0.75rem; font-weight: 900;
            color: white; letter-spacing: -1px; flex-shrink: 0;
        }
        .nav-brand-name { color: white; }
        .nav-brand-name span { color: var(--ee-orange); }
        .nav-divider { width: 1px; height: 22px; background: rgba(255,255,255,0.15); flex-shrink: 0; }
        .nav-title { color: rgba(255,255,255,0.55); font-size: 0.82rem; white-space: nowrap; }
        .nav-spacer { flex: 1; }
        #infoUzytkownika { color: rgba(255,255,255,0.6); font-size: 0.78rem; white-space: nowrap; }
        .btn-nav {
            font-size: 0.78rem; border-color: rgba(255,255,255,0.18);
            color: rgba(255,255,255,0.75); padding: 4px 11px;
            border-radius: 6px; background: transparent;
        }
        .btn-nav:hover { background: rgba(255,255,255,0.1); color: white; border-color: rgba(255,255,255,0.35); }

        /* Badge zmian */
        .badge-zmiany {
            display: none; background: var(--ee-orange); color: white;
            border-radius: 10px; font-size: 0.65rem; font-weight: 700;
            padding: 1px 6px; margin-left: 4px; vertical-align: middle;
            animation: pulse-badge 1.5s ease-in-out infinite;
        }
        @keyframes pulse-badge { 0%,100%{opacity:1} 50%{opacity:.55} }

        /* Blokada */
        .lock-badge {
            display: inline-flex; align-items: center; gap: 3px;
            background: #fef9c3; color: #92400e; border: 1px solid #fde68a;
            border-radius: 5px; font-size: 0.65rem; font-weight: 600;
            padding: 1px 6px; white-space: nowrap;
        }

        /* ── LOG ───────────────────────────────────── */
        .log-row { display:flex; gap:12px; padding:8px 0; border-bottom:0.5px solid #f1f5f9; font-size:0.82rem; align-items:flex-start; }
        .log-row:last-child { border-bottom:none; }
        .log-akcja { font-size:0.68rem; font-weight:700; padding:2px 7px; border-radius:4px; white-space:nowrap; flex-shrink:0; }
        .la-LOGIN      { background:#dcfce7; color:#15803d; }
        .la-LOGIN_FAIL { background:#fee2e2; color:#991b1b; }
        .la-LOGOUT     { background:#f1f5f9; color:#475569; }
        .la-DODAJ      { background:#dbeafe; color:#1e40af; }
        .la-EDYCJA     { background:#ede9fe; color:#5b21b6; }
        .la-USUNIĘCIE  { background:#fee2e2; color:#991b1b; }
        .la-IMPORT     { background:#fef9c3; color:#92400e; }
        .la-default    { background:#f1f5f9; color:#475569; }

        /* ── RAPORTY ───────────────────────────────── */
        .rap-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px,1fr)); gap:14px; margin-bottom:14px; }
        .rap-card { background:var(--ee-card); border-radius:var(--ee-radius); border:1px solid var(--ee-border); padding:18px 20px; box-shadow:0 2px 10px rgba(0,31,68,0.09),0 1px 3px rgba(0,31,68,0.05); }
        .rap-card-full { background:var(--ee-card); border-radius:var(--ee-radius); border:1px solid var(--ee-border); padding:18px 20px; margin-bottom:14px; box-shadow:0 2px 10px rgba(0,31,68,0.09),0 1px 3px rgba(0,31,68,0.05); }
        .rap-title { font-size:0.72rem; font-weight:700; color:var(--ee-muted); text-transform:uppercase; letter-spacing:0.6px; margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; }
        .rap-stat-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
        .rap-stat { background:var(--ee-light); border-radius:10px; padding:12px; text-align:center; border:1px solid var(--ee-border); }
        .rap-stat-val { font-size:1.6rem; font-weight:700; line-height:1; }
        .rap-stat-lbl { font-size:0.65rem; color:var(--ee-muted); font-weight:600; text-transform:uppercase; letter-spacing:0.4px; margin-top:4px; }
        .rap-filtr { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid #f1f5f9; }
        .top-tabela { width:100%; border-collapse:collapse; font-size:0.82rem; }
        .top-tabela td { padding:5px 4px; border-bottom:1px solid #f5f7fb; vertical-align:middle; }
        .top-tabela tr:last-child td { border-bottom:none; }
        .top-bar-wrap { background:#eef3fa; border-radius:4px; height:5px; margin-top:3px; overflow:hidden; }
        .top-bar { height:5px; border-radius:4px; background:var(--ee-navy); transition:width 0.4s ease; }

        /* Sparkline kalendarza */
        .kal-sparkline { width:100%; height:36px; display:block; margin-bottom:8px; }
        .kal-spark-bar { transition: opacity 0.1s; }
        .kal-spark-bar:hover { opacity: 0.7; }

        /* ── STATS TILES ───────────────────────────── */
        #statsContainer {
            display: flex;
            flex-wrap: nowrap;
            gap: 10px; 
            margin-bottom: 14px;
        }
        @media(max-width: 900px)  { #statsContainer { grid-template-columns: repeat(3,1fr); } }
        @media(max-width: 500px)  { #statsContainer { grid-template-columns: repeat(2,1fr); } }
        .stat-card {
            flex: 1 1 0;
            min-width: 0;
            background: var(--ee-card); border-radius: 16px;
            padding: 14px 12px;
            border: 1px solid var(--ee-border);
            box-shadow: var(--ee-shadow-sm);
            transition: box-shadow 0.2s, transform 0.18s;
            position: relative; overflow: hidden;
        }
        .stat-card:hover { box-shadow: var(--ee-shadow-md); transform: translateY(-2px); }
        .stat-card::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0;
            height: 4px; border-radius: 16px 16px 0 0; background: currentColor;
            opacity: 0.85;
        }
        .stat-icon  { font-size: 1.6rem; margin-bottom: 8px; display: block; line-height: 1; }
        .stat-val   { font-size: 2.4rem; font-weight: 800; line-height: 1; margin-bottom: 4px; letter-spacing: -1px; }
        .stat-lbl   { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.7px; opacity: 0.65; }
        .stat-sub   { font-size: 0.68rem; margin-top: 6px; opacity: 0.55; }
        .stat-blue   { color: #003366;  background: linear-gradient(145deg,#deeaff 0%,#f5f8ff 55%,white 100%); }
        .stat-navy   { color: #003366;  background: linear-gradient(145deg,#e2e8f0 0%,#f8faff 55%,white 100%); }
        .stat-sky    { color: #0369a1;  background: linear-gradient(145deg,#bae6fd 0%,#f0f9ff 55%,white 100%); }
        .stat-amber  { color: #92400e;  background: linear-gradient(145deg,#fbbf24 0%,#fffbeb 55%,white 100%); }
        .stat-red    { color: #991b1b;  background: linear-gradient(145deg,#fecaca 0%,#fff5f5 55%,white 100%); }
        .stat-green  { color: #15803d;  background: linear-gradient(145deg,#bbf7d0 0%,#f0fdf4 55%,white 100%); }
        .stat-orange { color: #c2410c;  background: linear-gradient(145deg,#fed7aa 0%,#fff7ed 55%,white 100%); }
        .stat-purple { color: #5b21b6;  background: linear-gradient(145deg,#ddd6fe 0%,#f5f3ff 55%,white 100%); }
        .stat-teal   { color: #0f766e;  background: linear-gradient(145deg,#99f6e4 0%,#f0fdfa 55%,white 100%); }
        .stat-brown  { color: #92400e;  background: linear-gradient(145deg,#fde8c8 0%,#fffbf5 55%,white 100%); }
        .stat-trend { font-size:0.65rem; font-weight:600; padding:1px 5px; border-radius:3px; }
        .stat-trend.up   { background:#dcfce7; color:#15803d; }
        .stat-trend.down { background:#fee2e2; color:#dc2626; }
        .stat-trend.same { background:#f1f5f9; color:#64748b; }
        /* Dashboard config button */
        #btnDashboardConfig {
            position: absolute; top: 0; right: 0;
            background: none; border: none; color: #94a3b8;
            font-size: 0.8rem; padding: 4px 8px; cursor: pointer;
            border-radius: 6px; transition: color 0.15s, background 0.15s;
        }
        #btnDashboardConfig:hover { color: var(--ee-navy); background: var(--ee-light); }
        /* Dashboard config modal checkboxes */
        .dash-tile-check {
            display: flex; align-items: center; gap: 10px; padding: 8px 12px;
            border: 1.5px solid var(--ee-border); border-radius: 8px;
            cursor: pointer; transition: border-color 0.15s, background 0.15s;
            margin-bottom: 6px;
        }
        .dash-tile-check:hover { border-color: var(--ee-navy-lt); background: var(--ee-light); }
        .dash-tile-check input[type=checkbox]:checked + .dash-tile-label { font-weight: 700; }

        /* ── FILTER BAR ────────────────────────────── */
        .filter-bar {
            background: var(--ee-card); border-radius: var(--ee-radius);
            padding: 14px 18px; border: 1px solid var(--ee-border);
            margin-bottom: 12px;
            box-shadow: 0 2px 8px rgba(0,31,68,0.09), 0 1px 2px rgba(0,31,68,0.05);
            border-left: 4px solid var(--ee-navy);
        }
        .filter-bar .form-control,
        .filter-bar .form-select {
            font-size: 0.83rem; border-color: var(--ee-border);
            border-radius: 7px; height: 36px; padding: 4px 10px;
            background: var(--ee-light); color: var(--ee-text);
        }
        .filter-bar .form-control:focus,
        .filter-bar .form-select:focus {
            border-color: var(--ee-navy-lt);
            box-shadow: 0 0 0 3px rgba(0,51,102,0.1);
            background: white;
        }
        .filter-label { font-size: 0.68rem; font-weight: 700; color: var(--ee-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }

        /* Szybkie daty */
        .quick-date-group .qdBtn {
            font-size: 0.76rem; padding: 4px 11px; height: 36px;
            border-color: var(--ee-border); color: var(--ee-muted);
            background: var(--ee-light);
        }
        .quick-date-group .qdBtn:hover { border-color: var(--ee-navy); color: var(--ee-navy); background: white; }
        .quick-date-group .qdBtn.active { background: var(--ee-navy); color: white; border-color: var(--ee-navy); }
        #qd_braki { border-color: #fca5a5; color: #dc2626; }
        #qd_braki.active { background: #dc2626 !important; color: white !important; border-color: #dc2626 !important; }

        /* Chip aktywnego filtru */
        .filtr-chip {
            display: inline-flex; align-items: center; gap: 5px;
            background: rgba(0,51,102,0.08); color: var(--ee-navy);
            border: 1px solid rgba(0,51,102,0.2);
            border-radius: 20px; font-size: 0.7rem; font-weight: 500;
            padding: 2px 8px 2px 10px; margin: 2px;
        }
        .filtr-chip button { background: none; border: none; padding: 0; cursor: pointer; color: var(--ee-navy-lt); font-size: 12px; line-height: 1; }
        .filtr-chip button:hover { color: var(--ee-navy); }

        /* ── TOOLBAR ───────────────────────────────── */
        .toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
        .view-toggle .btn { font-size: 0.8rem; padding: 5px 14px; border-color: var(--ee-border); color: var(--ee-muted); background: var(--ee-card); }
        .view-toggle .btn:hover { border-color: var(--ee-navy); color: var(--ee-navy); }
        .view-toggle .btn.active { background: var(--ee-navy); color: white; border-color: var(--ee-navy); }
        #lblLiczbaWynikow { font-size: 0.8rem; color: var(--ee-muted); }

        /* ── TABLE ─────────────────────────────────── */
        .table-card { background: var(--ee-card); border-radius: var(--ee-radius); border: 1px solid var(--ee-border); overflow: hidden; box-shadow: 0 2px 12px rgba(0,31,68,0.10), 0 1px 3px rgba(0,31,68,0.06); }
        #widokTabela { overflow-x: auto; overflow-y: visible; width: 100%; }
        #widokTabela table { min-width: 1400px; width: 100%; table-layout: fixed; }
        #widokTabela table colgroup, #widokTabela table col { width: auto; }
        .table thead th {
            background: linear-gradient(180deg, #002a5c 0%, #001c3d 100%);
            font-size: 0.72rem; text-transform: uppercase;
            letter-spacing: 0.65px; color: rgba(255,255,255,0.92);
            font-weight: 700; border-bottom: none;
            padding: 14px 14px; white-space: nowrap;
        }
        .table thead th:hover { color: white; }
        th[data-sort] { cursor: pointer; user-select: none; }
        th[data-sort]:hover { color: var(--ee-orange) !important; }
        .sort-icon { color: rgba(255,255,255,0.3); font-style: normal; font-size: 0.85em; margin-left: 2px; }
        .table td { vertical-align: middle; padding: 10px 12px; font-size: 0.9rem; color: var(--ee-text); border-bottom: 1px solid #EBF0F9 !important; overflow: hidden; }
.table td.td-badges { overflow: hidden; }
.table td.td-akcje { white-space: nowrap; position: sticky; right: 0; background: var(--ee-card); z-index: 2; box-shadow: -3px 0 8px rgba(0,51,102,0.06); max-width: none; }
.table tbody tr:hover .td-akcje { background: #b8d4f0 !important; }
.row-braki:hover .td-akcje { background: #fdd8d8 !important; }
.row-pilne:hover .td-akcje { background: #fbcfe8 !important; }
.table thead th.th-akcje { position: sticky; right: 0; background: linear-gradient(180deg, #002a5c 0%, #001c3d 100%); z-index: 3; box-shadow: -3px 0 8px rgba(0,0,0,0.15); }
        .table tbody tr:hover td { background: #b8d4f0 !important; }
        .meta-info { font-size: 0.72rem; color: #64748b; margin-top: 2px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; }

        /* Braki row */
        .row-braki td { background: #fff8f8 !important; }
        .row-braki:hover td { background: #fdd8d8 !important; }

        /* Overdue */
         .row-overdue:hover td { background: #b8d4f0 !important; }

        /* Rounded row borders via CSS custom property */
        #tabela-wyda-glowna tbody tr td {
            border-top: 1px solid #e2e8f0 !important;
            border-bottom: 1px solid #e2e8f0 !important;
        }
        #tabela-wyda-glowna tbody tr td:first-child {
            border-left: 4px solid var(--row-border-color, #003366) !important;
            border-radius: 8px 0 0 8px;
            padding-left: 10px;
        }
        #tabela-wyda-glowna tbody tr td:last-child {
            border-right: 1px solid #e2e8f0 !important;
            border-radius: 0 8px 8px 0;
        }
        /* detail expand row — brak zaokrąglenia */
        #tabela-wyda-glowna .wiersz-szczegoly td {
            border-top: none !important;
            border-left: none !important;
            border-right: none !important;
            border-radius: 0 !important;
        }

        /* Nr badge */
        .nr-badge {
            display: inline-block; background: var(--ee-light);
            color: var(--ee-navy); border-radius: 5px;
            padding: 2px 8px; font-size: 0.78rem; font-weight: 600;
            margin: 1px 2px 1px 0; white-space: nowrap;
            border: 1px solid var(--ee-border);
        }
        .nr-badge.brak {
            background: #fee2e2; color: #dc2626; border-color: #fca5a5;
        }

        /* ── BUTTONS ───────────────────────────────── */
        .btn { border-radius: 8px; font-weight: 600; font-size: 0.85rem; transition: all 0.15s; }
        .btn-primary { background: var(--ee-navy); border-color: var(--ee-navy); box-shadow: 0 1px 4px rgba(0,51,102,0.25); }
        .btn-primary:hover { background: var(--ee-navy-mid); border-color: var(--ee-navy-mid); box-shadow: 0 3px 10px rgba(0,51,102,0.3); transform: translateY(-1px); }
        .btn-success { background: #059669; border-color: #059669; box-shadow: 0 1px 4px rgba(5,150,105,0.25); }
        .btn-success:hover { background: #047857; border-color: #047857; box-shadow: 0 3px 10px rgba(5,150,105,0.3); transform: translateY(-1px); }
        .btn-outline-secondary { border-color: var(--ee-border); color: var(--ee-muted); }
        .btn-outline-secondary:hover { background: var(--ee-light); border-color: var(--ee-navy); color: var(--ee-navy); }
        .btn-danger { background: #dc2626; border-color: #dc2626; box-shadow: 0 1px 4px rgba(220,38,38,0.25); }
        .btn-outline-danger { border-color: #fca5a5; color: #dc2626; }
        .btn-outline-danger:hover { background: #fee2e2; }
        .btn-outline-primary { border-color: var(--ee-navy-lt); color: var(--ee-navy-lt); }
        .btn-outline-primary:hover { background: var(--ee-light); }

        /* ── MODAL TABS ────────────────────────────── */
        .modal-tab {
            background: none; border: none; padding: 11px 18px;
            font-size: 0.83rem; font-weight: 500; color: var(--ee-muted);
            border-bottom: 2px solid transparent; cursor: pointer;
            transition: color 0.15s, border-color 0.15s;
        }
        .modal-tab:hover { color: var(--ee-navy); }
        .modal-tab.active { color: var(--ee-orange); border-bottom-color: var(--ee-orange); }

        /* Sekcja-label */
        .sekc-label {
            font-size: 0.68rem; font-weight: 700; color: var(--ee-muted);
            text-transform: uppercase; letter-spacing: 0.8px;
            margin-bottom: 10px; margin-top: 4px;
            padding-left: 8px;
            border-left: 3px solid var(--ee-orange);
        }

        /* Lista numerów */
        .lista-numerow { display: flex; flex-direction: column; gap: 6px; margin-bottom: 6px; }
        .numer-row, .indeks-row { display: flex; gap: 6px; align-items: stretch; margin-bottom: 0; }
        .indeks-row .numer-input { flex: 2; min-width: 90px; }
        .indeks-row .indeks-ilosc-input { width: 64px; flex-shrink: 0; }
        #listaNumerowIndeksow .indeks-row { background: var(--ee-light); border-radius: 6px; padding: 4px 6px; border: 1px solid var(--ee-border); }
        .numer-row input, .indeks-row input[type=text] { flex: 1; min-width: 0; }
        .btn-usun-numer {
            background: none; border: 1px solid #fca5a5; color: #dc2626;
            border-radius: 6px; width: 38px; flex-shrink: 0;
            font-size: 14px; cursor: pointer;
            display: flex; align-items: center; justify-content: center;
        }
        .btn-usun-numer:hover { background: #fee2e2; }
        .btn-dodaj-numer {
            background: none; border: 1px dashed var(--ee-border); color: var(--ee-muted);
            border-radius: 7px; padding: 4px 12px; font-size: 0.78rem;
            cursor: pointer; width: 100%; margin-top: 2px;
        }
        .btn-dodaj-numer:hover { border-color: var(--ee-orange); color: var(--ee-orange); background: var(--ee-orange-bg); }

        /* Historia zmian */
        .historia-item { display: flex; gap: 14px; padding: 12px 0; border-bottom: 0.5px solid #f0f4fb; }
        .historia-item:last-child { border-bottom: none; }
        .historia-dot {
            width: 32px; height: 32px; border-radius: 50%;
            background: var(--ee-light); border: 2px solid var(--ee-border);
            display: flex; align-items: center; justify-content: center;
            font-size: 0.75rem; flex-shrink: 0; color: var(--ee-navy); font-weight: 700;
        }
        .historia-dot.dot-edit    { background: #EEF3FA; border-color: #ADC4E4; color: var(--ee-navy); }
        .historia-dot.dot-create  { background: #dcfce7; border-color: #86efac; color: #15803d; }
        .historia-dot.dot-move    { background: #e0f2fe; border-color: #7dd3fc; color: #0369a1; }
        .historia-dot.dot-split   { background: #fef9c3; border-color: #fde68a; color: #92400e; }
        .historia-dot.dot-archive { background: #f3f4f6; border-color: #d1d5db; color: #6b7280; }

        /* ── MODALS ────────────────────────────────── */
        .modal-content { border-radius: 18px; border: none; box-shadow: 0 24px 72px rgba(0,0,0,0.22), 0 4px 16px rgba(0,0,0,0.08); }
        .modal-header { border-bottom: 1px solid #EEF3FA; background: linear-gradient(110deg,#001F44 0%,#003366 100%); border-radius: 18px 18px 0 0; padding: 18px 22px; }
        .modal-header .modal-title { color: white; font-weight: 700; font-size: 1rem; }
        .modal-header .btn-close { filter: invert(1) brightness(1.5); opacity: 0.8; }
        .modal-header .btn-close:hover { opacity: 1; }
        .modal-footer { border-top: 1px solid #EEF3FA; background: var(--ee-light); border-radius: 0 0 18px 18px; }
        .form-label { font-size: 0.78rem; font-weight: 600; color: var(--ee-muted); margin-bottom: 4px; }
        .form-control, .form-select { border-color: var(--ee-border); border-radius: 7px; font-size: 0.88rem; }
        .form-control:focus, .form-select:focus { border-color: var(--ee-navy-lt); box-shadow: 0 0 0 3px rgba(0,51,102,0.1); }

        /* ── KALENDARZ ─────────────────────────────── */
        #widokKalendarz { display: block; }
        .kal-glowny {
    width: 100%; background: var(--ee-card);
    border-radius: var(--ee-radius); border: 1px solid var(--ee-border);
    padding: 12px 12px 10px; box-shadow: var(--ee-shadow-sm);
}
        .kal-karta-btn { background: var(--ee-light); border: none; border-radius: 5px; padding: 3px 7px; font-size: 0.7rem; cursor: pointer; color: var(--ee-muted); }
        .kal-karta-btn:hover { background: var(--ee-border); }
        .kal-pusty { text-align: center; padding: 36px 18px; color: var(--ee-muted); font-size: 0.86rem; }
        .kal-pusty-icon { font-size: 2rem; margin-bottom: 8px; }
        /* Rozwijana komórka — ukryte wydania */
        .kal-hidden-items { display: none; }
        .kal-cell.kal-expanded .kal-hidden-items { display: block; }
        .kal-more-btn {
            display: block; width: 100%; text-align: left; border: none; cursor: pointer;
            font-size: 0.62rem; padding: 2px 5px; border-radius: 4px; margin-bottom: 2px;
            background: #dde8f5; color: var(--ee-navy); font-weight: 700;
            transition: background 0.1s;
        }
        .kal-more-btn:hover { background: #b8cfe8; }
        .kal-cell.kal-expanded { z-index: 10; box-shadow: 0 6px 24px rgba(0,51,102,0.18); }

        /* ── Karta wydania w kalendarzu miesięcznym ─────────── */
        .kal-karta-mini {
            border-radius: 6px; margin-bottom: 4px; padding: 5px 7px 4px;
            border-left: 3px solid #003366; background: #f0f4fa;
            position: relative; cursor: default;
            transition: box-shadow 0.12s;
        }
        .kal-karta-mini:hover { box-shadow: 0 2px 10px rgba(0,51,102,0.15); }
        .kal-karta-mini.km-red    { border-color: #dc2626; background: #fecaca; }
        .kal-karta-mini.km-yellow { border-color: #f59e0b; background: #fbbf24; }
        .kal-karta-mini.km-green  { border-color: #10b981; background: #bbf7d0; }
        .kal-karta-mini.km-blue   { border-color: #0ea5e9; background: #bae6fd; }
        .kal-karta-mini.km-purple { border-color: #7c3aed; background: #ddd6fe; }
        .kal-karta-mini.km-brown  { border-color: #92400e; background: #fde8c8; }
        .kal-karta-mini-proj {
            font-size: 0.72rem; font-weight: 700; color: #1e293b;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
            padding-right: 44px; line-height: 1.3;
        }
        .kal-karta-mini-op {
            font-size: 0.62rem; color: #64748b; margin-top: 1px;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
        }
        .kal-karta-mini-nums {
            font-size: 0.6rem; color: #94a3b8; margin-top: 2px;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
        }
        .kal-karta-mini-flagi {
            display: flex; gap: 3px; margin-top: 3px; flex-wrap: wrap;
        }
        .kal-km-flag {
            font-size: 0.58rem; padding: 1px 4px; border-radius: 3px; font-weight: 700;
        }
        /* Akcje na hover karty */
        .kal-karta-mini-akcje {
            display: none; position: absolute; top: 4px; right: 4px; gap: 2px;
        }
        .kal-karta-mini:hover .kal-karta-mini-akcje { display: flex; }
        .kal-km-btn {
            border: none; border-radius: 3px; padding: 2px 5px; font-size: 0.65rem;
            cursor: pointer; line-height: 1.4;
        }
        .kal-km-btn-edit { background: #dbeafe; color: #1d4ed8; }
        .kal-km-btn-edit:hover { background: #bfdbfe; }
        .kal-km-btn-del  { background: #fee2e2; color: #dc2626; }
        .kal-km-btn-del:hover  { background: #fca5a5; }

        /* ── DRAG & DROP — Pointer Events ───────────────────── */
        .kal-draggable { cursor: grab; touch-action: none; user-select: none; -webkit-user-drag: none; }

        /* Ghost element podążający za kursorem */
        .kal-drag-ghost {
            position: fixed;
            z-index: 9999;
            pointer-events: none;
            background: #1d4ed8;
            color: #fff;
            border-radius: 8px;
            padding: 6px 14px;
            font-size: 0.78rem;
            font-weight: 700;
            box-shadow: 0 6px 24px rgba(29,78,216,0.45);
            opacity: 0.93;
            max-width: 200px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            transform: rotate(-2deg) scale(1.04);
            transition: transform 0.1s;
            top: 0; left: 0;
        }

        /* Kursor grabbing podczas drag */
        body.kal-ptr-drag-active,
        body.kal-ptr-drag-active * { cursor: grabbing !important; user-select: none !important; }

        /* Drop target — outline nie zmienia layoutu (brak trzęsienia gridu) */
        .kal-drop-target {
            outline: 2px solid #3b82f6 !important;
            outline-offset: -2px !important;
            background: #EFF6FF !important;
            box-shadow: 0 0 0 4px rgba(59,130,246,0.15) !important;
        }
        .kal-tw-col.kal-drop-target {
            outline: 2px solid #3b82f6 !important;
            outline-offset: -2px !important;
            background: #EFF6FF !important;
            box-shadow: 0 0 0 4px rgba(59,130,246,0.15) !important;
        }
        .kal-cell { position: relative; }

        /* Snap animacja po upuszczeniu */
        .kal-drop-ok { animation: dropOk 0.55s cubic-bezier(0.34,1.56,0.64,1) forwards; }
        @keyframes dropOk {
            0%   { background: #6ee7b7 !important; transform: scale(1.04); box-shadow: 0 6px 24px rgba(16,185,129,0.35) !important; }
            45%  { background: #d1fae5 !important; transform: scale(1.01); }
            100% { background: inherit !important; transform: scale(1); box-shadow: var(--ee-shadow-sm) !important; }
        }
        #chatBtn {
            position: fixed; bottom: 24px; right: 24px; z-index: 1050;
            width: 52px; height: 52px; border-radius: 50%; border: none;
            background: var(--ee-navy); color: white; font-size: 1.3rem;
            box-shadow: 0 4px 16px rgba(0,51,102,0.35); cursor: pointer;
            display: flex; align-items: center; justify-content: center;
            transition: transform 0.15s, box-shadow 0.15s;
        }
        #chatBtn:hover { transform: scale(1.08); box-shadow: 0 6px 22px rgba(0,51,102,0.45); }
        #chatBadge {
            position: absolute; top: -4px; right: -4px; background: #ef4444;
            color: white; border-radius: 50%; width: 18px; height: 18px;
            font-size: 0.62rem; font-weight: 800; display: none;
            align-items: center; justify-content: center;
        }
        #chatPanel {
            position: fixed; bottom: 86px; right: 24px; z-index: 1049;
            width: 360px; height: 520px; background: var(--ee-card);
            border-radius: 14px; border: 1px solid var(--ee-border);
            box-shadow: 0 8px 40px rgba(0,51,102,0.2);
            display: none; flex-direction: column; overflow: hidden;
        }
        #chatPanel.otwarty { display: flex; }
        .chat-header {
            background: var(--ee-navy); padding: 14px 16px;
            display: flex; align-items: center; justify-content: space-between;
            flex-shrink: 0;
        }
        .chat-header-title { font-size: 0.9rem; font-weight: 700; color: white; }
        .chat-header-sub { font-size: 0.68rem; color: rgba(255,255,255,0.55); margin-top: 1px; }
        .chat-close { background: rgba(255,255,255,0.12); border: none; color: white;
            border-radius: 6px; width: 26px; height: 26px; cursor: pointer; font-size: 12px; }
        .chat-close:hover { background: rgba(255,255,255,0.25); }
        .chat-body { flex: 1; overflow-y: auto; padding: 12px 14px; display: flex; flex-direction: column; gap: 10px; }
        .chat-msg { display: flex; gap: 8px; align-items: flex-start; }
        .chat-msg.moja { flex-direction: row-reverse; }
        .chat-avatar {
            width: 30px; height: 30px; border-radius: 50%; background: var(--ee-navy);
            color: white; font-size: 0.68rem; font-weight: 700; flex-shrink: 0;
            display: flex; align-items: center; justify-content: center;
        }
        .chat-msg.moja .chat-avatar { background: #0369a1; }
        .chat-bubble {
            max-width: 75%; background: #f1f5f9; border-radius: 10px 10px 10px 2px;
            padding: 7px 11px; font-size: 0.82rem; color: #1e293b; line-height: 1.45;
        }
        .chat-msg.moja .chat-bubble {
            background: #003366; color: white; border-radius: 10px 10px 2px 10px;
        }
        .chat-meta { font-size: 0.62rem; color: #94a3b8; margin-top: 3px; }
        .chat-msg.moja .chat-meta { text-align: right; }
        .chat-footer {
            padding: 10px 12px; border-top: 1px solid var(--ee-border);
            display: flex; gap: 8px; align-items: flex-end; flex-shrink: 0;
        }
        #chatInput {
            flex: 1; border: 1px solid var(--ee-border); border-radius: 8px;
            padding: 8px 11px; font-size: 0.82rem; resize: none; max-height: 90px;
            font-family: inherit; line-height: 1.4; outline: none;
            transition: border-color 0.15s;
        }
        #chatInput:focus { border-color: var(--ee-navy); }
        #chatSendBtn {
            background: var(--ee-navy); color: white; border: none;
            border-radius: 8px; width: 36px; height: 36px; cursor: pointer;
            font-size: 1rem; display: flex; align-items: center; justify-content: center;
            flex-shrink: 0; transition: background 0.15s;
        }
        #chatSendBtn:hover { background: #002244; }

        .kal-grid-header, .kal-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 2px; }
        .kal-grid-header { margin-bottom: 2px; }
        .kal-day-name {
            font-size: 0.62rem; font-weight: 700; text-align: center;
            color: var(--ee-muted); padding: 3px 2px;
            text-transform: uppercase; letter-spacing: 0.4px;
        }
        .kal-cell {
            min-height: 70px; border: 1.5px solid var(--ee-border);
            border-radius: 7px; padding: 3px 4px 3px;
            background: var(--ee-card); transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
            cursor: default; user-select: none;
            box-shadow: var(--ee-shadow-sm);
        }
        .kal-cell:hover { border-color: var(--ee-navy-lt); background: var(--ee-light); box-shadow: var(--ee-shadow-md); }
        .kal-cell.kal-selected { border-color: var(--ee-navy) !important; background: #E8F0F8 !important; box-shadow: 0 0 0 2px rgba(0,51,102,0.15); }
        .kal-cell.kal-empty { border: none; background: transparent; cursor: default; }
        .kal-cell.kal-empty:hover { background: transparent; border: none; }
        .kal-cell.kal-today { background: transparent; border-color: var(--ee-orange); border-width: 2px; }
        .kal-cell.kal-weekend { background: var(--ee-light); }
        .kal-num { font-size: 0.68rem; font-weight: 600; color: var(--ee-muted); margin-bottom: 2px; line-height: 1; }

        /* ── Kompaktowe karty w widoku miesięcznym ── */
        .kal-cell .kal-tw-karta { border-radius: 4px; margin-bottom: 2px; box-shadow: none; }
        .kal-cell .kal-tw-karta:hover { transform: none; box-shadow: none; }
        .kal-cell .kal-tw-karta .kal-tw-header { padding: 3px 5px; gap: 3px; flex-wrap: nowrap; min-height: 0; }
        .kal-cell .kal-tw-karta .kal-tw-prio { width: 13px; height: 13px; font-size: 0.52rem; flex-shrink: 0; }
        .kal-cell .kal-tw-karta .kal-tw-projekt { font-size: 0.66rem; line-height: 1.2; }
        .kal-cell .kal-tw-karta .kal-tw-badges { display: flex; gap: 2px; flex-wrap: wrap; }
        .kal-cell .kal-tw-karta .kal-tw-badge { font-size: 0.55rem; padding: 0 3px; }
        .kal-cell .kal-tw-karta .kal-tw-toggle { font-size: 0.55rem; }
        .kal-cell .kal-more-btn { font-size: 0.58rem; padding: 1px 4px; margin-bottom: 1px; }
        /* Mniejszy sparkline */
        .kal-sparkline { height: 24px !important; }
        .kal-today .kal-num {
            background: var(--ee-orange); color: white;
            width: 20px; height: 20px; border-radius: 50%;
            display: inline-flex; align-items: center; justify-content: center;
            font-size: 0.7rem; margin-bottom: 4px;
        }
        .kal-badge {
            display: block; font-size: 0.61rem; padding: 2px 5px;
            border-radius: 4px; margin-bottom: 2px;
            white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500;
        }
        .kb-gray   { background: white; color: var(--ee-navy); border-color: #003366; }
        .kb-yellow { background: #fbbf24; color: #854d0e; }
        .kb-green  { background: #bbf7d0; color: #15803d; }
        .kb-blue   { background: #bae6fd; color: #0369a1; }
        .kb-purple { background: #ddd6fe; color: #5b21b6; }
        .kb-brown  { background: #fde8c8; color: #92400e; border-color: #c8956c; }
        .kal-czesciowe .kal-tw-projekt { text-decoration: line-through; text-decoration-color: #a78bfa; }
        .bg-purple { background-color: #7c3aed !important; color: white; }
        .kb-red    { background: #fecaca; color: #991b1b; }
        .kb-more   { background: var(--ee-border); color: var(--ee-muted); font-size: 0.58rem; }
        .kal-legend { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
        .kal-legend-item { display: flex; align-items: center; gap: 5px; font-size: 0.7rem; color: var(--ee-muted); }
        .kal-legend-dot { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; }

        /* ── PILNE WYDANIA ──────────────────────────────── */
        .row-pilne td { background: #fdf2f8 !important; }
        .row-pilne:hover td { background: #fbcfe8 !important; }

        /* Indeks z checkbox braków */
        .indeks-row input[type=text] { flex:1; min-width:0; }
        .indeks-brak-btn {
            flex-shrink:0; padding:0 10px; border-radius:6px; font-size:0.72rem;
            font-weight:600; cursor:pointer; border:1px solid #d1d5db;
            background:white; color:#6b7280; transition:all .15s; white-space:nowrap;
            display:flex; align-items:center;
        }
        .indeks-brak-btn.active { background:#fee2e2; color:#dc2626; border-color:#fca5a5; }
        .indeks-brak-badge {
            display:inline-block; font-size:0.65rem; font-weight:700;
            padding:1px 5px; border-radius:3px; background:#fee2e2; color:#dc2626;
            margin-left:3px; vertical-align:middle;
        }
        .badge-pilne {
            display:inline-flex;align-items:center;gap:3px;
            background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;
            font-size:0.75rem;font-weight:700;padding:2px 8px;border-radius:4px;
        }
        .kb-orange { background:#fff7ed; color:#c2410c; border-left:3px solid #f97316; }

        /* ── WYDANIE CZĘŚCIOWE ─────────────────────────────── */
        .kb-partial { background: #ede9fe; color: #5b21b6; }
        .row-partial { background: #f5f3ff !important; }
        .row-partial td:first-child { border-left: 3px solid #7c3aed; padding-left: 11px; }

        .partial-toggle {
            display: flex; gap: 0; margin-bottom: 14px;
            border: 1px solid var(--ee-border); border-radius: 8px; overflow: hidden;
        }
        .partial-toggle label {
            flex: 1; text-align: center; padding: 8px 12px;
            font-size: 0.82rem; font-weight: 600; cursor: pointer;
            background: var(--ee-light); color: var(--ee-muted);
            transition: background 0.15s, color 0.15s;
        }
        .partial-toggle input[type=radio] { display: none; }
        .partial-toggle input[type=radio]:checked + label {
            background: var(--ee-navy); color: white;
        }
        #partial-toggle-niepelne:checked + label { background: #7c3aed; color: white; }

        .partial-form {
            background: #f5f3ff; border: 1px solid #ddd6fe;
            border-radius: 10px; padding: 16px; margin-top: 8px;
            border-left: 3px solid #7c3aed; display: none;
        }
        .partial-form.visible { display: block; }
        .uwaga-item {
            background: var(--ee-light); border-radius: 10px;
            padding: 10px 13px; margin-bottom: 8px;
            border-left: 3px solid var(--ee-navy);
            box-shadow: var(--ee-shadow-sm);
        }

        /* ── KANBAN ────────────────────────────────── */
        .kanban-board {
            display: grid;
            grid-template-columns: repeat(6, minmax(0, 1fr));
            gap: 10px;
            align-items: start;
        }
        @media(max-width: 1200px) {
            .kanban-board { grid-template-columns: repeat(3, 1fr); }
        }
        @media(max-width: 700px) {
            .kanban-board { grid-template-columns: repeat(2, 1fr); }
        }

        .kanban-col {
            background: var(--ee-light);
            border-radius: var(--ee-radius);
            border: 1px solid var(--ee-border);
            min-height: 200px;
            display: flex;
            flex-direction: column;
            box-shadow: var(--ee-shadow-sm);
        }
        .kanban-col-header {
            padding: 12px 14px 10px;
            border-radius: 10px 10px 0 0;
            border-bottom: 2px solid var(--ee-border);
            display: flex;
            align-items: center;
            justify-content: space-between;
            position: sticky;
            top: 60px;
            z-index: 10;
        }
        .kanban-col-title {
            font-size: 0.78rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .kanban-col-count {
            font-size: 0.7rem;
            font-weight: 700;
            padding: 2px 8px;
            border-radius: 10px;
            background: rgba(255,255,255,0.6);
        }

        /* Kolory nagłówków kolumn */
        .kk-zaplanowane { background: white; border-bottom-color: var(--ee-navy); }
        .kk-zaplanowane .kanban-col-title { color: var(--ee-navy); }
        .kk-zaplanowane .kanban-col-count { color: var(--ee-navy); background: rgba(0,51,102,0.12); }

        .kk-wtrakcie { background: #fbbf24; border-bottom-color: var(--ee-orange); }
        .kk-wtrakcie .kanban-col-title { color: var(--ee-orange); }
        .kk-wtrakcie .kanban-col-count { color: var(--ee-orange); background: rgba(232,112,10,0.12); }

        .kk-transport { background: #bae6fd; border-bottom-color: #0369a1; }
        .kk-transport .kanban-col-title { color: #0369a1; }
        .kk-transport .kanban-col-count { color: #0369a1; background: rgba(3,105,161,0.12); }

        .kk-zakonczone { background: #bbf7d0; border-bottom-color: #059669; }
        .kk-zakonczone .kanban-col-title { color: #059669; }
        .kk-zakonczone .kanban-col-count { color: #059669; background: rgba(5,150,105,0.12); }

        .kk-partial { background: #ddd6fe; border-bottom-color: #7c3aed; }
        .kk-partial .kanban-col-title { color: #5b21b6; }
        .kk-partial .kanban-col-count { color: #5b21b6; background: rgba(124,58,237,0.12); }

        .kk-sprawdzane { background: #fde8c8; border-bottom-color: #92400e; }
        .kk-sprawdzane .kanban-col-title { color: #92400e; }
        .kk-sprawdzane .kanban-col-count { color: #92400e; background: rgba(146,64,14,0.12); }

        .kanban-col-body {
            padding: 10px;
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 8px;
            min-height: 80px;
            transition: background 0.15s;
        }
        .kanban-col-body.drag-over {
            background: rgba(0,51,102,0.06);
            border-radius: 0 0 10px 10px;
            outline: 2px dashed var(--ee-navy-lt);
            outline-offset: -4px;
        }

        /* Karta Kanban */
        .kanban-card {
            background: white;
            border-radius: 8px;
            border-top: 1px solid var(--ee-border);
            border-right: 1px solid var(--ee-border);
            border-bottom: 1px solid var(--ee-border);
            padding: 11px 12px;
            cursor: grab;
            user-select: none;
            transition: box-shadow 0.15s, transform 0.12s, opacity 0.15s;
            position: relative;
            box-shadow: var(--ee-shadow-sm);
        }
        .kanban-card:hover {
            box-shadow: var(--ee-shadow-md);
            border-top-color: var(--ee-navy-lt);
            border-right-color: var(--ee-navy-lt);
            border-bottom-color: var(--ee-navy-lt);
            transform: translateY(-1px);
        }
        .kanban-card:active { cursor: grabbing; }
        .kanban-card.dragging {
            opacity: 0.45;
            transform: scale(0.97);
            box-shadow: 0 8px 24px rgba(0,0,0,0.18);
        }
        .kanban-card.braki-card {
            border-left: 3px solid #DC2626;
            background: #fff8f8;
        }

        .kc-date {
            font-size: 0.68rem;
            font-weight: 600;
            color: var(--ee-muted);
            margin-bottom: 4px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .kc-proj {
            font-size: 0.86rem;
            font-weight: 700;
            color: var(--ee-text);
            margin-bottom: 3px;
            line-height: 1.3;
        }
        .kc-op {
            font-size: 0.72rem;
            color: var(--ee-muted);
            margin-bottom: 6px;
        }
        .kc-flags {
            display: flex;
            gap: 4px;
            flex-wrap: wrap;
            margin-bottom: 6px;
        }
        .kc-flag {
            font-size: 0.62rem;
            font-weight: 600;
            padding: 2px 6px;
            border-radius: 4px;
        }
        .kf-braki { background: #fee2e2; color: #991b1b; }
        .kf-kom   { background: #ede9fe; color: #5b21b6; }
        .kc-footer {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 6px;
            border-top: 1px solid #f0f4fb;
            padding-top: 7px;
            margin-top: 4px;
        }
        .kc-autor { font-size: 0.65rem; color: var(--ee-muted); }
        .kc-docs { display:flex; flex-direction:column; gap:3px; margin-bottom:6px; }
        .kc-doc-row { display:flex; align-items:flex-start; gap:5px; }
        .kc-doc-lbl { font-size:0.65rem; font-weight:700; color:var(--ee-muted); text-transform:uppercase; min-width:30px; flex-shrink:0; padding-top:2px; }
        .kc-doc-val { display:flex; flex-wrap:wrap; gap:2px; }
        .kc-actions { display: flex; gap: 3px; }
        .kc-btn {
            background: var(--ee-light);
            border: none;
            border-radius: 5px;
            padding: 3px 7px;
            font-size: 0.7rem;
            cursor: pointer;
            color: var(--ee-muted);
        }
        .kc-btn:hover { background: var(--ee-border); color: var(--ee-text); }

        /* Placeholder podczas przeciągania */
        .kanban-placeholder {
            border: 2px dashed var(--ee-navy-lt);
            border-radius: 8px;
            background: rgba(0,51,102,0.04);
            min-height: 56px;
            flex-shrink: 0;
        }

        /* Pusta kolumna */
        .kanban-empty {
            color: var(--ee-muted);
            font-size: 0.78rem;
            text-align: center;
            padding: 24px 12px;
        }
        .kanban-empty-icon { font-size: 1.5rem; margin-bottom: 6px; }
    
        /* ── Partial picker ──────────────────────────────────────── */
        .partial-picker-label {
            font-size:0.73rem; font-weight:700; color:#5b21b6;
            text-transform:uppercase; letter-spacing:0.4px; margin-bottom:6px;
        }
        .partial-picker-grid { display:flex; flex-wrap:wrap; gap:6px; min-height:28px; margin-bottom:4px; }
        .partial-chk-item {
            display:inline-flex; align-items:center; gap:5px;
            background:#f5f3ff; border:1px solid #ddd6fe; border-radius:6px;
            padding:4px 10px 4px 7px; cursor:pointer; user-select:none;
            font-size:0.82rem; transition:background .12s, border-color .12s;
        }
        .partial-chk-item:hover { background:#ede9fe; border-color:#a78bfa; }
        .partial-chk-item input[type=checkbox] { accent-color:#7c3aed; cursor:pointer; }
        .partial-chk-item.checked { background:#7c3aed; border-color:#7c3aed; color:#fff; }
        .partial-picker-actions { display:flex; gap:6px; margin:4px 0; }
        .partial-sel-btn {
            background:none; border:1px solid #c4b5fd; color:#7c3aed;
            border-radius:5px; padding:2px 10px; font-size:0.73rem; cursor:pointer;
        }
        .partial-sel-btn:hover { background:#ede9fe; }
        /* ── KALENDARZ TYGODNIOWY ───────────────────────────────────── */
        .kal-tryb-btn { font-size:0.78rem; padding:4px 14px; border-radius:6px; border:1px solid var(--ee-border); background:var(--ee-light); color:var(--ee-muted); cursor:pointer; transition:all .15s; }
        .kal-tryb-btn:hover { border-color:var(--ee-navy); color:var(--ee-navy); }
        .kal-tryb-btn.active { background:var(--ee-navy); color:white; border-color:var(--ee-navy); }

        .kal-tw-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
        .kal-tw-nav-center { text-align:center; flex:1; padding:0 16px; }

        .kal-tw-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; align-items:start; width:100%; }

        .kal-tw-col { background:white; border-radius:12px; border:1px solid var(--ee-border); display:flex; flex-direction:column; min-height:120px; box-shadow:var(--ee-shadow-sm); }
        .kal-tw-col-selected { border-color:var(--ee-navy); box-shadow:0 0 0 2px rgba(0,51,102,0.12); }
        .kal-tw-col-braki { border-color:#fca5a5; }

        .kal-tw-col-header { padding:10px 12px 8px; border-bottom:1px solid var(--ee-border); cursor:pointer; border-radius:10px 10px 0 0; transition:background .12s; }
        .kal-tw-col-header:hover { background:var(--ee-light); }
        .kal-tw-today { background:var(--ee-navy) !important; color:white; }
        .kal-tw-today .kal-tw-dzien-nazwa,
        .kal-tw-today .kal-tw-dzien-data,
        .kal-tw-today .kal-tw-dzien-count { color:white !important; }
        .kal-tw-dzien-nazwa { font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--ee-muted); }
        .kal-tw-dzien-data  { font-size:1rem; font-weight:700; color:var(--ee-navy); line-height:1.2; margin-top:1px; }
        .kal-tw-dzien-count { font-size:0.65rem; color:var(--ee-muted); margin-top:3px; }

        .kal-tw-body { padding:8px; display:flex; flex-direction:column; gap:6px; flex:1; }

        .kal-tw-karta { border:1px solid var(--ee-border); border-radius:9px; overflow:hidden; cursor:pointer; transition:box-shadow .15s, transform .12s; box-shadow:var(--ee-shadow-sm); }
        .kal-tw-karta:hover { box-shadow:var(--ee-shadow-md); transform:translateY(-1px); }
        .kal-tw-karta-open { box-shadow:0 4px 16px rgba(0,51,102,0.14); }

        .kal-tw-header { display:flex; align-items:flex-start; gap:6px; padding:7px 9px; flex-wrap:wrap; }
        .kal-tw-prio { width:18px; height:18px; border-radius:50%; font-size:0.65rem; font-weight:800; display:inline-flex; align-items:center; justify-content:center; border:1.5px solid; flex-shrink:0; margin-top:1px; }
        .kal-tw-projekt { font-size:0.8rem; font-weight:700; color:var(--ee-text); min-width:0; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.25; }
        .kal-tw-op { font-size:0.72rem; font-weight:600; color:var(--ee-navy); background:var(--ee-light); padding:1px 6px; border-radius:4px; flex-shrink:0; }
        .kal-tw-badges { display:flex; gap:3px; flex-wrap:wrap; }
        .kal-tw-badge { font-size:0.62rem; font-weight:600; padding:1px 5px; border-radius:3px; white-space:nowrap; }
        .kal-tw-toggle { font-size:0.7rem; color:var(--ee-muted); flex-shrink:0; margin-left:auto; }

        .kal-tw-szczegoly { padding:8px 10px; border-top:1px solid rgba(0,0,0,0.08); background:inherit; display:flex; flex-direction:column; gap:4px; }
        .kal-tw-row { font-size:0.75rem; color:var(--ee-text); display:flex; gap:6px; align-items:flex-start; }
        .kal-tw-lbl { font-weight:600; color:var(--ee-muted); min-width:72px; flex-shrink:0; font-size:0.7rem; }
        .kal-tw-akcje { display:flex; gap:4px; margin-top:6px; padding-top:6px; border-top:1px solid var(--ee-border); }

        .kal-tw-pusty { text-align:center; color:var(--ee-muted); font-size:0.75rem; padding:16px 8px; }
        .kal-tw-dodaj { width:100%; background:none; border:1px dashed var(--ee-border); color:var(--ee-muted); border-radius:6px; padding:5px; font-size:0.75rem; cursor:pointer; margin-top:2px; }
        .kal-tw-dodaj:hover { border-color:var(--ee-orange); color:var(--ee-orange); background:var(--ee-orange-bg); }

        /* ── WIERSZ SZCZEGÓŁÓW ──────────────────────────────────────── */
        .wiersz-szczegoly td { background: #f8fafc !important; }
        .szczegoly-panel {
            display: flex; flex-wrap: wrap; gap: 12px 24px;
            padding: 12px 18px; border-top: 1px solid var(--ee-border);
        }
        .det-sekcja { display: flex; align-items: flex-start; gap: 6px; }
        .det-lbl {
            font-size: 0.7rem; font-weight: 700; color: var(--ee-muted);
            text-transform: uppercase; letter-spacing: 0.4px;
            white-space: nowrap; padding-top: 3px; min-width: 90px;
        }
        .det-val { font-size: 0.82rem; color: var(--ee-text); display: flex; flex-wrap: wrap; gap: 3px; align-items: center; }
        .row-toggle-btn { transition: background 0.15s, color 0.15s, border-color 0.15s; font-size: 0.75rem !important; }

        /* ── PRIORYTET ─────────────────────────────────────────────── */
        .prio-select {
            display: flex; gap: 6px; margin-top: 4px;
        }
        .prio-option {
            flex: 1; text-align: center; padding: 8px 6px;
            border-radius: 8px; border: 2px solid transparent;
            cursor: pointer; font-size: 0.8rem; font-weight: 700;
            transition: all 0.15s; user-select: none;
        }
        .prio-option-1 { background: #fee2e2; color: #dc2626; }
        .prio-option-1:hover, .prio-option-1.active { border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220,38,38,0.15); }
        .prio-option-2 { background: #fef9c3; color: #92400e; }
        .prio-option-2:hover, .prio-option-2.active { border-color: #d97706; box-shadow: 0 0 0 3px rgba(217,119,6,0.15); }
        .prio-option-3 { background: #dcfce7; color: #15803d; }
        .prio-option-3:hover, .prio-option-3.active { border-color: #16a34a; box-shadow: 0 0 0 3px rgba(22,163,74,0.15); }

        /* ── Ilość indeksu ──────────────────────────────────────────── */
        .indeks-ilosc-input { width:64px !important; flex-shrink:0; font-size:0.82rem;
            text-align:center; padding:4px 6px; }
        .indeks-ilosc-input::-webkit-outer-spin-button,
        .indeks-ilosc-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
        .indeks-ilosc-input[type=number] { -moz-appearance:textfield; }

        /* ── MM status badge ─────────────────────────────────────── */
        .mm-row { display:flex; gap:6px; align-items:center; margin-bottom:5px; }


/* ── Nawigacja drag&drop poza aktualny zakres kalendarza ───── */
.kal-drag-nav-wrap {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 46px;
    gap: 8px;
    align-items: stretch;
}

.kal-drag-nav-center {
    min-width: 0;
}

.kal-drag-nav-wrap .kal-tw-grid {
    min-width: 0;
}

.kal-nav-drop-zone {
    cursor: pointer;
    border: 1.5px dashed var(--ee-border);
    border-radius: 10px;
    background: linear-gradient(180deg, #f8fafc 0%, #eef3fa 100%);
    color: var(--ee-muted);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 120px;
    user-select: none;
    transition: background .15s, border-color .15s, color .15s, transform .15s, box-shadow .15s;
}

.kal-nav-drop-zone.active {
    background: #fff7ed;
    border-color: var(--ee-orange);
    color: var(--ee-orange);
    box-shadow: 0 0 0 3px rgba(232,112,10,0.12);
    transform: scale(1.02);
}

.kal-nav-arrow {
    font-size: 1.8rem;
    font-weight: 800;
    line-height: 1;
}

.kal-nav-label {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    text-align: center;
    line-height: 1.15;
}

@media(max-width: 900px) {
    .kal-drag-nav-wrap {
        grid-template-columns: 34px minmax(0, 1fr) 34px;
        gap: 5px;
    }
    .kal-nav-label {
        display: none;
    }
    .kal-nav-arrow {
        font-size: 1.35rem;
    }
}


/* ── Ochrona przed widocznym skokiem scrolla przy rerenderze kalendarza ── */
html.eesa-preserve-scroll,
body.eesa-preserve-scroll {
    scroll-behavior: auto !important;
    overflow-anchor: none !important;
}

