@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  --grass:       #5D8A3C;
  --grass-l:     #7BBD52;
  --grass-glow:  rgba(123,189,82,0.12);
  --diamond:     #4AECEC;
  --gold:        #F5C518;
  --red:         #D93B3B;
  --bg:          #0D1117;
  --bg2:         #161B22;
  --bg3:         #1C2333;
  --surface:     #1E2D3D;
  --surface2:    #243347;
  --border:      #2D4060;
  --border-l:    #3A5278;
  --text:        #EDF2FF;
  --muted:       #8BA3C0;
  --dim:         #4A6080;
  --r:           10px;
  --shadow:      0 8px 32px rgba(0,0,0,0.5);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column;line-height:1.6}
a{color:var(--diamond);text-decoration:none;transition:color .2s}
a:hover{color:var(--grass-l)}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border-l);border-radius:3px}

/* ── NAV ─────────────────────────────────────────────────────────────────── */
.site-header{background:rgba(13,17,23,.96);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}
.nav-inner{max-width:1160px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:6px;height:62px}
.nav-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;color:var(--text);text-decoration:none;flex-shrink:0}
.nav-logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--grass),var(--grass-l));border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 0 16px rgba(123,189,82,.3);flex-shrink:0}
.nav-logo span{color:var(--grass-l)}
.nav-links{display:flex;align-items:center;gap:2px;margin-left:8px}
.nav-links a{color:var(--muted);font-size:14px;font-weight:500;padding:7px 13px;border-radius:8px;text-decoration:none;transition:background .15s,color .15s}
.nav-links a:hover,.nav-links a.active{background:var(--surface);color:var(--text)}
.nav-spacer{flex:1}
.nav-ip{display:flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grass-l);cursor:pointer;transition:border-color .2s;user-select:none}
.nav-ip:hover{border-color:var(--grass)}
.nav-dot{width:6px;height:6px;background:var(--grass-l);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.nav-admin{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--grass),var(--grass-l));color:#fff;font-size:13px;font-weight:700;padding:8px 16px;border-radius:8px;text-decoration:none;margin-left:8px;transition:opacity .15s,transform .1s;box-shadow:0 0 16px rgba(123,189,82,.25)}
.nav-admin:hover{opacity:.9;transform:translateY(-1px);color:#fff}

/* ── HERO ────────────────────────────────────────────────────────────────── */
.hero{position:relative;overflow:hidden;padding:80px 24px 68px;text-align:center;background:linear-gradient(180deg,#071020 0%,#0D1117 100%)}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(93,138,60,.2) 0%,transparent 70%),radial-gradient(ellipse 40% 40% at 80% 80%,rgba(74,236,236,.05) 0%,transparent 60%);pointer-events:none}
.hero-grid{position:absolute;inset:0;pointer-events:none;opacity:.035;background-image:linear-gradient(var(--border-l) 1px,transparent 1px),linear-gradient(90deg,var(--border-l) 1px,transparent 1px);background-size:48px 48px}
.hero-inner{position:relative;max-width:720px;margin:0 auto}
.hero-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(123,189,82,.1);border:1px solid rgba(123,189,82,.25);color:var(--grass-l);font-size:12px;font-weight:600;padding:5px 14px;border-radius:99px;margin-bottom:22px;letter-spacing:.4px}
.hero-badge-dot{width:6px;height:6px;background:var(--grass-l);border-radius:50%;animation:pulse 2s infinite}
.hero-title{font-size:clamp(34px,6vw,62px);font-weight:800;line-height:1.1;letter-spacing:-1.5px;margin-bottom:16px}
.hl-green{color:var(--grass-l)}
.hl-cyan{color:var(--diamond)}
.hero-sub{font-size:16px;color:var(--muted);margin-bottom:38px;max-width:480px;margin-left:auto;margin-right:auto}
.hero-stats{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.stat-card{background:rgba(30,45,61,.8);border:1px solid var(--border);border-radius:12px;padding:15px 22px;min-width:120px;backdrop-filter:blur(8px);transition:border-color .2s,transform .2s}
.stat-card:hover{border-color:var(--border-l);transform:translateY(-2px)}
.stat-num{font-size:20px;font-weight:700;display:block;margin-bottom:3px}
.stat-num.green{color:var(--grass-l)}
.stat-num.cyan{color:var(--diamond)}
.stat-num.gold{color:var(--gold)}
.stat-label{font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.3px}

/* ── IP BANNER ───────────────────────────────────────────────────────────── */
.ip-banner{background:var(--bg2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:0 24px}
.ip-banner-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;height:52px}
.ip-item{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);padding:0 20px;border-right:1px solid var(--border)}
.ip-item:first-child{border-left:1px solid var(--border)}
.ip-item strong{color:var(--text);font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500}
.ip-copy{display:flex;align-items:center;gap:6px;background:var(--grass-glow);border:1px solid rgba(123,189,82,.3);color:var(--grass-l);font-size:12px;font-weight:700;padding:6px 14px;border-radius:6px;cursor:pointer;margin-left:16px;transition:background .15s;letter-spacing:.3px;font-family:'Outfit',sans-serif}
.ip-copy:hover{background:rgba(123,189,82,.2)}

/* ── MAIN ────────────────────────────────────────────────────────────────── */
.main-content{max-width:1160px;margin:0 auto;padding:44px 24px;flex:1 1 auto;width:100%}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.section-title-wrap{display:flex;align-items:center;gap:10px}
.section-title{font-size:19px;font-weight:700;color:var(--text);letter-spacing:-.3px}
.section-badge{background:var(--surface2);border:1px solid var(--border);color:var(--muted);font-size:11px;font-weight:600;padding:3px 10px;border-radius:99px;letter-spacing:.3px}
.section-link{font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;transition:color .15s}
.section-link:hover{color:var(--text)}

/* ── CAT FILTER ──────────────────────────────────────────────────────────── */
.cat-filter{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}
.cat-btn{font-size:13px;font-weight:500;background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:6px 15px;border-radius:99px;cursor:pointer;text-decoration:none;transition:all .15s}
.cat-btn:hover{border-color:var(--border-l);color:var(--text)}
.cat-btn.active{background:var(--grass-glow);border-color:rgba(123,189,82,.4);color:var(--grass-l)}

/* ── NEWS GRID ───────────────────────────────────────────────────────────── */
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.news-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,transform .2s,box-shadow .2s}
.news-card:hover{border-color:var(--border-l);transform:translateY(-3px);box-shadow:var(--shadow)}
.card-top{height:3px}
.card-body{padding:18px;flex:1;display:flex;flex-direction:column}
.card-meta{display:flex;align-items:center;gap:7px;margin-bottom:11px;flex-wrap:wrap}
.card-cat{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:3px 8px;border-radius:4px}
.card-pinned{font-size:10px;font-weight:600;color:var(--gold)}
.card-date{font-size:11px;color:var(--dim);margin-left:auto}
.card-title{font-size:15px;font-weight:700;color:var(--text);line-height:1.4;margin-bottom:9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-title a{color:inherit;text-decoration:none}
.card-title a:hover{color:var(--grass-l)}
.card-excerpt{font-size:13px;color:var(--muted);line-height:1.6;flex:1;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border)}
.card-views{font-size:12px;color:var(--dim)}
.card-link{font-size:13px;font-weight:600;color:var(--grass-l);display:flex;align-items:center;gap:4px;text-decoration:none;transition:gap .15s}
.card-link:hover{gap:8px;color:var(--grass-l)}

/* ── SINGLE NEWS ─────────────────────────────────────────────────────────── */
.news-single-wrap{max-width:760px}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--dim);margin-bottom:22px}
.breadcrumb a{color:var(--dim);text-decoration:none}
.breadcrumb a:hover{color:var(--muted)}
.news-single-header{margin-bottom:26px}
.news-cat-pill{display:inline-flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:4px 11px;border-radius:99px;margin-bottom:14px;border:1px solid}
.news-single-title{font-size:clamp(22px,4vw,30px);font-weight:800;color:var(--text);line-height:1.25;letter-spacing:-.5px;margin-bottom:12px}
.news-meta{display:flex;flex-wrap:wrap;gap:14px}
.news-meta-item{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}
.news-body{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:30px 34px;font-size:15px;line-height:1.8;color:var(--muted)}
.news-body h2,.news-body h3{font-size:17px;font-weight:700;color:var(--text);margin:24px 0 10px;letter-spacing:-.2px}
.news-body h3{font-size:15px}
.news-body p{margin-bottom:14px}
.news-body ul,.news-body ol{margin:12px 0 12px 22px}
.news-body li{margin-bottom:7px}
.news-body strong{color:var(--text);font-weight:600}
.news-body code{font-family:'JetBrains Mono',monospace;background:var(--bg3);color:var(--diamond);padding:2px 7px;border-radius:4px;font-size:13px;border:1px solid var(--border)}
.news-body a{color:var(--diamond)}
.news-body a:hover{color:var(--grass-l)}

