:root{
  color-scheme:dark;
  --bg:#0b0709;
  --panel:#151013;
  --panel-2:#21151a;
  --line:rgba(255,255,255,.10);
  --text:#f8f4f5;
  --muted:#bcaeb3;
  --accent:#c80032;
  --accent-2:#9e1737;
  --success:#55d6a1;
  --warning:#e8bf68;
  --danger:#e55d79;
  --shadow:0 28px 70px rgba(0,0,0,.42);
}

*{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body{
  margin:0;
  min-width:320px;
  min-height:100vh;
  font-family:Inter,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 12% 10%,rgba(200,0,50,.14),transparent 32%),
    radial-gradient(circle at 88% 85%,rgba(255,76,121,.14),transparent 34%),
    var(--bg);
}

a{color:inherit;text-decoration:none}

button,
input{
  font:inherit;
}

input{
  width:100%;
  min-height:50px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:13px;
  color:var(--text);
  background:rgba(255,255,255,.055);
  outline:none;
}

input:focus{
  border-color:rgba(200,0,50,.7);
  box-shadow:0 0 0 4px rgba(200,0,50,.12);
}

label{
  display:grid;
  gap:7px;
  color:#d9e8f4;
  font-size:.87rem;
  font-weight:750;
}

small,
.small-note{
  color:var(--muted);
  line-height:1.55;
}

h1,h2,p{margin-top:0}

h1{
  margin-bottom:16px;
  font-size:clamp(2.4rem,7vw,4.8rem);
  line-height:.98;
  letter-spacing:-.055em;
}

h2{
  font-size:1.45rem;
}

.lead{
  color:var(--muted);
  font-size:1.03rem;
  line-height:1.65;
}

.logo-mark{
  display:grid;
  place-items:center;
  width:74px;
  height:74px;
  margin-bottom:20px;
  border:1px solid rgba(200,0,50,.35);
  border-radius:22px;
  color:var(--accent);
  background:rgba(200,0,50,.08);
  font-size:2rem;
  font-weight:950;
}

.logo-mark.small{
  width:44px;
  height:44px;
  margin:0;
  border-radius:14px;
  font-size:1.15rem;
}

.eyebrow{
  margin-bottom:13px;
  color:var(--accent);
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.17em;
}

.landing{
  width:min(1100px,calc(100% - 28px));
  margin:auto;
  padding:70px 0;
}

.hero-card,
.installer-card,
.login-card,
.center-card,
.dashboard-card{
  border:1px solid var(--line);
  border-radius:26px;
  background:rgba(13,26,43,.92);
  box-shadow:var(--shadow);
}

.hero-card{
  padding:42px;
}

.feature-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:16px;
}

.feature-grid article,
.stats article{
  padding:23px;
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.045);
}

.feature-grid p{
  margin:8px 0 0;
  color:var(--muted);
  line-height:1.55;
}

.status{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:18px 0;
  padding:10px 14px;
  border-radius:999px;
  font-size:.82rem;
  font-weight:850;
}

.status span{
  width:9px;
  height:9px;
  border-radius:50%;
}

.status-ok{
  color:#c7fae4;
  border:1px solid rgba(59,226,157,.24);
  background:rgba(59,226,157,.1);
}

.status-ok span{background:var(--success)}

.status-warning{
  color:#fff0bd;
  border:1px solid rgba(255,211,106,.24);
  background:rgba(255,211,106,.09);
}

.status-warning span{background:var(--warning)}

.actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}

.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:11px 17px;
  border:1px solid transparent;
  border-radius:13px;
  cursor:pointer;
  font-weight:900;
}

.button.primary{
  color:#06101d;
  background:linear-gradient(135deg,var(--accent),#ff8aa6);
}

.button.secondary{
  border-color:var(--line);
  color:var(--text);
  background:rgba(255,255,255,.055);
}

.button.full{width:100%}

.installer-shell,
.login-shell{
  width:min(760px,calc(100% - 24px));
  margin:auto;
  padding:45px 0;
}

.installer-card,
.login-card,
.center-card{
  padding:34px;
}

.center-card{
  width:min(520px,calc(100% - 24px));
  margin:60px auto;
}

.install-form{
  display:grid;
  gap:18px;
  margin-top:24px;
}

.install-form fieldset{
  display:grid;
  gap:15px;
  margin:0;
  padding:20px;
  border:1px solid var(--line);
  border-radius:18px;
}

.install-form legend{
  padding:0 8px;
  color:var(--accent);
  font-weight:900;
}

.alert{
  margin:18px 0;
  padding:15px 17px;
  border-radius:15px;
  line-height:1.55;
}

.alert ul{
  margin:8px 0 0;
  padding-left:20px;
}

.alert.error{
  color:#ffd9df;
  border:1px solid rgba(255,127,146,.28);
  background:rgba(255,127,146,.1);
}

.alert.success{
  color:#d3fbe9;
  border:1px solid rgba(59,226,157,.25);
  background:rgba(59,226,157,.09);
}

.health-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}

