:root{
  --ink:#161B29; --ink-soft:#7A8194; --ink-faint:#A6ACB9;
  --line:#E7E9EE; --bg:#F4F5F7; --white:#FFFFFF;
  --stamp:#161B29; --stamp-dark:#0C0F18;
  --accent:#E8A188; --accent-dark:#D6845F;
  --danger:#C0463A; --danger-dark:#9C382E; --danger-bg:#FBEAE7;
  --ok:#2E7D57; --ok-bg:#E6F4EC;
  --paper:#F6F7F9; --paper-dim:#EFF1F4;
  --chip:#DDDEE2; --chip-hover:#D2D4DA;
}
*{box-sizing:border-box;}
body{margin:0; min-height:100vh; background:var(--bg); font-family:'Stack Sans Headline',sans-serif; color:var(--ink); -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Stack Sans Headline',sans-serif; font-weight:700; margin:0; letter-spacing:-.01em;}
button{font-family:'Stack Sans Headline',sans-serif; cursor:pointer;}
.eyebrow{font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); font-weight:600;}
.wordmark{font-family:'Fraunces',serif; font-weight:600; font-size:19px; letter-spacing:-.02em; display:inline-flex; align-items:center;}
.wordmark .dot{color:var(--accent-dark);}

.btn{padding:11px 18px; border-radius:10px; border:none; font-size:13.5px; font-weight:400; display:inline-flex; align-items:center; gap:7px; transition:background .12s ease, border-color .12s ease, opacity .12s ease;}
.btn svg{flex-shrink:0;}
.btn-block{width:100%; justify-content:center;}
.btn-primary{background:var(--ink); color:var(--white);}
.btn-primary:hover:not(:disabled){background:var(--stamp-dark);}
.btn-primary:disabled{background:#CBD0DA; color:#8990A0; cursor:not-allowed;}
.btn-primary:not(:disabled):active{transform:translateY(1px);}
.btn-ghost{background:var(--white); color:var(--ink); border:1.5px solid var(--line);}
.btn-ghost:hover{background:var(--paper);}
.btn-danger{background:var(--danger-bg); color:var(--danger-dark); border:1.5px solid transparent;}
.btn-danger:hover{background:#F6DBD6;}
.btn-secondary{background:var(--chip); color:var(--ink); border:1.5px solid transparent;}
.btn-secondary:hover:not(:disabled){background:var(--chip-hover);}
.btn-secondary:disabled{color:var(--ink-faint); cursor:not-allowed;}
.btn-sm{padding:8px 12px; font-size:12.5px;}
.field{text-align:left; margin-bottom:16px;}
.field label{display:block; font-size:12px; font-weight:600; color:var(--ink-soft); margin-bottom:6px;}
.field input, .field select, .field textarea{width:100%; font-family:'Stack Sans Headline',sans-serif; font-size:14.5px; padding:11px 13px; border-radius:10px; border:1.5px solid var(--line); background:var(--white); color:var(--ink);}
.field input:disabled{background:var(--paper); color:var(--ink-soft);}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--ink); outline-offset:1px; border-color:transparent;}
.inline-msg{font-size:13px; font-weight:600; min-height:18px; margin:2px 0 14px;}
.inline-msg.error{color:var(--danger);}
.inline-msg.ok{color:var(--ok);}
.demo-hint{font-size:12px; color:var(--ink-soft); background:var(--paper); border:1px dashed var(--line); border-radius:10px; padding:11px 13px; margin-top:14px; line-height:1.5; display:flex; gap:8px; align-items:flex-start;}
.demo-hint svg{flex-shrink:0; margin-top:1px; color:var(--ink-faint);}
.result-box{margin-top:14px; border-radius:12px; padding:13px 16px; font-size:13.5px; font-weight:600; display:none;}
.result-box.ok{display:block; background:var(--ok-bg); color:var(--ok);}
.result-box.err{display:block; background:var(--danger-bg); color:var(--danger-dark);}
.panel{background:var(--white); border:1px solid var(--line); border-radius:18px; padding:24px 24px 26px; box-shadow:0 1px 2px rgba(16,24,40,.03); margin-bottom:16px;}
.panel h3{font-size:15.5px; margin-bottom:14px; display:flex; align-items:center; gap:8px;}
.panel .panel-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; gap:12px; flex-wrap:wrap;}
.panel .panel-head h3{margin-bottom:0;}
.panel .desc{font-size:13px; color:var(--ink); margin-bottom:16px; line-height:1.5;}
.form-row{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:16px;}
.form-row .field{flex:1; min-width:180px; margin-bottom:0;}
table{width:100%; border-collapse:collapse; font-size:13.5px;}
th{text-align:left; color:var(--ink-soft); font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.06em; padding:0 12px 10px; border-bottom:1.5px solid var(--line);}
td{padding:13px 12px; border-bottom:1px solid var(--line); vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tr.clickable{cursor:pointer;}
tr.clickable:hover td{background:var(--paper);}
tr.selected td{background:var(--paper);}
th.th-actions, td.td-actions{text-align:right; white-space:nowrap;}
.stats-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; margin-bottom:20px;}
.stat-card{background:var(--white); border:1px solid var(--line); border-radius:16px; padding:18px 18px 16px; position:relative; overflow:hidden;}
.stat-card .num{font-size:26px; font-weight:800; letter-spacing:-.02em; font-variant-numeric:tabular-nums;}
.stat-card .lbl{font-size:12px; color:var(--ink-soft); margin-top:4px; font-weight:500;}

