@font-face {
    font-family: "Bricolage Grotesque";
    src: url("/assets/fonts/BricolageGrotesque.woff2") format("woff2");
    font-weight: 500 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Figtree";
    src: url("/assets/fonts/Figtree.woff2") format("woff2");
    font-weight: 400 600;
    font-style: normal;
    font-display: swap;
}
:root{
  --bg:#ffffff; --surface:#F6FAFA; --ink:#1F3345; --on-ink:#ffffff; --muted:#5B6E7C; --line:#E4ECEE;
  --brand:#0B7F8C; --on-brand:#ffffff;
  --clean:#0F9BA8; --green:#3E9F4B; --snow:#4A86E8; --amber:#E9A23B; --danger:#D64545;
  --clean-ink:#0B6F79; --green-ink:#2A7A35; --snow-ink:#2F63C4; --amber-ink:#8A5A0B; --danger-ink:#B23636;
  --clean-tint:rgba(15,155,168,.11); --green-tint:rgba(62,159,75,.12); --snow-tint:rgba(74,134,232,.12);
  --amber-tint:rgba(233,162,59,.17); --danger-tint:rgba(214,69,69,.12);
  --shadow:0 1px 2px rgba(31,51,69,.05), 0 16px 36px -18px rgba(31,51,69,.18);
  --display:"Bricolage Grotesque","Segoe UI",system-ui,-apple-system,sans-serif;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#0E1922; --surface:#14232F; --ink:#E9F0F5; --on-ink:#0E1922; --muted:#9DB0BF; --line:#243645;
  --brand:#39B7C4; --on-brand:#0E1922;
  --clean-ink:#5CD0DA; --green-ink:#7BD08A; --snow-ink:#8DB4FF; --amber-ink:#F2C275; --danger-ink:#F29E9E;
  --shadow:0 1px 2px rgba(0,0,0,.35), 0 16px 36px -18px rgba(0,0,0,.6);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
body.kariera-body{
  margin:0; background:var(--bg); color:var(--ink); font-family:var(--body);
  font-size:1.0625rem; line-height:1.6; -webkit-font-smoothing:antialiased;
  transition:background .25s, color .25s;
}
.kariera-body h1,.kariera-body h2,.kariera-body h3{
  font-family:var(--display); line-height:1.15; letter-spacing:-.015em; margin:0; font-weight:700;
}
.kariera-body a{color:inherit}
.kariera-body img{max-width:100%}
.k-wrap{max-width:1120px; margin-inline:auto; padding-inline:clamp(20px,5vw,40px)}
.k-section{padding-block:clamp(48px,7vw,88px)}
.k-alt{background:var(--surface)}
.k-sec-head{max-width:640px; margin-bottom:clamp(28px,4vw,44px)}
.k-sec-head h1,.k-sec-head h2{font-size:clamp(1.8rem,4vw,2.6rem)}
.k-sec-head p{margin-top:14px; color:var(--muted); max-width:56ch}

/* Przyciski — te same klasy co na stronie głównej */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 24px;
  border-radius:999px; font:600 1rem/1 var(--body); text-decoration:none; border:1.5px solid transparent;
  cursor:pointer; transition:transform .15s, background .15s, border-color .15s}