.health-row:last-of-type{
  margin-bottom:20px;
}

.dashboard{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  min-height:100vh;
}

.sidebar{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:30px;
  padding:28px 20px;
  border-right:1px solid var(--line);
  background:rgba(6,16,29,.92);
}

.sidebar > div{
  display:flex;
  align-items:center;
  gap:12px;
}

.sidebar nav{
  display:grid;
  gap:7px;
  margin:auto 0;
}

.sidebar nav a{
  padding:12px 14px;
  border-radius:12px;
  color:var(--muted);
}

.sidebar nav a.active{
  color:var(--text);
  background:rgba(200,0,50,.1);
}

.sidebar nav a[aria-disabled="true"]{
  opacity:.48;
  cursor:not-allowed;
}

.dashboard-main{
  width:min(1100px,calc(100% - 44px));
  margin:0 auto;
  padding:58px 0;
}

.stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin:30px 0;
}

.stats span{
  display:block;
  color:var(--muted);
  font-size:.82rem;
}

.stats strong{
  display:block;
  margin-top:8px;
  font-size:2.2rem;
}

.dashboard-card{
  padding:27px;
}

.dashboard-card li{
  margin:8px 0;
  color:var(--muted);
  line-height:1.5;
}

@media(max-width:780px){
  .feature-grid,
  .stats{
    grid-template-columns:1fr;
  }

  .dashboard{
    grid-template-columns:1fr;
  }

  .sidebar{
    border-right:0;
    border-bottom:1px solid var(--line);
  }

  .sidebar nav{
    margin:0;
  }

  .dashboard-main{
    padding:34px 0 55px;
  }
}

@media(max-width:520px){
  .landing{
    padding:24px 0 50px;
  }

  .hero-card,
  .installer-card,
  .login-card,
  .center-card,
  .dashboard-card{
    padding:22px 17px;
    border-radius:21px;
  }

  h1{
    font-size:clamp(2.35rem,12vw,3.4rem);
  }

  .actions{
    display:grid;
  }

  .button{
    width:100%;
  }

  .installer-shell,
  .login-shell{
    padding:20px 0 45px;
  }

  .install-form fieldset{
    padding:16px 13px;
  }

  input{
    font-size:16px;
  }

  .dashboard-main{
    width:calc(100% - 24px);
  }
}


/* =========================================================
   KFINDER — 2FA i Cloudflare Turnstile
   ========================================================= */
.alert.warning{
  color:#fff0bd;
  border:1px solid rgba(255,211,106,.24);
  background:rgba(255,211,106,.09);
}

.alert.compact{
  margin:0;
  font-size:.82rem;
}

.alert a{
  color:var(--accent);
  text-decoration:underline;
}

.otp-input{
  max-width:260px;
  text-align:center;
  font-size:1.25rem;
  font-weight:900;
  letter-spacing:.18em;
}

.turnstile-login-box{
  min-height:70px;
  padding:12px;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:15px;
  background:rgba(255,255,255,.035);
}

.sidebar-security{
  display:grid;
  gap:7px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:15px;
  color:var(--muted);
  background:rgba(255,255,255,.035);
  font-size:.75rem;
}

.sidebar-security strong{
  color:var(--text);
}

.settings-section{
  margin-top:17px;
}

.settings-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding-bottom:19px;
  margin-bottom:19px;
  border-bottom:1px solid var(--line);
}

.settings-head p{
  margin:7px 0 0;
  color:var(--muted);
  line-height:1.55;
}

.security-badge{
  flex:0 0 auto;
  padding:8px 11px;
  border-radius:999px;
  font-size:.7rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.security-badge.ok{
  color:#c7fae4;
  border:1px solid rgba(59,226,157,.25);
  background:rgba(59,226,157,.09);
}

.security-badge.warning{
  color:#fff0bd;
  border:1px solid rgba(255,211,106,.25);
  background:rgba(255,211,106,.09);
}

.compact-form{
  max-width:720px;
}

.security-note{
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:15px;
  color:var(--muted);
  background:rgba(255,255,255,.035);
  font-size:.82rem;
  line-height:1.6;
}

.totp-layout{
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:22px;
  align-items:center;
  margin:25px 0;
}

.qr-box{
  display:grid;
  place-items:center;
  min-height:230px;
  padding:10px;
  border-radius:18px;
  background:#fff;
}

.qr-box img,
.qr-box canvas{
  max-width:100%;
  height:auto!important;
}

.secret-box{
  min-width:0;
  padding:20px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.035);
}