/* karty statystyk z wykresem w tle */
.stat-card-chart{padding:22px 22px 20px; min-height:132px; display:flex; flex-direction:column; justify-content:flex-end;}
.stat-card-chart .chart-bg{position:absolute; right:0; top:0; width:70%; height:100%; opacity:.9; pointer-events:none;}
.stat-card-chart .num{font-size:36px; position:relative; z-index:1;}
.stat-card-chart .lbl{font-size:13px; position:relative; z-index:1;}

.row-actions{display:flex; gap:8px; flex-wrap:wrap;}
.icon-action-btn{width:32px; height:32px; border-radius:9px; border:none; background:var(--paper); color:var(--ink-soft); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;}
.icon-action-btn:hover{background:var(--paper-dim); color:var(--ink);}
.icon-action-btn.danger{color:var(--danger);}
.icon-action-btn.danger:hover{background:var(--danger-bg); color:var(--danger-dark);}
.mini-badge{width:28px;height:28px;border-radius:8px; background:var(--ink); color:var(--white); display:flex;align-items:center;justify-content:center; font-size:11px; font-weight:700;}
.venue-cell{display:flex; align-items:center; gap:10px;}
.code-display{font-size:48px; font-weight:800; text-align:left; background:transparent; border:none; border-radius:0; padding:0; margin-bottom:-6px; font-variant-numeric:tabular-nums;}
.counter-row{display:flex; justify-content:space-between; align-items:center; font-size:12.5px; color:var(--ink-soft); margin-bottom:16px; max-width:280px;}
.counter-row strong{color:var(--ink);}

/* ---- wiersz: kod po lewej, licznik zmian po prawej (jak w makiecie) ---- */
.code-row{display:flex; justify-content:space-between; align-items:end; gap:16px; flex-wrap:wrap;}
.code-note{font-size:13px; color:var(--ink);}
.code-note strong{color:var(--ink);}

/* ---- dwie karty wyników obok siebie (sprawdź pieczątki) ---- */
.result-cards-row{display:grid; grid-template-columns:minmax(180px,260px) 1fr; gap:14px; margin-top:16px; align-items:start;}
@media (max-width:560px){ .result-cards-row{grid-template-columns:1fr;} }
.result-num-card{background:var(--white); border:1px solid var(--line); border-radius:16px; padding:20px 22px;}
.result-num-card .big-num{display:flex; align-items:baseline; gap:6px;}
.result-num-card .big-num .n{font-size:38px; font-weight:800; letter-spacing:-.02em;}
.result-num-card .big-num .d{font-size:15px; color:var(--ink); font-weight:600;}
.result-num-card .cap{font-size:12.5px; color:var(--ink); margin-top:6px;}
.result-msg-card{background:var(--white); border:1px solid var(--line); border-radius:16px; padding:16px 22px; display:flex; align-items:center; font-size:14px; color:var(--ink);}
.result-msg-card strong{font-weight:400;}

