/* ==========================================================================
   CBF — Rezerwacje obiektów · makiety
   Motyw nadpisuje zmienne Bootstrap 5.3 (stonowana paleta, IBM Plex Sans).
   ========================================================================== */

@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(../vendor/fonts/ibm-plex-sans-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --cbf-primary:#2563EB;
  --cbf-primary-dark:#1D4ED8;
  --cbf-primary-soft:#DBEAFE;
  --cbf-primary-tint:#EFF6FF;
  --cbf-bg:#F1F5F9;
  --cbf-surface:#FFFFFF;
  --cbf-border:#E2E8F0;
  --cbf-border-strong:#CBD5E1;
  --cbf-divider:#EDF1F7;
  --cbf-text:#0F172A;
  --cbf-text-2:#1E293B;
  --cbf-muted:#475569;
  --cbf-pre-bg:#FEF3C7; --cbf-pre-fg:#92400E;
  --cbf-con-bg:#DCFCE7; --cbf-con-fg:#15803D;
  --cbf-can-bg:#E2E8F0; --cbf-can-fg:#334155;
  --cbf-exp-bg:#FEE2E2; --cbf-exp-fg:#B91C1C;
  --cbf-danger:#DC2626;
  --cbf-sidebar-w:248px;

  --bs-body-font-family:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --bs-body-font-size:.875rem;
  --bs-body-line-height:1.45;
  --bs-body-color:var(--cbf-text);
  --bs-body-bg:var(--cbf-bg);
  --bs-border-color:var(--cbf-border);
  --bs-secondary-color:var(--cbf-muted);
  --bs-primary:#2563EB;
  --bs-primary-rgb:37,99,235;
  --bs-link-color:#2563EB; --bs-link-color-rgb:37,99,235;
  --bs-link-hover-color:#1D4ED8; --bs-link-hover-color-rgb:29,78,216;
  --bs-border-radius:.5rem;
  --bs-focus-ring-color:rgba(37,99,235,.25);
}

body{background:var(--cbf-bg)}
a{text-decoration:none}
h1,.h1{font-size:1.375rem;font-weight:600;margin:0}
h2,.h2{font-size:.9375rem;font-weight:600;margin:0}
.text-muted,.text-secondary{color:var(--cbf-muted)!important}
.small-2{font-size:.78rem}
.tabular{font-variant-numeric:tabular-nums}
[x-cloak]{display:none!important}