.secret-box small{
  display:block;
  margin-bottom:8px;
}

.secret-box code{
  display:block;
  overflow-wrap:anywhere;
  color:var(--accent);
  font-size:1rem;
  font-weight:900;
  letter-spacing:.08em;
}

.secret-box p{
  margin:12px 0 0;
  color:var(--muted);
}

.recovery-card{
  margin-bottom:17px;
}

.recovery-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  margin:18px 0;
}

.recovery-grid code{
  padding:13px;
  border:1px dashed rgba(200,0,50,.34);
  border-radius:12px;
  color:#ffe3ea;
  background:rgba(200,0,50,.06);
  text-align:center;
  font-weight:900;
  letter-spacing:.08em;
}

.security-setup-card{
  max-width:760px;
  margin:auto;
}

@media(max-width:780px){
  .settings-head{
    display:block;
  }

  .security-badge{
    display:inline-flex;
    margin-top:13px;
  }

  .totp-layout{
    grid-template-columns:1fr;
  }

  .qr-box{
    width:min(230px,100%);
    margin:auto;
  }
}

@media(max-width:520px){
  .recovery-grid{
    grid-template-columns:1fr;
  }

  .otp-input{
    max-width:none;
  }

  .turnstile-login-box{
    padding:8px 4px;
  }
}


/* =========================================================
   KFINDER — moduł identyfikatorów Tarni
   ========================================================= */

select{
  width:100%;
  min-height:50px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:13px;
  color:var(--text);
  background:#122238;
  outline:none;
}

select:focus{
  border-color:rgba(200,0,50,.7);
  box-shadow:0 0 0 4px rgba(200,0,50,.12);
}

.identifier-tools{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);
  gap:17px;
  margin:30px 0 17px;
}

.generator-form{
  display:grid;
  grid-template-columns:minmax(180px,260px) auto;
  gap:12px;
  align-items:end;
}

.tarni-rules{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
  color:var(--muted);
  font-size:.83rem;
}

.tarni-rules code{
  color:var(--accent);
  font-weight:900;
  letter-spacing:.08em;
}

.validation-card p{
  color:var(--muted);
  line-height:1.6;
}

.code-example{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-top:20px;
  padding:17px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.035);
}

.code-example span{
  color:var(--muted);
  font-size:.8rem;
}

.code-example strong{
  color:var(--accent);
  font-size:1.55rem;
  letter-spacing:.12em;
}

.new-batch-card,
.identifiers-list-card{
  margin-top:17px;
}

.generated-code-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(115px,1fr));
  gap:9px;
}

.generated-code{
  padding:14px 10px;
  border:1px solid rgba(200,0,50,.22);
  border-radius:12px;
  color:#ffe3ea;
  background:rgba(200,0,50,.055);
  text-align:center;
  font-size:1.05rem;
  font-weight:950;
  letter-spacing:.12em;
}

.generated-code:hover{
  border-color:rgba(200,0,50,.65);
  background:rgba(200,0,50,.11);
}

.identifier-filters{
  display:grid;
  grid-template-columns:1fr minmax(160px,.55fr) minmax(180px,.7fr) auto auto;
  gap:10px;
  align-items:end;
  margin-bottom:21px;
}

.responsive-table{
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:17px;
}

table{
  width:100%;
  border-collapse:collapse;
  min-width:930px;
}

th,
td{
  padding:14px 15px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:middle;
}

th{
  color:var(--muted);
  background:rgba(255,255,255,.035);
  font-size:.72rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}

tbody tr:last-child td{
  border-bottom:0;
}

tbody tr:hover{
  background:rgba(255,255,255,.025);
}

.identifier-code{
  color:var(--accent);
  letter-spacing:.11em;
}

.status-pill{
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  font-size:.7rem;
  font-weight:900;
}

.status-new{
  color:#fff0bd;
  background:rgba(255,211,106,.1);
}

.status-active{
  color:#c7fae4;
  background:rgba(59,226,157,.1);
}

.status-lost{
  color:#ffd9df;
  background:rgba(255,127,146,.1);
}

.status-found{
  color:#ffe3ea;
  background:rgba(200,0,50,.1);
}