/* ── PAGINATION ──────────────────────────────────────────────────────────── */
.pagination{display:flex;gap:6px;margin-top:32px;flex-wrap:wrap}
.page-btn{font-size:13px;font-weight:600;background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:7px 13px;border-radius:8px;text-decoration:none;transition:all .15s}
.page-btn:hover{border-color:var(--border-l);color:var(--text)}
.page-btn.active{background:var(--grass-glow);border-color:rgba(123,189,82,.4);color:var(--grass-l)}

/* ── EMPTY ───────────────────────────────────────────────────────────────── */
.empty-state{text-align:center;padding:60px 20px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.empty-icon{font-size:44px;margin-bottom:12px;opacity:.5}
.empty-title{font-size:16px;font-weight:600;color:var(--muted);margin-bottom:5px}
.empty-sub{font-size:13px;color:var(--dim)}

/* ── ALERTS ──────────────────────────────────────────────────────────────── */
.alert{font-size:14px;padding:12px 16px;margin-bottom:18px;border-radius:8px;border:1px solid;display:flex;align-items:center;gap:9px}
.alert-success{background:rgba(93,138,60,.1);color:var(--grass-l);border-color:rgba(93,138,60,.35)}
.alert-error{background:rgba(217,59,59,.1);color:#F87171;border-color:rgba(217,59,59,.3)}
.alert-info{background:rgba(74,236,236,.08);color:var(--diamond);border-color:rgba(74,236,236,.25)}

/* ── FOOTER ──────────────────────────────────────────────────────────────── */
.site-footer{background:var(--bg2);border-top:1px solid var(--border);padding:24px}
.footer-inner{max-width:1160px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer-logo{font-size:14px;font-weight:700;color:var(--muted)}
.footer-logo span{color:var(--grass-l)}
.footer-info{font-size:13px;color:var(--dim)}
.footer-ip{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grass-l);background:var(--surface);border:1px solid var(--border);padding:4px 11px;border-radius:6px}

/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media(max-width:640px){
  .nav-ip,.nav-links{display:none}
  .ip-banner-inner{height:auto;padding:12px 0;gap:8px;flex-direction:column;align-items:flex-start}
  .ip-item{border:none !important;padding:0 16px}
  .ip-copy{margin-left:16px;margin-top:4px}
  .hero{padding:52px 16px 44px}
  .hero-title{letter-spacing:-.5px}
  .news-grid{grid-template-columns:1fr}
  .main-content{padding:28px 16px}
  .news-body{padding:20px}
  .footer-inner{flex-direction:column;text-align:center}
}

/* ── GRACZE ONLINE (hero) ────────────────────────────────────────────────── */
.hero-players {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
  justify-content: center;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.hero-players-label {
  font-size: 12px;
  color: var(--dim);
  font-weight: 500;
  letter-spacing: .3px;
  margin-right: 2px;
}
.hero-player-nick {
  font-size: 12px;
  font-weight: 700;
  font-family: 'JetBrains Mono', monospace;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 3px 9px;
  border-radius: 5px;
  /* Kolor tekstu ustawiany inline przez mcColorToHtml() */
}
.hero-player-nick span {
  /* Dziedziczy kolor z mcColorToHtml inline style */
}

/* ── SEKCJA ADMINISTRACJI (strona glowna) ────────────────────────────────── */
.staff-section {
  background: linear-gradient(180deg, var(--bg2) 0%, var(--bg3) 100%);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 48px 24px;
}
.staff-inner {
  max-width: 1160px;
  margin: 0 auto;
}
.staff-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 32px;
  letter-spacing: -.3px;
}
.staff-heading-count {
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  background: var(--surface2);
  border: 1px solid var(--border);
  padding: 2px 10px;
  border-radius: 99px;
  margin-left: 4px;
}
.staff-grid {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.staff-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  width: 140px;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  text-align: center;
  position: relative;
}
.staff-card:hover {
  border-color: rgba(123,189,82,.5);
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0,0,0,.3), 0 0 0 1px rgba(123,189,82,.15);
}
.staff-card-avatar-wrap {
  width: 100%;
  height: 130px;
  background: linear-gradient(180deg, rgba(123,189,82,.08) 0%, var(--surface2) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  position: relative;
}
.staff-card-glow {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40px;
  background: linear-gradient(0deg, var(--surface) 0%, transparent 100%);
  pointer-events: none;
}
.staff-card-head-img {
  width: 72px;
  height: 72px;
  border-radius: 12px;
  image-rendering: pixelated;
  border: 2px solid rgba(123,189,82,.3);
  margin-bottom: 8px;
}
.staff-card-body-img {
  height: 118px;
  width: auto;
  image-rendering: pixelated;
  object-fit: contain;
  display: block;
}
.staff-card-avatar-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.staff-card-avatar-fallback img {
  width: 64px;
  height: 64px;
  image-rendering: pixelated;
  border-radius: 8px;
}
.staff-card-info {
  padding: 10px 12px 14px;
  width: 100%;
  position: relative;
}
.staff-card-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.staff-card-role {
  font-size: 11px;
  font-weight: 700;
  color: var(--grass-l);
  letter-spacing: .4px;
  text-transform: uppercase;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.staff-card-dot {
  width: 7px;
  height: 7px;
  background: var(--grass-l);
  border-radius: 50%;
  margin: 8px auto 0;
  box-shadow: 0 0 8px var(--grass);
}

@media(max-width:640px) {
  .staff-grid { gap: 10px; }
  .staff-card { width: 115px; }
  .staff-card-avatar-wrap { height: 110px; }
  .staff-card-body-img { height: 100px; }
}

/* ── PRZYCISKI LOGOWANIA W NAV ───────────────────────────────────────────── */
.nav-login-btn {
  display: flex; align-items: center; gap: 6px;
  background: var(--surface); border: 1px solid var(--border);
  color: var(--text-muted); font-size: 13px; font-weight: 600;
  padding: 7px 14px; border-radius: 8px; text-decoration: none;
  margin-left: 8px; transition: border-color .15s, color .15s;
}
.nav-login-btn:hover { border-color: var(--border-l); color: var(--text); }
.nav-player-btn {
  display: flex; align-items: center; gap: 7px;
  background: var(--surface); border: 1px solid var(--grass);
  color: var(--grass-l); font-size: 13px; font-weight: 700;
  padding: 6px 12px; border-radius: 8px; text-decoration: none;
  margin-left: 8px; transition: background .15s;
}
.nav-player-btn:hover { background: var(--grass-glow); color: var(--grass-l); }

/* ══════════════════════════════════════════════════════
   FORMULARZE — spójny styl dla całego CMS
   ══════════════════════════════════════════════════════ */

.form-group {
  margin-bottom: 18px;
}

.form-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 7px;
  letter-spacing: .5px;
  text-transform: uppercase;
}

.form-control {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  font-size: 14px;
  padding: 11px 14px;
  border-radius: 8px;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
  display: block;
  box-sizing: border-box;
  line-height: 1.5;
  -webkit-appearance: none;
  appearance: none;
}

.form-control::placeholder {
  color: var(--dim);
  opacity: 1;
}

.form-control:hover {
  border-color: var(--border-l);
}

.form-control:focus {
  border-color: var(--grass);
  box-shadow: 0 0 0 3px rgba(93,138,60,.15);
  background: var(--surface);
}

.form-control:disabled,
.form-control[readonly] {
  opacity: .5;
  cursor: not-allowed;
}

.form-control option {
  background: var(--surface);
  color: var(--text);
}

textarea.form-control {
  resize: vertical;
  min-height: 110px;
  line-height: 1.6;
}

.form-hint {
  font-size: 12px;
  color: var(--dim);
  margin-top: 6px;
  line-height: 1.5;
}

/* Pole z avatarem (nick gracza) */
.input-with-avatar {
  display: flex;
  align-items: center;
  gap: 10px;
}

.input-with-avatar .avatar-wrap {
  width: 42px;
  height: 42px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background: var(--bg3);
  transition: border-color .2s;
}

.input-with-avatar .avatar-wrap img {
  width: 100%;
  height: 100%;
  display: block;
  image-rendering: pixelated;
}

.input-with-avatar .form-control {
  flex: 1;
}

/* Kod linkowania */
.form-control.code-input {
  font-family: 'JetBrains Mono', 'Courier New', monospace !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  letter-spacing: 12px;
  text-align: center;
  padding: 14px 18px !important;
  border-radius: 10px;
}

/* Przycisk submit */
.form-submit {
  width: 100%;
  justify-content: center;
  padding: 13px;
  font-size: 15px;
  font-weight: 700;
  border-radius: 10px;
  margin-top: 4px;
}

/* Divider "lub" */
.form-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 18px 0;
  font-size: 12px;
  color: var(--dim);
  text-transform: uppercase;
  letter-spacing: .5px;
}

.form-divider::before,
.form-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border);
}