/* ---- karta klienta: dwie karty obok siebie ---- */
.karta-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start;}
@media (max-width:600px){ .karta-grid{grid-template-columns:1fr;} }
.karta-qr-card{text-align:center;}
.expand-panel{background:var(--paper); border-radius:14px; padding:20px 20px 18px; margin:-4px 0 16px;}
.expand-panel .row2{display:flex; gap:24px; flex-wrap:wrap; margin-bottom:16px;}
.expand-panel .kv .k{font-size:11px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; margin-bottom:3px;}
.expand-panel .kv .v{font-size:14.5px; font-weight:400;}
.hidden{display:none !important;}
.center-wrap{min-height:70vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; gap:30px;}
.login-wordmark{font-family:'Fraunces',serif; font-weight:700; font-size:36px; letter-spacing:-.02em; color:var(--ink); display:inline-flex; align-items:center;}
.login-wordmark .dot{color:var(--danger);}
.card-box{width:100%; max-width:500px; background:var(--white); border:1px solid var(--line); border-radius:20px; padding:36px 28px 30px; box-shadow:0 18px 40px -18px rgba(16,24,40,.18); text-align:center;}
.card-box h1{font-size:21px; margin-bottom:4px;}
.card-box .sub{font-size:13px; color:var(--ink-soft); margin-bottom:22px;}
.logo-badge{width:52px;height:52px;border-radius:14px; background:var(--ink); color:var(--white); display:flex;align-items:center;justify-content:center; font-weight:700;font-size:19px; margin:0 auto 16px; overflow:hidden;}
.logo-badge img{width:100%;height:100%;object-fit:cover;}

.topbar{background:var(--white); color:var(--ink); padding:13px 22px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; border-bottom:1px solid var(--line);}
.topbar{position:relative; z-index:40; position:sticky; top:0;}
.topbar .wordmark{display:none;}
.topbar-brand-mobile{display:flex; align-items:center; gap:10px;}
.topbar-title{font-size:14px; font-weight:700; color:var(--ink);}
.topbar-spacer{flex:1;}

.role-tabs{display:flex; gap:6px; flex-wrap:wrap;}
.role-tab{background:none; border:1.5px solid var(--line); color:var(--ink-soft); font-size:13px; font-weight:400; padding:8px 14px; border-radius:999px; display:inline-flex; align-items:center; gap:6px;}
.role-tab.active{background:var(--ink); border-color:var(--ink); color:var(--white);}
.content{max-width:960px; margin:0 auto; padding:26px 20px 60px;}
.content.wide{max-width:960px;}
.loading-line{text-align:center; padding:60px 20px; color:var(--ink-soft); font-size:14px;}

.ticket{background:var(--white); border-radius:22px; position:relative; box-shadow:0 22px 50px -20px rgba(16,24,40,.35);}
.ticket-header{display:flex; align-items:center; gap:14px; padding:24px 22px 16px;}
.venue-name{font-size:18px; line-height:1.2; font-weight:700;}
.venue-addr{font-size:12px; color:var(--ink-soft); margin-top:3px;}
.stamp-btn{position:absolute; top:20px; right:20px; background:var(--paper); border:1.5px solid var(--line); color:var(--ink); font-size:12px; font-weight:400; padding:9px 13px; border-radius:999px;}
.perforation{height:0; border-top:2px dashed var(--line); margin:0 22px;}
.stamps-wrap{padding:22px 22px 6px;}
.stamps-caption{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px;}
.stamps-caption .count{font-size:12px; color:var(--ink-soft); font-weight:400;}
.stamp-row{display:flex; gap:10px; margin-bottom:10px;}
.slot{flex:1; aspect-ratio:1; border-radius:50%; border:1.6px solid var(--line); display:flex;align-items:center;justify-content:center; background:var(--paper);}
.slot svg{width:78%;height:78%;}
.reward-line{padding:6px 22px 20px; font-size:12.5px; color:var(--ink-soft);}
.card-footer{padding:0 22px 24px;}