.status-returned{
  color:#ffd6e1;
  background:rgba(255,76,121,.13);
}

.status-blocked{
  color:#ffd9df;
  background:rgba(255,127,146,.16);
}

.table-link{
  color:var(--accent);
  text-decoration:underline;
}

.table-button{
  min-height:36px;
  padding:7px 10px;
  white-space:nowrap;
  font-size:.76rem;
}

.empty-table{
  padding:35px;
  color:var(--muted);
  text-align:center;
}

.pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:18px;
  margin-top:19px;
  color:var(--muted);
}

.pagination a{
  color:var(--accent);
  font-weight:850;
}

.identifier-detail-shell{
  width:min(1050px,calc(100% - 28px));
  margin:auto;
  padding:45px 0;
}

.identifier-detail-card{
  padding:35px;
}

.back-link{
  display:inline-flex;
  margin-bottom:28px;
  color:var(--accent);
  font-weight:850;
}

.identifier-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:35px;
  align-items:start;
}

.giant-code{
  color:var(--accent);
  font-size:clamp(3.2rem,9vw,6rem);
  letter-spacing:.1em;
  overflow-wrap:anywhere;
}

.identifier-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:26px 0;
}

.identifier-meta div{
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.03);
}

.identifier-meta dt{
  margin-bottom:5px;
  color:var(--muted);
  font-size:.72rem;
}

.identifier-meta dd{
  margin:0;
  font-weight:850;
}

.public-url-field{
  margin-top:20px;
}

.qr-preview-panel{
  padding:18px;
  border:1px solid var(--line);
  border-radius:21px;
  background:rgba(255,255,255,.035);
}

.identifier-qr{
  min-height:260px;
  margin-bottom:14px;
}

.public-identifier-shell{
  display:grid;
  place-items:center;
  width:min(680px,calc(100% - 24px));
  min-height:100vh;
  margin:auto;
  padding:35px 0;
}

.public-identifier-card{
  width:100%;
  padding:34px;
  border:1px solid var(--line);
  border-radius:26px;
  background:rgba(13,26,43,.94);
  box-shadow:var(--shadow);
}

.public-code{
  margin:6px 0 24px;
  color:var(--accent);
  font-size:clamp(2.5rem,12vw,5.4rem);
  font-weight:950;
  letter-spacing:.12em;
  overflow-wrap:anywhere;
}

.privacy-box{
  margin:18px 0;
  padding:15px;
  border:1px solid var(--line);
  border-radius:14px;
  color:var(--muted);
  background:rgba(255,255,255,.035);
  line-height:1.55;
}

@media(max-width:980px){
  .identifier-filters{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .identifier-detail-grid{
    grid-template-columns:1fr;
  }

  .qr-preview-panel{
    max-width:330px;
  }
}

@media(max-width:780px){
  .identifier-tools{
    grid-template-columns:1fr;
  }

  .generator-form{
    grid-template-columns:1fr;
  }

  .identifier-filters{
    grid-template-columns:1fr;
  }

  .responsive-table{
    overflow:visible;
    border:0;
  }

  table,
  thead,
  tbody,
  tr,
  th,
  td{
    display:block;
    min-width:0;
  }

  thead{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
  }

  tbody{
    display:grid;
    gap:12px;
  }

  tbody tr{
    padding:15px;
    border:1px solid var(--line);
    border-radius:17px;
    background:rgba(255,255,255,.025);
  }

  td{
    display:grid;
    grid-template-columns:115px minmax(0,1fr);
    gap:12px;
    padding:9px 0;
    border-bottom:1px solid var(--line);
  }

  td:last-child{
    border-bottom:0;
  }

  td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:.72rem;
    font-weight:850;
  }

  .empty-table{
    display:block;
  }

  .empty-table::before{
    display:none;
  }
}

@media(max-width:520px){
  .identifier-detail-card,
  .public-identifier-card{
    padding:22px 17px;
  }

  .identifier-meta{
    grid-template-columns:1fr;
  }

  .giant-code,
  .public-code{
    letter-spacing:.055em;
  }

  td{
    grid-template-columns:92px minmax(0,1fr);
  }
}

@media print{
  body{
    color:#000;
    background:#fff;
  }

  .back-link,
  .actions,
  #print-identifier{
    display:none!important;
  }

  .identifier-detail-shell{
    width:100%;
    padding:0;
  }

  .identifier-detail-card,
  .qr-preview-panel,
  .identifier-meta div{
    border:0;
    box-shadow:none;
    background:#fff;
  }

  .identifier-detail-grid{
    grid-template-columns:1fr 280px;
  }

  .giant-code{
    color:#000;
  }
}