/* Walidacja */
.form-control.is-valid   { border-color: var(--grass); }
.form-control.is-invalid { border-color: #F87171; box-shadow: 0 0 0 3px rgba(248,113,113,.15); }
.form-feedback-error { font-size: 12px; color: #F87171; margin-top: 5px; }

/* ── Pole hasła z przyciskiem pokazywania ── */
.password-wrap {
  position: relative;
}
.password-wrap .form-control {
  padding-right: 44px;
}
.password-toggle {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--dim);
  cursor: pointer;
  font-size: 16px;
  padding: 4px;
  line-height: 1;
  transition: color .15s;
}
.password-toggle:hover { color: var(--text); }

/* ══════════════════════════════════════════════════════
   PRZYCISKI — spójny styl dla całego CMS
   ══════════════════════════════════════════════════════ */

.btn {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Outfit', sans-serif; font-size: 13px; font-weight: 700;
  padding: 9px 18px; border-radius: 8px; cursor: pointer;
  border: 1px solid transparent; text-decoration: none;
  transition: opacity .15s, transform .1s, background .15s, border-color .15s, color .15s;
  white-space: nowrap; line-height: 1.4; box-sizing: border-box;
  -webkit-appearance: none; appearance: none;
}
.btn:focus-visible {
  outline: 2px solid var(--grass);
  outline-offset: 2px;
}
.btn:active { transform: translateY(0) scale(.98); }

/* Główny — zielony gradient */
.btn-primary {
  background: linear-gradient(135deg, var(--grass) 0%, var(--grass-l) 100%);
  border-color: var(--grass-l); color: #fff;
  box-shadow: 0 2px 12px rgba(93,138,60,.25);
}
.btn-primary:hover {
  opacity: .92; transform: translateY(-1px);
  color: #fff; text-decoration: none;
  box-shadow: 0 4px 18px rgba(93,138,60,.35);
}

/* Edycja — turkus */
.btn-edit {
  background: rgba(74,236,236,.08);
  border-color: rgba(74,236,236,.25);
  color: var(--diamond);
}
.btn-edit:hover {
  background: rgba(74,236,236,.16);
  border-color: rgba(74,236,236,.4);
  color: var(--diamond); text-decoration: none;
  transform: translateY(-1px);
}

/* Usuń — czerwony */
.btn-del {
  background: rgba(217,59,59,.08);
  border-color: rgba(217,59,59,.25);
  color: #F87171;
}
.btn-del:hover {
  background: rgba(217,59,59,.16);
  border-color: rgba(217,59,59,.4);
  color: #F87171; text-decoration: none;
  transform: translateY(-1px);
}

/* Neutralny — szary */
.btn-cancel {
  background: var(--surface2);
  border-color: var(--border);
  color: var(--muted);
}
.btn-cancel:hover {
  border-color: var(--border-l);
  color: var(--text); text-decoration: none;
  transform: translateY(-1px);
}

/* Warianty rozmiaru */
.btn-sm { font-size: 12px; padding: 6px 12px; border-radius: 6px; }
.btn-lg { font-size: 15px; padding: 12px 24px; border-radius: 10px; }

/* Pełna szerokość */
.btn-block {
  width: 100%; justify-content: center;
  padding-top: 13px; padding-bottom: 13px;
  font-size: 15px; border-radius: 10px;
}

/* Disabled */
.btn:disabled,
.btn[disabled] {
  opacity: .4; cursor: not-allowed;
  transform: none !important; box-shadow: none !important;
}