.btn-primary{background:var(--brand); color:var(--on-brand)}
.btn-primary:hover{background:#096B77; transform:translateY(-1px)}
.btn-ghost{border-color:var(--line); background:transparent; color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-danger{background:var(--danger); color:#fff}
.btn-danger:hover{background:var(--danger-ink)}
.btn-sm{min-height:40px; padding:9px 16px; font-size:.92rem}
.btn[disabled]{opacity:.5; cursor:not-allowed}

/* ==========================================================
   Header — identyczny jak na stronie głównej (site-header,
   wrap bar-inner, brand, nav, header-cta, nav-toggle). Te same
   nazwy klas i te same reguły, żeby /kariera wyglądało jak
   kolejna zakładka tej samej strony, a nie osobna aplikacja.
   ========================================================== */
.wrap{max-width:1120px; margin-inline:auto; padding-inline:clamp(20px,5vw,40px)}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

.site-header{position:sticky; top:0; z-index:50; background:var(--bg);
  background:color-mix(in srgb,var(--bg) 90%,transparent); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:1px solid transparent; transition:border-color .2s, background .25s}
.site-header.scrolled{border-color:var(--line)}
/* Szerokość i wyśrodkowanie wpisane wprost w .bar-inner (nie tylko w .wrap),
   żeby działało nawet gdyby na stronie zabrakło drugiej klasy na tym divie. */
.bar-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:68px;
  max-width:1120px; margin-inline:auto; padding-inline:clamp(20px,5vw,40px)}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);
  font-family:var(--display); font-weight:700; font-size:1.2rem; letter-spacing:-.01em}
.brand img{flex:none; border-radius:8px}
.nav ul{display:flex; gap:6px; list-style:none; margin:0; padding:0}
.nav a{position:relative; display:block; padding:10px 12px; text-decoration:none; font-weight:500;
  font-size:.98rem; color:var(--muted); transition:color .15s}
.nav a:hover{color:var(--ink)}
.nav a::after{content:""; position:absolute; left:12px; right:12px; bottom:4px; height:2px; border-radius:2px;
  background:var(--clean); transform:scaleX(0); transform-origin:left; transition:transform .25s}
.nav a[aria-current="true"]{color:var(--ink); font-weight:700}
.nav a[aria-current="true"]::after{transform:scaleX(1)}
.header-cta{display:flex; align-items:center; gap:10px}
.nav-toggle{display:none; width:44px; height:44px; border:1px solid var(--line); background:var(--bg);
  border-radius:12px; color:var(--ink); cursor:pointer; align-items:center; justify-content:center}
@media (max-width:859px){
  .nav-toggle{display:inline-flex}
  .nav{display:none; position:absolute; left:0; right:0; top:100%; background:var(--bg); border-bottom:1px solid var(--line);
    padding:8px clamp(20px,5vw,40px) 16px}
  .nav.open{display:block}
  .nav ul{flex-direction:column; gap:0}
  .nav a{padding:14px 4px; font-size:1.05rem; border-top:1px solid var(--line)}
  .nav li:first-child a{border-top:0}
  .nav a::after{display:none}
  .nav a[aria-current="true"]{color:var(--clean-ink)}
  .header-cta .btn{display:none}
}

/* Hero Kariera */
.k-hero{position:relative; isolation:isolate; overflow:hidden; color:#fff; background:#17313A;
  padding-block:clamp(64px,10vw,100px); min-height:clamp(380px,52vh,560px); display:flex; align-items:center}
/* Bez tego flex wyśrodkowałby cały blok tekstu też w poziomie (margin:auto
   na elemencie flex działa w obu osiach) — width:100% przywraca mu pełną
   szerokość sekcji, więc w środku nadal centruje się kolumna 1120px, a
   tekst zostaje przy lewej krawędzi tej kolumny, tak jak wcześniej. */
.k-hero .k-wrap{width:100%}
.k-hero::before{content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(90deg,rgba(8,27,34,.88) 0%,rgba(8,27,34,.68) 55%,rgba(8,27,34,.42) 100%),
             linear-gradient(180deg,rgba(8,27,34,.15),rgba(8,27,34,.55));}
.k-hero-media{position:absolute; inset:0; z-index:-2; margin:0}
.k-hero-media img{display:block; width:100%; height:100%; object-fit:cover; object-position:center 42%}
@media (max-width:700px){
  .k-hero{min-height:clamp(320px,48vh,440px)}
  .k-hero-media img{object-position:62% center}
}
.k-eyebrow{display:inline-block; padding:6px 14px; border-radius:999px; background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.28); font-size:.82rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase}
.k-hero h1{margin-top:18px; font-size:clamp(2.1rem,5.2vw,3.4rem); max-width:16ch}
.k-hero p{margin-top:16px; font-size:1.1rem; color:rgba(255,255,255,.85); max-width:56ch; line-height:1.55}