/* =========================================================
   KFINDER — bezpłatne konta klientów
   ========================================================= */
.hp-field{
  position:absolute!important;
  left:-10000px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

.customer-auth-shell{
  display:grid;
  place-items:center;
  width:min(590px,calc(100% - 24px));
  min-height:100vh;
  margin:auto;
  padding:35px 0;
}

.customer-auth-card{
  width:100%;
  padding:34px;
  border:1px solid var(--line);
  border-radius:26px;
  background:rgba(13,26,43,.94);
  box-shadow:var(--shadow);
}

.customer-brand{
  display:inline-flex;
  align-items:center;
  gap:11px;
  margin-bottom:28px;
}

.customer-brand .logo-mark{
  margin:0;
}

.customer-checkbox{
  grid-template-columns:22px minmax(0,1fr);
  align-items:start;
  gap:10px;
  font-weight:600;
  line-height:1.5;
}

.customer-checkbox input{
  width:20px;
  min-height:20px;
  margin:1px 0 0;
}

.customer-auth-footer,
.customer-auth-links{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--line);
  color:var(--muted);
  text-align:center;
}

.customer-auth-footer a,
.customer-auth-links a{
  color:var(--accent);
  font-weight:850;
}

.customer-auth-links{
  display:grid;
  gap:10px;
}

.customer-dashboard{
  min-height:100vh;
}

.customer-dashboard-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:18px max(22px,calc((100% - 1120px)/2));
  border-bottom:1px solid var(--line);
  background:rgba(6,16,29,.9);
}

.customer-dashboard-header .customer-brand{
  margin:0;
}

.customer-account-actions{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--muted);
  font-size:.84rem;
}

.customer-dashboard-main{
  width:min(1120px,calc(100% - 28px));
  margin:auto;
  padding:55px 0;
}

.customer-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:30px 0 17px;
}

.customer-stats article{
  padding:23px;
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.045);
}

.customer-stats span{
  display:block;
  color:var(--muted);
  font-size:.82rem;
}

.customer-stats strong{
  display:block;
  margin-top:8px;
  font-size:1.8rem;
}

.customer-empty-state{
  padding:35px;
  border:1px dashed var(--line);
  border-radius:18px;
  text-align:center;
}

.customer-empty-state strong{
  display:block;
  margin-bottom:8px;
  font-size:1.1rem;
}

.customer-empty-state p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

.customer-identifier-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:12px;
}

.customer-identifier-grid article{
  display:grid;
  gap:8px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.035);
}

.customer-identifier-grid strong{
  color:var(--accent);
  letter-spacing:.1em;
}

.customer-identifier-grid span{
  color:var(--muted);
  font-size:.82rem;
}

.smtp-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 130px 190px;
  gap:12px;
}

.smtp-grid.two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.customer-admin-filters{
  display:grid;
  grid-template-columns:minmax(240px,1fr) 190px auto auto;
  gap:10px;
  align-items:end;
  margin-bottom:21px;
}

button[disabled]{
  opacity:.48;
  cursor:not-allowed;
}

@media(max-width:780px){
  .customer-dashboard-header{
    align-items:flex-start;
    flex-direction:column;
  }

  .customer-account-actions{
    width:100%;
    justify-content:space-between;
    flex-wrap:wrap;
  }

  .customer-stats,
  .smtp-grid,
  .smtp-grid.two,
  .customer-admin-filters{
    grid-template-columns:1fr;
  }
}

@media(max-width:520px){
  .customer-auth-card{
    padding:22px 17px;
  }

  .customer-dashboard-main{
    padding:34px 0 50px;
  }

  .customer-account-actions{
    display:grid;
  }
}


/* KFINDER — karta breloka i zdjęcia WEBP */

textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:13px;
  color:var(--text);
  background:#122238;
  outline:none;
  resize:vertical;
  font:inherit;
  line-height:1.5;
}

textarea:focus{
  border-color:rgba(200,0,50,.7);
  box-shadow:0 0 0 4px rgba(200,0,50,.12);
}

.customer-item-code{
  color:var(--accent);
  letter-spacing:.1em;
}

.customer-item-form,
.customer-item-fields,
.customer-photo-panel{
  display:grid;
  gap:15px;
}

.customer-item-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:25px;
  align-items:start;
}

.customer-photo-panel{
  padding:18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:rgba(255,255,255,.035);
}

.customer-item-photo,
.public-item-photo{
  display:block;
  width:100%;
  height:auto;
  max-height:520px;
  object-fit:contain;
  border-radius:17px;
  background:rgba(255,255,255,.04);
}

