/* =========================================================
   AutoSerwis — Midnight Indigo (Bootstrap override)
   Spójna stylistyka z panelem admina (admin/_admin.css).
   Nadpisuje Bootstrap 5 bez zmiany struktury HTML.
   ========================================================= */

:root{
  --bg:           #0a0a1a;
  --bg-2:         #0e0f24;
  --panel:        #141432;
  --panel-2:      #181a3a;
  --panel-3:      #1e1e5a;
  --border:       #262755;
  --border-2:     #2d2f6a;
  --text:         #e8eaf6;
  --text-soft:    #b8bcd9;
  --text-muted:   #7a7faa;
  --primary:      #4f46e5;
  --primary-2:    #6366f1;
  --primary-soft: rgba(79,70,229,.16);
  --success:      #22c55e;
  --warning:      #f59e0b;
  --danger:       #ef4444;
  --info:         #38bdf8;
  --radius:       14px;
  --radius-sm:    10px;
  --shadow:       0 10px 30px -12px rgba(0,0,0,.55);
  --shadow-soft:  0 4px 16px -8px rgba(0,0,0,.5);

  /* Bootstrap overrides */
  --bs-body-bg: var(--bg);
  --bs-body-color: var(--text);
  --bs-primary: var(--primary);
  --bs-primary-rgb: 79,70,229;
  --bs-secondary-rgb: 122,127,170;
  --bs-success: var(--success);
  --bs-success-rgb: 34,197,94;
  --bs-warning: var(--warning);
  --bs-warning-rgb: 245,158,11;
  --bs-danger: var(--danger);
  --bs-danger-rgb: 239,68,68;
  --bs-info: var(--info);
  --bs-info-rgb: 56,189,248;
  --bs-border-color: var(--border);
  --bs-link-color: var(--primary-2);
  --bs-link-hover-color: #a5b4fc;
  --bs-card-bg: var(--panel);
  --bs-card-border-color: var(--border);
  --bs-card-color: var(--text);
}

*{box-sizing:border-box}
html,body{
  margin:0;padding:0;background:var(--bg);color:var(--text);
  font-family:'Inter','Plus Jakarta Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;font-size:14.5px;line-height:1.55;
}
body{
  background:
    radial-gradient(1200px 600px at 100% -10%, rgba(79,70,229,.22), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(99,102,241,.14), transparent 60%),
    var(--bg);
  min-height:100vh;display:flex;flex-direction:column;
}