/* Filtry */
.k-filters{display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); margin-bottom:32px;
  padding:18px; border-radius:20px; background:var(--surface); border:1px solid var(--line)}
.k-filters select,.k-filters input{font:inherit; padding:11px 12px; border-radius:12px; border:1.5px solid var(--line);
  background:var(--bg); color:var(--ink); min-height:44px; width:100%}
.k-filters select:focus,.k-filters input:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 3px var(--clean-tint)}
.k-filters .k-filters-actions{display:flex; align-items:flex-end}

/* Kafelki ofert */
.k-grid{display:grid; gap:22px; grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.k-card{display:flex; flex-direction:column; border-radius:24px; overflow:hidden; background:var(--bg);
  border:1px solid var(--line); box-shadow:var(--shadow); text-decoration:none; color:inherit;
  transition:transform .2s, box-shadow .2s}
.k-card:hover{transform:translateY(-3px); box-shadow:0 20px 44px -20px rgba(31,51,69,.28)}
.k-card-media{aspect-ratio:16/10; background:var(--surface); overflow:hidden}
.k-card-media img{width:100%; height:100%; object-fit:cover; display:block}
.k-card-body{padding:20px 22px 22px; display:flex; flex-direction:column; gap:10px; flex:1}
.k-badge{display:inline-flex; align-self:flex-start; padding:5px 12px; border-radius:999px; font-size:.78rem;
  font-weight:700; letter-spacing:.02em; text-transform:uppercase; background:var(--clean-tint); color:var(--clean-ink)}
.k-badge.featured{background:var(--amber-tint); color:var(--amber-ink)}
.k-card h3{font-size:1.25rem}
.k-card .k-loc{color:var(--muted); font-size:.94rem; display:flex; align-items:center; gap:6px}
.k-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:2px}
.k-tag{padding:5px 11px; border-radius:999px; background:var(--surface); border:1px solid var(--line); font-size:.82rem; font-weight:600}
.k-salary{margin-top:4px; font-family:var(--display); font-weight:700; color:var(--brand); font-size:1.05rem}
.k-card p.k-intro{color:var(--muted); font-size:.94rem; margin:0}
.k-card .btn{margin-top:auto; align-self:flex-start}
.k-empty{padding:48px 24px; text-align:center; color:var(--muted); border:1px dashed var(--line); border-radius:20px}

/* Pojedyncza oferta */
.k-offer-head{margin-bottom:32px}
.k-offer-head h1{font-size:clamp(1.9rem,4.4vw,2.8rem)}
.k-offer-head .k-loc{margin-top:10px; font-size:1.05rem}
.k-info-grid{display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); margin:28px 0}
.k-info-tile{padding:16px 18px; border-radius:18px; background:var(--surface); border:1px solid var(--line)}
.k-info-tile .k-info-label{font-size:.82rem; color:var(--muted); font-weight:600; text-transform:uppercase; letter-spacing:.03em}
.k-info-tile .k-info-value{margin-top:4px; font-family:var(--display); font-weight:700; font-size:1.05rem}
.k-offer-body h2{font-size:1.35rem; margin-top:36px; margin-bottom:12px}
.k-offer-body p, .k-offer-body li{color:var(--ink); line-height:1.65}
.k-offer-body ul{padding-left:20px; margin:0}
.k-offer-body li{margin-bottom:6px}
.k-apply-box{margin-top:48px; padding:clamp(24px,4vw,36px); border-radius:26px; background:var(--surface); border:1px solid var(--line)}
.k-apply-contacts{display:flex; flex-wrap:wrap; gap:24px; margin:18px 0 28px; font-size:1.05rem}
.k-apply-contacts a{font-weight:700; color:var(--brand); text-decoration:none}