.customer-photo-placeholder{
  display:grid;
  place-items:center;
  min-height:220px;
  border:1px dashed var(--line);
  border-radius:17px;
  color:var(--muted);
}

.customer-photo-size{
  margin:0;
  color:var(--muted);
  font-size:.78rem;
}

.photo-optimization-note{
  display:grid;
  gap:6px;
  padding:14px;
  border:1px solid rgba(200,0,50,.18);
  border-radius:15px;
  background:rgba(200,0,50,.045);
  color:var(--muted);
  font-size:.78rem;
}

.photo-optimization-note strong{
  color:var(--accent);
}

.customer-identifier-card{
  display:grid;
  grid-template-columns:78px minmax(0,1fr) auto;
  align-items:center;
  gap:13px;
}

.customer-identifier-card > div{
  display:grid;
  gap:7px;
}

.customer-identifier-thumb{
  width:78px;
  height:78px;
  object-fit:cover;
  border-radius:13px;
}

.public-item-category{
  display:inline-flex;
  margin:0 0 16px;
  padding:7px 11px;
  border-radius:999px;
  color:var(--accent);
  background:rgba(200,0,50,.1);
  font-size:.8rem;
  font-weight:850;
}

.public-item-text,
.public-finder-message{
  margin:16px 0;
  padding:16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.035);
  line-height:1.65;
}

.public-finder-message strong{
  display:block;
  margin-bottom:7px;
  color:var(--accent);
}

.public-finder-message p{
  margin:0;
}

@media(max-width:820px){
  .customer-item-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){
  .customer-identifier-card{
    grid-template-columns:1fr;
  }

  .customer-identifier-thumb{
    width:100%;
    height:180px;
  }
}


/* =========================================================
   KFINDER — publiczne sprawdzanie kodu i akcje statusowe
   ========================================================= */

.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.public-code-checker{
  margin-top:28px;
  padding:22px;
  border:1px solid rgba(200,0,50,.24);
  border-radius:22px;
  background:
    linear-gradient(
      135deg,
      rgba(200,0,50,.075),
      rgba(255,76,121,.055)
    );
}

.public-code-checker-heading{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}

.public-code-checker-heading > div{
  display:grid;
  gap:5px;
}

.public-code-checker-heading strong{
  font-size:1.15rem;
}

.public-code-checker-heading span{
  color:var(--muted);
  font-size:.88rem;
  line-height:1.5;
}

.public-code-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
}

.public-code-label input{
  min-height:58px;
  font-size:1.35rem;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-align:center;
}

.public-code-form .button{
  min-height:58px;
  padding-inline:24px;
}

.lookup-result{
  margin-top:16px;
  padding:18px;
  border-radius:17px;
}

.lookup-result-error{
  color:#ffd9df;
  border:1px solid rgba(255,127,146,.28);
  background:rgba(255,127,146,.09);
}

.lookup-result-found{
  border:1px solid rgba(59,226,157,.25);
  background:rgba(59,226,157,.06);
}

.lookup-result-top{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.lookup-result-top > div{
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}

.lookup-caption{
  color:var(--muted);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.14em;
}

.lookup-code{
  color:var(--accent);
  font-size:1.55rem;
  letter-spacing:.1em;
}

.lookup-status-box strong{
  font-size:1.15rem;
}

.lookup-description{
  margin:15px 0 0;
  color:#dceaf5;
  line-height:1.6;
}

.lookup-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:17px;
}

.button.found-action{
  color:#07150f;
  background:linear-gradient(
    135deg,
    var(--success),
    #8ff0c5
  );
}

.button.lost-action{
  color:#211008;
  background:linear-gradient(
    135deg,
    #ffb66d,
    var(--warning)
  );
}

.lookup-owner-note{
  margin:14px 0 0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.55;
}

.lookup-no-actions{
  display:inline-flex;
  align-items:center;
  min-height:48px;
  color:var(--muted);
}

.homepage-account-actions{
  margin-top:17px;
}

.public-action-card{
  max-width:680px;
}

.public-action-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}

.public-action-summary > div{
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}