a{color:var(--primary-2);text-decoration:none}
a:hover{color:#a5b4fc}
h1,h2,h3,h4,h5,h6{color:#fff;font-weight:700;letter-spacing:-.01em}
p{color:var(--text-soft)}
hr{border-color:var(--border)}
code{background:#0f1130;color:#a5b4fc;padding:.1em .4em;border-radius:6px}

/* ---------- Navbar ---------- */
.navbar{
  background:rgba(10,10,26,.75)!important;backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);padding:.6rem 0;
}
.navbar.bg-primary,.navbar.bg-dark{background:rgba(10,10,26,.85)!important}
.navbar-brand,.navbar .nav-link{color:var(--text-soft)!important}
.navbar-brand{color:#fff!important;font-weight:800!important;display:flex;align-items:center;gap:.6rem}
.navbar .brand-icon,.navbar-brand i{
  width:38px;height:38px;border-radius:10px;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  display:inline-grid;place-items:center;color:#fff!important;font-size:1.1rem!important;
  box-shadow:0 6px 16px -6px var(--primary);
}
.brand-name{font-weight:800;color:#fff}
.brand-slogan{color:var(--text-muted)!important;font-size:.7rem!important;text-transform:uppercase;letter-spacing:.1em;opacity:1!important}
.navbar .nav-link{
  padding:.5rem .8rem!important;border-radius:10px;font-weight:500;font-size:.9rem;
  margin:0 .1rem;transition:background .15s,color .15s;
}
.navbar .nav-link:hover{background:var(--panel);color:#fff!important}
.navbar .nav-link.active,.navbar .nav-link.show{background:var(--primary-soft);color:#fff!important}
.navbar .nav-link.text-warning{color:#fbbf24!important}
.navbar .nav-link.text-warning:hover{background:rgba(245,158,11,.12)}
.navbar-toggler{border:1px solid var(--border)!important;background:var(--panel)!important;color:#fff}
.navbar-toggler-icon{filter:invert(1) brightness(2)}
.navbar .dropdown-toggle::after{margin-left:.4em;opacity:.7}

/* Dropdown */
.dropdown-menu{
  background:var(--panel)!important;border:1px solid var(--border)!important;
  border-radius:var(--radius)!important;box-shadow:var(--shadow);padding:.4rem;
}
.dropdown-item{
  color:var(--text-soft)!important;border-radius:8px;padding:.5rem .75rem;font-size:.9rem;
}
.dropdown-item:hover,.dropdown-item:focus{background:var(--panel-2)!important;color:#fff!important}
.dropdown-item.active{background:var(--primary)!important;color:#fff!important}
.dropdown-item.text-danger{color:#fca5a5!important}
.dropdown-item.text-danger:hover{background:rgba(239,68,68,.12)!important;color:#fca5a5!important}
.dropdown-item.text-warning{color:#fbbf24!important}
.dropdown-divider{border-top-color:var(--border)!important;margin:.4rem 0}

/* ---------- Container / main ---------- */
main,.container,.container-fluid{position:relative}
.container.mt-4{margin-top:1.75rem!important}

/* ---------- Cards ---------- */
.card{
  background:var(--panel)!important;border:1px solid var(--border)!important;
  border-radius:var(--radius)!important;box-shadow:var(--shadow-soft);
  color:var(--text)!important;overflow:hidden;
}
.card-header,.card-footer{
  background:transparent!important;border-color:var(--border)!important;
  color:#fff!important;font-weight:700;
}
.card-header{padding:1rem 1.25rem}
.card-body{color:var(--text)}
.card.bg-light,.bg-light,.bg-white{background:var(--panel)!important;color:var(--text)!important}
.card.h-100{height:100%}

/* ---------- Buttons ---------- */
.btn{
  border-radius:10px;font-weight:600;padding:.55rem 1rem;font-size:.9rem;
  border:1px solid transparent;transition:.15s;line-height:1.2;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary,.btn-primary:focus{
  background:linear-gradient(135deg,var(--primary),var(--primary-2))!important;
  border:none!important;color:#fff!important;
  box-shadow:0 6px 18px -6px var(--primary);
}
.btn-primary:hover{filter:brightness(1.12);color:#fff!important}
.btn-success{background:linear-gradient(135deg,#16a34a,#22c55e)!important;border:none!important;color:#fff!important}
.btn-success:hover{filter:brightness(1.12);color:#fff!important}
.btn-warning{background:linear-gradient(135deg,#d97706,#f59e0b)!important;border:none!important;color:#1a1300!important}
.btn-warning:hover{filter:brightness(1.12);color:#1a1300!important}
.btn-danger{background:linear-gradient(135deg,#dc2626,#ef4444)!important;border:none!important;color:#fff!important}
.btn-danger:hover{filter:brightness(1.12);color:#fff!important}
.btn-info{background:linear-gradient(135deg,#0284c7,#38bdf8)!important;border:none!important;color:#fff!important}
.btn-secondary,.btn-light{background:var(--panel-2)!important;border:1px solid var(--border)!important;color:var(--text)!important}
.btn-secondary:hover,.btn-light:hover{background:var(--panel-3)!important;color:#fff!important}
.btn-dark{background:var(--bg-2)!important;border:1px solid var(--border)!important;color:#fff!important}
.btn-outline-primary{border:1px solid var(--primary-2)!important;color:var(--primary-2)!important;background:transparent!important}
.btn-outline-primary:hover{background:var(--primary)!important;color:#fff!important}
.btn-outline-secondary,.btn-outline-light,.btn-outline-dark{
  border:1px solid var(--border-2)!important;color:var(--text)!important;background:transparent!important;
}
.btn-outline-secondary:hover,.btn-outline-light:hover,.btn-outline-dark:hover{
  background:var(--panel-2)!important;color:#fff!important;border-color:var(--primary-2)!important;
}
.btn-outline-danger{border:1px solid #ef4444!important;color:#fca5a5!important;background:transparent!important}
.btn-outline-danger:hover{background:#ef4444!important;color:#fff!important}
.btn-outline-warning{border:1px solid #f59e0b!important;color:#fbbf24!important;background:transparent!important}
.btn-outline-success{border:1px solid #22c55e!important;color:#86efac!important;background:transparent!important}
.btn-link{color:var(--primary-2)!important;text-decoration:none}
.btn-lg{padding:.8rem 1.4rem;font-size:1rem;border-radius:12px}
.btn-sm{padding:.4rem .75rem;font-size:.8rem}

/* ---------- Badges ---------- */
.badge{font-weight:700;letter-spacing:.04em;padding:.35em .65em;border-radius:999px;font-size:.7rem;text-transform:uppercase}
.badge.bg-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2))!important;color:#fff!important}
.badge.bg-success{background:rgba(34,197,94,.18)!important;color:#86efac!important;border:1px solid rgba(34,197,94,.4)}
.badge.bg-warning{background:linear-gradient(135deg,#f59e0b,#fbbf24)!important;color:#1a1300!important}
.badge.bg-danger{background:linear-gradient(135deg,#ef4444,#fb7185)!important;color:#fff!important}
.badge.bg-info{background:rgba(56,189,248,.18)!important;color:#7dd3fc!important;border:1px solid rgba(56,189,248,.4)}
.badge.bg-secondary,.badge.bg-light,.badge.bg-dark{background:var(--panel-3)!important;color:#fff!important;border:1px solid var(--border-2)}
.badge.text-dark{color:#1a1300!important}

/* ---------- Tables ---------- */
.table{
  --bs-table-bg:transparent;--bs-table-color:var(--text);
  --bs-table-border-color:var(--border);
  --bs-table-striped-bg:rgba(99,102,241,.04);
  --bs-table-striped-color:var(--text);
  --bs-table-hover-bg:rgba(99,102,241,.07);
  --bs-table-hover-color:#fff;
  color:var(--text);margin-bottom:0;
}
.table>:not(caption)>*>*{padding:.7rem .9rem;border-bottom-color:var(--border)}
.table thead th,.table>thead{
  background:var(--bg-2)!important;color:var(--text-muted)!important;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;
  border-bottom:1px solid var(--border-2)!important;
}
.table-light,.table-light>th,.table-light>td{background:var(--bg-2)!important;color:var(--text-muted)!important}
.table>tbody>tr:hover>*{background:rgba(99,102,241,.06)!important;color:#fff}
.table-responsive{border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}

/* ---------- Forms ---------- */
.form-control,.form-select,.input-group-text{
  background:var(--bg-2)!important;color:var(--text)!important;
  border:1px solid var(--border)!important;border-radius:10px!important;
  padding:.6rem .85rem;font-size:.92rem;transition:.15s;
}
.form-control::placeholder{color:var(--text-muted)}
.form-control:focus,.form-select:focus{
  background:var(--bg-2)!important;color:#fff!important;
  border-color:var(--primary-2)!important;
  box-shadow:0 0 0 3px rgba(99,102,241,.18)!important;
}
.form-label{font-size:.78rem;color:var(--text-muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.4rem}
.form-text{color:var(--text-muted)}
.form-check-input{background-color:var(--bg-2);border:1px solid var(--border)}
.form-check-input:checked{background-color:var(--primary)!important;border-color:var(--primary)!important}
.form-check-label{color:var(--text-soft)}
.input-group-text{background:var(--panel-2)!important;border-color:var(--border)!important;color:var(--text-muted)!important}
.form-select{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23b8bcd9' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")!important;
  background-repeat:no-repeat!important;background-position:right .85rem center!important;background-size:14px 12px!important;padding-right:2.25rem!important;
}
.form-select option{background:var(--panel);color:var(--text)}

/* ---------- Alerts ---------- */
.alert{
  border-radius:var(--radius-sm);border:1px solid var(--border-2);
  background:var(--panel-2);color:var(--text);padding:.85rem 1rem;font-size:.9rem;
}
.alert-success{border-color:rgba(34,197,94,.4)!important;background:rgba(34,197,94,.1)!important;color:#86efac!important}
.alert-danger{border-color:rgba(239,68,68,.4)!important;background:rgba(239,68,68,.1)!important;color:#fca5a5!important}
.alert-warning{border-color:rgba(245,158,11,.4)!important;background:rgba(245,158,11,.1)!important;color:#fcd34d!important}
.alert-info,.alert-primary{border-color:rgba(56,189,248,.4)!important;background:rgba(56,189,248,.1)!important;color:#7dd3fc!important}
.alert .btn-close{filter:invert(1) brightness(2)}

/* ---------- Modals / offcanvas ---------- */
.modal-content,.offcanvas{
  background:var(--panel)!important;color:var(--text)!important;
  border:1px solid var(--border)!important;border-radius:var(--radius)!important;
}
.modal-header,.modal-footer,.offcanvas-header{border-color:var(--border)!important}
.modal-title{color:#fff}
.btn-close{filter:invert(1) brightness(2);opacity:.7}
.btn-close:hover{opacity:1}

/* ---------- Lists ---------- */
.list-group-item{
  background:var(--panel)!important;color:var(--text)!important;
  border-color:var(--border)!important;
}
.list-group-item.active{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}

/* ---------- Nav tabs / pills ---------- */
.nav-tabs{border-bottom:1px solid var(--border)}
.nav-tabs .nav-link{
  background:transparent;border:1px solid transparent;color:var(--text-soft);
  border-radius:10px 10px 0 0;font-weight:600;
}
.nav-tabs .nav-link:hover{color:#fff;border-color:transparent}
.nav-tabs .nav-link.active{
  background:var(--panel)!important;border-color:var(--border) var(--border) var(--panel)!important;color:#fff!important;
}
.nav-pills .nav-link{color:var(--text-soft);border-radius:10px}
.nav-pills .nav-link.active{background:var(--primary)!important;color:#fff!important}

/* ---------- Pagination ---------- */
.pagination .page-link{
  background:var(--panel)!important;border:1px solid var(--border)!important;
  color:var(--text-soft)!important;
}
.pagination .page-link:hover{background:var(--panel-2)!important;color:#fff!important}
.pagination .page-item.active .page-link{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}

/* ---------- Progress ---------- */
.progress{background:var(--bg-2);border:1px solid var(--border);height:.6rem;border-radius:999px}
.progress-bar{background:linear-gradient(90deg,var(--primary),var(--primary-2))}

/* ---------- Spinner / accordion ---------- */
.spinner-border{color:var(--primary-2)}
.accordion-item{background:var(--panel)!important;border:1px solid var(--border)!important;color:var(--text)}
.accordion-button{background:var(--panel)!important;color:#fff!important;font-weight:600}
.accordion-button:not(.collapsed){background:var(--panel-2)!important;color:#fff!important;box-shadow:none}
.accordion-button::after{filter:invert(1) brightness(2)}
.accordion-body{background:var(--panel)!important;color:var(--text-soft)}

/* ---------- Tooltips / popovers ---------- */
.tooltip-inner{background:var(--panel-3)!important;color:#fff}
.popover{background:var(--panel)!important;border:1px solid var(--border)!important}
.popover-header{background:var(--panel-2)!important;color:#fff!important;border-color:var(--border)!important}
.popover-body{color:var(--text-soft)}

/* ---------- Text helpers (Bootstrap) ---------- */
.text-muted{color:var(--text-muted)!important}
.text-dark{color:var(--text)!important}
.text-body,.text-body-secondary{color:var(--text-soft)!important}
.text-white{color:#fff!important}
.text-primary{color:var(--primary-2)!important}
.text-success{color:#86efac!important}
.text-warning{color:#fbbf24!important}
.text-danger{color:#fca5a5!important}
.text-info{color:#7dd3fc!important}
.text-white-50{color:rgba(255,255,255,.65)!important}
.border,.border-top,.border-bottom,.border-start,.border-end{border-color:var(--border)!important}
.bg-body,.bg-body-tertiary,.bg-body-secondary{background:var(--bg-2)!important}

/* ---------- Hero / gradient (z index.php) ---------- */
.bg-gradient-primary{
  background:linear-gradient(135deg,var(--panel-3) 0%,var(--primary) 60%,var(--primary-2) 100%)!important;
  position:relative;
}
.bg-gradient-primary::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(800px 300px at 80% 0%,rgba(255,255,255,.12),transparent 60%);
  pointer-events:none;
}
.rounded-4{border-radius:20px!important}
.shadow,.shadow-sm,.shadow-lg{box-shadow:var(--shadow)!important}

/* Hero text on gradient pozostaje białe */
.bg-gradient-primary,.bg-gradient-primary *{color:#fff}
.bg-gradient-primary .text-white-50{color:rgba(255,255,255,.75)!important}
.bg-gradient-primary .text-muted{color:rgba(255,255,255,.65)!important}

/* ---------- Footer ---------- */
footer,.footer{
  background:var(--bg-2)!important;border-top:1px solid var(--border)!important;
  color:var(--text-muted)!important;
}
footer *,.footer *{color:var(--text-muted)!important}

/* ---------- Chat bubble (pomoc) ---------- */
.message-user{background:var(--panel-2)!important;border:1px solid var(--border)!important;color:var(--text)!important;border-radius:14px}
.message-admin{background:linear-gradient(135deg,var(--primary),var(--primary-2))!important;color:#fff!important;border-radius:14px}

/* ---------- Bootstrap utility colors background ---------- */
.bg-primary{background:linear-gradient(135deg,var(--primary),var(--primary-2))!important;color:#fff!important}
.bg-success{background:rgba(34,197,94,.15)!important;color:#86efac!important;border:1px solid rgba(34,197,94,.4)}
.bg-warning{background:linear-gradient(135deg,#d97706,#f59e0b)!important;color:#1a1300!important}
.bg-danger{background:rgba(239,68,68,.15)!important;color:#fca5a5!important;border:1px solid rgba(239,68,68,.4)}
.bg-info{background:rgba(56,189,248,.15)!important;color:#7dd3fc!important;border:1px solid rgba(56,189,248,.4)}
.bg-dark{background:var(--bg-2)!important;color:var(--text)!important}
.bg-secondary{background:var(--panel-2)!important;color:var(--text)!important}

/* Display headings */
.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{font-weight:900;letter-spacing:-.02em;color:#fff}
.fw-black{font-weight:900}
.lead{color:var(--text-soft);font-weight:400}

/* Border radius helpers */
.rounded-pill{border-radius:999px!important}
.rounded-3{border-radius:12px!important}

/* ---------- Tabel responsive scroll ---------- */
.table-responsive{-webkit-overflow-scrolling:touch}

/* ---------- Charts (Chart.js) tła ---------- */
canvas{background:transparent!important}

/* ---------- Admin body legacy (jeśli używane) ---------- */
.admin-body{background:var(--bg);color:var(--text)}
.admin-body .navbar.bg-dark{background:var(--bg-2)!important;border-bottom:1px solid var(--border)}
.admin-body .card{background:var(--panel)!important}
.admin-body .text-muted{color:var(--text-muted)!important}

/* ---------- Mobile ---------- */
@media (max-width:991px){
  .navbar-collapse{
    background:var(--bg-2);margin-top:.75rem;padding:1rem;
    border:1px solid var(--border);border-radius:var(--radius);
  }
  .navbar .nav-link{margin:.1rem 0}
}
@media (max-width:560px){
  .display-4{font-size:1.8rem!important}
  .container{padding-left:1rem;padding-right:1rem}
}

/* Selection */
::selection{background:var(--primary);color:#fff}

/* Scrollbar */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--panel-3);border-radius:10px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}

/* =========================================================
   App Shell — sidebar + topbar (parity with admin panel)
   ========================================================= */
:root{ --sb-w:260px; --tb-h:64px; }

body.app-shell{ display:block; }

/* Sidebar */
.sb-toggle{position:absolute;left:-9999px}
.sidebar{
  position:fixed;inset:0 auto 0 0;width:var(--sb-w);
  background:linear-gradient(180deg,#0c0d22 0%,#0a0a1a 100%);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  padding:1rem .85rem;z-index:1050;
  transition:transform .25s ease;
}
.sidebar-brand{
  display:flex;align-items:center;gap:.7rem;
  padding:.6rem .6rem 1.2rem;border-bottom:1px solid var(--border);
  margin-bottom:.8rem;color:#fff;text-decoration:none;
}
.sidebar-brand:hover{color:#fff}
.sidebar-brand.inline{padding:0;border:none;margin:0}
.sidebar-brand .brand-mark{
  width:38px;height:38px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-2) 100%);
  display:grid;place-items:center;color:#fff;font-size:1.1rem;
  box-shadow:0 6px 16px -6px var(--primary);
}
.sidebar-brand .brand-text{display:flex;flex-direction:column;line-height:1.1}
.sidebar-brand .brand-name{font-weight:800;font-size:.98rem;color:#fff}
.sidebar-brand .brand-tag{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:2px;opacity:1}

.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto;padding-bottom:.5rem}
.sidebar .nav-item{
  display:flex;align-items:center;gap:.75rem;
  padding:.65rem .8rem;border-radius:10px;
  color:var(--text-soft)!important;font-weight:500;font-size:.92rem;
  transition:background .15s,color .15s;
  border:1px solid transparent;text-decoration:none;
  background:transparent!important;margin:0;
}
.sidebar .nav-item i{font-size:1.05rem;width:1.2em;text-align:center;opacity:.85}
.sidebar .nav-item:hover{background:var(--panel)!important;color:#fff!important}
.sidebar .nav-item.is-active{
  background:linear-gradient(90deg,var(--primary-soft),transparent)!important;
  color:#fff!important;border-color:var(--border-2);
}
.sidebar .nav-item.is-active i{color:var(--primary-2);opacity:1}
.sidebar .nav-item.danger:hover{background:rgba(239,68,68,.12)!important;color:#fca5a5!important}
.sidebar .nav-item.warning{color:#fcd34d!important}
.sidebar .nav-item.warning:hover{background:rgba(245,158,11,.12)!important;color:#fde68a!important}
.sidebar .nav-item.pro{color:#fbbf24!important}
.sidebar .nav-item.pro:hover{background:rgba(245,158,11,.14)!important}
.sidebar .nav-item.subtle{color:var(--text-muted)!important}
.sidebar-foot{border-top:1px solid var(--border);padding-top:.6rem;display:flex;flex-direction:column;gap:2px}

.sb-burger{
  display:none;cursor:pointer;width:40px;height:40px;border-radius:10px;
  background:var(--panel);color:#fff;align-items:center;justify-content:center;
  font-size:1.3rem;border:1px solid var(--border);
}
.sb-scrim{display:none;position:fixed;inset:0;background:rgba(5,6,20,.7);z-index:1040;backdrop-filter:blur(2px)}

/* Topbar */
.app-shell .topbar{
  position:sticky;top:0;z-index:1030;
  margin-left:var(--sb-w);
  height:var(--tb-h);
  display:flex;align-items:center;gap:1rem;
  padding:0 1.5rem;
  background:rgba(10,10,26,.78)!important;backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
.app-shell .topbar.topbar-public{margin-left:0;padding:0 1.25rem}
.topbar-title{flex:1;display:flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--text-soft);min-width:0}
.topbar-title strong{color:#fff;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crumb{color:var(--text-muted);font-weight:500}
.crumb-sep{font-size:.7rem;color:var(--text-muted)}
.topbar-right{display:flex;align-items:center;gap:.6rem;margin-left:auto}
.topbar-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.4rem .7rem;border-radius:10px;
  background:var(--panel);border:1px solid var(--border);
  color:var(--text-soft)!important;font-size:.85rem;font-weight:600;text-decoration:none;
}
.topbar-btn:hover{background:var(--panel-2);color:#fff!important}

.user-chip{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.4rem .75rem;border-radius:999px;
  background:var(--panel);border:1px solid var(--border);font-size:.85rem;
}
.user-chip i{font-size:1.1rem;color:var(--primary-2)}
.user-name{font-weight:600;color:#fff}
.user-badge{
  font-size:.65rem;font-weight:700;letter-spacing:.08em;
  padding:.15rem .45rem;border-radius:6px;color:#fff;
}
.user-badge.admin{background:linear-gradient(135deg,var(--danger),#fb7185)}
.user-badge.pro{background:linear-gradient(135deg,#d97706,#fbbf24);color:#1a1300}
.user-badge.free{background:var(--panel-3);color:var(--text-muted);border:1px solid var(--border-2)}

/* Main content */
.app-shell .main{
  margin-left:var(--sb-w);
  padding:1.75rem 1.5rem 3rem;
  max-width:1600px;
}
.app-shell .main.main-public{margin-left:0;max-width:1240px;margin-right:auto;margin-left:auto}
.flash-wrap{margin-bottom:1.25rem}

/* Footer */
.app-footer{
  margin-left:var(--sb-w);
  padding:1.5rem;border-top:1px solid var(--border);
  color:var(--text-muted);font-size:.8rem;text-align:center;
  background:rgba(10,10,26,.6);
}
body.app-public .app-footer{margin-left:0}
.footer.bg-light{background:transparent!important}

/* Public top bar tweaks */
.topbar-public .sidebar-brand .brand-name{font-size:1.05rem}

/* Hide legacy navbar if any page accidentally renders it */
.app-shell > nav.navbar{display:none}

/* Mobile */
@media (max-width:991px){
  .sidebar{transform:translateX(-100%)}
  .sb-toggle:checked ~ .sidebar{transform:translateX(0)}
  .sb-toggle:checked ~ .sb-scrim{display:block}
  .app-shell .topbar,
  .app-shell .main,
  .app-footer{margin-left:0}
  .sb-burger{display:inline-flex}
  .app-shell .main{padding:1.25rem 1rem 3rem}
  .app-shell .topbar{padding:0 1rem}
  .user-name{display:none}
}
@media (max-width:560px){
  .topbar-title .crumb,.topbar-title .crumb-sep{display:none}
  .user-badge.free{display:none}
}

/* Mobile public topbar fix — prevent brand/buttons overflow */
.topbar-public{flex-wrap:nowrap;gap:.5rem}
.topbar-public .sidebar-brand.inline{min-width:0;flex:1 1 auto;overflow:hidden}
.topbar-public .sidebar-brand .brand-text{min-width:0;overflow:hidden}
.topbar-public .sidebar-brand .brand-name,
.topbar-public .sidebar-brand .brand-tag{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%;
}
.topbar-public .topbar-right{flex:0 0 auto;gap:.4rem}
@media (max-width:767px){
  .topbar-public .sidebar-brand .brand-mark{width:34px;height:34px;font-size:1rem}
  .topbar-public .sidebar-brand .brand-name{font-size:.9rem}
  .topbar-public .sidebar-brand .brand-tag{display:none}
  .topbar-public .topbar-right .btn .me-1,
  .topbar-public .topbar-right .topbar-btn span{display:none}
  .topbar-public .topbar-right .btn{padding:.4rem .55rem;font-size:.8rem}
  .topbar-public .topbar-right .btn i{margin:0!important}
  .topbar-public .topbar-btn{padding:.4rem .55rem}
}
@media (max-width:420px){
  .topbar-public{padding:0 .65rem!important}
  .topbar-public .sidebar-brand .brand-text{display:none}
}

/* =========================================================
   Dashboard — kafelki (alerty + statystyki)
   ========================================================= */
.dash-alerts__head{display:flex;align-items:center;gap:.5rem;margin:0 0 .85rem}
.dash-alerts__head i{color:var(--danger);font-size:1.1rem}
.dash-alerts__head h2{font-size:1rem;font-weight:700;color:var(--text);margin:0;letter-spacing:.01em}

.dash-tiles{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:768px){.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dash-tiles--stats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:992px){.dash-tiles--stats{grid-template-columns:repeat(4,minmax(0,1fr))}}

.dash-tile{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--border);
  border-radius:16px;padding:1.1rem 1.15rem;box-shadow:0 1px 2px rgba(0,0,0,.25);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease}
.dash-tile:hover{transform:translateY(-1px);box-shadow:0 8px 24px -12px rgba(0,0,0,.55);border-color:var(--border-2)}

.dash-tile--alert.is-expired{border-color:rgba(239,68,68,.45)}
.dash-tile--alert.is-warning{border-color:rgba(245,158,11,.45)}
.dash-tile__bar{position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:16px 0 0 16px}
.is-expired .dash-tile__bar{background:var(--danger)}
.is-warning .dash-tile__bar{background:var(--warning)}

.dash-tile__body{display:flex;align-items:flex-start;gap:.85rem;color:var(--text);text-decoration:none}
.dash-tile__body:hover{color:var(--text)}
.dash-tile__icon{flex:0 0 auto;width:42px;height:42px;border-radius:12px;display:flex;
  align-items:center;justify-content:center;font-size:1.1rem;
  background:rgba(99,102,241,.14);color:var(--primary-2)}
.is-expired .dash-tile__icon{background:rgba(239,68,68,.14);color:var(--danger)}
.is-warning .dash-tile__icon{background:rgba(245,158,11,.14);color:var(--warning)}
.dash-tile__text{min-width:0;flex:1 1 auto}
.dash-tile__title{font-size:.95rem;font-weight:700;color:var(--text);margin:0 0 .2rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-tile__desc{margin:0;font-size:.875rem;color:var(--text-soft);line-height:1.35}
.dash-tile__desc strong{color:var(--text);font-weight:600}
.dash-tile__badge{flex:0 0 auto;align-self:flex-start;font-size:.72rem;font-weight:700;
  padding:.3rem .6rem;border-radius:999px;white-space:nowrap;letter-spacing:.02em}
.is-expired .dash-tile__badge{background:var(--danger);color:#fff}
.is-warning .dash-tile__badge{background:var(--warning);color:#1b1300}

.dash-tile__cta{margin-top:.9rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  width:100%;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff !important;
  border-radius:12px;padding:.6rem .9rem;font-size:.85rem;font-weight:600;text-decoration:none;
  border:1px solid rgba(255,255,255,.08);transition:filter .15s ease, transform .15s ease}
.dash-tile__cta:hover{filter:brightness(1.08);transform:translateY(-1px);color:#fff}
.dash-tile__cta i{font-size:.95rem}

.dash-tile--stat{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.dash-stat{display:flex;flex-direction:column;min-width:0}
.dash-stat__label{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-stat__value{font-size:1.85rem;font-weight:800;line-height:1.1;color:var(--text);margin-top:.25rem}
.dash-stat__value--sm{font-size:1.15rem;font-weight:700}
.dash-tile--stat .dash-tile__icon{width:44px;height:44px;font-size:1.2rem}
.tone-primary .dash-tile__icon{background:rgba(99,102,241,.16);color:var(--primary-2)}
.tone-success .dash-tile__icon{background:rgba(34,197,94,.16);color:var(--success)}
.tone-warning .dash-tile__icon{background:rgba(245,158,11,.16);color:var(--warning)}
.tone-danger  .dash-tile__icon{background:rgba(239,68,68,.16);color:var(--danger)}
.tone-muted   .dash-tile__icon{background:rgba(122,127,170,.16);color:var(--text-muted)}

/* =========================================================
   Dashboard — karty, listy, tabela (spójny dark theme)
   ========================================================= */
.dash-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media (min-width:992px){.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dash-card--span2{grid-column:1 / -1}

.dash-card{
  background:var(--panel);border:1px solid var(--border);border-radius:16px;
  box-shadow:0 1px 2px rgba(0,0,0,.25);overflow:hidden;
  display:flex;flex-direction:column;
}
.dash-card__head{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:1rem 1.15rem;border-bottom:1px solid var(--border);
}
.dash-card__title{
  display:flex;align-items:center;gap:.55rem;
  font-size:.95rem;font-weight:700;color:var(--text);margin:0;
}
.dash-card__title i{color:var(--primary-2);font-size:1.05rem}
.dash-card__action{
  font-size:.8rem;font-weight:600;color:var(--primary-2);text-decoration:none;
  display:inline-flex;align-items:center;gap:.3rem;
  padding:.35rem .65rem;border-radius:8px;transition:background .15s ease;
}
.dash-card__action:hover{background:rgba(99,102,241,.12);color:var(--primary-2)}
.dash-card__body{padding:.5rem .65rem .85rem;flex:1}
.dash-card__body--flush{padding:0}

/* lista wewnątrz karty */
.dash-list{list-style:none;margin:0;padding:0}
.dash-list > li + li{border-top:1px solid var(--border)}
.dash-list__row{
  display:flex;align-items:center;gap:.85rem;
  padding:.7rem .5rem;color:var(--text);text-decoration:none;
  border-radius:10px;transition:background .15s ease;
}
a.dash-list__row:hover{background:rgba(99,102,241,.07)}
.dash-list__icon{
  flex:0 0 auto;width:38px;height:38px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;font-size:1rem;
  background:rgba(99,102,241,.14);color:var(--primary-2);
}
.dash-list__icon.tone-warning{background:rgba(245,158,11,.16);color:var(--warning)}
.dash-list__icon.tone-success{background:rgba(34,197,94,.16);color:var(--success)}
.dash-list__main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:.15rem}
.dash-list__title{font-size:.9rem;font-weight:600;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-list__meta{font-size:.78rem;color:var(--text-soft);line-height:1.35}
.dash-list__chev{color:var(--text-muted);font-size:.95rem}
.dash-list__status{flex:0 0 auto}
.dash-list__sep{
  padding:.75rem .5rem .4rem;font-size:.7rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);
  border-top:1px solid var(--border);margin-top:.25rem;
}
.dash-chip{
  display:inline-block;padding:.05rem .45rem;border-radius:6px;
  background:var(--panel-3);color:var(--text);font-size:.7rem;font-weight:600;
}

/* pusty stan */
.dash-empty{
  text-align:center;padding:1.5rem 1rem;color:var(--text-muted);
}
.dash-empty i{font-size:2rem;display:block;margin-bottom:.4rem;color:var(--text-muted)}
.dash-empty--ok i{color:var(--success)}
.dash-empty p{margin:0;font-size:.85rem}
.dash-empty a{color:var(--primary-2);font-weight:600;text-decoration:none}

/* tabela */
.dash-table-wrap{overflow-x:auto}
.dash-table{width:100%;border-collapse:collapse;font-size:.85rem;color:var(--text)}
.dash-table thead th{
  background:var(--panel-2);color:var(--text-soft);
  font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  text-align:left;padding:.65rem .9rem;border-bottom:1px solid var(--border);
  white-space:nowrap;
}
.dash-table tbody td{
  padding:.7rem .9rem;border-bottom:1px solid var(--border);vertical-align:middle;
}
.dash-table tbody tr:last-child td{border-bottom:none}
.dash-table tbody tr:hover{background:rgba(99,102,241,.06)}
.dash-table a{color:var(--primary-2);text-decoration:none;font-weight:600}
.dash-table a:hover{text-decoration:underline}
.dash-table__notes{color:var(--text-soft);max-width:240px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* nagłówek dashboardu na mobile */
@media (max-width:520px){
  .dash-card__head{padding:.85rem .9rem}
  .dash-card__body{padding:.4rem .5rem .7rem}
  .dash-list__icon{width:34px;height:34px}
}