/* Formularz aplikacji / logowania */
.k-form{display:grid; gap:16px; max-width:560px}
.k-field{display:grid; gap:6px}
.k-field label{font-weight:600; font-size:.94rem}
.k-field input, .k-field textarea, .k-field select{font:inherit; padding:12px 14px; border-radius:12px;
  border:1.5px solid var(--line); background:var(--bg); color:var(--ink); min-height:46px; width:100%}
.k-field textarea{min-height:110px; resize:vertical}
.k-field input:focus,.k-field textarea:focus,.k-field select:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 3px var(--clean-tint)}
.k-hint{font-size:.85rem; color:var(--muted)}
.k-alert{padding:14px 16px; border-radius:14px; font-size:.94rem; margin-bottom:16px}
.k-alert-error{background:var(--danger-tint); color:var(--danger-ink); border:1px solid rgba(214,69,69,.3)}
.k-alert-success{background:var(--green-tint); color:var(--green-ink); border:1px solid rgba(62,159,75,.3)}

/* Sekcja "Dlaczego warto" */
.k-why-grid{display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.k-why-item{padding:20px; border-radius:18px; background:var(--bg); border:1px solid var(--line); border-left:4px solid var(--clean)}
.k-why-item strong{display:block; font-family:var(--display); margin-bottom:4px}
.k-why-item span{color:var(--muted); font-size:.94rem}

/* ============================= ADMIN ============================= */
.admin-shell{display:flex; min-height:100vh}
.admin-sidebar{width:240px; flex:none; background:var(--surface); border-right:1px solid var(--line);
  padding:24px 18px; display:flex; flex-direction:column; gap:6px}
.admin-brand{font-family:var(--display); font-weight:800; font-size:1.15rem; margin-bottom:20px; display:flex; align-items:center; gap:8px}
.admin-nav a{display:block; padding:11px 14px; border-radius:12px; color:var(--muted); text-decoration:none; font-weight:600; font-size:.96rem; margin-bottom:2px}
.admin-nav a:hover{background:var(--bg); color:var(--ink)}
.admin-nav a.active{background:var(--brand); color:var(--on-brand)}
.admin-main{flex:1; padding:clamp(20px,3vw,40px); max-width:100%; overflow-x:auto}
.admin-topbar{display:flex; align-items:center; justify-content:space-between; margin-bottom:28px; gap:12px; flex-wrap:wrap}
.admin-topbar h1{font-size:1.6rem}
@media (max-width:820px){
  .admin-shell{flex-direction:column}
  .admin-sidebar{width:100%; flex-direction:row; overflow-x:auto; align-items:center; gap:4px; padding:14px}
  .admin-nav{display:flex; gap:4px}
  .admin-brand{display:none}
}

.stat-grid{display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); margin-bottom:32px}
.stat-tile{padding:20px 22px; border-radius:20px; background:var(--bg); border:1px solid var(--line); box-shadow:var(--shadow)}
.stat-tile .n{font-family:var(--display); font-weight:800; font-size:2rem}
.stat-tile .l{color:var(--muted); font-size:.9rem; font-weight:600; margin-top:2px}
.stat-tile.c-clean{border-left:4px solid var(--clean)}
.stat-tile.c-green{border-left:4px solid var(--green)}
.stat-tile.c-amber{border-left:4px solid var(--amber)}
.stat-tile.c-snow{border-left:4px solid var(--snow)}

.admin-card{background:var(--bg); border:1px solid var(--line); border-radius:20px; padding:22px; box-shadow:var(--shadow); margin-bottom:24px}
.admin-card h2{font-size:1.15rem; margin-bottom:16px}