.public-action-summary span{
  color:var(--muted);
  font-size:.7rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.public-action-summary strong{
  color:var(--accent);
  font-size:1.1rem;
}

@media(max-width:700px){
  .public-code-form{
    grid-template-columns:1fr;
  }

  .lookup-result-top,
  .public-action-summary{
    grid-template-columns:1fr;
  }

  .public-code-form .button,
  .lookup-actions .button{
    width:100%;
  }
}


/* =========================================================
   KFINDER — widoczny status na kafelkach identyfikatorów
   ========================================================= */

.identifier-status-badge{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  font-size:.74rem;
  font-weight:900;
  line-height:1;
}

.identifier-status-badge::before{
  content:"";
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 12px currentColor;
}

.identifier-status-badge.status-new{
  color:#a9c7df;
  background:rgba(169,199,223,.08);
  border-color:rgba(169,199,223,.2);
}

.identifier-status-badge.status-active{
  color:#5fe7aa;
  background:rgba(95,231,170,.08);
  border-color:rgba(95,231,170,.23);
}

.identifier-status-badge.status-lost{
  color:#ffb66d;
  background:rgba(255,182,109,.09);
  border-color:rgba(255,182,109,.25);
}

.identifier-status-badge.status-found{
  color:#55d8ff;
  background:rgba(85,216,255,.08);
  border-color:rgba(85,216,255,.23);
}

.identifier-status-badge.status-returned{
  color:#c0a5ff;
  background:rgba(192,165,255,.08);
  border-color:rgba(192,165,255,.23);
}

.identifier-status-badge.status-blocked{
  color:#ff7f92;
  background:rgba(255,127,146,.09);
  border-color:rgba(255,127,146,.25);
}


/* =========================================================
   KFINDER — przycisk „Otwórz kartę” na dole kafelka
   ========================================================= */

.customer-identifier-card{
  grid-template-columns:78px minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) auto;
  align-items:start;
}

.customer-identifier-card > .customer-identifier-thumb{
  grid-column:1;
  grid-row:1;
}

.customer-identifier-card > div{
  grid-column:2;
  grid-row:1;
  min-width:0;
  align-content:start;
}

.customer-identifier-card:not(:has(.customer-identifier-thumb)) > div{
  grid-column:1 / -1;
}

.customer-identifier-card > .table-button{
  grid-column:1 / -1;
  grid-row:2;
  width:100%;
  min-height:38px;
  margin-top:8px;
  justify-self:stretch;
  align-self:end;
  text-align:center;
}

.customer-identifier-card .identifier-status-badge{
  max-width:100%;
  white-space:normal;
  line-height:1.2;
}

@media(max-width:620px){
  .customer-identifier-card{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
  }

  .customer-identifier-card > .customer-identifier-thumb{
    grid-column:1;
    grid-row:1;
  }

  .customer-identifier-card > div{
    grid-column:1;
    grid-row:2;
  }

  .customer-identifier-card > .table-button{
    grid-column:1;
    grid-row:3;
  }
}


/* =========================================================
   KFINDER — status pod zdjęciem na kafelkach ze zdjęciem
   ========================================================= */

/* Kafelek ze zdjęciem:
   wiersz 1: zdjęcie | kod + nazwa
   wiersz 2: status na pełną szerokość
   wiersz 3: Otwórz kartę na pełną szerokość
*/
.customer-identifier-card:has(.customer-identifier-thumb){
  grid-template-columns:78px minmax(0,1fr);
  grid-template-rows:auto auto auto;
  align-items:start;
}

.customer-identifier-card:has(.customer-identifier-thumb)
  > .customer-identifier-thumb{
  grid-column:1;
  grid-row:1;
  align-self:start;
}

.customer-identifier-card:has(.customer-identifier-thumb) > div{
  display:contents;
}

.customer-identifier-card:has(.customer-identifier-thumb) > div > strong{
  grid-column:2;
  grid-row:1;
  align-self:start;
  min-width:0;
}

/* Nazwa przedmiotu — wszystkie zwykłe spany poza plakietką statusu */
.customer-identifier-card:has(.customer-identifier-thumb)
  > div > span:not(.identifier-status-badge){
  grid-column:2;
  grid-row:1;
  align-self:end;
  min-width:0;
  margin-top:26px;
  overflow-wrap:anywhere;
}

/* Status pod zdjęciem, wewnątrz kafelka */
.customer-identifier-card:has(.customer-identifier-thumb)
  > div > .identifier-status-badge{
  grid-column:1 / -1;
  grid-row:2;
  width:max-content;
  max-width:100%;
  box-sizing:border-box;
  margin-top:8px;
  justify-self:start;
  white-space:normal;
  overflow-wrap:anywhere;
}

/* Przycisk zawsze na dole */
.customer-identifier-card:has(.customer-identifier-thumb)
  > .table-button{
  grid-column:1 / -1;
  grid-row:3;
  width:100%;
  box-sizing:border-box;
  margin-top:8px;
}