.overlay{position:fixed; inset:0; background:rgba(15,20,30,.5); display:flex; align-items:center; justify-content:center; z-index:60; padding:20px;}
.modal, .sheet{background:var(--white); border-radius:20px; padding:26px 24px 24px; width:100%; max-width:380px; box-shadow:0 24px 60px -20px rgba(16,24,40,.35); text-align:left; position:relative; border:1px solid var(--line);}
@media (min-width:900px){ .modal{max-width:440px;} }
.modal-close{position:absolute; top:14px; right:14px; width:32px; height:32px; border-radius:50%; border:none; background:var(--paper); color:var(--ink-soft); font-size:14px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.modal-close:hover{background:var(--paper-dim); color:var(--ink);}
.modal h2, .modal h3, .sheet h2{font-size:18px; margin-bottom:10px; display:flex; align-items:center; gap:8px;}
.modal p, .sheet p{font-size:13.5px; color:var(--ink-soft); line-height:1.5; margin:0 0 16px;}
.confirm-row{display:flex; gap:10px; margin-top:4px;}
.confirm-row .btn{flex:1;}
.code-input{width:100%; text-align:center; font-size:26px; font-weight:700; letter-spacing:.5em; padding:14px 10px 14px 16px; border-radius:12px; border:1.6px solid var(--line); background:var(--paper); color:var(--ink); margin-bottom:8px;}

.voucher-card{background:var(--ink); color:var(--white); border-radius:22px; padding:28px 24px 24px; text-align:center;}
.voucher-card h2{font-size:17px; color:var(--white); margin-bottom:2px;}
.voucher-card .reward-name{font-size:12.5px; color:#AEB4C2; margin-bottom:18px;}
.voucher-code{font-size:19px; font-weight:700; letter-spacing:.1em; background:rgba(255,255,255,.08); border:1px dashed rgba(255,255,255,.35); border-radius:12px; padding:13px; margin-bottom:18px;}
.timer{font-size:28px; font-weight:800; margin-bottom:2px; font-variant-numeric:tabular-nums;}
.timer-label{font-size:10.5px; color:#8C95AC; text-transform:uppercase; letter-spacing:.1em;}

/* ---- header logo divider + logout accent ---- */
.topbar-divider{width:1px;height:22px;background:var(--line);}
.topbar-logo{width:60px;height:60px;border-radius:9px;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;overflow:hidden;flex-shrink:0;}
.topbar-logo img{width:100%;height:100%;object-fit:cover;}
.btn-logout{background:var(--danger-bg); color:var(--danger-dark); border:1.5px solid transparent; display:inline-flex; align-items:center; justify-content:center; gap:6px; height:38px; padding:0 16px;}
.btn-logout:hover{background:#F6DBD6;}
.btn-logout svg{flex-shrink:0;}

/* ---- nawigacja na panelu bocznym (desktop) ---- */
.app-layout{display:block; min-height:calc(100vh - 60px);}
.side-nav{display:none;}
.mobile-tabs{display:flex;}
.main-area{flex:1; min-width:0;}

@media (min-width:900px){
  .app-layout{display:flex; align-items:stretch; min-height:100vh;}
  .topbar-brand-mobile{display:none;}
  .side-nav{
    display:flex; flex-direction:column; justify-content:space-between; gap:18px; width:236px; min-width:236px;
    background:var(--white); border-right:1px solid var(--line);
    padding:22px 12px;
    position:sticky; top:0; align-self:flex-start; height:100vh; overflow-y:auto;
  }
  .side-brand{display:flex; align-items:center; gap:10px; padding:8px 12px 30px;}
  .side-nav-buttons{display:flex; flex-direction:column; gap:1px;}
  .side-nav button{
    background:none; border:none; text-align:left; padding:10px 12px; border-radius:10px;
    font-size:14px; font-weight:400; color:var(--ink-soft); cursor:pointer;
    display:flex; align-items:center; gap:10px;
  }
  .side-nav button svg{flex-shrink:0; opacity:.85;}
  .side-nav button:hover{background:var(--paper);}
  .side-nav button.active{background:var(--chip); color:var(--ink);}
  .side-nav button.active svg{opacity:1;}
  .side-footer{font-size:11px; font-weight: 100; color:var(--ink-faint); padding:8px 12px 4px;}
  .page-footer{display:none;}
  .mobile-tabs{display:none;}
}
@media (max-width:899px){
  .side-brand{display:flex; align-items:center; gap:10px;}
  .btn-logout .logout-text{display:none;}
  .btn-logout{padding:0 10px; gap:0;}
}

.page-footer{
  text-align:center; font-size:11.5px; color:var(--ink-soft);
  padding:24px 20px 32px;
}

.caretaker-card{
  display:flex; align-items:center; gap:18px;
  background:var(--paper); border-radius:16px; padding:22px 24px;
}
.caretaker-icon{
  width:52px; height:52px; min-width:52px; border-radius:50%;
  background:var(--ink); display:flex; align-items:center; justify-content:center;
}
.caretaker-info{display:flex; flex-direction:column; gap:4px;}
.caretaker-name{font-size:16.5px; font-weight:700; color:var(--ink); margin-bottom:2px;}
.caretaker-line{font-size:14px; color:var(--ink-soft); text-decoration:none;}
.caretaker-line:hover{color:var(--ink); text-decoration:underline;}

.logo-uploader{
  position:relative; width:140px; height:140px; border-radius:20px; overflow:hidden;
  cursor:pointer; background:var(--paper); border:1.5px solid var(--line);
}
.logo-uploader-preview{width:100%; height:100%; display:flex; align-items:center; justify-content:center;}
.logo-uploader-preview img{width:100%; height:100%; object-fit:cover;}
.logo-uploader-overlay{
  position:absolute; inset:0; background:rgba(15,20,30,.55);
  display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .15s ease;
}
.logo-uploader:hover .logo-uploader-overlay{opacity:1;}
.logo-uploader-info{font-size:12px; color:var(--ink-soft); margin-top:10px; max-width:260px;}

.stats-grid-big{grid-template-columns:repeat(2, 1fr);}
.stat-card-big{padding:26px 26px 22px;}
.stat-card-big .num{font-size:40px;}
.stat-card-big .lbl{font-size:13.5px; margin-top:8px;}
@media (max-width:520px){
  .stats-grid-big{grid-template-columns:1fr;}
}

/* ---- pulpit: dwukolumnowy układ (lewa: panele, prawa: statystyki z wykresem) ---- */
.dash-layout{display:grid; grid-template-columns:1.15fr 1fr; gap:16px; align-items:start;}
.dash-col{display:flex; flex-direction:column; gap:16px;}
@media (max-width:820px){ .dash-layout{grid-template-columns:1fr;} }
.dash-mini-stats{display:flex; gap:0; text-align:center;}
.dash-mini-stat{flex:1; padding:4px 6px;}
.dash-mini-stat + .dash-mini-stat{border-left:1px solid var(--line);}
.dash-mini-stat .num{font-size:26px; font-weight:800; letter-spacing:-.02em;}
.dash-mini-stat .lbl{font-size:11.5px; color:var(--ink-soft); margin-top:4px;}
.panel-link-btn{width:34px;height:34px;border-radius:10px;background:var(--paper);color:var(--ink-soft);display:flex;align-items:center;justify-content:center;border:none;flex-shrink:0;}
.panel-link-btn:hover{background:var(--paper-dim); color:var(--ink);}
.dash-code-row{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.dash-code-num{font-size:34px; font-weight:800; letter-spacing:.08em; font-variant-numeric:tabular-nums;}
.dash-history-row{display:flex; justify-content:space-between; align-items:center; padding:9px 0; font-size:13px; border-bottom:1px solid var(--line);}
.dash-history-row:last-child{border-bottom:none;}
.dash-history-row .code{font-weight:700; font-variant-numeric:tabular-nums;}
.dash-history-row .date{color:var(--ink-soft); font-size:12px;}
.dash-payment-row{display:flex; justify-content:space-between; align-items:center; padding:9px 0; font-size:13px; border-bottom:1px solid var(--line);}
.dash-payment-row:last-child{border-bottom:none;}
.dash-payment-row.overdue .date{color:var(--danger); font-weight:700;}
.dash-payment-row .venue{font-weight:600;}
.dash-empty{font-size:13px; color:var(--ink-soft); padding:6px 0;}

.employee-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:16px;}
@media (max-width:640px){ .employee-grid{grid-template-columns:1fr;} }
.employee-card{
  display:flex; align-items:flex-start; gap:14px;
  background:var(--paper); border-radius:16px; padding:18px 20px;
}
.employee-icon{
  width:44px; height:44px; min-width:44px; border-radius:50%;
  background:var(--ink); display:flex; align-items:center; justify-content:center;
}
.employee-name{font-size:15px; font-weight:700; color:var(--ink);}
.employee-login{font-size:12.5px; color:var(--ink-soft); margin-top:2px;}

/* ---- Pracownicy jako tabela ---- */
.emp-name-cell{display:flex; align-items:center; gap:10px;}
.emp-avatar{width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.perm-pill{font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:999px; background:var(--ok-bg); color:var(--ok); display:inline-block;}
.perm-pill.off{background:var(--paper); color:var(--ink-faint);}

/* ---- Plakat A4 ---- */
.poster-preview-wrap{display:flex; justify-content:center; padding:20px 0;}
.poster-scale-wrap{
  width:318px; height:450px; overflow:hidden; position:relative;
  box-shadow:0 20px 50px -20px rgba(16,24,40,.35);
}
.poster{
  width:210mm; height:297mm; box-sizing:border-box;
  background:var(--white); padding:18mm 16mm;
  display:flex; flex-direction:column; align-items:center; text-align:center;
  font-family:'Stack Sans Headline',sans-serif;
  transform:scale(0.4); transform-origin:top left;
  position:absolute; top:0; left:0;
}
.poster-header{display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:20mm;}
.poster-wordmark{font-weight:800; font-size:26px; color:var(--ink);}
.poster-divider{width:1.5px; height:30px; background:var(--line);}
.poster-venue-logo{width:56px; height:56px; border-radius:14px; overflow:hidden; background:var(--paper); display:flex; align-items:center; justify-content:center;}
.poster-venue-logo img{width:100%; height:100%; object-fit:cover;}
.poster-title{font-weight:800; font-size:40px; color:var(--ink); line-height:1.15; margin-bottom:14px;}
.poster-sub{font-size:16px; color:var(--ink-soft); margin-bottom:16mm;}
.poster-qr-frame{
  padding:14px; border:2px dashed var(--line); border-radius:16px; margin-bottom:10mm;
  display:inline-flex; align-items:center; justify-content:center;
}
.poster-scan-text{font-size:15px; color:var(--ink); font-weight:600; margin-bottom:auto;}
.poster-reward{
  width:100%; border-radius:14px; padding:16px 20px; font-size:16px; margin-top:16mm;
}
.poster-reward strong{font-size:19px;}

@media print{
  body > *{display:none !important;}
  body > #poster-capture{
    display:flex !important; visibility:visible !important;
    position:static !important; transform:none !important;
    width:210mm !important; height:297mm !important; overflow:hidden;
  }
  @page{size:A4; margin:0;}
}

.version-link{cursor:pointer; text-decoration:underline; text-decoration-style:dotted;}
.version-link:hover{color:var(--ink);}

.dane-lokalu-layout{display:grid; grid-template-columns:200px 1fr; gap:32px;}
@media (max-width:700px){ .dane-lokalu-layout{grid-template-columns:1fr;} }

/* ---- dane lokalu: widok tylko-odczyt ---- */
.dane-view-row{display:flex; align-items:center; gap:18px; padding:6px 0;}
.dane-view-logo{width:64px;height:64px;min-width:64px;border-radius:16px;overflow:hidden;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;}
.dane-view-logo img{width:100%;height:100%;object-fit:cover;}
.dane-view-name{font-size:18px; font-weight:700;}
.dane-view-addr{font-size:13.5px; color:var(--ink-soft); margin-top:3px;}

/* ---- podsumowanie zasad programu ---- */
.rules-summary{display:flex; flex-direction:column; gap:18px;}
.rule-summary-row{padding:16px 20px; border:1.5px solid var(--line); border-radius:12px; background:var(--paper);}
.rule-summary-row .lbl{font-size:13px; font-weight:600; color:var(--ink-soft); margin-bottom:6px;}
.rule-summary-row .val{font-size:17px; font-weight:600; color:var(--ink);}
.rule-summary-row .big-num{font-size:40px; font-weight:800; color:var(--ink);}

/* ---- toggle switch ---- */
.toggle-row{display:flex; align-items:center; gap:12px; font-size:14px; color:var(--ink);}
.switch{position:relative; display:inline-block; width:44px; height:24px; flex-shrink:0;}
.switch input{opacity:0; width:0; height:0;}
.switch-track{position:absolute; inset:0; background:var(--line); border-radius:999px; transition:background .15s ease; cursor:pointer;}
.switch-thumb{position:absolute; top:3px; left:3px; width:18px; height:18px; background:var(--white); border-radius:50%; transition:transform .15s ease; box-shadow:0 1px 3px rgba(0,0,0,.2);}
.switch input:checked + .switch-track{background:var(--ink);}
.switch input:checked + .switch-track .switch-thumb{transform:translateX(20px);}

/* ---- statystyki w popupach ---- */
.venue-detail-stats{display:flex; gap:10px; margin-bottom:18px;}
.venue-detail-stat{flex:1; background:var(--paper); border-radius:12px; padding:12px 10px; text-align:center;}
.venue-detail-stat .num{font-size:18px; font-weight:700; color:var(--ink);}
.venue-detail-stat .lbl{font-size:10.5px; color:var(--ink-soft); margin-top:2px;}

/* ---- przyciski Pomoc / Konto ---- */
.icon-btn-outline{
  width:32px; height:32px; border-radius:50%; background:transparent;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  flex-shrink:0;
}
.icon-btn-outline:hover{background:rgba(255,255,255,.1);}

/* ---- FAQ, konto ---- */
.faq-item{border-bottom:1px solid var(--line); padding:14px 0;}
.faq-item:last-child{border-bottom:none;}
.faq-question{font-weight:600; font-size:14.5px; color:var(--ink); cursor:pointer; display:flex; justify-content:space-between; align-items:center;}
.faq-answer{font-size:13.5px; color:var(--ink); margin-top:10px; line-height:1.5; display:none;}
.faq-item.open .faq-answer{display:block;}
.faq-item.open .faq-caret{transform:rotate(180deg);}
.faq-caret{transition:transform .15s ease; color:var(--ink-soft);}
.faq-tags{display:flex; gap:6px; margin-top:6px;}
.faq-tag{font-size:10.5px; font-weight:600; padding:2px 8px; border-radius:999px; background:var(--paper); color:var(--ink-soft);}


/* przyciski Pomoc / Konto: kwadratowe */
.icon-btn-square{
  width:38px; height:38px; border-radius:10px; background:var(--paper);
  display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;
  border:none; color:var(--ink-soft);
}
.icon-btn-square:hover{background:var(--paper-dim); color:var(--ink);}
.icon-btn-square.danger{background:var(--danger-bg); color:var(--danger-dark);}
.icon-btn-square.danger:hover{background:#F6DBD6; color:var(--danger-dark);}