.admin-table{width:100%; border-collapse:collapse; font-size:.94rem}
.admin-table th{text-align:left; font-size:.8rem; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); padding:10px 12px; border-bottom:2px solid var(--line)}
.admin-table td{padding:12px; border-bottom:1px solid var(--line); vertical-align:middle}
.admin-table tr:hover td{background:var(--surface)}
.status-pill{display:inline-flex; padding:4px 11px; border-radius:999px; font-size:.78rem; font-weight:700}
.status-draft{background:var(--surface); color:var(--muted)}
.status-published{background:var(--green-tint); color:var(--green-ink)}
.status-paused{background:var(--amber-tint); color:var(--amber-ink)}
.status-closed{background:var(--snow-tint); color:var(--snow-ink)}
.status-archived{background:var(--line); color:var(--muted)}
.status-new{background:var(--clean-tint); color:var(--clean-ink)}
.status-reviewing{background:var(--amber-tint); color:var(--amber-ink)}
.status-contacted{background:var(--snow-tint); color:var(--snow-ink)}
.status-accepted{background:var(--green-tint); color:var(--green-ink)}
.status-rejected{background:var(--danger-tint); color:var(--danger-ink)}
.row-actions{display:flex; gap:6px; flex-wrap:wrap}
.row-actions form{display:inline}

@media (max-width:760px){
  .admin-table thead{display:none}
  .admin-table, .admin-table tbody, .admin-table tr, .admin-table td{display:block; width:100%}
  .admin-table tr{margin-bottom:14px; border:1px solid var(--line); border-radius:14px; overflow:hidden}
  .admin-table td{border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:12px}
  .admin-table td::before{content:attr(data-label); font-weight:700; color:var(--muted); font-size:.8rem}
}

.admin-form-grid{display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.admin-form-section{margin-bottom:28px}
.admin-form-section h2{font-size:1.05rem; margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid var(--line)}
.checkbox-row{display:flex; align-items:center; gap:10px}
.checkbox-row input{width:18px; height:18px}

.login-shell{min-height:100vh; display:grid; place-items:center; background:var(--surface); padding:20px}
.login-card{width:100%; max-width:400px; background:var(--bg); border:1px solid var(--line); border-radius:24px;
  padding:clamp(28px,5vw,40px); box-shadow:var(--shadow)}
.login-card h1{font-size:1.4rem; margin-bottom:4px}
.login-card p.k-hint{margin-bottom:24px}

/* Theme toggle — identyczny mechanizm jak na stronie głównej */
.theme-toggle{display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px;
  border:1px solid var(--line); background:var(--bg); color:var(--ink); cursor:pointer}
.theme-toggle:hover{border-color:var(--brand); color:var(--brand)}
.theme-toggle svg{width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.theme-toggle .ic-sun{display:none}
:root[data-theme="dark"] .theme-toggle .ic-moon{display:none}
:root[data-theme="dark"] .theme-toggle .ic-sun{display:block}

/* Reveal na wejściu do viewportu — spójne z główną stroną */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1; transform:none; transition:none}}


.svc-link{display:inline-block; margin-top:14px; font-weight:600; color:var(--brand); text-decoration:none}
.svc-link:hover{text-decoration:underline}

.has-dropdown{position:relative}
.dropdown{position:absolute; top:100%; left:0; min-width:220px; background:var(--bg); border:1px solid var(--line);
  border-radius:14px; box-shadow:var(--shadow); padding:8px; margin:8px 0 0; list-style:none;
  opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .15s, transform .15s, visibility .15s}
.nav ul.dropdown{display:block}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{opacity:1; visibility:visible; transform:translateY(0)}
.dropdown li{margin:0}
.dropdown a{display:block; padding:9px 12px; border-radius:8px; font-size:.94rem; color:var(--ink); text-decoration:none; font-weight:500; border-top:0}
.dropdown a:hover{background:var(--surface)}

@media (max-width:859px){
  .dropdown{position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; background:transparent;
    padding:0 0 0 14px; margin:4px 0 0}
  .dropdown a{padding:10px 4px; font-size:.98rem; color:var(--muted); border-top:0}
  .dropdown a:hover{background:transparent; color:var(--ink)}
}