/* ---------- Buttons ---------- */
.btn{--bs-btn-font-weight:500;--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:.875rem;display:inline-flex;align-items:center;gap:.45rem;justify-content:center;white-space:nowrap}
.btn-sm{--bs-btn-padding-y:.32rem;--bs-btn-padding-x:.65rem;--bs-btn-font-size:.8125rem}
.btn-primary{--bs-btn-bg:#2563EB;--bs-btn-border-color:#2563EB;--bs-btn-hover-bg:#1D4ED8;--bs-btn-hover-border-color:#1D4ED8;--bs-btn-active-bg:#1E40AF;--bs-btn-active-border-color:#1E40AF;--bs-btn-disabled-bg:#93C5FD;--bs-btn-disabled-border-color:#93C5FD}
.btn-outline-secondary{--bs-btn-color:var(--cbf-text);--bs-btn-border-color:var(--cbf-border-strong);--bs-btn-bg:#fff;--bs-btn-hover-bg:#F8FAFC;--bs-btn-hover-color:var(--cbf-text);--bs-btn-hover-border-color:#94A3B8;--bs-btn-active-bg:#EDF1F7;--bs-btn-active-color:var(--cbf-text);--bs-btn-active-border-color:#94A3B8}
.btn-outline-danger{--bs-btn-color:#DC2626;--bs-btn-border-color:#FCA5A5;--bs-btn-bg:#fff;--bs-btn-hover-bg:#FEF2F2;--bs-btn-hover-color:#B91C1C;--bs-btn-hover-border-color:#F87171;--bs-btn-active-bg:#FEF2F2;--bs-btn-active-color:#B91C1C}
.btn-danger{--bs-btn-bg:#DC2626;--bs-btn-border-color:#DC2626;--bs-btn-hover-bg:#B91C1C;--bs-btn-hover-border-color:#B91C1C;--bs-btn-disabled-bg:#FCA5A5;--bs-btn-disabled-border-color:#FCA5A5}
.btn-icon{width:40px;height:40px;padding:0}
.btn-ghost{--bs-btn-color:var(--cbf-text-2);--bs-btn-hover-bg:var(--cbf-bg);--bs-btn-hover-color:var(--cbf-text);border:0}

/* ---------- Forms ---------- */
.form-label{font-size:.8125rem;font-weight:500;color:var(--cbf-text-2);margin-bottom:.35rem}
.form-control,.form-select{border-color:var(--cbf-border-strong);font-size:.875rem;padding:.5rem .75rem;min-height:40px}
.form-control:focus,.form-select:focus{border-color:#2563EB;box-shadow:0 0 0 .2rem rgba(37,99,235,.18)}
.form-control[readonly]{background:#F8FAFC;color:#334155}
.form-text{font-size:.75rem;color:var(--cbf-muted)}
.form-check-input:checked{background-color:#2563EB;border-color:#2563EB}
.form-check-input:focus{box-shadow:0 0 0 .2rem rgba(37,99,235,.18)}
.req::after{content:" *";color:var(--cbf-danger)}
.is-conflict{border-color:#EF4444!important;background-color:#FEF2F2!important}

/* ---------- Layout shell ---------- */
.app{display:flex;min-height:100vh}
.app-sidebar{width:var(--cbf-sidebar-w);flex:none;background:#fff;border-right:1px solid var(--cbf-border);padding:18px 14px 24px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:1040}
.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.app-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--cbf-border);padding:12px 28px;min-height:64px;position:sticky;top:0;z-index:1020}
.app-content{padding:24px 28px 48px;width:100%;max-width:1440px;display:flex;flex-direction:column;gap:20px}
.app-backdrop{position:fixed;inset:0;background:rgba(17,24,39,.4);z-index:1035}
@media (max-width:991.98px){
  .app-sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 10px 30px rgba(16,24,40,.15)}
  .app-sidebar.open{transform:none}
  .app-topbar{padding:10px 16px}
  .app-content{padding:16px 16px 40px}
}
.brand{display:flex;gap:10px;align-items:center;padding:4px 10px 14px;font-weight:600;font-size:1rem;color:var(--cbf-text)}
.brand-logo{width:34px;height:34px;border-radius:9px;background:#2563EB;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.72rem;letter-spacing:.02em}
.nav-head{font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cbf-muted);padding:16px 10px 6px;font-weight:600}
.nav-item-link{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:8px;color:var(--cbf-text-2);font-weight:500}
.nav-item-link i{font-size:1.05rem;width:20px;text-align:center}
.nav-item-link:hover{background:var(--cbf-bg);color:var(--cbf-text)}
.nav-item-link.active{background:var(--cbf-primary-soft);color:var(--cbf-primary-dark)}
.tag-admin{margin-left:auto;font-size:.625rem;font-weight:600;color:#334155;background:#EDF1F7;border-radius:4px;padding:1px 6px}
.avatar{width:36px;height:36px;border-radius:50%;background:#DBEAFE;color:var(--cbf-primary-dark);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:.8rem;flex:none}
.avatar.muted{background:#EDF1F7;color:#334155}
.demo-badge{font-size:.6875rem;font-weight:600;background:#FEF3C7;color:#92400E;border-radius:4px;padding:2px 6px}

/* ---------- Page header & cards ---------- */
.page-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between}
.crumb{font-size:.8125rem;color:var(--cbf-muted);margin-bottom:4px}
.card{--bs-card-border-color:var(--cbf-border);--bs-card-border-radius:10px;--bs-card-cap-bg:#fff;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.card-header{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom-color:var(--cbf-divider);background:#fff}
.card-body{padding:20px}
.step-num{width:24px;height:24px;border-radius:50%;background:var(--cbf-primary-soft);color:var(--cbf-primary-dark);font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none}

/* ---------- KPI ---------- */
.kpi{display:flex;flex-direction:row;gap:14px;align-items:flex-start;padding:18px 20px}
.kpi-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;font-size:1.15rem}
.kpi-label{font-size:.8125rem;color:#334155;font-weight:500}
.kpi-value{font-size:1.625rem;font-weight:600;line-height:1.25}
.kpi-sub{font-size:.78rem;color:var(--cbf-muted)}

/* ---------- Tables ---------- */
.table{--bs-table-border-color:var(--cbf-divider);--bs-table-hover-bg:#F8FAFC;margin:0;font-size:.84rem}
.table>thead th{font-weight:600;color:#334155;background:#F8FAFC;font-size:.78rem;white-space:nowrap;padding:.7rem 1rem;border-bottom:1px solid var(--cbf-border)}
.table>tbody td{padding:.75rem 1rem;vertical-align:middle;white-space:nowrap}
.table td.wrap{white-space:normal}
.table .sub{font-size:.75rem;color:var(--cbf-muted)}
.th-sort{cursor:pointer;user-select:none}
.th-sort:hover{color:var(--cbf-text)}
.empty-state{padding:44px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.empty-icon{width:48px;height:48px;border-radius:50%;background:#EDF1F7;color:#334155;display:flex;align-items:center;justify-content:center;font-size:1.25rem}

/* ---------- Status badges (zawsze z etykietą tekstową) ---------- */
.st{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap;line-height:1.4}
.st::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-pre{background:var(--cbf-pre-bg);color:var(--cbf-pre-fg)}
.st-con{background:var(--cbf-con-bg);color:var(--cbf-con-fg)}
.st-can{background:var(--cbf-can-bg);color:var(--cbf-can-fg)}
.st-exp{background:var(--cbf-exp-bg);color:var(--cbf-exp-fg)}
.role-badge{display:inline-block;font-size:.72rem;font-weight:600;border-radius:4px;padding:2px 8px;letter-spacing:.02em}
.role-ADMIN{background:var(--cbf-primary-soft);color:var(--cbf-primary-dark)}
.role-USER{background:#F1F5F9;color:#1E293B;border:1px solid var(--cbf-border)}
.chip{display:inline-block;font-size:.75rem;background:#F1F5F9;border:1px solid var(--cbf-border);border-radius:6px;padding:2px 8px;color:#1E293B}

/* ---------- Tabs / segmented ---------- */
.tabs-pill{display:flex;gap:4px;flex-wrap:wrap}
.tabs-pill button{padding:7px 12px;border-radius:8px;color:#334155;font-weight:500;font-size:.8125rem;border:0;background:transparent}
.tabs-pill button.active{background:var(--cbf-primary-soft);color:var(--cbf-primary-dark)}
.tabs-pill .cnt{font-size:.7rem;background:#EDF1F7;color:#334155;border-radius:999px;padding:1px 7px;margin-left:6px}
.tabs-line{display:flex;gap:4px;border-bottom:1px solid var(--cbf-border);padding:0 20px;overflow-x:auto}
.tabs-line button{padding:12px 14px;border:0;background:transparent;font-weight:500;color:#334155;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs-line button.active{color:var(--cbf-primary-dark);border-bottom-color:#2563EB}
.seg{display:inline-flex;border:1px solid var(--cbf-border-strong);border-radius:8px;overflow:hidden;background:#fff;flex-wrap:wrap}
.seg button{height:38px;padding:0 13px;border:0;border-right:1px solid var(--cbf-border);background:#fff;font-size:.8125rem;font-weight:500;color:#1E293B}
.seg button:last-child{border-right:0}
.seg button.active{background:var(--cbf-primary-soft);color:var(--cbf-primary-dark)}

/* ---------- Option cards ---------- */
.opt-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--cbf-border-strong);border-radius:10px;padding:14px;cursor:pointer;flex:1 1 220px;margin:0;background:#fff}
.opt-card.active{border-color:#2563EB;background:var(--cbf-primary-tint)}
.opt-card input{margin-top:3px}

/* ---------- Alerts ---------- */
.alert{--bs-alert-padding-y:.75rem;--bs-alert-padding-x:1rem;font-size:.84rem;display:flex;gap:10px;align-items:flex-start;border-radius:10px}
.alert i{font-size:1rem;line-height:1.3}
.alert-conflict{background:#FEF2F2;border-color:#FECACA;color:#991B1B}
.alert-info-soft{background:var(--cbf-primary-tint);border-color:#BFDBFE;color:var(--cbf-primary-dark)}
.alert-ok{background:#F0FDF4;border-color:#86EFAC;color:#14532D}
.alert-warn{background:#FFFBEB;border-color:#FCD34D;color:#92400E}

/* ---------- Definition list ---------- */
.dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px 24px}
.dl-grid dt{font-size:.78rem;color:var(--cbf-muted);font-weight:400;margin-bottom:3px}
.dl-grid dd{font-weight:500;margin:0}
.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--cbf-divider)}
.kv:last-child{border-bottom:0}
.kv>span:first-child{color:var(--cbf-muted)}

/* ---------- Timeline (oś dnia w formularzu) ---------- */
.day-axis{position:relative;height:44px;background:var(--cbf-bg);border-radius:8px}
.day-axis .blk{position:absolute;top:6px;bottom:6px;border-radius:6px;font-size:.6875rem;font-weight:600;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap}
.blk-busy{background:#FCD34D;color:#78350F}
.blk-req{background:#93C5FD;color:#1E3A8A}
.blk-bad{background:repeating-linear-gradient(45deg,#FECACA 0 6px,#FEE2E2 6px 12px);color:#991B1B;outline:1.5px solid #EF4444}
.day-ticks{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--cbf-muted);margin-top:6px}
.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.75rem;color:#334155}
.legend .sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-2px}

/* ---------- Kalendarz ---------- */
.cal-scroll{overflow-x:auto}
.cal-week{display:grid;grid-template-columns:190px repeat(7,minmax(128px,1fr));min-width:1090px}
.cal-week .cell{border-right:1px solid var(--cbf-divider);border-bottom:1px solid var(--cbf-divider);padding:8px;min-height:74px;display:flex;flex-direction:column;gap:6px}
.cal-h{background:#F8FAFC;font-size:.78rem;font-weight:600;color:#334155;min-height:0!important;padding:10px 8px!important}
.cal-h.today{background:var(--cbf-primary-soft);color:var(--cbf-primary-dark)}
.cal-res{font-weight:500;justify-content:center}
.cal-res small{font-weight:400;color:var(--cbf-muted);font-size:.75rem}
.cal-ev{display:block;border-radius:6px;padding:5px 8px;font-size:.75rem;line-height:1.3;color:inherit}
.cal-ev b{font-weight:600;font-variant-numeric:tabular-nums}
.cal-ev.ev-con{background:#DCFCE7;color:#14532D}
.cal-ev.ev-pre{background:repeating-linear-gradient(135deg,#FEF3C7 0 6px,#FDE68A 6px 12px);color:#78350F}
.cal-ev:hover{filter:brightness(.97)}
.cal-day{display:grid;grid-template-columns:190px 1fr;min-width:900px}
.cal-day .row-lbl{padding:10px 8px;border-bottom:1px solid var(--cbf-divider);border-right:1px solid var(--cbf-divider);font-weight:500}
.cal-day .row-lbl small{display:block;font-weight:400;color:var(--cbf-muted);font-size:.75rem}
.cal-day .lane{position:relative;border-bottom:1px solid var(--cbf-divider);min-height:56px;background-image:linear-gradient(to right,var(--cbf-divider) 1px,transparent 1px);background-size:calc(100%/15) 100%}
.cal-day .lane .cal-ev{position:absolute;top:8px;bottom:8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cal-day .hours{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--cbf-muted);padding:6px 0}
.cal-month{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:860px}
.cal-month>div{border-right:1px solid var(--cbf-divider);border-bottom:1px solid var(--cbf-divider);min-height:110px;padding:6px;display:flex;flex-direction:column;gap:4px}
.cal-month .mday{font-size:.78rem;font-weight:600;color:#334155}
.cal-month .out{background:#F8FAFC}
.cal-month .out .mday{color:#94A3B8}
.cal-month .is-today .mday{color:#fff;background:#2563EB;border-radius:999px;padding:0 7px;align-self:flex-start}
.cal-month .cal-ev{padding:2px 6px;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.heat{display:grid;gap:4px;padding:16px 20px}
.heat .hc{height:26px;border-radius:4px}
.heat .hl{font-size:.8125rem;display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.heat .hh{font-size:.6875rem;color:var(--cbf-muted);text-align:center;white-space:nowrap}
.lv0{background:#F1F5F9;box-shadow:inset 0 0 0 1px var(--cbf-border)}.lv1{background:#BFDBFE}.lv2{background:#93C5FD}.lv3{background:#1D4ED8}

/* ---------- Lists ---------- */
.list-row{display:flex;align-items:center;gap:14px;padding:12px 20px;border-bottom:1px solid var(--cbf-divider)}
.list-row:last-child{border-bottom:0}
.time-col{font-variant-numeric:tabular-nums;font-weight:600;width:100px;flex:none;font-size:.8125rem}
.bar-row{display:flex;align-items:center;gap:12px;padding:7px 0}
.bar-label{width:170px;flex:none;font-size:.8125rem;color:#1E293B;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-track{flex:1;height:10px;background:#EDF1F7;border-radius:5px;overflow:hidden}
.bar-fill{display:block;height:100%;background:#3B82F6;border-radius:5px}
.bar-val{width:56px;text-align:right;font-size:.8125rem;font-variant-numeric:tabular-nums;color:#334155}
.feed{display:flex;gap:12px;padding:12px 20px;border-bottom:1px solid var(--cbf-divider)}
.feed:last-child{border-bottom:0}
.feed-dot{width:8px;height:8px;border-radius:50%;background:#3B82F6;margin-top:6px;flex:none}
.feed-dot.sys{background:#F59E0B}
.loc-btn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 20px;border:0;border-bottom:1px solid var(--cbf-divider);background:#fff;color:var(--cbf-text)}
.loc-btn:hover{background:#F8FAFC}
.loc-btn.active{background:var(--cbf-primary-tint);box-shadow:inset 3px 0 0 #2563EB}
.loc-icon{width:36px;height:36px;border-radius:8px;background:#E0E7FF;color:var(--cbf-primary-dark);display:flex;align-items:center;justify-content:center;flex:none}
.initials{width:34px;height:34px;border-radius:8px;background:#E0E7FF;color:var(--cbf-primary-dark);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:.75rem;flex:none}
.del{text-decoration:line-through;color:var(--cbf-muted)}
.progress-thin{height:8px;background:#EDF1F7;border-radius:4px;overflow:hidden}
.progress-thin>span{display:block;height:100%;background:#F59E0B}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--cbf-border-strong);border-radius:8px;overflow:hidden}
.stepper button{width:44px;height:44px;border:0;background:#F8FAFC;font-size:1.1rem;color:#1E293B}
.stepper input{width:72px;height:44px;border:0;border-left:1px solid var(--cbf-border);border-right:1px solid var(--cbf-border);text-align:center;font-size:1.1rem;font-weight:600}

/* ---------- Modal (sterowany Alpine) ---------- */
.cbf-modal{position:fixed;inset:0;background:rgba(17,24,39,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1060}
.cbf-dialog{background:#fff;border-radius:12px;width:100%;max-width:480px;box-shadow:0 20px 40px rgba(16,24,40,.2);padding:24px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 32px);overflow:auto}
.cbf-dialog.lg{max-width:620px}
.dialog-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem}

/* ---------- Toasts ---------- */
.toast-stack{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:1080;max-width:calc(100vw - 40px)}
.toast-item{background:#0F172A;color:#fff;border-radius:10px;padding:12px 16px;font-size:.84rem;box-shadow:0 10px 24px rgba(16,24,40,.2);display:flex;gap:10px;align-items:center;min-width:260px}
.toast-item.ok i{color:#86EFAC}.toast-item.err i{color:#FCA5A5}

/* ---------- Login ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px}
.auth-box{width:100%;max-width:420px;display:flex;flex-direction:column;gap:20px}
.auth-card{background:#fff;border:1px solid var(--cbf-border);border-radius:12px;box-shadow:0 1px 3px rgba(16,24,40,.06);padding:28px;display:flex;flex-direction:column;gap:18px}
.demo-accounts button{font-size:.78rem}

/* ---------- Spinner ---------- */
.spin{animation:spin .8s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

@media print{.app-sidebar,.app-topbar{display:none}}

/* ---------- Poprawki układu ---------- */
.app-content,.app-content>*{min-width:0;max-width:100%}
.pagination{--bs-pagination-color:var(--cbf-text-2);--bs-pagination-hover-color:var(--cbf-text);--bs-pagination-active-bg:#2563EB;--bs-pagination-active-border-color:#2563EB;--bs-pagination-border-color:var(--cbf-border);--bs-pagination-focus-box-shadow:0 0 0 .2rem rgba(37,99,235,.18);--bs-pagination-disabled-bg:#fff}
.page-link{min-width:34px;text-align:center}
.table-responsive,.cal-scroll{position:relative}
.add-link{opacity:0;color:var(--cbf-muted)}.cal-week .cell:hover .add-link,.add-link:focus{opacity:1}

.form-select{padding-right:2.25rem}
.form-select-sm{padding-right:2rem}
@media (max-width:575.98px){
  .list-row{flex-wrap:wrap;gap:4px 12px;padding:12px 16px}
  .list-row .time-col{width:auto}
  .list-row>.flex-grow-1{flex-basis:100%;order:3}
  .card-header{padding:12px 16px}
  .card-body{padding:16px}
  .kpi{padding:16px}
}
/* x-show musi wygrywać z klasami d-* Bootstrapa (!important) */
[x-show][style*="display: none"]{display:none!important}

/* ==========================================================================
   Motyw kontrastowy v2: ciemny sidebar, żywe akcenty
   ========================================================================== */
.app-sidebar{background:#0F172A;border-right-color:#0F172A}
.app-sidebar .brand{color:#FFFFFF}
.app-sidebar .brand-logo{background:#3B82F6}
.app-sidebar .nav-head{color:#94A3B8}
.app-sidebar .nav-item-link{color:#CBD5E1}
.app-sidebar .nav-item-link:hover{background:#1E293B;color:#FFFFFF}
.app-sidebar .nav-item-link.active{background:#2563EB;color:#FFFFFF}
.app-sidebar .tag-admin{background:#334155;color:#E2E8F0}
.app-sidebar .text-muted{color:#94A3B8!important}
.app-sidebar .btn-ghost{--bs-btn-color:#CBD5E1;--bs-btn-hover-bg:#1E293B;--bs-btn-hover-color:#FFFFFF}
.auth-wrap{background:#0F172A}
.auth-wrap .auth-box>.text-center{color:#FFFFFF}
.auth-wrap .auth-box>.text-center .text-muted,.auth-wrap .auth-box>.text-center.text-muted{color:#94A3B8!important}
.auth-wrap .auth-box>.text-center a{color:#93C5FD}
.auth-wrap .brand-logo{background:#3B82F6!important}
.cal-ev.ev-con{background:#BBF7D0;color:#14532D}
.app-topbar{box-shadow:0 1px 0 rgba(15,23,42,.04)}
.card-header h2,.card-header .h2{color:#0F172A}
.table>thead th{color:#1E293B}
.form-control,.form-select,.input-group-text{background-color:#fff}
.form-control[readonly]{background-color:#F8FAFC}
.card{--bs-card-bg:#FFFFFF}