/* Kafelki bez zdjęcia pozostają w prostym układzie pionowym */
.customer-identifier-card:not(:has(.customer-identifier-thumb)){
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
}

.customer-identifier-card:not(:has(.customer-identifier-thumb)) > div{
  grid-column:1;
  grid-row:1;
  display:grid;
  gap:7px;
}

.customer-identifier-card:not(:has(.customer-identifier-thumb))
  > .table-button{
  grid-column:1;
  grid-row:2;
  width:100%;
}

/* Dodatkowa ochrona przed wychodzeniem zawartości poza kafelek */
.customer-identifier-card,
.customer-identifier-card *{
  min-width:0;
}

@media(max-width:620px){
  .customer-identifier-card:has(.customer-identifier-thumb){
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto;
  }

  .customer-identifier-card:has(.customer-identifier-thumb)
    > .customer-identifier-thumb{
    grid-column:1;
    grid-row:1;
    width:100%;
    height:180px;
  }

  .customer-identifier-card:has(.customer-identifier-thumb)
    > div > strong{
    grid-column:1;
    grid-row:2;
    margin-top:8px;
  }

  .customer-identifier-card:has(.customer-identifier-thumb)
    > div > span:not(.identifier-status-badge){
    grid-column:1;
    grid-row:2;
    margin-top:34px;
  }

  .customer-identifier-card:has(.customer-identifier-thumb)
    > div > .identifier-status-badge{
    grid-column:1;
    grid-row:3;
  }

  .customer-identifier-card:has(.customer-identifier-thumb)
    > .table-button{
    grid-column:1;
    grid-row:4;
  }
}

/* KFINDER — wariant premium */
body{
  background:
    radial-gradient(circle at 16% 8%,rgba(200,0,50,.11),transparent 30%),
    radial-gradient(circle at 86% 88%,rgba(120,20,50,.08),transparent 34%),
    linear-gradient(180deg,#090608 0%,#0f090c 100%);
}

input,
textarea,
select{
  color:var(--text);
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.035);
}

input:hover,
textarea:hover,
select:hover{
  border-color:rgba(200,0,50,.28);
}

input:focus,
textarea:focus,
select:focus{
  border-color:rgba(200,0,50,.68);
  box-shadow:0 0 0 4px rgba(200,0,50,.10);
}

.logo-mark{
  color:#ffd7e1;
  border-color:rgba(200,0,50,.32);
  background:linear-gradient(145deg,rgba(200,0,50,.16),rgba(255,255,255,.025));
}

.hero-card,
.installer-card,
.login-card,
.center-card,
.dashboard-card{
  border-color:rgba(255,255,255,.085);
  background:linear-gradient(180deg,rgba(24,17,20,.97),rgba(17,12,14,.97));
  box-shadow:var(--shadow);
}

.feature-grid article,
.stats article,
.customer-identifier-card,
.identifier-card{
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.028);
}

.button{
  transition:background .16s ease,border-color .16s ease,transform .16s ease,filter .16s ease;
}

.button.primary{
  color:#fff;
  border-color:rgba(255,255,255,.04);
  background:linear-gradient(135deg,#c80032,#981b3a);
  box-shadow:0 8px 24px rgba(200,0,50,.18);
}

.button.primary:hover{
  transform:translateY(-1px);
  filter:brightness(1.08);
}

.button.secondary{
  color:#f6eff2;
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.035);
}

.button.secondary:hover{
  color:#fff;
  border-color:rgba(200,0,50,.32);
  background:rgba(200,0,50,.09);
}

.eyebrow,
.install-form legend,
.secret-box code{
  color:#e9597d;
}

.public-code-checker{
  border-color:rgba(200,0,50,.22);
  background:linear-gradient(135deg,rgba(200,0,50,.075),rgba(255,255,255,.018));
}

.sidebar{
  background:linear-gradient(180deg,rgba(13,9,11,.98),rgba(10,7,8,.98));
}

.sidebar nav a{
  border-color:transparent;
}

.sidebar nav a:hover{
  background:rgba(200,0,50,.07);
}

.sidebar nav a.active{
  color:#fff;
  border-color:rgba(200,0,50,.24);
  background:linear-gradient(90deg,rgba(200,0,50,.15),rgba(200,0,50,.055));
}

.security-badge.ok{
  color:#ffd8e2;
  border-color:rgba(200,0,50,.24);
  background:rgba(200,0,50,.08);
}

.table-link{
  color:#f06a8b;
}

.pagination a{
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.025);
}

.pagination a:hover{
  border-color:rgba(200,0,50,.28);
  background:rgba(200,0,50,.07);
}

