:root {
  --tcn-blue: #08285f;
  --tcn-blue-2: #0f3b82;
  --tcn-yellow: #ffd21a;
  --tcn-bg: #f4f6f8;
  --tcn-text: #152238;
  --tcn-muted: #687386;
  --tcn-border: #dfe5ee;
  --tcn-card: #ffffff;
  --tcn-green: #0f7a43;
  --tcn-red: #b91c1c;
  --tcn-orange: #9a5b00;
}

* { box-sizing: border-box; }
body {
  font-family: Arial, Helvetica, sans-serif;
  background: var(--tcn-bg);
  margin: 0;
  color: var(--tcn-text);
  line-height: 1.45;
}
.container { max-width: 1180px; margin: 0 auto; padding: 0 22px; }
.site-header {
  background: #fff;
  border-top: 6px solid var(--tcn-blue);
  border-bottom: 1px solid var(--tcn-border);
}
.header-inner { display: flex; align-items: center; gap: 28px; padding-top: 22px; padding-bottom: 20px; }
.brand img { display: block; width: min(420px, 55vw); height: auto; }
.header-text { border-left: 4px solid var(--tcn-yellow); padding-left: 22px; color: var(--tcn-blue); }
.club-name { font-size: 18px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.claim { font-size: clamp(24px, 4vw, 46px); font-weight: 800; line-height: 1.05; margin-top: 4px; }
.nav-wrap { background: var(--tcn-blue); box-shadow: 0 8px 22px rgba(8,40,95,.18); }
nav { display: flex; gap: 4px; align-items: center; padding: 0; min-height: 54px; }
nav a, nav span { color: #fff; }
nav a { text-decoration: none; font-weight: 700; padding: 16px 18px; border-radius: 0; }
nav a:hover { background: var(--tcn-blue-2); }
nav span { margin-left: auto; color: #dbe7ff; font-size: 14px; padding: 0 12px; }
main.container { padding-top: 28px; padding-bottom: 42px; }
.page-title { margin: 0 0 18px; }
.page-title p { margin: 0 0 4px; color: var(--tcn-blue-2); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: 13px; }
h1 { margin: 0; color: var(--tcn-blue); font-size: clamp(30px, 4vw, 44px); line-height: 1.1; }
h2, h3 { color: var(--tcn-blue); }
h3 { margin-top: 28px; }
.card, form:not(.inline-form) {
  background: var(--tcn-card);
  padding: 20px;
  border-radius: 8px;
  border: 1px solid var(--tcn-border);
  box-shadow: 0 8px 22px rgba(8,40,95,.08);
  margin-bottom: 18px;
}
label { display: block; margin: 12px 0 6px; font-weight: 700; color: var(--tcn-blue); }
input, select, button {
  padding: 10px;
  border: 1px solid #c8d1df;
  border-radius: 6px;
  font-size: 15px;
  background: #fff;
}
input, select { width: 100%; }
button, .btn, .button {
  background: var(--tcn-blue);
  color: #fff;
  border: none;
  cursor: pointer;
  text-decoration: none;
  display: inline-block;
  padding: 10px 14px;
  border-radius: 6px;
  font-weight: 700;
}
button:hover, .btn:hover, .button:hover { background: var(--tcn-blue-2); }
button.danger, .danger, .button.danger { background: var(--tcn-red); }
button.secondary, .btn.secondary, .button.secondary { background:#eef3fb; color:var(--tcn-blue); border:1px solid #c8d1df; }
button.secondary:hover, .btn.secondary:hover, .button.secondary:hover { background:#dfe8f6; color:var(--tcn-blue); }
.flash { background: #fff8d8; border-left: 6px solid var(--tcn-yellow); padding: 13px 15px; border-radius: 6px; margin-bottom: 18px; box-shadow: 0 6px 16px rgba(8,40,95,.07); }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 8px 22px rgba(8,40,95,.08); border: 1px solid var(--tcn-border); margin-bottom: 24px; }
th, td { padding: 11px 10px; border-bottom: 1px solid #e7ecf3; text-align: left; vertical-align: top; }
th { background: var(--tcn-blue); color: #fff; font-weight: 700; }
tr:nth-child(even) td { background: #fafbfd; }
.slot-free { color: var(--tcn-green); font-weight: 700; }
.slot-booked { color: var(--tcn-red); font-weight: 700; }
.slot-blocked { color: var(--tcn-orange); font-weight: 700; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.small { color: var(--tcn-muted); font-size: 13px; }
.date-form { display: grid; gap: 14px; }
.date-form label { margin: 0 0 6px; }
.date-form p { margin: 0; }
.date-form button { display: none; }
.date-picker-row { display: grid; grid-template-columns: auto minmax(220px, 340px) auto; gap: 14px; align-items: end; justify-content: start; }
.date-field { min-width: 220px; }
.view-field { max-width: 340px; }
.date-nav { white-space: nowrap; text-align: center; }
.inline-form { box-shadow: none; padding: 0; margin: 0; background: transparent; border: 0; }
.inline-form label { color: var(--tcn-muted); margin: 6px 0; font-weight: 600; }
.inline-form select, .inline-form input[type="date"] { padding: 6px; font-size: 13px; border-radius: 4px; }
.inline-form button { padding: 7px 10px; font-size: 13px; margin-top: 5px; }
footer { background: #fff; border-top: 1px solid var(--tcn-border); color: var(--tcn-muted); }
.footer-inner { padding-top: 18px; padding-bottom: 18px; font-size: 13px; }
@media (max-width: 720px) {
  .header-inner { align-items: flex-start; flex-direction: column; gap: 14px; }
  .brand img { width: min(100%, 380px); }
  .header-text { border-left: 0; border-top: 4px solid var(--tcn-yellow); padding-left: 0; padding-top: 12px; }
  nav { flex-wrap: wrap; padding: 8px 0; }
  nav span { order: 10; width: 100%; margin-left: 0; padding: 8px 12px; }
  table { display: block; overflow-x: auto; }
  .date-picker-row { grid-template-columns: 1fr; align-items: stretch; }
  .date-field, .view-field { max-width: none; width: 100%; }
  .date-nav { width: 100%; }
}
.date-display {
    font-weight: 700;
    color: #0b2c68;
    margin: 0.25rem 0 0.75rem;
}

.slot-past{font-weight:700;color:#777}
.checkbox-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:6px 0 14px}
.checkbox-list label{display:flex;gap:8px;align-items:center;background:#f7f9fc;border:1px solid #d9e2ef;border-radius:10px;padding:8px 10px}

.top-booking-bar { padding: 16px 18px; }
.top-control-row {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(170px, 190px) minmax(180px, 240px) auto;
  gap: 14px;
  align-items: end;
}
.date-nav-stack { display: flex; flex-direction: column; gap: 8px; }
.booking-action-buttons { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; padding-bottom: 1px; }
.btn-yellow { background: var(--tcn-yellow); color: var(--tcn-blue); }
.btn-yellow:hover { background: #e8bd00; color: var(--tcn-blue); }
.quick-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.quick-booking-form { margin-bottom: 0 !important; }
.player-box { margin-top: 12px; padding: 12px; border: 1px solid var(--tcn-border); border-radius: 8px; background: #f8fafc; }
.player-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin-top: 8px; }
.player-row label { margin-top: 0; }
.member-select { margin-top: 6px; }
.check-line { display: flex; gap: 8px; align-items: center; }
.check-line input { width: auto; }
@media (max-width: 900px) {
  .top-control-row { grid-template-columns: 1fr; align-items: stretch; }
  .booking-action-buttons, .date-nav-stack { width: 100%; }
  .booking-action-buttons .btn, .date-nav-stack .btn { width: 100%; text-align: center; }
}

.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:20px 0}
.tile{display:block;background:#fff;border:2px solid #f2c400;border-radius:18px;padding:24px;text-decoration:none;color:#153b73;box-shadow:0 8px 22px rgba(0,0,0,.08);transition:.15s transform,.15s box-shadow}
.tile:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.12)}
.tile strong{display:block;font-size:1.35rem;margin-bottom:8px}
.tile span{display:block;color:#334;line-height:1.4}
.role-permission-form{border:1px solid #dde6f2;border-radius:12px;padding:14px;margin:12px 0;background:#f8fbff;box-shadow:none}
.role-permission-form h3{margin-top:0;color:#153b73}

/* Version 13 */
.tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:20px 0}.tile,.app-tile{display:flex;align-items:center;justify-content:center;min-height:130px;padding:28px;border-radius:20px;background:#fff;border:2px solid #f0c400;text-decoration:none;box-shadow:0 10px 25px rgba(0,0,0,.08);font-size:1.35rem;text-align:center}.tile strong{color:#003b79}.tile span{display:none}.admin-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;align-items:start}.admin-sidebar{position:sticky;top:12px;background:#fff;border-radius:18px;padding:14px;box-shadow:0 10px 25px rgba(0,0,0,.08)}.admin-sidebar a{display:block;padding:11px 12px;border-radius:12px;text-decoration:none;color:#003b79;font-weight:700}.admin-sidebar a:hover{background:#eef5ff}.admin-content section{scroll-margin-top:18px}.checkbox-list.compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:6px 12px}.checkbox-list.compact label{margin:0}.danger{background:#a71930!important;color:#fff!important}.quick-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
@media(max-width:850px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static}.top-control-row{display:block}.booking-action-buttons{margin-top:12px}}

.login-card { max-width: 520px; margin: 0 auto 2rem; }
.login-form input { width: 100%; box-sizing: border-box; }
.login-form button { width: 100%; }


/* Version 14 */
.admin-sidebar a.active{background:var(--tcn-blue);color:#fff}
.admin-content .card{margin-bottom:0}
.big-dashboard-tile{min-height:190px;max-width:420px;font-size:1.7rem;flex-direction:column;gap:10px}
.big-dashboard-tile span{display:block;font-size:1rem;color:#334;font-weight:500}

/* v14.2: Adminbereich mit echter linker Seitennavigation */
.admin-layout{
  display:flex !important;
  align-items:flex-start !important;
  gap:22px !important;
  width:100%;
}
.admin-sidebar{
  flex:0 0 270px !important;
  width:270px !important;
  position:sticky !important;
  top:16px !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  background:#fff !important;
  border:1px solid rgba(0,59,121,.12) !important;
  border-radius:18px !important;
  padding:14px !important;
  box-shadow:0 10px 25px rgba(0,0,0,.08) !important;
}
.admin-sidebar a{
  display:block !important;
  width:100% !important;
  box-sizing:border-box !important;
  padding:9px 11px !important;
  border-radius:10px !important;
  background:#f4f8ff !important;
  border:1px solid #dbe7ff !important;
  color:#003b79 !important;
  text-decoration:none !important;
  font-size:.92rem !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  text-align:left !important;
}
.admin-sidebar a:hover,
.admin-sidebar a.active{
  background:#003b79 !important;
  border-color:#003b79 !important;
  color:#fff !important;
}
.admin-content{
  flex:1 1 auto !important;
  min-width:0 !important;
}
.admin-content > .card{
  margin-top:0 !important;
}
@media(max-width:700px){
  .admin-layout{gap:12px !important;}
  .admin-sidebar{flex-basis:210px !important;width:210px !important;padding:10px !important;}
  .admin-sidebar a{font-size:.82rem;padding:8px 9px !important;}
}


/* v14.3: Start-Kachel als echter blauer quadratischer Button */
.tile-grid.dashboard-tile-grid,
.tile-grid{
  align-items:start;
}
.dashboard-booking-button{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:220px !important;
  height:220px !important;
  max-width:100% !important;
  background:var(--tcn-blue) !important;
  color:#fff !important;
  border:0 !important;
  border-radius:8px !important;
  text-decoration:none !important;
  font-size:1.45rem !important;
  font-weight:800 !important;
  text-align:center !important;
  box-shadow:0 8px 22px rgba(8,40,95,.18) !important;
  cursor:pointer !important;
}
.dashboard-booking-button:hover{
  background:var(--tcn-blue-2) !important;
  color:#fff !important;
  transform:translateY(-1px);
}

/* v14.3: Admin-Navigation konsequent links als Button-Leiste */
.admin-layout{
  display:grid !important;
  grid-template-columns:280px minmax(0,1fr) !important;
  gap:24px !important;
  align-items:start !important;
  width:100% !important;
}
.admin-sidebar{
  grid-column:1 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  width:100% !important;
  position:sticky !important;
  top:16px !important;
  background:#fff !important;
  border:1px solid var(--tcn-border) !important;
  border-radius:8px !important;
  padding:12px !important;
  box-shadow:0 8px 22px rgba(8,40,95,.08) !important;
}
.admin-sidebar a{
  display:block !important;
  width:100% !important;
  padding:9px 10px !important;
  border-radius:6px !important;
  background:var(--tcn-blue) !important;
  color:#fff !important;
  border:0 !important;
  text-decoration:none !important;
  font-size:.9rem !important;
  font-weight:700 !important;
  line-height:1.25 !important;
  text-align:left !important;
}
.admin-sidebar a:hover,
.admin-sidebar a.active{
  background:var(--tcn-blue-2) !important;
  color:#fff !important;
}
.admin-content{
  grid-column:2 !important;
  min-width:0 !important;
  width:100% !important;
}
@media(max-width:800px){
  .admin-layout{grid-template-columns:1fr !important;}
  .admin-sidebar{position:static !important;}
}
.table-form{box-shadow:none!important;padding:0!important;margin:0 0 6px 0!important;background:transparent!important;border:0!important}
.action-buttons{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.action-buttons button{width:100%;max-width:260px}.action-buttons button:disabled{opacity:.45;cursor:not-allowed;background:#8a98ad!important;color:#fff!important}


/* v15_3: Benutzeraktionen im Adminbereich */
.action-buttons{display:flex!important;flex-direction:column!important;gap:10px!important;align-items:stretch!important;min-width:230px!important}.action-buttons .table-form{margin:0!important}.action-buttons button{width:100%!important;max-width:none!important;padding:8px 10px!important}.action-buttons button:disabled{opacity:.45!important;cursor:not-allowed!important;background:#8a98ad!important;color:#fff!important}.status-badge{display:inline-block;padding:4px 8px;border-radius:999px;font-weight:700;font-size:.85rem}.status-badge.ok{background:#e6f4ea;color:#137333}.status-badge.warn{background:#fff4ce;color:#7a4d00}


/* v15.4: obere Platzbuchungsleiste */
.booking-toolbar {
  padding: 16px 18px;
}
.booking-toolbar-grid {
  display: grid;
  grid-template-columns: minmax(280px, 430px) minmax(170px, 220px) auto;
  gap: 18px;
  align-items: start;
}
.date-input-line {
  display: grid;
  grid-template-columns: 70px minmax(190px, 260px);
  gap: 10px;
  align-items: center;
}
.date-input-line label {
  margin: 0;
}
.selected-date-line {
  margin-top: 10px;
  color: var(--tcn-blue);
  font-weight: 800;
  font-size: 1.05rem;
}
.date-nav-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.small-nav {
  padding: 8px 11px;
  font-size: .9rem;
  line-height: 1.15;
}
.view-area {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding-top: 2px;
}
.view-title {
  color: var(--tcn-blue);
  font-weight: 800;
  white-space: nowrap;
}
.view-icon-row {
  display: flex;
  gap: 6px;
}
.view-icon-btn {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--tcn-blue);
  color: var(--tcn-blue);
  background: #fff;
  text-decoration: none;
  font-weight: 800;
}
.view-icon-btn.active,
.view-icon-btn:hover {
  background: var(--tcn-blue);
  color: #fff;
}
.toolbar-actions {
  justify-content: flex-end;
  align-items: flex-start;
  padding-top: 0;
}
@media (max-width: 950px) {
  .booking-toolbar-grid {
    grid-template-columns: 1fr;
  }
  .date-input-line {
    grid-template-columns: 1fr;
  }
  .date-nav-row .btn,
  .toolbar-actions .btn {
    flex: 1 1 180px;
    text-align: center;
  }
  .toolbar-actions {
    justify-content: stretch;
  }
}

/* v15.9 Benutzerverwaltung und Profil */
.admin-user-list{display:flex;flex-direction:column;gap:18px}
.admin-user-card{border:1px solid #dbe7ff;border-radius:16px;background:#f8fbff;padding:16px;box-shadow:0 8px 20px rgba(0,59,121,.06)}
.admin-user-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid #e5edf9;padding-bottom:10px;margin-bottom:14px}
.user-statuses{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.status-badge{display:inline-block;border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:700}.status-badge.ok{background:#e6f5e9;color:#136a2f}.status-badge.warn{background:#fff4d7;color:#8a5a00}
.admin-user-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;background:transparent;box-shadow:none;padding:0;margin:0 0 14px}.admin-user-grid label{margin:0}.admin-user-grid .span-2{grid-column:1/-1}.admin-user-grid textarea,.profile-form textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;padding:10px;font:inherit}
.admin-user-subgrid{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:14px;margin-top:12px}.admin-user-subgrid form{background:#fff;box-shadow:none;border:1px solid #e5edf9;border-radius:12px;padding:12px}.user-actions{margin-top:14px;padding-top:12px;border-top:1px solid #e5edf9}.user-actions button{margin:0}.profile-card{max-width:760px}.profile-form{display:grid;grid-template-columns:repeat(2,minmax(200px,1fr));gap:14px}.profile-form label:nth-last-of-type(1){grid-column:1/-1}.profile-form p{grid-column:1/-1}
@media(max-width:800px){.admin-user-head,.admin-user-subgrid{display:block}.admin-user-grid,.profile-form{grid-template-columns:1fr}.user-statuses{justify-content:flex-start;margin-top:10px}}

/* v15.11 Platzbuchung Anpassungen */
.slot-free-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:8px;padding:7px 10px;background:#e8f6ea;color:#12662c;font-weight:800;border:1px solid #b8dfc0;min-width:62px}
.slot-free-link:hover{background:#d9f0de;color:#0c4f21}
.btn.disabled,.btn.disabled:hover,.button.disabled,.button.disabled:hover{background:#e5e7eb!important;color:#6b7280!important;border-color:#d1d5db!important;cursor:not-allowed;box-shadow:none}
.booking-toolbar .toolbar-actions .btn{white-space:nowrap}
.quick-booking-card{max-width:920px;margin-left:auto;margin-right:auto}

/* v15_13 - Meine Daten Reiter und Buchungslisten */
.profile-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:16px 0 22px;
  border-bottom:1px solid #dbe7f7;
  padding-bottom:12px;
}
.profile-tabs .tab{
  display:inline-block;
  text-decoration:none;
  background:#eef5ff;
  color:var(--tcn-blue);
  border:1px solid #cfe0f6;
  border-radius:10px;
  padding:9px 13px;
  font-weight:700;
}
.profile-tabs .tab.active,
.profile-tabs .tab:hover{
  background:var(--tcn-blue);
  color:#fff;
  border-color:var(--tcn-blue);
}
.table-scroll{overflow-x:auto;}
.profile-bookings-table th,
.profile-bookings-table td{vertical-align:top;}
.small-button{padding:7px 10px;font-size:13px;}

/* v15_16 - optimierte Benutzerverwaltung */
#benutzer.card{padding:22px;}
.user-toolbar{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:10px;
  margin:16px 0 20px;
  align-items:stretch;
}
.user-toolbar a{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 12px;
  border-radius:10px;
  background:var(--tcn-blue);
  color:#fff;
  text-decoration:none;
  font-weight:800;
  text-align:center;
  box-shadow:0 6px 14px rgba(0,59,121,.14);
}
.user-toolbar a:hover{filter:brightness(.96);transform:translateY(-1px);}
.admin-action-panel{
  border:1px solid #dbe7f7;
  background:#f8fbff;
  border-radius:16px;
  padding:18px;
  margin:0 0 20px;
  box-shadow:0 8px 20px rgba(0,59,121,.06);
}
.admin-action-panel form{box-shadow:none;background:transparent;padding:0;margin:0;}
.inline-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;}
.inline-form label{margin:0;}
.admin-edit-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(220px,1fr));
  gap:14px;
  box-shadow:none;
  background:transparent;
  padding:0;
  margin:18px 0 0;
}
.admin-edit-grid label{margin:0;}
.admin-edit-grid .span-2{grid-column:1/-1;}
.role-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.role-chip-list label{
  display:inline-flex;
  gap:6px;
  align-items:center;
  padding:7px 10px;
  border:1px solid #d5e5f8;
  background:#fff;
  border-radius:999px;
  font-weight:700;
}
.user-filter-table{min-width:980px;border-collapse:separate;border-spacing:0;}
.user-filter-table th{position:sticky;top:0;background:#eef5ff;z-index:1;vertical-align:bottom;}
.user-filter-table th input,.user-filter-table th select{margin-top:6px;min-width:110px;padding:7px;border-radius:8px;}
.user-filter-table td{vertical-align:middle;}
.user-filter-table tbody tr:nth-child(even){background:#fbfdff;}
.user-filter-table tbody tr:hover{background:#fff8dc;}
.compact-check{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
@media(max-width:800px){.inline-form,.admin-edit-grid{grid-template-columns:1fr}.user-toolbar{grid-template-columns:1fr}}


/* v15_20 - Benutzer-Tabelle breiter und besser lesbar */
.admin-content > #benutzer.card,
#benutzer.card{
  width:100%;
  max-width:none;
  padding:26px;
}
#benutzer .table-wrap{
  width:100%;
  overflow-x:auto;
  border:1px solid #d5e2f3;
  border-radius:14px;
  padding:10px;
  background:#fff;
  box-shadow:0 10px 24px rgba(8,40,95,.08);
}
#adminUsersTable.user-filter-table{
  width:100%;
  min-width:1280px;
  margin:0;
  table-layout:auto;
  box-shadow:none;
}
#adminUsersTable.user-filter-table th,
#adminUsersTable.user-filter-table td{
  padding:12px 14px;
  white-space:nowrap;
}
#adminUsersTable.user-filter-table th:nth-child(8),
#adminUsersTable.user-filter-table td:nth-child(8){
  min-width:220px;
  white-space:normal;
}
#adminUsersTable.user-filter-table th input,
#adminUsersTable.user-filter-table th select{
  width:100%;
  min-width:120px;
}
@media(min-width:1200px){
  main.container:has(#benutzer){max-width:1480px;}
}

.dialog-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem}
.dialog-actions form{margin:0}

.member-search { margin-bottom: 6px; }
#profileSaveButton:disabled { opacity: .55; cursor: not-allowed; }

/* v15_32 - Buchungskonto / Zahlungen optimiert */
.guest-account-card{max-width:100%;overflow:hidden}
.guest-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:16px 0 22px}
.guest-summary-grid>div{border:1px solid #d5e2f3;border-radius:14px;background:#f8fbff;padding:16px;box-shadow:0 6px 16px rgba(8,40,95,.06)}
.guest-summary-grid strong{display:block;font-size:1.35rem;color:var(--tcn-blue);margin-bottom:4px}
.guest-summary-grid span{display:block;font-weight:700}
.guest-summary-grid em{display:block;font-style:normal;color:#52627a;margin-top:4px}
.account-entry-box{border:1px solid #d5e2f3;border-radius:14px;background:#fff;padding:12px 16px;margin:18px 0 24px}
.account-entry-box summary{cursor:pointer;font-weight:800;color:var(--tcn-blue)}
.account-entry-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:14px;box-shadow:none;background:transparent;padding:0}
.account-entry-form p{grid-column:1/-1;margin:0}
.guest-table-wrap{width:100%;max-width:100%;overflow-x:auto;border:1px solid #d5e2f3;border-radius:14px;background:#fff;padding:8px;box-sizing:border-box}
.guest-account-table{width:100%;min-width:1120px;table-layout:auto;border-collapse:collapse;font-size:.92rem}
.guest-account-table th,.guest-account-table td{padding:9px 10px;vertical-align:top;white-space:nowrap}
.guest-account-table th:nth-child(3),.guest-account-table td:nth-child(3){white-space:normal;min-width:180px}
.guest-account-table th{background:#eef5ff}
.guest-account-table tbody tr:nth-child(even){background:#fbfdff}
.guest-actions,.bulk-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}
.profile-account-summary{margin-top:12px}
@media(max-width:900px){.guest-account-table{min-width:980px}.account-entry-form{grid-template-columns:1fr}}


/* v15_33 - Benutzerkonto / Zahlungen Layout */
#gastkonto.guest-account-card{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
#gastkonto .guest-filter-grid,
#gastkonto .guest-summary-grid,
#gastkonto .account-entry-box,
#gastkonto .bulk-toolbar,
#gastkonto .guest-actions,
#gastkonto .guest-table-wrap{
  max-width:100%;
  box-sizing:border-box;
}
#gastkonto .guest-table-wrap{
  overflow-x:hidden;
  padding:0;
  border-radius:12px;
}
#gastkonto .guest-account-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
  font-size:.84rem;
}
#gastkonto .guest-account-table th,
#gastkonto .guest-account-table td{
  padding:7px 6px;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
#gastkonto .guest-account-table th:nth-child(1),
#gastkonto .guest-account-table td:nth-child(1){width:34px;text-align:center;}
#gastkonto .guest-account-table th:nth-child(2),
#gastkonto .guest-account-table td:nth-child(2){width:82px;}
#gastkonto .guest-account-table th:nth-child(4),
#gastkonto .guest-account-table td:nth-child(4){width:54px;text-align:center;}
#gastkonto .guest-account-table th:nth-child(7),
#gastkonto .guest-account-table td:nth-child(7){width:68px;}
#gastkonto .guest-account-table th:nth-child(10),
#gastkonto .guest-account-table td:nth-child(10),
#gastkonto .guest-account-table th:nth-child(11),
#gastkonto .guest-account-table td:nth-child(11){width:52px;text-align:center;}
#gastkonto .guest-account-table th:nth-child(12),
#gastkonto .guest-account-table td:nth-child(12){width:82px;font-weight:800;}
#gastkonto .guest-account-table th:nth-child(13),
#gastkonto .guest-account-table td:nth-child(13){width:86px;}
.profile-account-summary.guest-summary-grid,
#gastkonto .guest-summary-grid{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}
.profile-account-summary.guest-summary-grid>div,
#gastkonto .guest-summary-grid>div{
  background:#eef5ff;
  border:1px solid #d5e2f3;
  border-radius:14px;
  padding:16px;
  box-shadow:0 6px 16px rgba(8,40,95,.06);
}
.profile-account-summary.guest-summary-grid strong,
#gastkonto .guest-summary-grid strong{
  display:block;
  font-size:1.35rem;
  color:var(--tcn-blue);
  margin-bottom:4px;
}
.profile-account-summary.guest-summary-grid span,
#gastkonto .guest-summary-grid span{
  display:block;
  font-weight:800;
}
.profile-account-summary.guest-summary-grid em,
#gastkonto .guest-summary-grid em{
  display:block;
  font-style:normal;
  color:#52627a;
  margin-top:4px;
}
#profile .guest-table-wrap{
  overflow-x:visible;
  padding:0;
  border-radius:12px;
}
#profile .guest-account-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
  font-size:.84rem;
}
#profile .guest-account-table th,
#profile .guest-account-table td{
  padding:7px 6px;
  white-space:normal;
  overflow-wrap:anywhere;
}
#profile .guest-account-table th:nth-child(1),#profile .guest-account-table td:nth-child(1){width:70px;}
#profile .guest-account-table th:nth-child(2),#profile .guest-account-table td:nth-child(2){width:82px;}
#profile .guest-account-table th:nth-child(4),#profile .guest-account-table td:nth-child(4){width:54px;text-align:center;}
#profile .guest-account-table th:nth-child(7),#profile .guest-account-table td:nth-child(7){width:60px;}
#profile .guest-account-table th:nth-child(9),#profile .guest-account-table td:nth-child(9),
#profile .guest-account-table th:nth-child(10),#profile .guest-account-table td:nth-child(10){width:48px;text-align:center;}
#profile .guest-account-table th:nth-child(11),#profile .guest-account-table td:nth-child(11){width:82px;font-weight:800;}
#profile .guest-account-table th:nth-child(12),#profile .guest-account-table td:nth-child(12){width:82px;}
@media(max-width:900px){
  #gastkonto .guest-table-wrap,
  #profile .guest-table-wrap{overflow-x:auto;}
  #gastkonto .guest-account-table,
  #profile .guest-account-table{min-width:900px;}
}

/* v15_34: Mitgliederauswahl als Kombinationsfeld */
.member-combo { position: relative; width: 100%; }
.member-combo-field { display: flex; align-items: stretch; width: 100%; }
.member-combo-input { flex: 1 1 auto; min-width: 0; border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.member-combo-toggle { flex: 0 0 42px; padding: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; display: inline-flex; align-items: center; justify-content: center; }
.member-combo-list { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 1000; max-height: 220px; overflow-y: auto; background: #fff; border: 1px solid #b8c3d6; border-radius: 10px; box-shadow: 0 10px 24px rgba(0,0,0,.16); padding: 6px; }
.member-combo-list.open { display: block; }
.member-combo-list.empty::after { content: 'Keine Treffer'; display: block; padding: 10px; color: #667085; }
.member-combo-option { display: block; width: 100%; text-align: left; background: #fff; color: #13396a; border: 0; border-radius: 8px; padding: 9px 10px; box-shadow: none; }
.member-combo-option:hover, .member-combo-option:focus { background: #eef5ff; color: #0b2f5b; }

/* v15.39 UI-Bereinigung */
.nav-home{font-size:1.35rem;line-height:1;min-width:42px;text-align:center;font-weight:800;padding:10px 14px !important;}
.page-title p{display:none;}
.page-title h1{margin-top:0;}

/* v15_40: mobile Kartenansicht, Konto-Tabellen und kostenpflichtige Buchung */
.cost-hint{margin:1rem 0;padding:1rem;border:2px solid #f0c400;background:#fff8d6;border-radius:10px;color:#08285f}
.guest-account-card{max-width:1400px!important;width:100%!important}
.admin-content .guest-account-card{width:100%!important}
.guest-table-wrap{width:100%;max-width:100%;overflow-x:visible!important}
.compact-account-table{width:100%;table-layout:auto;font-size:.9rem}
.compact-account-table th,.compact-account-table td{padding:.45rem .5rem;white-space:normal;word-break:normal;overflow-wrap:anywhere}
.compact-account-table td:nth-child(3){min-width:170px}.compact-account-table td:nth-child(6){min-width:125px}.compact-account-table td:nth-child(12){white-space:nowrap;font-weight:800}
.status-badge.ok{background:#e1f5e8;color:#0a5b2c;border-radius:999px;padding:.2rem .5rem;font-weight:800}.status-badge.warn{background:#fff2cc;color:#7a5300;border-radius:999px;padding:.2rem .5rem;font-weight:800}
@media(max-width:760px){
  table.responsive-table, table.responsive-table tbody, table.responsive-table tr, table.responsive-table td{display:block;width:100%}
  table.responsive-table th{display:none}
  table.responsive-table tr{background:#fff;border:1px solid #dfe5ee;border-radius:12px;margin:.75rem 0;padding:.65rem;box-shadow:0 5px 16px rgba(8,40,95,.08)}
  table.responsive-table td{border:0!important;padding:.35rem 0;display:flex;gap:.75rem;justify-content:space-between;align-items:flex-start}
  table.responsive-table td:before{content:attr(data-label);font-weight:800;color:#08285f;min-width:105px;text-align:left}
  .slot-table, .booking-table, .guest-account-table, .user-filter-table, .stats-table{font-size:.88rem}
  .guest-table-wrap{overflow-x:auto!important}
  .compact-account-table{min-width:760px}
}


/* v15_42: Adminbereich auf volle Bildschirmbreite und Benutzerkonto/Zahlungen lesbarer */
main.container:has(.admin-layout){
  max-width:none !important;
  width:100% !important;
  padding-left:20px !important;
  padding-right:20px !important;
}
.admin-layout{
  grid-template-columns:260px minmax(0,1fr) !important;
  gap:20px !important;
}
.admin-content{min-width:0 !important;width:100% !important;}
.admin-content .card{width:100% !important;max-width:none !important;}
#gastkonto.guest-account-card{
  width:100% !important;
  max-width:none !important;
  overflow:visible !important;
}
#gastkonto .guest-filter-grid,
#gastkonto .guest-summary-grid,
#gastkonto .account-entry-box,
#gastkonto .bulk-toolbar,
#gastkonto .guest-actions{
  width:100% !important;
  max-width:none !important;
}
#gastkonto .guest-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
  padding:10px !important;
  border-radius:14px !important;
  background:#fff !important;
}
#gastkonto .guest-account-table,
#gastkonto .compact-account-table{
  width:100% !important;
  min-width:1540px !important;
  table-layout:auto !important;
  font-size:.9rem !important;
  box-shadow:none !important;
  margin-bottom:14px !important;
}
#gastkonto .guest-account-table th,
#gastkonto .guest-account-table td,
#gastkonto .compact-account-table th,
#gastkonto .compact-account-table td{
  padding:10px 12px !important;
  white-space:nowrap !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  vertical-align:middle !important;
}
#gastkonto .guest-account-table th:nth-child(3),
#gastkonto .guest-account-table td:nth-child(3),
#gastkonto .compact-account-table th:nth-child(3),
#gastkonto .compact-account-table td:nth-child(3){
  min-width:210px !important;
  white-space:normal !important;
}
#gastkonto .guest-account-table th:nth-child(6),
#gastkonto .guest-account-table td:nth-child(6),
#gastkonto .compact-account-table th:nth-child(6),
#gastkonto .compact-account-table td:nth-child(6){
  min-width:170px !important;
}
#gastkonto .guest-account-table th:nth-child(8),
#gastkonto .guest-account-table td:nth-child(8),
#gastkonto .guest-account-table th:nth-child(9),
#gastkonto .guest-account-table td:nth-child(9),
#gastkonto .compact-account-table th:nth-child(8),
#gastkonto .compact-account-table td:nth-child(8),
#gastkonto .compact-account-table th:nth-child(9),
#gastkonto .compact-account-table td:nth-child(9){
  min-width:120px !important;
}
#gastkonto .guest-account-table th:nth-child(12),
#gastkonto .guest-account-table td:nth-child(12),
#gastkonto .compact-account-table th:nth-child(12),
#gastkonto .compact-account-table td:nth-child(12){
  min-width:95px !important;
  font-weight:800 !important;
}
#gastkonto .guest-account-table th:nth-child(13),
#gastkonto .guest-account-table td:nth-child(13),
#gastkonto .compact-account-table th:nth-child(13),
#gastkonto .compact-account-table td:nth-child(13){
  min-width:110px !important;
}
@media (min-width:1400px){
  main.container:has(.admin-layout){padding-left:28px !important;padding-right:28px !important;}
  .admin-layout{grid-template-columns:280px minmax(0,1fr) !important;}
  #gastkonto .guest-account-table,
  #gastkonto .compact-account-table{min-width:0 !important;}
}
@media (max-width:900px){
  main.container:has(.admin-layout){padding-left:12px !important;padding-right:12px !important;}
  .admin-layout{grid-template-columns:1fr !important;}
  .admin-sidebar{position:static !important;}
  #gastkonto .guest-account-table,
  #gastkonto .compact-account-table{min-width:1180px !important;}
}

/* v15_43: globale Admin-Layoutoptimierung fuer alle Tabs */
main.container:has(.admin-layout){
  max-width:none !important;
  width:100% !important;
  padding-left:clamp(10px,2vw,30px) !important;
  padding-right:clamp(10px,2vw,30px) !important;
}
.admin-layout{
  width:100% !important;
  max-width:none !important;
  display:grid !important;
  grid-template-columns:280px minmax(0,1fr) !important;
  gap:22px !important;
}
.admin-content,
.admin-content section,
.admin-content .card{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
}
.admin-content .card{
  overflow-x:auto !important;
}
.admin-content table{
  width:100% !important;
  table-layout:auto !important;
  font-size:.92rem;
}
.admin-content th,
.admin-content td{
  padding:10px 12px !important;
  vertical-align:middle !important;
}
.admin-content th{
  white-space:nowrap !important;
}
.admin-content td{
  white-space:nowrap;
}
.admin-content td.wrap,
.admin-content .details-cell,
#audit-log td:nth-child(6),
#email-log td:nth-child(5),
#benutzer td:nth-child(8),
#buchungen td:nth-child(4),
#buchungen td:nth-child(5),
#historie td:nth-child(3),
#historie td:nth-child(4){
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}
#benutzer .table-wrap,
#gastkonto .guest-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
}
#benutzer .user-filter-table{min-width:1280px !important;}
#buchungen table{min-width:1050px !important;}
#historie table{min-width:980px !important;}
#email-log table{min-width:980px !important;}
#audit-log table{min-width:1180px !important;}
#auswertung .stats-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr)) !important;}
#auswertung .stats-table{min-width:520px !important;}
#gastkonto .guest-account-table,
#gastkonto .compact-account-table{
  min-width:1500px !important;
  table-layout:auto !important;
}
#gastkonto .guest-account-table th,
#gastkonto .guest-account-table td,
#gastkonto .compact-account-table th,
#gastkonto .compact-account-table td{
  white-space:nowrap !important;
  overflow-wrap:normal !important;
}
#gastkonto .guest-account-table th:nth-child(3),
#gastkonto .guest-account-table td:nth-child(3),
#gastkonto .compact-account-table th:nth-child(3),
#gastkonto .compact-account-table td:nth-child(3){
  min-width:220px !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
}
#gastkonto .guest-filter-grid{
  grid-template-columns:minmax(260px,2fr) repeat(2,minmax(150px,1fr)) auto !important;
}
@media (min-width:1500px){
  .admin-layout{grid-template-columns:300px minmax(0,1fr) !important;}
  #gastkonto .guest-account-table,
  #gastkonto .compact-account-table{min-width:0 !important;}
  #benutzer .user-filter-table{min-width:0 !important;}
  #buchungen table,#historie table,#email-log table,#audit-log table{min-width:0 !important;}
}
@media (max-width:900px){
  main.container:has(.admin-layout){padding-left:10px !important;padding-right:10px !important;}
  .admin-layout{grid-template-columns:1fr !important;gap:12px !important;}
  .admin-sidebar{position:static !important;width:100% !important;}
  .admin-sidebar{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;}
  .admin-sidebar a{text-align:center !important;}
  .admin-content .card{padding:14px !important;}
  #auswertung .stats-grid{grid-template-columns:1fr !important;}
  #gastkonto .guest-filter-grid{grid-template-columns:1fr !important;}
  #gastkonto .guest-account-table,
  #gastkonto .compact-account-table{min-width:1180px !important;}
  #benutzer .user-filter-table{min-width:1080px !important;}
  #buchungen table{min-width:900px !important;}
  #historie table{min-width:850px !important;}
  #email-log table{min-width:850px !important;}
  #audit-log table{min-width:980px !important;}
}
@media (max-width:620px){
  .admin-sidebar{grid-template-columns:1fr !important;}
  .admin-content h2{font-size:1.35rem;}
  .admin-content th,.admin-content td{padding:8px 9px !important;}
}

/* v15_44: globale Breiten- und Mobiloptimierung fuer alle Seiten */
html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
body { -webkit-text-size-adjust: 100%; }
main.container{
  width:100% !important;
  max-width:min(100%, 1480px) !important;
  padding-left:clamp(12px, 2.2vw, 32px) !important;
  padding-right:clamp(12px, 2.2vw, 32px) !important;
}
.card,
form:not(.inline-form){
  max-width:100%;
  overflow-wrap:break-word;
}
.card > *:first-child{margin-top:0;}
.card > *:last-child{margin-bottom:0;}
input, select, textarea, button, .btn, .button { max-width:100%; }
textarea { width:100%; box-sizing:border-box; border:1px solid #c8d1df; border-radius:6px; padding:10px; font:inherit; }
.table-scroll, .table-wrap, .guest-table-wrap{
  max-width:100%;
  -webkit-overflow-scrolling:touch;
}
.actions-row, .button-row, .dialog-actions, p:has(.btn), p:has(button){
  flex-wrap:wrap;
  gap:10px;
}
/* Dashboard */
.tile-grid, .dashboard-tile-grid{
  width:100%;
  justify-items:start;
}
.dashboard-booking-button{
  width:clamp(180px, 34vw, 260px) !important;
  height:clamp(180px, 34vw, 260px) !important;
}
/* Auth-Seiten */
.login-card,
.auth-card,
main.container > form.login-form,
main.container > form.register-form,
main.container > form.forgot-form,
main.container > form.reset-form{
  width:min(100%, 560px) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
/* Profil und Buchungsseiten */
.profile-card{width:100%;max-width:1180px!important;}
.profile-form{width:100%;}
.quick-booking-card,
.quick-booking-form,
.public-form-card{
  width:100%;
  max-width:980px !important;
}
.booking-toolbar,
.date-form{
  width:100%;
}
.slot-table-wrap, .booking-table-wrap{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.slot-table, .booking-table, .profile-bookings-table{
  width:100%;
  table-layout:auto;
}
/* Konto-Tabellen im Profil nicht enger als noetig, aber mobil scrollbar */
#profile .guest-table-wrap{overflow-x:auto !important;}
#profile .guest-account-table{min-width:960px;}
/* Formular-Gitter brechen sauber um */
.quick-grid,
.player-grid,
.profile-form,
.account-entry-form,
.admin-edit-grid{
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}
/* Status-/Hinweisseiten */
.status-page-card,
.verify-card,
.cancel-card{
  width:min(100%, 860px);
  margin-left:auto;
  margin-right:auto;
}
@media (min-width: 1600px){
  main.container:not(:has(.admin-layout)){
    max-width:1560px !important;
  }
}
@media (max-width: 900px){
  main.container{padding-left:10px!important;padding-right:10px!important;padding-top:18px!important;}
  .card, form:not(.inline-form){padding:16px;border-radius:12px;}
  h1{font-size:clamp(26px, 8vw, 36px);}
  h2{font-size:1.35rem;}
  .header-inner{padding-top:14px;padding-bottom:14px;}
  nav a{padding:12px 13px;}
  .profile-tabs{gap:8px;}
  .profile-tabs .tab{flex:1 1 140px;text-align:center;}
  .booking-toolbar-grid, .top-control-row, .date-picker-row{grid-template-columns:1fr!important;}
  .date-nav-row .btn, .toolbar-actions .btn, .booking-action-buttons .btn, .quick-grid button, .quick-grid .btn{width:100%;text-align:center;}
  .dashboard-booking-button{width:min(100%, 230px)!important;height:180px!important;}
  .tile-grid, .dashboard-tile-grid{justify-items:stretch;}
  .login-card, .auth-card{margin-top:8px!important;}
}
@media (max-width: 640px){
  .brand img{width:min(100%, 310px);}
  nav{gap:2px;}
  nav a{font-size:.92rem;padding:10px 9px;}
  .card, form:not(.inline-form){padding:14px;}
  .grid{grid-template-columns:1fr;}
  .quick-booking-card{box-shadow:none;border-radius:10px;}
  .player-box{padding:10px;}
  .member-combo-list{max-height:260px;}
  table:not(.responsive-table){font-size:.88rem;}
  th,td{padding:8px 9px;}
  .btn, .button, button{width:auto;min-height:42px;}
  p .btn, p button{margin-top:6px;}
}

/* Security update v15_45 */
.inline-logout { display:inline; margin:0; padding:0; }
.link-button { background:none; border:0; color:inherit; font:inherit; padding:0; cursor:pointer; text-decoration:underline; }
.nav-wrap .link-button { color:#fff; text-decoration:none; font-weight:700; }
.nav-wrap .inline-logout { display:inline-flex; align-items:center; }


/* v15_46 Navigation fix: Logout as text link, Login always right */
.nav-wrap nav { display:flex; align-items:center; width:100%; }
.nav-wrap .user-info { margin-left:auto; color:#dbe7ff; font-size:14px; padding:0 12px; white-space:nowrap; }
.nav-wrap .nav-login-right { margin-left:auto; }
.nav-wrap .inline-logout { display:flex; align-items:stretch; margin:0; padding:0; background:transparent; border:0; box-shadow:none; }
.nav-wrap .nav-link-btn {
  display:block;
  padding:16px 18px;
  margin:0;
  width:auto;
  min-width:0;
  min-height:0;
  line-height:normal;
  appearance:none;
  -webkit-appearance:none;
  background:transparent !important;
  border:0 !important;
  border-radius:0;
  box-shadow:none !important;
  color:#fff !important;
  font:inherit;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
}
.nav-wrap .nav-link-btn:hover,
.nav-wrap .nav-link-btn:focus { background:var(--tcn-blue-2) !important; outline:none; }
@media (max-width:720px){
  .nav-wrap .user-info{order:20;width:100%;margin-left:0;padding:8px 12px;}
  .nav-wrap .nav-login-right{margin-left:auto;}
  .nav-wrap .nav-link-btn{padding:12px 13px;}
}

.work-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.work-service-card{max-width:980px}.dashboard-booking-button{min-height:120px;display:flex;align-items:center;justify-content:center;text-align:center}@media(max-width:700px){.work-time-fields{grid-template-columns:1fr}}


/* v15_49 Dashboard-Kacheln und Breitenoptimierung */
.dashboard-header-card{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.dashboard-tile-grid{
  width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(220px, 260px)) !important;
  justify-content:start !important;
  justify-items:stretch !important;
  align-items:stretch !important;
  gap:18px !important;
}
.dashboard-tile-grid .dashboard-booking-button{
  width:100% !important;
  height:220px !important;
  min-height:220px !important;
  box-sizing:border-box !important;
}
@media (min-width: 900px){
  main.container:has(.dashboard-tile-grid){
    max-width:min(100%, 1480px) !important;
  }
}
@media (max-width: 620px){
  .dashboard-tile-grid{
    grid-template-columns:1fr !important;
  }
  .dashboard-tile-grid .dashboard-booking-button{
    width:100% !important;
    height:120px !important;
    min-height:120px !important;
  }
}


/* v15_50 Arbeitsdienst/Admin Tabellen */
.admin-full-width { width: 100%; max-width: none; }
.table-fit table { width: 100%; table-layout: auto; }
.compact-table th, .compact-table td { white-space: nowrap; }
.compact-table td:last-child { white-space: normal; min-width: 220px; }
.filter-row { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; margin-bottom: 16px; }
@media (max-width: 760px) {
  .compact-table th, .compact-table td { white-space: normal; }
  .filter-row { display: block; }
  .filter-row label, .filter-row select, .filter-row button { width: 100%; margin-bottom: 10px; }
}

/* v15_50_1 Arbeitsdienst */
.admin-full-width { width: 100%; max-width: none; }
.table-fit table { width: 100%; table-layout: auto; }
.compact-table th, .compact-table td { white-space: nowrap; }
.compact-table td:last-child { white-space: normal; min-width: 220px; }


/* v15_50_3 Arbeitsdienst Tab */
.work-category-form { align-items: end; }
.admin-full-width { width: 100%; max-width: none; }
.table-fit table { width: 100%; table-layout: auto; }
.compact-table th, .compact-table td { white-space: nowrap; }
.compact-table td:last-child { white-space: normal; min-width: 220px; }


/* v15_51 Arbeitsdienst und Sollstunden */
.inline-inputs { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.inline-inputs input { max-width: 110px; }
.work-category-form { align-items: end; }
.admin-full-width { width: 100%; max-width: none; }
.table-fit table { width: 100%; table-layout: auto; }
.compact-table th, .compact-table td { white-space: nowrap; }
.compact-table td:last-child { white-space: normal; min-width: 220px; }
@media (max-width: 760px) {
  .inline-inputs input { max-width: none; width: 100%; }
  .compact-table th, .compact-table td { white-space: normal; }
}

.profile-subtabs{margin-top:12px;margin-bottom:12px;}
.profile-subtabs .tab{font-size:.92rem;}


/* v15_57 Profil- und Einstellungs-Untertabs */
.profile-subtabs,
.settings-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:14px 0 18px;
}
.profile-subtabs .tab,
.settings-tabs .tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 14px;
  border:1px solid #d5dde8;
  border-radius:999px;
  background:#fff;
  color:#1d3557;
  text-decoration:none;
  font-weight:700;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
}
.profile-subtabs .tab.active,
.profile-subtabs .tab:hover,
.settings-tabs .tab.active,
.settings-tabs .tab:hover{
  background:#0055a4;
  color:#fff;
  border-color:#0055a4;
}


/* v15.61 */
.tab-order-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;align-items:end;margin-top:1rem}
.tab-order-grid label{display:flex;flex-direction:column;gap:.25rem}
.selected-chip-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.selected-chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid #cfd8dc;border-radius:999px;padding:.35rem .65rem;background:#f7fafb}
.selected-chip button{border:0;border-radius:999px;padding:.05rem .4rem;line-height:1.2;cursor:pointer}
.delegate-picker .inline-inputs{align-items:end}


/* v15.63: Mobile Optimierung fuer Adminbereiche (Android/iPhone) */
@media (max-width: 900px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  .container { width: 100%; max-width: 100%; padding-left: 12px; padding-right: 12px; }
  main.container { padding-top: 16px; padding-bottom: 28px; }
  .page-title { margin-bottom: 12px; }
  h1 { font-size: 1.7rem; }
  h2 { font-size: 1.35rem; }
  h3 { font-size: 1.12rem; }
  .card, form:not(.inline-form) { padding: 14px; border-radius: 12px; margin-bottom: 14px; }

  /* Hauptnavigation */
  .nav-wrap .container { padding-left: 8px; padding-right: 8px; }
  nav { min-height: 0; overflow-x: auto; flex-wrap: nowrap; gap: 6px; padding: 8px 0; -webkit-overflow-scrolling: touch; }
  nav a, .nav-link-btn { white-space: nowrap; padding: 10px 12px !important; border-radius: 10px; }
  nav span.user-info { display: none; }
  .inline-logout { flex: 0 0 auto; }

  /* Admin-Layout: Sidebar wird oben zur horizontalen Tab-Leiste */
  .admin-layout { display: block !important; }
  .admin-sidebar {
    position: sticky !important;
    top: 0 !important;
    z-index: 20;
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    overflow-x: auto !important;
    padding: 8px !important;
    margin: 0 0 12px 0 !important;
    border-radius: 12px !important;
    -webkit-overflow-scrolling: touch;
  }
  .admin-sidebar a {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content;
    padding: 9px 11px !important;
    font-size: .86rem !important;
    text-align: center !important;
  }
  .admin-content { width: 100% !important; min-width: 0 !important; }
  .admin-content > section { scroll-margin-top: 82px; }

  /* Tabs innerhalb der Adminseiten */
  .tabs, .profile-subtabs, .settings-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 8px !important;
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
  }
  .tabs .tab, .profile-subtabs .tab, .settings-tabs .tab {
    flex: 0 0 auto;
    white-space: nowrap;
    min-height: 42px;
    padding: 10px 13px;
  }

  /* Formulare und Filter */
  .grid, .quick-grid, .booking-toolbar-grid, .top-control-row,
  .account-entry-form, .inline-form, .admin-edit-grid, .profile-form,
  .tab-order-grid, .delegate-picker .inline-inputs {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  input, select, textarea, button, .btn, .button { min-height: 42px; font-size: 16px; }
  textarea { width: 100%; }
  button, .btn, .button { width: 100%; text-align: center; }
  .inline-form button, .table-form button { width: 100% !important; }
  .action-buttons { min-width: 0 !important; width: 100% !important; }
  .action-buttons button, .action-buttons .btn { width: 100% !important; max-width: none !important; }
  .selected-chip-list { gap: 8px; }
  .selected-chip { width: 100%; justify-content: space-between; }

  /* Tabellen in den genannten Adminbereichen: kompakter, horizontal scrollbar */
  .admin-content table,
  #dashboard table,
  #buchungen table,
  #gastkonto table,
  #arbeitsdienst-buchungen table,
  #arbeitsdienst-settings table,
  #blockieren table,
  #benutzer table,
  #rechte-rollen table,
  #rollen table,
  #rechte table,
  #email-log table,
  #audit-log table,
  #einstellungen table,
  #system table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    white-space: nowrap;
    border-radius: 12px;
    font-size: .9rem;
    -webkit-overflow-scrolling: touch;
  }
  .admin-content th,
  .admin-content td { padding: 8px 9px; }
  .admin-content td input,
  .admin-content td select,
  .admin-content td button { min-width: 120px; }
  .admin-content td .inline-form input,
  .admin-content td .inline-form select { min-width: 150px; }

  /* Lange Spezialtabellen */
  .user-filter-table,
  #adminUsersTable.user-filter-table,
  .guest-account-table,
  .compact-account-table {
    min-width: 860px !important;
    table-layout: auto !important;
  }
  #email-log table,
  #audit-log table { min-width: 760px; }
  #rechte-rollen table,
  #rechte table,
  #rollen table { min-width: 720px; }
  #arbeitsdienst-buchungen table { min-width: 820px; }
  #blockieren table, #buchungen table { min-width: 780px; }

  /* Buchungs- und Importbereiche */
  .booking-toolbar, .top-booking-bar { padding: 12px; }
  .date-input-line { grid-template-columns: 1fr !important; gap: 6px; }
  .date-nav-row, .booking-action-buttons { display: grid !important; grid-template-columns: 1fr !important; gap: 8px !important; }

  /* Modal-/Dialoginhalte falls vorhanden */
  .modal, .dialog, .admin-modal { max-width: calc(100vw - 20px) !important; width: calc(100vw - 20px) !important; }
  .modal-content, .dialog-content { max-height: calc(100vh - 30px); overflow: auto; }
}

@media (max-width: 480px) {
  .container { padding-left: 10px; padding-right: 10px; }
  .brand img { width: min(100%, 300px); }
  .claim { font-size: 1.65rem; }
  .admin-sidebar { width: calc(100vw - 20px) !important; max-width: calc(100vw - 20px) !important; }
  .admin-sidebar a { font-size: .82rem !important; padding: 8px 10px !important; }
  .card, form:not(.inline-form) { padding: 12px; }
  .admin-content table { font-size: .84rem; }
  .footer-inner { font-size: .78rem; line-height: 1.4; }
}


/* v15.64: Bugfix mobile Admin-Navigation
   Die Admin-Navigationsbuttons bleiben links sichtbar. Die Tabs innerhalb
   der Inhaltsbereiche bleiben mobil scrollbar/bedienbar. */
@media (max-width: 900px) {
  main.container:has(.admin-layout) {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .admin-layout {
    display: grid !important;
    grid-template-columns: 170px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
    min-width: 0 !important;
  }
  .admin-sidebar {
    grid-column: 1 !important;
    position: sticky !important;
    top: 8px !important;
    z-index: 20 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    width: 170px !important;
    max-width: 170px !important;
    max-height: calc(100vh - 18px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 8px !important;
    margin: 0 !important;
    border-radius: 12px !important;
    -webkit-overflow-scrolling: touch;
  }
  .admin-sidebar a {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 8px 9px !important;
    font-size: .8rem !important;
    line-height: 1.18 !important;
    text-align: left !important;
    white-space: normal !important;
  }
  .admin-content {
    grid-column: 2 !important;
    min-width: 0 !important;
    width: 100% !important;
  }
  .admin-content > section { scroll-margin-top: 16px !important; }
}

@media (max-width: 520px) {
  .admin-layout {
    grid-template-columns: 132px minmax(0, 1fr) !important;
    gap: 8px !important;
  }
  .admin-sidebar {
    width: 132px !important;
    max-width: 132px !important;
    padding: 6px !important;
  }
  .admin-sidebar a {
    font-size: .74rem !important;
    padding: 7px 7px !important;
  }
}


/* v15.65: Mobile Admin-Drawer
   Desktop: Sidebar links. Mobil: Button oben, Navigation als Overlay/Drawer. */
.admin-menu-toggle,
.admin-mobile-bar,
.admin-menu-backdrop,
.admin-sidebar-head { display: none !important; }

@media (max-width: 900px) {
  main.container:has(.admin-layout) {
    overflow-x: visible !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  .admin-layout {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .admin-mobile-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1200 !important;
    margin: 0 0 12px 0 !important;
    padding: 10px !important;
    background: #ffffff !important;
    border: 1px solid #dfe5ee !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(8,40,95,.12) !important;
  }
  .admin-menu-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
    padding: 10px 14px !important;
    border-radius: 10px !important;
    background: #08285f !important;
    color: #fff !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
  }
  .admin-mobile-current {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    color: #08285f !important;
    font-weight: 800 !important;
    font-size: .92rem !important;
  }
  .admin-sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    z-index: 3000 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: min(86vw, 330px) !important;
    max-width: min(86vw, 330px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    padding: 14px !important;
    margin: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    background: #ffffff !important;
    border: 0 !important;
    border-right: 1px solid #dfe5ee !important;
    border-radius: 0 16px 16px 0 !important;
    box-shadow: 20px 0 50px rgba(8,40,95,.25) !important;
    transform: translateX(-110%) !important;
    transition: transform .22s ease !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .admin-menu-toggle:checked ~ .admin-sidebar {
    transform: translateX(0) !important;
  }
  .admin-menu-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2990 !important;
    background: rgba(8,40,95,.42) !important;
    cursor: pointer !important;
  }
  .admin-menu-toggle:checked ~ .admin-menu-backdrop {
    display: block !important;
  }
  .admin-sidebar-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    color: #08285f !important;
    border-bottom: 1px solid #dfe5ee !important;
    padding-bottom: 10px !important;
    margin-bottom: 4px !important;
  }
  .admin-menu-close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 999px !important;
    background: #eef3fb !important;
    color: #08285f !important;
    font-size: 1.5rem !important;
    font-weight: 900 !important;
    cursor: pointer !important;
  }
  .admin-sidebar a {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 11px 12px !important;
    font-size: .92rem !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: normal !important;
    border-radius: 10px !important;
  }
  .admin-content {
    width: 100% !important;
    min-width: 0 !important;
  }
  .admin-content > section { scroll-margin-top: 74px !important; }
}

@media (max-width: 420px) {
  .admin-mobile-bar { padding: 8px !important; }
  .admin-menu-button { padding: 9px 11px !important; font-size: .9rem !important; }
  .admin-mobile-current { font-size: .84rem !important; }
}


/* v15.66: Mobile Admin-Drawer Content-Fix
   Auf Smartphones darf die Desktop-Sidebar keinen Platz im Layout reservieren.
   Der Inhalt steht unter der mobilen Admin-Leiste wieder auf voller Breite. */
@media (max-width: 900px) {
  html, body {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  main.container:has(.admin-layout) {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }
  .admin-layout {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 12px !important;
    grid-template-columns: none !important;
    grid-template-areas: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
  .admin-mobile-bar {
    order: 1 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .admin-content {
    order: 2 !important;
    grid-column: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }
  .admin-content > section,
  .admin-content > .card,
  .admin-content section.card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }
  .admin-sidebar {
    order: 0 !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    right: auto !important;
    grid-column: auto !important;
    width: min(86vw, 330px) !important;
    max-width: min(86vw, 330px) !important;
    min-width: 0 !important;
    height: 100dvh !important;
    transform: translateX(-110%) !important;
    margin: 0 !important;
    z-index: 3000 !important;
  }
  .admin-menu-toggle:checked ~ .admin-sidebar {
    transform: translateX(0) !important;
  }
  .admin-menu-backdrop {
    order: 0 !important;
  }
}

/* v15.67: Shop / Warenkorb */
.shop-header{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}.shop-breadcrumb{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.shop-breadcrumb a{text-decoration:none}.shop-group-grid,.shop-article-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1rem}.shop-group-card,.shop-article-card{border:1px solid #d8e0ea;border-radius:14px;padding:1rem;background:#fff;text-decoration:none;color:inherit;box-shadow:0 2px 8px rgba(15,23,42,.06)}.shop-group-card{display:flex;flex-direction:column;gap:.35rem}.shop-group-card img,.shop-article-image img{max-width:100%;height:110px;object-fit:cover;border-radius:10px}.shop-group-card span{font-size:.85rem;color:#64748b;text-transform:uppercase}.shop-group-card small{color:#64748b}.shop-article-card h4{margin:.5rem 0 .25rem}.shop-article-image{height:120px;border-radius:10px;background:#f1f5f9;display:flex;align-items:center;justify-content:center;color:#64748b;overflow:hidden}.shop-add-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.qty-input{max-width:80px}.shop-cart-table .qty-input{width:70px}@media(max-width:700px){.shop-header{align-items:stretch}.shop-header .button{width:100%;text-align:center}.shop-group-grid,.shop-article-grid{grid-template-columns:1fr}.shop-add-form button{flex:1}.qty-input{max-width:90px}}

/* v15.68: Shop Bestellung / Bestellhistorie */
.shop-header-actions { display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; justify-content:flex-end; }
.shop-checkout-form { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; }
.shop-order-list { display:grid; gap: .75rem; }
.shop-order-card { border:1px solid #e5e7eb; border-radius:12px; padding:.75rem; background:#fff; }
.shop-order-card summary { cursor:pointer; display:grid; grid-template-columns: 1fr auto auto auto; gap:.75rem; align-items:center; }
@media (max-width: 700px) {
  .shop-order-card summary { grid-template-columns:1fr; gap:.25rem; }
  .shop-header-actions { justify-content:flex-start; }
}

/* Version 15.71: Shop-Preisliste */
.shop-price-list{display:grid;gap:1rem;margin-top:1rem}
.shop-price-group{border:1px solid #e5e7eb;border-radius:14px;background:#fff;padding:1rem}
.shop-price-group h4{margin:.1rem 0 .35rem}
.shop-price-table th,.shop-price-table td{vertical-align:middle}
.shop-price-add-form{display:flex;gap:.5rem;align-items:center;justify-content:flex-start}
.shop-price-add-form button{min-width:44px;padding:.45rem .7rem;font-size:1.05rem;line-height:1}
@media(max-width:700px){
  .shop-price-table th,.shop-price-table td{white-space:nowrap}
  .shop-price-add-form{justify-content:flex-end}
}

/* Version 15.72: Shop Artikelimport Fehleranzeige */
.import-error-box{margin-top:1rem;padding:1rem;border:1px solid #f1b0b7;background:#fff5f5;border-radius:12px;}
.import-error-box h4{margin-top:0;color:#842029;}
.import-error-table th,.import-error-table td{vertical-align:top;}
.import-error-table th:nth-child(1),.import-error-table td:nth-child(1){width:90px;}
.import-error-table th:nth-child(2),.import-error-table td:nth-child(2){width:220px;}


/* Version 15.74: Shop Preis-/Artikeltabellen */
.bulk-table-form{box-shadow:none;background:transparent;padding:0;margin:0;}
.bulk-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin:.75rem 0;}
.price-inline-input{max-width:110px;min-width:90px;}
.currency-inline-input{max-width:70px;min-width:60px;text-transform:uppercase;}
@media(max-width:700px){.bulk-actions button{flex:1 1 auto}.price-inline-input{max-width:120px}.currency-inline-input{max-width:80px}}


/* Version 15.80: Shop UX Optimierung */
.shop-header{background:linear-gradient(135deg,#ffffff,#f8fafc);border:1px solid #e2e8f0}.shop-header h2{margin-bottom:.25rem}.shop-header-actions .button{border-radius:999px}.shop-breadcrumb{padding:.75rem 1rem;font-size:.95rem;background:#f8fafc;border:1px solid #e2e8f0}.shop-breadcrumb a{font-weight:600;color:#0f766e}.shop-breadcrumb span{color:#94a3b8}.shop-content-card h3{margin-top:.1rem}.shop-group-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.shop-group-card{min-height:155px;justify-content:flex-start;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.shop-group-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.10);border-color:#94a3b8}.shop-group-card strong{font-size:1.08rem}.shop-group-card img{width:100%;height:140px;background:#f1f5f9}.shop-article-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.shop-article-card{display:flex;flex-direction:column;gap:.35rem}.shop-article-card h4{line-height:1.25}.shop-article-image{height:155px;background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.shop-article-image img{width:100%;height:100%;object-fit:contain;background:#fff}.shop-add-form{margin-top:auto}.shop-add-form button{border-radius:999px}.shop-price-group{box-shadow:0 2px 10px rgba(15,23,42,.05)}@media(max-width:700px){.shop-header{padding:1rem}.shop-header-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.shop-header-actions .button{width:auto}.shop-breadcrumb{overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.shop-group-grid,.shop-article-grid{grid-template-columns:1fr;gap:.75rem}.shop-group-card{min-height:auto}.shop-group-card img{height:120px}.shop-article-card{padding:.85rem}.shop-article-image{height:145px}.shop-add-form{display:grid;grid-template-columns:88px 1fr;width:100%}.shop-add-form .qty-input{width:100%;max-width:none}.shop-add-form button{width:100%}}

/* Version 15.81: Shop Produktkarten, Breadcrumb und mobile UX */
.shop-header{align-items:flex-start;gap:1rem}.shop-cart-badge{display:inline-flex;align-items:center;gap:.35rem}.shop-cart-badge strong{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;border-radius:999px;background:rgba(255,255,255,.24);font-size:.9rem}.shop-breadcrumb{display:flex;align-items:center;gap:.45rem;padding:0;margin:0 0 .75rem 0;background:transparent;border:0;box-shadow:none;text-align:left;justify-content:flex-start;font-size:.95rem;line-height:1.35}.shop-breadcrumb a{font-weight:700;color:#0f766e;text-decoration:none}.shop-breadcrumb a:hover{text-decoration:underline}.shop-breadcrumb span{color:#64748b}.shop-group-grid,.shop-article-grid{display:grid;gap:1rem}.shop-group-card{border-radius:18px;background:#fff;border:1px solid #e2e8f0;padding:.8rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.55rem;box-shadow:0 2px 12px rgba(15,23,42,.06)}.shop-group-card img{border-radius:14px;object-fit:cover}.shop-article-card{border:1px solid #e2e8f0;border-radius:18px;background:#fff;padding:1rem;box-shadow:0 2px 12px rgba(15,23,42,.06);overflow:hidden}.shop-article-card h4{margin:.2rem 0 .25rem}.shop-article-meta{display:flex;flex-direction:column;gap:.1rem}.shop-price{margin:.3rem 0 .6rem;font-size:1.05rem}.shop-card-add-form{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:center;margin-top:auto}.shop-qty-stepper{display:inline-grid;grid-template-columns:38px 58px 38px;align-items:center;border:1px solid #cbd5e1;border-radius:999px;overflow:hidden;background:#fff;height:42px}.shop-qty-stepper button{height:42px;border:0;border-radius:0;background:#f8fafc;color:#0f172a;padding:0;min-width:38px;font-weight:800}.shop-qty-stepper button:hover{background:#e2e8f0}.shop-qty-stepper input{border:0;text-align:center;min-width:0;width:58px;height:42px;padding:0;background:#fff}.shop-qty-stepper input::-webkit-outer-spin-button,.shop-qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.shop-cart-button{height:42px;border-radius:999px;white-space:nowrap}.shop-price-list{gap:1.25rem}.shop-price-group{border:0;background:transparent;padding:0;box-shadow:none}.shop-price-group-head{margin-bottom:.65rem}.shop-price-group h4{font-size:1.15rem;margin:.1rem 0 .2rem}.shop-price-card-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.shop-price-card .shop-article-image{height:135px}.shop-content-card{margin-top:0}.shop-order-card summary{cursor:pointer}.shop-cart-table .qty-input{max-width:90px}@media(min-width:1000px){.shop-article-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.shop-price-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1300px){.shop-article-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.shop-price-card-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:700px){.shop-header{padding:1rem}.shop-header-actions{grid-template-columns:1fr 1fr}.shop-cart-badge{justify-content:center}.shop-breadcrumb{overflow-x:auto;white-space:nowrap;padding:.15rem 0 .25rem;margin-left:0}.shop-content-card{padding:.9rem}.shop-group-grid{grid-template-columns:1fr 1fr;gap:.75rem}.shop-group-card{padding:.6rem;border-radius:15px}.shop-group-card img{height:92px}.shop-group-card strong{font-size:.98rem}.shop-group-card small{display:none}.shop-article-grid,.shop-price-card-grid{grid-template-columns:1fr 1fr;gap:.75rem}.shop-article-card{padding:.65rem;border-radius:15px}.shop-article-card h4{font-size:.95rem}.shop-article-image{height:110px}.shop-price-card .shop-article-image{height:110px}.shop-card-add-form{grid-template-columns:1fr;gap:.5rem}.shop-qty-stepper{width:100%;grid-template-columns:42px 1fr 42px}.shop-qty-stepper input{width:100%}.shop-cart-button{width:100%;font-size:.9rem;padding:.55rem .4rem}.shop-price{font-size:1rem}.shop-article-meta .small{font-size:.78rem}}@media(max-width:390px){.shop-group-grid,.shop-article-grid,.shop-price-card-grid{grid-template-columns:1fr}.shop-article-image,.shop-price-card .shop-article-image{height:145px}}

/* Version 15.82: Shop Produktkacheln im modernen Supermarkt-Stil */
.shop-header{
    border:1px solid #dbe7d2;
    background:linear-gradient(135deg,#fffef5,#f5fbef);
    box-shadow:0 6px 20px rgba(15,23,42,.06);
}
.shop-header h2{color:#166534;}
.shop-header-actions .button{min-height:42px;}
.shop-cart-badge{
    background:#166534;
    border-color:#166534;
    color:#fff;
}
.shop-cart-badge:hover{background:#14532d;}
.shop-content-card,
.shop-price-list .shop-price-group{background:transparent;}
.shop-group-grid{gap:1rem;}
.shop-group-card{
    border:1px solid #e2e8d7;
    background:#fff;
    box-shadow:0 3px 12px rgba(15,23,42,.07);
    transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.shop-group-card:hover{
    transform:translateY(-2px);
    border-color:#b7d79d;
    box-shadow:0 10px 26px rgba(22,101,52,.13);
}
.shop-group-card strong{color:#173b21;}
.shop-group-card small{color:#64748b;}
.shop-article-grid,
.shop-price-card-grid{align-items:stretch;}
.shop-article-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:100%;
    padding:.8rem;
    border:1px solid #e5e7eb;
    border-radius:12px;
    background:#fff;
    box-shadow:0 2px 8px rgba(15,23,42,.06);
    transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.shop-article-card:hover{
    transform:translateY(-2px);
    border-color:#b8d99f;
    box-shadow:0 12px 28px rgba(15,23,42,.12);
}
.shop-article-image{
    height:178px;
    margin:-.15rem -.15rem .65rem;
    background:#fff;
    border:0;
    border-radius:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.shop-article-image img{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:.35rem;
    background:#fff;
}
.shop-article-card h4{
    min-height:2.65em;
    margin:.1rem 0 .25rem;
    font-size:1rem;
    line-height:1.28;
    color:#111827;
    font-weight:700;
}
.shop-article-meta{min-height:4.75rem;}
.shop-article-card .small{color:#64748b;}
.shop-price,
.shop-article-card > p:has(strong){
    margin:.35rem 0 .65rem;
    color:#b91c1c;
    font-size:1.25rem;
    line-height:1.15;
    font-weight:800;
}
.shop-price strong,
.shop-article-card > p strong{font-weight:900;}
.shop-card-add-form{
    margin-top:auto;
    padding-top:.55rem;
    border-top:1px solid #f1f5f9;
    grid-template-columns:110px 1fr;
    gap:.55rem;
}
.shop-qty-stepper{
    height:40px;
    grid-template-columns:34px 42px 34px;
    border-color:#cbd5e1;
    border-radius:6px;
}
.shop-qty-stepper button{
    height:40px;
    min-width:34px;
    background:#f8fafc;
    color:#1f2937;
    font-size:1.05rem;
}
.shop-qty-stepper input{
    width:42px;
    height:40px;
    font-weight:700;
}
.shop-cart-button{
    height:40px;
    border-radius:6px;
    background:#facc15;
    border-color:#eab308;
    color:#1f2937;
    font-weight:800;
    box-shadow:inset 0 -1px 0 rgba(0,0,0,.08);
}
.shop-cart-button:hover{
    background:#fbbf24;
    border-color:#d97706;
    color:#111827;
}
.shop-price-group-head{
    padding:.25rem 0 .15rem;
    border-bottom:2px solid #e5efd9;
}
.shop-price-group h4{
    color:#166534;
    font-weight:800;
}
.shop-breadcrumb{
    color:#475569;
    font-size:.92rem;
}
.shop-breadcrumb a{color:#166534;}
@media(min-width:1000px){
    .shop-article-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
    .shop-price-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(min-width:1280px){
    .shop-article-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
    .shop-price-card-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
}
@media(max-width:700px){
    .shop-header{border-radius:14px;}
    .shop-header-actions{gap:.45rem;}
    .shop-article-grid,.shop-price-card-grid{grid-template-columns:1fr 1fr;gap:.65rem;}
    .shop-article-card{padding:.55rem;border-radius:10px;}
    .shop-article-image{height:128px;margin:0 0 .45rem;}
    .shop-article-image img{padding:.2rem;}
    .shop-article-card h4{font-size:.9rem;min-height:2.45em;}
    .shop-article-meta{min-height:4.3rem;}
    .shop-price,.shop-article-card > p:has(strong){font-size:1.08rem;margin:.25rem 0 .45rem;}
    .shop-card-add-form{grid-template-columns:1fr;gap:.4rem;padding-top:.45rem;}
    .shop-qty-stepper{width:100%;grid-template-columns:38px 1fr 38px;height:38px;}
    .shop-qty-stepper button,.shop-qty-stepper input{height:38px;}
    .shop-cart-button{height:40px;width:100%;font-size:.88rem;}
}
@media(max-width:390px){
    .shop-article-grid,.shop-price-card-grid{grid-template-columns:1fr 1fr;}
    .shop-article-image{height:112px;}
    .shop-cart-button{font-size:.82rem;}
}

/* v15.83 Shop layout/rabatt: an Work-Service angeglichene Bedienung */
.shop-header-actions.shop-main-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
    align-items:center;
    justify-content:flex-start;
}
.shop-header-actions.shop-main-actions .shop-nav-button,
.shop-header-actions.shop-main-actions .button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    border-radius:8px;
    padding:.65rem .9rem;
    font-weight:700;
    line-height:1.15;
    min-width:132px;
    text-align:center;
    white-space:nowrap;
}
.shop-breadcrumb{
    width:100%!important;
    max-width:100%!important;
    margin:0 0 .85rem 0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    text-align:left!important;
    justify-content:flex-start!important;
    align-items:center!important;
}
.shop-breadcrumb a,.shop-breadcrumb span{display:inline-flex;align-items:center;}
.shop-content-card{text-align:left;}
.shop-article-card.shop-price-card,
.shop-article-card{
    display:flex;
    flex-direction:column;
    min-height:100%;
}
.shop-article-meta{flex:1 1 auto;}
.shop-card-add-form{
    margin-top:auto!important;
    display:grid!important;
    grid-template-columns:minmax(108px,auto) minmax(54px,1fr)!important;
    align-items:center!important;
    gap:.55rem!important;
    width:100%!important;
}
.shop-cart-button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    min-width:54px!important;
    padding:.55rem .75rem!important;
}
.shop-qty-stepper{min-width:112px!important;}
.shop-discount-note{margin:.1rem 0 .45rem;color:#166534;font-weight:700;}
.shop-cart-table th,.shop-cart-table td{text-align:left;vertical-align:middle;}
@media(max-width:700px){
    .shop-header-actions.shop-main-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:.5rem;}
    .shop-header-actions.shop-main-actions .shop-nav-button,
    .shop-header-actions.shop-main-actions .button{width:100%;min-width:0;min-height:44px;padding:.65rem .45rem;font-size:.92rem;}
    .shop-breadcrumb{overflow-x:auto;white-space:nowrap;margin-left:0!important;padding-left:0!important;}
    .shop-card-add-form{grid-template-columns:1fr!important;}
    .shop-cart-button{width:100%!important;min-height:40px!important;}
    .shop-qty-stepper{width:100%!important;}
}

/* v15.89 Shop cart layout */
.shop-cart-table tr.shop-cart-row td {
    border-bottom: 1px solid #d9e2ec;
}
.shop-cart-table tr.shop-cart-summary-row th,
.shop-cart-table tr.shop-cart-summary-row td {
    background: transparent;
    font-weight: 500;
    border-top: 0;
}
.shop-cart-table tr.shop-cart-subtotal-row th,
.shop-cart-table tr.shop-cart-subtotal-row td,
.shop-cart-table tr.shop-cart-discount-row th,
.shop-cart-table tr.shop-cart-discount-row td {
    color: #5f6b7a;
    font-size: 0.95rem;
}
.shop-cart-table tr.shop-cart-final-row th,
.shop-cart-table tr.shop-cart-final-row td {
    border-top: 2px solid #1d4ed8;
    border-bottom: 2px solid #1d4ed8;
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 700;
}
.shop-cart-table tr.shop-cart-final-row th:first-child,
.shop-cart-table tr.shop-cart-final-row td:first-child {
    border-left: 2px solid #1d4ed8;
    border-radius: 10px 0 0 10px;
}
.shop-cart-table tr.shop-cart-final-row th:last-child,
.shop-cart-table tr.shop-cart-final-row th:nth-last-child(2),
.shop-cart-table tr.shop-cart-final-row td:last-child,
.shop-cart-table tr.shop-cart-final-row td:nth-last-child(2) {
    border-right: 2px solid #1d4ed8;
}



/* v16.09: Warenkorb-Summen auf Mobilgeraeten sichtbar halten */
@media(max-width:760px){
    .shop-cart-table tr.shop-cart-summary-row{
        padding:.75rem .85rem;
        background:#f8fafc;
    }
    .shop-cart-table tr.shop-cart-summary-row th{
        display:none!important;
        box-sizing:border-box;
        width:100%;
    }
    .shop-cart-table tr.shop-cart-summary-row th:nth-last-child(2){
        display:flex!important;
        justify-content:space-between;
        align-items:center;
        gap:1rem;
        padding:.25rem 0!important;
        border:0;
        text-align:right;
    }
    .shop-cart-table tr.shop-cart-subtotal-row th:nth-last-child(2)::before{content:"Zwischensumme";}
    .shop-cart-table tr.shop-cart-discount-row th:nth-last-child(2)::before{content:"Rabatt";}
    .shop-cart-table tr.shop-cart-final-row th:nth-last-child(2)::before{content:"Gesamt";}
    .shop-cart-table tr.shop-cart-summary-row th:nth-last-child(2)::before{
        font-weight:800;
        color:#08285f;
        text-align:left;
    }
    .shop-cart-table tr.shop-cart-final-row{
        border:2px solid #1d4ed8;
    }
    .shop-cart-table tr.shop-cart-final-row th:nth-last-child(2){
        font-size:1.15rem;
        font-weight:800;
    }
}

/* v15.94 Shop-Favoriten */
.shop-fav-form {
    margin: .35rem 0 .5rem 0;
}
.shop-fav-button {
    width: 100%;
    border: 1px solid #d6dde8;
    background: #f8fafc;
    color: #1f2937;
    border-radius: 10px;
    padding: .45rem .65rem;
    font-weight: 700;
    cursor: pointer;
}
.shop-fav-button.active {
    background: #fff7d6;
    border-color: #f4c542;
    color: #704c00;
}
.shop-fav-button:hover,
.shop-fav-button:focus {
    filter: brightness(.98);
}

/* v15.95 Shop UX Optimierung */
.shop-header-actions.shop-main-actions{position:sticky;top:.5rem;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(8px);padding:.35rem;border-radius:14px;box-shadow:0 6px 20px rgba(15,23,42,.08)}
.shop-header-actions .shop-nav-button.active{background:#0f766e;color:#fff;border-color:#0f766e}
.shop-article-grid,.shop-price-card-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:1rem;align-items:stretch}
.shop-article-card{position:relative;border:1px solid #dbe3ee;border-radius:16px;padding:.85rem;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.06);gap:.55rem;overflow:visible!important}
.shop-article-image{height:132px;border-radius:14px;background:#f3f6fa;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:.25rem}
.shop-article-image img{width:100%;height:100%;object-fit:contain;display:block}
.shop-article-meta h4{font-size:1rem;line-height:1.25;margin:.15rem 0 .25rem;min-height:2.5em}
.shop-card-category{margin:0 0 .2rem;color:#64748b}.shop-price strong{font-size:1.25rem;color:#0f172a}.shop-pay-price{margin:.1rem 0 .35rem;color:#0f766e}.shop-qty-label{font-size:.82rem;font-weight:700;color:#475569;grid-column:1/-1;margin:0}
.shop-card-add-form{grid-template-columns:1fr!important}.shop-card-add-form .shop-cart-button{width:100%;min-height:42px}.shop-qty-stepper{display:grid;grid-template-columns:38px 1fr 38px;gap:.25rem;width:100%}.shop-qty-stepper button{padding:.35rem .45rem}.shop-qty-stepper input{text-align:center;min-width:0}
.shop-fav-form{margin:0}.shop-fav-button{min-width:0;border-radius:999px;padding:.38rem .65rem;font-size:.82rem;font-weight:800;box-shadow:0 5px 14px rgba(15,23,42,.12);background:#fff}
.shop-filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.75rem;align-items:end;margin:1rem 0 1.2rem;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px}.shop-filter-bar label{display:flex;flex-direction:column;font-weight:700;gap:.25rem}.shop-filter-bar input,.shop-filter-bar select{width:100%}
.shop-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1rem}.shop-group-card{display:flex;flex-direction:column;gap:.45rem;border:1px solid #dbe3ee;border-radius:16px;padding:.8rem;text-decoration:none;color:inherit;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}.shop-group-image{height:112px;border-radius:12px;background:#f3f6fa;display:flex;align-items:center;justify-content:center;overflow:hidden}.shop-group-image img{width:100%;height:100%;object-fit:cover}.shop-group-card strong{font-size:1.05rem}.shop-group-card small{color:#64748b}.shop-mobile-back{display:none;margin-bottom:.6rem}.shop-breadcrumb{font-size:.95rem}.shop-order-summary{display:grid;grid-template-columns:1.5fr .9fr .8fr .8fr auto;gap:.75rem;align-items:center}.shop-checkout-form{margin-top:1rem;padding:1rem;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}.shop-checkout-form button[name="action"][value="checkout"]{font-size:1.05rem;font-weight:800;min-height:46px;width:100%;margin-top:.5rem}
@media(min-width:1150px){.shop-article-grid,.shop-price-card-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:820px) and (max-width:1149px){.shop-article-grid,.shop-price-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.shop-article-grid,.shop-price-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.65rem}.shop-article-card{padding:.65rem;border-radius:14px}.shop-article-image{height:105px}.shop-article-meta h4{font-size:.92rem}.shop-price strong{font-size:1.08rem}.shop-filter-bar{grid-template-columns:1fr;gap:.6rem}.shop-mobile-back{display:block}.shop-order-summary{grid-template-columns:1fr;gap:.25rem}.shop-fav-button{width:36px;height:36px;min-width:36px}.shop-fav-button:before{font-size:1.25rem}}

/* v15.96 Shop Suche/Sortierung */
.shop-auto-filter noscript button{margin-top:.25rem}.shop-category-sections{display:grid;gap:1.25rem}.shop-category-section{border-top:1px solid #e2e8f0;padding-top:.85rem}.shop-category-section>h4{margin:.1rem 0 .75rem;font-size:1.15rem;color:#0f172a}
@media(max-width:700px){.shop-fav-button{font-size:.74rem;padding:.32rem .52rem}.shop-fav-button:before{font-size:.9rem}}


/* v15.97 Favorit ohne Overlay */
.shop-card-title-row{display:grid;grid-template-columns:1fr auto;gap:.45rem;align-items:start;margin:.15rem 0 .25rem}
.shop-card-title-row h4{margin:0!important;min-height:0!important;overflow-wrap:anywhere}
.shop-card-title-row .shop-fav-form{position:static!important;top:auto!important;right:auto!important;z-index:auto!important;align-self:start}
.shop-card-title-row .shop-fav-button{width:34px;height:34px;min-width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;line-height:1;border-radius:999px;box-shadow:none;background:#f8fafc;border:1px solid #d6dde8;color:#64748b}
.shop-card-title-row .shop-fav-button.active{background:#fff7d6;border-color:#f4c542;color:#704c00}
.shop-card-title-row .shop-fav-button:before{content:''!important}
@media(max-width:700px){.shop-card-title-row{gap:.3rem}.shop-card-title-row .shop-fav-button{width:30px;height:30px;min-width:30px;font-size:1.2rem;padding:0}}

/* v15.99: Artikelsuche mit eigenem Suchen-Button und Favorit ohne Bildueberlagerung */
.shop-card-action-row{display:flex;justify-content:flex-end;align-items:center;min-height:34px;margin:0 0 .35rem 0;position:static!important;z-index:auto!important}
.shop-card-action-row .shop-fav-form{margin:0;position:static!important;top:auto!important;right:auto!important;z-index:auto!important}
.shop-card-action-row .shop-fav-button{width:34px;height:34px;min-width:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;line-height:1;border-radius:999px;box-shadow:none;background:#f8fafc;border:1px solid #d6dde8;color:#64748b}
.shop-card-action-row .shop-fav-button.active{background:#fff7d6;border-color:#f4c542;color:#704c00}
.shop-card-action-row .shop-fav-button:before{content:''!important}
.shop-card-title-row{display:block;margin:.2rem 0 .25rem}
.shop-card-title-row h4{margin:0!important;min-height:0!important;overflow-wrap:anywhere}
.shop-search-row{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center}
.shop-search-button{white-space:nowrap;height:100%}
@media(max-width:700px){.shop-card-action-row{min-height:30px;margin-bottom:.3rem}.shop-card-action-row .shop-fav-button{width:30px;height:30px;min-width:30px;font-size:1.2rem}.shop-search-row{grid-template-columns:1fr}.shop-search-button{width:100%}}


/* v16.00: Favorit rechts neben dem Artikelnamen, ohne Rahmen und ohne Bildueberlagerung */
.shop-card-action-row{display:none!important}
.shop-card-title-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:start;margin:.2rem 0 .25rem}
.shop-card-title-row h4{margin:0!important;min-height:0!important;overflow-wrap:anywhere;padding-right:.15rem}
.shop-card-title-row .shop-fav-form{margin:0;position:static!important;top:auto!important;right:auto!important;z-index:auto!important;line-height:1}
.shop-card-title-row .shop-fav-button{appearance:none;-webkit-appearance:none;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;width:auto;height:auto;min-width:0;padding:.05rem .05rem .05rem .35rem;display:inline-flex;align-items:center;justify-content:center;font-size:1.55rem;line-height:1;color:#94a3b8;cursor:pointer}
.shop-card-title-row .shop-fav-button.active{background:transparent!important;border:0!important;color:#e11d48}
.shop-card-title-row .shop-fav-button:hover,.shop-card-title-row .shop-fav-button:focus{color:#e11d48;transform:scale(1.08);outline:none}
.shop-card-title-row .shop-fav-button:focus-visible{outline:2px solid #94a3b8;outline-offset:3px;border-radius:999px!important}
.shop-card-title-row .shop-fav-button:before{content:''!important}
@media(max-width:700px){.shop-card-title-row{gap:.35rem}.shop-card-title-row .shop-fav-button{font-size:1.35rem;padding:.02rem .02rem .02rem .25rem}}

/* v16.01: Shop-Produktkarten mobil und Farbwelt an TC-Layout angepasst */
.shop-header{
    background:#fff!important;
    border:1px solid var(--tcn-border)!important;
    border-left:6px solid var(--tcn-yellow)!important;
    box-shadow:0 8px 22px rgba(8,40,95,.08)!important;
}
.shop-header h2,.shop-content-card h3,.shop-price-group h4,.shop-category-section>h4{
    color:var(--tcn-blue)!important;
}
.shop-header-actions.shop-main-actions{
    background:rgba(255,255,255,.96)!important;
    border:1px solid var(--tcn-border)!important;
}
.shop-header-actions.shop-main-actions .button,
.shop-header-actions.shop-main-actions .shop-nav-button,
.shop-search-button{
    background:var(--tcn-blue)!important;
    border:1px solid var(--tcn-blue)!important;
    color:#fff!important;
    box-shadow:none!important;
}
.shop-header-actions.shop-main-actions .button:hover,
.shop-header-actions.shop-main-actions .shop-nav-button:hover,
.shop-search-button:hover{
    background:var(--tcn-blue-2)!important;
    border-color:var(--tcn-blue-2)!important;
}
.shop-header-actions.shop-main-actions .shop-nav-button.active{
    background:var(--tcn-yellow)!important;
    border-color:var(--tcn-yellow)!important;
    color:var(--tcn-blue)!important;
}
.shop-cart-badge strong{
    background:var(--tcn-yellow)!important;
    color:var(--tcn-blue)!important;
}
.shop-breadcrumb a{
    color:var(--tcn-blue)!important;
}
.shop-breadcrumb span{
    color:var(--tcn-muted)!important;
}
.shop-content-card,
.shop-article-card,
.shop-group-card{
    border-color:var(--tcn-border)!important;
    box-shadow:0 8px 22px rgba(8,40,95,.08)!important;
}
.shop-article-card{
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    overflow:visible!important;
}
.shop-article-image{
    background:#f4f6f8!important;
    border:1px solid #edf1f6!important;
}
.shop-card-title-row h4{
    color:var(--tcn-blue)!important;
}
.shop-card-title-row .shop-fav-button{
    color:#7c8797!important;
}
.shop-card-title-row .shop-fav-button.active,
.shop-card-title-row .shop-fav-button:hover,
.shop-card-title-row .shop-fav-button:focus{
    color:#d81b60!important;
}
.shop-price strong{
    color:var(--tcn-blue)!important;
}
.shop-pay-price,
.shop-discount-note{
    color:var(--tcn-green)!important;
}
.shop-card-add-form{
    width:100%!important;
    min-width:0!important;
    border-top:1px solid #edf1f6!important;
}
.shop-qty-stepper{
    min-width:0!important;
    border-color:#c8d1df!important;
    border-radius:8px!important;
}
.shop-qty-stepper button{
    background:#f4f6f8!important;
    color:var(--tcn-blue)!important;
}
.shop-qty-stepper button:hover{
    background:#e7edf6!important;
}
.shop-cart-button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:.35rem!important;
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    height:auto!important;
    padding:.62rem .7rem!important;
    border-radius:8px!important;
    background:var(--tcn-blue)!important;
    border:1px solid var(--tcn-blue)!important;
    color:#fff!important;
    box-shadow:none!important;
    white-space:normal!important;
    line-height:1.15!important;
    text-align:center!important;
    overflow:visible!important;
}
.shop-cart-button:hover{
    background:var(--tcn-blue-2)!important;
    border-color:var(--tcn-blue-2)!important;
    color:#fff!important;
}
.shop-cart-label-short{display:none;}
.shop-filter-bar{
    background:#fff!important;
    border-color:var(--tcn-border)!important;
    box-shadow:0 8px 22px rgba(8,40,95,.06)!important;
}
.shop-filter-bar label{
    color:var(--tcn-blue)!important;
}
.shop-filter-bar input:focus,
.shop-filter-bar select:focus{
    border-color:var(--tcn-blue-2)!important;
    outline:2px solid rgba(8,40,95,.14)!important;
    outline-offset:1px!important;
}
@media(max-width:700px){
    .shop-content-card{padding:.8rem!important;}
    .shop-article-grid,.shop-price-card-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:.7rem!important;
    }
    .shop-article-card{
        padding:.58rem!important;
        border-radius:12px!important;
        gap:.42rem!important;
    }
    .shop-price-card .shop-article-image,
    .shop-article-image{
        height:104px!important;
        margin-bottom:.25rem!important;
    }
    .shop-card-title-row{
        gap:.25rem!important;
        margin:.1rem 0 .18rem!important;
    }
    .shop-card-title-row h4{
        font-size:.88rem!important;
        line-height:1.18!important;
        min-height:auto!important;
    }
    .shop-card-title-row .shop-fav-button{
        font-size:1.22rem!important;
        padding:0 0 0 .18rem!important;
        line-height:1!important;
    }
    .shop-card-category{font-size:.72rem!important;line-height:1.2!important;}
    .shop-price{margin:.12rem 0 .25rem!important;}
    .shop-price strong{font-size:1.02rem!important;}
    .shop-discount-note,.shop-pay-price{font-size:.76rem!important;line-height:1.2!important;margin:.08rem 0!important;}
    .shop-card-add-form{
        grid-template-columns:1fr!important;
        gap:.38rem!important;
        padding-top:.42rem!important;
    }
    .shop-qty-label{font-size:.74rem!important;}
    .shop-qty-stepper{
        width:100%!important;
        grid-template-columns:34px minmax(0,1fr) 34px!important;
        height:36px!important;
    }
    .shop-qty-stepper button,
    .shop-qty-stepper input{
        height:36px!important;
        min-width:0!important;
    }
    .shop-cart-button{
        min-height:42px!important;
        padding:.54rem .35rem!important;
        font-size:.82rem!important;
        border-radius:8px!important;
    }
    .shop-cart-icon{display:none;}
    .shop-cart-label-long{display:none;}
    .shop-cart-label-short{display:inline;}
}
@media(max-width:360px){
    .shop-article-grid,.shop-price-card-grid{grid-template-columns:1fr!important;}
    .shop-price-card .shop-article-image,
    .shop-article-image{height:135px!important;}
    .shop-cart-icon{display:inline;}
    .shop-cart-label-long{display:inline;}
    .shop-cart-label-short{display:none;}
}



/* v16.02: Einheitlicher Tabellenstil wie Arbeitsdienst fuer Profil und Admin */
.table-scroll,
.table-wrap,
.guest-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  border:1px solid var(--tcn-border);
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(8,40,95,.08);
  margin:12px 0 24px;
}
.table-scroll > table,
.table-wrap > table,
.guest-table-wrap > table,
table.admin-table,
table.responsive-table,
table.profile-bookings-table,
table.guest-account-table,
table.user-filter-table,
table.stats-table,
table.booking-table,
table.slot-table{
  margin:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
}
.admin-table th,
.responsive-table th,
.profile-bookings-table th,
.guest-account-table th,
.user-filter-table th,
.stats-table th,
.booking-table th,
.slot-table th{
  background:#eef5ff!important;
  color:#08285f!important;
  font-weight:800;
  border-bottom:1px solid #d5e2f3;
  white-space:nowrap;
}
.admin-table td,
.responsive-table td,
.profile-bookings-table td,
.guest-account-table td,
.user-filter-table td,
.stats-table td,
.booking-table td,
.slot-table td{
  border-bottom:1px solid #e7ecf3;
  vertical-align:top;
}
.admin-table tbody tr:nth-child(even) td,
.responsive-table tbody tr:nth-child(even) td,
.profile-bookings-table tbody tr:nth-child(even) td,
.guest-account-table tbody tr:nth-child(even) td,
.user-filter-table tbody tr:nth-child(even) td,
.stats-table tbody tr:nth-child(even) td,
.booking-table tbody tr:nth-child(even) td,
.slot-table tbody tr:nth-child(even) td{
  background:#fbfdff;
}
.admin-table tbody tr:hover td,
.responsive-table tbody tr:hover td,
.profile-bookings-table tbody tr:hover td,
.guest-account-table tbody tr:hover td,
.user-filter-table tbody tr:hover td,
.stats-table tbody tr:hover td,
.booking-table tbody tr:hover td,
.slot-table tbody tr:hover td{
  background:#fff8dc;
}
.card > table.admin-table,
.card > table.responsive-table,
.card > table.profile-bookings-table,
.card > table.guest-account-table,
.card > table.user-filter-table,
.card > table.stats-table{
  display:block;
  overflow-x:auto;
  border:1px solid var(--tcn-border);
  border-radius:14px;
}
.card > table.admin-table tbody,
.card > table.responsive-table tbody,
.card > table.profile-bookings-table tbody,
.card > table.guest-account-table tbody,
.card > table.user-filter-table tbody,
.card > table.stats-table tbody{
  display:table;
  width:100%;
}
@media(max-width:760px){
  table.responsive-table{min-width:0!important;}
  table.responsive-table thead,
  table.responsive-table tbody,
  table.responsive-table tr,
  table.responsive-table td{display:block;width:100%;box-sizing:border-box;}
  table.responsive-table th{display:none;}
  table.responsive-table tr{background:#fff;border:1px solid #dfe5ee;border-radius:12px;margin:.75rem 0;padding:.65rem;box-shadow:0 5px 16px rgba(8,40,95,.08);}
  table.responsive-table td{border:0!important;padding:.35rem 0;display:flex;gap:.75rem;justify-content:space-between;align-items:flex-start;}
  table.responsive-table td:before{content:attr(data-label);font-weight:800;color:#08285f;min-width:110px;text-align:left;}
}


/* v16.04: Admin-Tabellen einheitlich wie Buchungen */
.admin-layout .card table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:1px solid var(--tcn-border);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 22px rgba(8,40,95,.08);
  margin:12px 0 24px;
}
.admin-layout .card table th{
  background:#eef5ff!important;
  color:#08285f!important;
  font-weight:800;
  border-bottom:1px solid #d5e2f3;
  white-space:nowrap;
}
.admin-layout .card table td{
  border-bottom:1px solid #e7ecf3;
  vertical-align:top;
}
.admin-layout .card table tr:nth-child(even) td{background:#fbfdff;}
.admin-layout .card table tr:hover td{background:#fff8dc;}
.admin-layout .card .table-scroll,
.admin-layout .card .guest-table-wrap,
.admin-layout .card .table-wrap{
  width:100%;
  overflow-x:auto;
}
.admin-layout .card .table-scroll table,
.admin-layout .card .guest-table-wrap table,
.admin-layout .card .table-wrap table{
  margin:0;
  box-shadow:none;
}
@media(max-width:760px){
  .admin-layout .card table{font-size:.9rem;}
  .admin-layout .card table th,
  .admin-layout .card table td{padding:.55rem .65rem;}
}


/* v16_08 - Profil Clubkonto: Bezahlt-am-Spalte kompakter */
#gastkonto .guest-account-table th:nth-child(12),
#gastkonto .guest-account-table td:nth-child(12),
#gastkonto .compact-account-table th:nth-child(12),
#gastkonto .compact-account-table td:nth-child(12){
  width:76px !important;
  min-width:76px !important;
  max-width:76px !important;
  white-space:nowrap !important;
  text-align:center !important;
}
#gastkonto .guest-account-table td.paid-at-cell,
#gastkonto .compact-account-table td.paid-at-cell{
  font-variant-numeric:tabular-nums;
}
@media (min-width:901px){
  #gastkonto .guest-account-table,
  #gastkonto .compact-account-table{
    min-width:1380px !important;
  }
}
@media (min-width:1400px){
  #gastkonto .guest-account-table,
  #gastkonto .compact-account-table{
    min-width:0 !important;
  }
}

/* v16.10: Warenkorb UX-Optimierungen */
.shop-cart-secondary-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
    align-items:center;
    justify-content:space-between;
    margin-top:1rem;
}
.shop-cart-secondary-actions .button,
.shop-cart-secondary-actions button{
    margin:0;
}
.shop-cart-checkout{
    margin-top:1rem;
    padding:1rem;
    border:1px solid #d5e2f3;
    border-radius:16px;
    background:#f8fbff;
}
.shop-cart-sticky-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    margin:.75rem 0 1rem;
    padding:.8rem 1rem;
    border:1px solid #bfdbfe;
    border-radius:14px;
    background:#fff;
    color:#08285f;
}
.shop-cart-sticky-total span{
    font-weight:800;
}
.shop-cart-sticky-total strong{
    font-size:1.25rem;
}
.shop-checkout-button{
    width:100%;
    min-height:48px;
    font-size:1.05rem;
    font-weight:800;
}
.shop-cart-remove{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    min-width:42px;
}
.shop-cart-remove span[aria-hidden="true"]{
    font-size:1.35rem;
    line-height:1;
    font-weight:900;
}
.shop-cart-stepper{
    max-width:150px;
}
.shop-cart-discount-empty{
    display:none;
}
@media(max-width:760px){
    .shop-cart-table .shop-cart-row{
        position:relative;
    }
    .shop-cart-table .shop-cart-row td:first-child strong{
        font-size:1rem;
    }
    .shop-cart-table .shop-cart-row td[data-label="Menge"]{
        align-items:center;
    }
    .shop-cart-stepper{
        width:148px!important;
        grid-template-columns:42px 1fr 42px!important;
        margin-left:auto;
    }
    .shop-cart-remove{
        width:auto!important;
        min-width:44px!important;
        padding:.45rem .65rem!important;
        border-radius:999px!important;
    }
    .shop-cart-remove-text{
        display:none;
    }
    .shop-cart-secondary-actions{
        display:grid;
        grid-template-columns:1fr;
        gap:.6rem;
    }
    .shop-cart-secondary-actions .button,
    .shop-cart-secondary-actions button{
        width:100%!important;
        min-height:44px;
    }
    .shop-cart-checkout{
        position:sticky;
        bottom:.5rem;
        z-index:20;
        margin-top:1rem;
        padding:.8rem;
        border-color:#93c5fd;
        box-shadow:0 12px 30px rgba(8,40,95,.22);
    }
    .shop-cart-checkout p.small,
    .shop-cart-checkout label + p.small{
        display:none;
    }
    .shop-cart-sticky-total{
        margin:0 0 .65rem;
        padding:.7rem .85rem;
    }
    .shop-cart-sticky-total strong{
        font-size:1.2rem;
    }
    .shop-checkout-button{
        min-height:50px;
        font-size:1rem;
    }
}


/* v16.11: Warenkorb-Summen mobil robust als echte Tabellenzellen anzeigen */
.shop-cart-table tr.shop-cart-summary-row td.shop-cart-summary-label,
.shop-cart-table tr.shop-cart-summary-row td.shop-cart-summary-value,
.shop-cart-table tr.shop-cart-summary-row td.shop-cart-summary-spacer{
    font-weight:800;
    background:#f8fafc;
}
.shop-cart-table tr.shop-cart-final-row td.shop-cart-summary-label,
.shop-cart-table tr.shop-cart-final-row td.shop-cart-summary-value{
    font-size:1.08rem;
    color:#08285f;
}
@media(max-width:760px){
    .shop-cart-table tr.shop-cart-summary-row{
        display:block!important;
        width:100%!important;
        padding:.75rem .85rem!important;
        background:#f8fafc!important;
        border:1px solid #dfe5ee;
        border-radius:12px;
        box-shadow:0 5px 16px rgba(8,40,95,.08);
    }
    .shop-cart-table tr.shop-cart-summary-row td.shop-cart-summary-label,
    .shop-cart-table tr.shop-cart-summary-row td.shop-cart-summary-spacer{
        display:none!important;
    }
    .shop-cart-table tr.shop-cart-summary-row td.shop-cart-summary-value{
        display:flex!important;
        width:100%!important;
        box-sizing:border-box;
        justify-content:space-between;
        align-items:center;
        gap:1rem;
        border:0!important;
        padding:.15rem 0!important;
        text-align:right;
        background:transparent!important;
    }
    .shop-cart-table tr.shop-cart-summary-row td.shop-cart-summary-value::before{
        content:attr(data-label)!important;
        min-width:110px;
        font-weight:800;
        color:#08285f;
        text-align:left;
    }
    .shop-cart-table tr.shop-cart-final-row{
        border:2px solid #1d4ed8!important;
    }
    .shop-cart-table tr.shop-cart-final-row td.shop-cart-summary-value{
        font-size:1.15rem;
        font-weight:900;
    }
}

.shop-reorder-last-form {
  margin: 0 0 1rem 0;
}
.shop-reorder-button {
  width: 100%;
  justify-content: center;
  font-weight: 800;
}
@media(max-width:700px){
  .shop-reorder-last-form { position: sticky; top: .5rem; z-index: 3; }
  .shop-reorder-button { min-height: 46px; }
}

/* v16.15: Reorder button inside opened order details */
.profile-shop-order-actions { display:flex; justify-content:flex-end; margin-top:.75rem; }
.profile-shop-order-actions .profile-shop-reorder-form { margin:0; }
.profile-shop-order-actions .shop-cart-button { min-width:190px; }
@media(max-width:700px){
  .profile-shop-order-actions { justify-content:stretch; }
  .profile-shop-order-actions .profile-shop-reorder-form,
  .profile-shop-order-actions .shop-cart-button { width:100%; }
}

/* Kasse / Barverkauf v16.18 */
.cashdesk-nav .dashboard-booking-button{min-height:96px;}
.cashdesk-article-grid .shop-card-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.75rem;}
.cashdesk-article-grid .shop-card-actions input[type=number]{max-width:84px;}
.cashdesk-article-grid .shop-cart-button{flex:1;min-width:170px;}
@media(max-width:700px){
  .cashdesk-article-grid .shop-card-actions{align-items:stretch;}
  .cashdesk-article-grid .shop-card-actions input[type=number],
  .cashdesk-article-grid .shop-cart-button{width:100%;max-width:none;}
}

/* Cashdesk v16.22 */
.cashdesk-main-actions .shop-nav-button{white-space:nowrap}
.cash-summary-buttons>a.cash-summary-button{
  display:block;
  text-decoration:none;
  color:inherit;
  background:#eef5ff;
  border:1px solid #d5e2f3;
  border-radius:14px;
  padding:16px;
  box-shadow:0 6px 16px rgba(8,40,95,.06);
}
.cash-summary-buttons>a.cash-summary-button:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(8,40,95,.10)}
.cash-summary-buttons>a.cash-summary-button strong{display:block;font-size:1.35rem;color:var(--tcn-blue);margin-bottom:4px}
.cash-summary-buttons>a.cash-summary-button span{display:block;font-weight:800}
.cash-summary-buttons>a.cash-summary-button em{display:block;font-style:normal;color:#52627a;margin-top:4px}

/* v16.25 Cashdesk Startkacheln und Kategorie-Tabs */
.shop-category-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:.85rem 0 1rem;
  padding:.35rem;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
}
.shop-category-tabs .shop-category-tab{
  border-radius:999px;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.shop-category-tabs .shop-category-tab.active{
  background:#08285f;
  color:#fff;
  border-color:#08285f;
}
.shop-category-tab-panel{border-top:0;padding-top:.25rem;}
@media(max-width:700px){
  .shop-category-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
  .shop-category-tabs .shop-category-tab{white-space:nowrap;flex:0 0 auto;}
}

/* v16.27 Cashdesk role-controlled buttons and cart button alignment */
.cashdesk-overview-buttons{margin-top:1rem;}
.form-actions .cash-cart-more-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  border-radius:8px!important;
  padding:.65rem .9rem!important;
  font-weight:700!important;
  line-height:1.15!important;
  min-width:132px!important;
  text-align:center!important;
  white-space:nowrap!important;
}
@media(max-width:700px){
  .form-actions .cash-cart-more-button{width:100%;min-width:0;}
}


/* v16.32 Cashdesk offline guest/table accounts */
.cashdesk-nav-only{justify-content:flex-start;}
.cashdesk-nav-only .shop-header-actions{width:100%;justify-content:flex-start;}
.shop-category-tabs{background:#eef5ff;border-color:#bfd0ea;box-shadow:inset 0 0 0 1px rgba(8,40,95,.03);}
.shop-category-tabs .shop-category-tab{background:#ffffff!important;color:#08285f!important;border:1px solid #9db4d8!important;box-shadow:0 2px 8px rgba(8,40,95,.08);font-weight:800;}
.shop-category-tabs .shop-category-tab:hover{background:#e6f0ff!important;border-color:#6c8fc2!important;}
.shop-category-tabs .shop-category-tab.active{background:#08285f!important;color:#ffffff!important;border-color:#08285f!important;box-shadow:0 6px 14px rgba(8,40,95,.18);}


/* v16.32 Cashdesk start screen only */
.cashdesk-start-screen{margin-top:0;}
.cashdesk-start-tile-grid{margin-top:0;}

.page-title-link{color:inherit;text-decoration:none;}
.page-title-link:hover,.page-title-link:focus{text-decoration:none;}


/* v16.45 cashdesk refinements */
.cash-receipt-print { margin-top: 1rem; }
.cash-receipt-print .no-print { margin-top: 1rem; }

/* v16.46 compact receipt printing */
@media print {
  .cash-receipt-print { box-shadow: none; border: 0; }
  .cash-receipt-print .form-actions,
  .cash-receipt-print .no-print { display: none !important; }
}

/* v16.47 - Profil Shopbestellungen: Warenkorb/Reorder Buttons nebeneinander */
.profile-shop-order-actions-inline{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.profile-shop-order-actions-inline .inline-form{margin:0;}
@media (max-width: 640px){
  .profile-shop-order-actions-inline{justify-content:stretch;}
  .profile-shop-order-actions-inline .button,
  .profile-shop-order-actions-inline .inline-form,
  .profile-shop-order-actions-inline .inline-form button{width:100%;}
}

/* v16.47 - Admin Clubkonto Mehrfachpositionen */
.account-entry-lines{display:grid;gap:.75rem;margin:.75rem 0;}
.account-entry-line{display:grid;grid-template-columns:minmax(220px,2fr) 90px 120px auto;gap:.5rem;align-items:end;padding:.75rem;border:1px solid #e5e7eb;border-radius:12px;background:#fff;}
.account-entry-line label{margin:0;}
.account-entry-line .remove-account-line{white-space:nowrap;}
.account-entry-total{font-weight:800;margin:.5rem 0;}
@media (max-width: 760px){.account-entry-line{grid-template-columns:1fr;}}

.admin-report-card .guest-summary-grid { margin-bottom: 1rem; }
.admin-stats-grid { align-items: start; }
.stats-panel { min-width: 0; overflow: auto; }
.stats-panel .stats-table { width: 100%; }
.guest-actions form.inline-form { display: inline-flex; margin: 0; }


.table-pagination { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; margin:.75rem 0; }
.table-pagination label { display:flex; align-items:center; gap:.35rem; font-weight:600; }
.table-pagination select { min-width:4.5rem; padding:.35rem .5rem; border:1px solid #cbd5e1; border-radius:.5rem; background:#fff; }
.table-pagination-info { color:#475569; font-size:.95rem; }
.table-pagination .button.small { padding:.35rem .65rem; font-size:.9rem; }
.table-pagination .button.small:disabled { opacity:.45; cursor:not-allowed; }
@media (max-width: 640px) { .table-pagination { align-items:stretch; } .table-pagination label, .table-pagination-info { width:100%; } }

/* v16.66 admin booking column filters */
.booking-column-filter-row th {
  background: #f8fafc;
  padding: .35rem;
}
.column-filter-input {
  width: 100%;
  min-width: 90px;
  padding: .35rem .45rem;
  font-size: .9rem;
}
#buchungen .inline-form input[type="time"],
#buchungen .inline-form select,
#buchungen table input[type="time"],
#buchungen table select {
  max-width: 100%;
}

.member-combo-option.is-disabled{display:none!important;}

.permission-groups{display:grid;gap:14px;margin:12px 0 18px}
.permission-group{border:1px solid var(--border,#d9dee7);border-radius:12px;background:var(--card-bg,#fff);padding:10px 12px}
.permission-group summary{cursor:pointer;list-style:none}
.permission-group summary::-webkit-details-marker{display:none}
.permission-help-table th:first-child,.permission-help-table td:first-child{width:70px;text-align:center}
.permission-help-table td.small{font-size:.92rem;line-height:1.35;color:var(--muted,#53606f)}
@media(max-width:700px){.permission-help-table td:first-child{text-align:left}.permission-help-table td.small{font-size:.95rem}}

/* v16.84 cash account button/dialog cleanup */
.cash-account-pay-main-button{width:100%;display:flex;align-items:center;justify-content:center;text-align:center;}
.cash-summary-buttons .shop-cart-button,.action-buttons .shop-cart-button{background:#0f5f9c;color:#fff;border-color:#0f5f9c;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;}
.cash-summary-buttons .shop-cart-button:hover,.action-buttons .shop-cart-button:hover{background:#0b4f83;color:#fff;}

/* v16.85 cash account order display fix */

/* v16.91 Cashdesk mobile cart and guest/table account UX */
.cash-cart-form{position:relative;}
.cash-cart-mobile-actionbar,
.cash-account-mobile-paybar{display:none;}
.cash-account-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;margin:1rem 0;}
.cash-account-card{border:1px solid #d5e2f3;border-radius:16px;background:#fff;padding:1rem;box-shadow:0 6px 18px rgba(8,40,95,.07);cursor:pointer;display:grid;gap:.7rem;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.cash-account-card:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(8,40,95,.12);border-color:#9db4d8;}
.cash-account-card.is-active{border-color:#0f5f9c;box-shadow:0 0 0 2px rgba(15,95,156,.14),0 12px 24px rgba(8,40,95,.12);}
.cash-account-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;}
.cash-account-card-head strong{font-size:1.05rem;color:#08285f;line-height:1.25;text-align:right;}
.cash-account-type{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef5ff;color:#08285f;border:1px solid #bfd0ea;padding:.25rem .6rem;font-weight:800;font-size:.86rem;white-space:nowrap;}
.cash-account-card-meta{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;color:#52627a;font-size:.92rem;}
.cash-account-card-total{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border-radius:12px;background:#f8fbff;border:1px solid #dbeafe;}
.cash-account-card-total span{font-weight:800;color:#08285f;}
.cash-account-card-total strong{font-size:1.15rem;color:#08285f;}
.cash-account-card-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.cash-account-card-actions .inline-form{margin:0;}
.cash-account-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.cash-account-detail-head h3{margin-bottom:.25rem;}
.cash-account-item-payment .pay-qty-input{max-width:90px;text-align:center;font-weight:800;}
@media(min-width:861px){.cash-account-table-wrap{display:none;}}
@media(max-width:860px){
  body:has(.cash-cart-mobile-actionbar),body:has(.cash-account-mobile-paybar){padding-bottom:104px;}
  .cash-account-card-grid{grid-template-columns:1fr;}
  .cash-account-table-wrap{display:none;}
  .cash-account-card{padding:.9rem;}
  .cash-account-card-actions{justify-content:stretch;}
  .cash-account-card-actions .button,.cash-account-card-actions .inline-form,.cash-account-card-actions .inline-form button{width:100%;}
  .cash-account-detail-card{margin-left:-.25rem;margin-right:-.25rem;}
  .cash-account-detail-head .button{width:100%;}
  .cash-account-item-payment .table-scroll{overflow:visible;}
  #cash-account-pay-table tr[data-unit]{padding:.85rem!important;border-radius:16px!important;}
  #cash-account-pay-table td[data-label="Artikel"]{font-size:1rem;}
  #cash-account-pay-table td[data-label="zu zahlen"]{align-items:center;}
  .cash-account-item-payment .pay-qty-input{width:104px;max-width:104px;min-height:42px;font-size:1.05rem;}
  .cash-cart-mobile-actionbar,.cash-account-mobile-paybar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;gap:.55rem;padding:.7rem max(.75rem,env(safe-area-inset-left)) calc(.75rem + env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-right));background:rgba(255,255,255,.97);border-top:1px solid #bfd0ea;box-shadow:0 -12px 30px rgba(8,40,95,.18);backdrop-filter:blur(10px);}
  .cash-cart-mobile-total,.cash-account-mobile-paybar>div{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#08285f;}
  .cash-cart-mobile-total span,.cash-account-mobile-paybar span{font-weight:800;}
  .cash-cart-mobile-total strong,.cash-account-mobile-paybar strong{font-size:1.2rem;}
  .cash-cart-mobile-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;}
  .cash-cart-mobile-buttons .button,.cash-account-mobile-paybar .button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:900;}
  .cash-account-mobile-paybar{grid-template-columns:1fr;}
  .cash-cart-sticky-total{display:none;}
  .cash-member-booking-panel,.cash-account-booking-panel{border-radius:16px;}
}
@media(max-width:520px){
  .cash-cart-mobile-buttons{grid-template-columns:1fr;}
  body:has(.cash-cart-mobile-actionbar){padding-bottom:154px;}
}
@supports not selector(body:has(*)){
  @media(max-width:860px){body{padding-bottom:104px;}}
  @media(max-width:520px){body{padding-bottom:154px;}}
}

/* Cashdesk accounts: keep the selected account view as a simple guest/table list. */
.cash-account-guest-list{margin-top:.75rem;}
.cash-account-compact-actions{gap:.35rem;white-space:nowrap;}
.cash-account-compact-actions .button.small.compact{padding:.25rem .45rem;font-size:.78rem;line-height:1.15;border-radius:8px;min-height:0;}
.cash-account-compact-actions .inline-form{margin:0;display:inline-flex;}
@media(max-width:860px){
  .cash-account-guest-list .responsive-table td[data-label="Aktion"]{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;}
  .cash-account-compact-actions .button.small.compact{width:auto;}
}
.cash-offline-banner{position:sticky;top:0;z-index:10000;background:#fff3cd;border:1px solid #f0d98c;color:#4d3b00;padding:10px 14px;margin:0 auto 10px;max-width:1100px;border-radius:0 0 10px 10px;font-weight:600}.cash-offline-queue-badge{position:fixed;right:12px;bottom:12px;z-index:10000;background:#222;color:#fff;border-radius:999px;padding:8px 12px;font-size:.88rem;box-shadow:0 4px 14px rgba(0,0,0,.2)}.cash-offline-mode .offline-disabled{opacity:.45;pointer-events:none;filter:grayscale(.3)}


/* v16.32 Offline Gast/Tisch */
#cashOfflineAccountsPanel{margin-bottom:16px}
#cashOfflineAccountsPanel .form-grid{display:grid;grid-template-columns:minmax(110px,160px) 1fr 1fr auto;gap:8px;align-items:end;margin-bottom:12px}
#cashOfflineAccountsPanel .button.small{padding:5px 9px;font-size:.82rem;line-height:1.2}
@media (max-width: 700px){#cashOfflineAccountsPanel .form-grid{grid-template-columns:1fr}#cashOfflineAccountsPanel table input[type=number]{max-width:70px}}


/* v17.01 Admin Offline-Kasse Status */
.cash-offline-admin-status .admin-action-panel{margin-top:1rem}
.cash-offline-admin-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}
.cash-offline-admin-actions .danger{background:#b42318!important;color:#fff!important}
.cash-offline-admin-status table td:first-child{font-weight:700;color:#08285f}
@media(max-width:700px){.cash-offline-admin-actions{flex-direction:column;align-items:stretch}.cash-offline-admin-actions .button{width:100%;text-align:center}}

/* v17.14: Kasse Ruecksprung-Buttons und Trinkgeldabschluss deutlicher */
.cash-sale-return-actions{
    margin:.75rem 0 1rem;
    padding:.35rem;
    border-radius:14px;
    background:rgba(255,255,255,.96);
    border:1px solid var(--tcn-border);
    display:flex;
    flex-wrap:wrap;
    gap:.6rem;
}
.cash-sale-return-actions .cash-sale-return-button{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:.6rem 1rem!important;
    font-weight:800;
    border-radius:12px!important;
    background:var(--tcn-blue)!important;
    border:1px solid var(--tcn-blue)!important;
    color:#fff!important;
    box-shadow:none!important;
    text-decoration:none!important;
}
.cash-sale-return-actions .cash-sale-return-button:hover,
.cash-sale-return-actions .cash-sale-return-button:focus{
    background:var(--tcn-blue-2)!important;
    border-color:var(--tcn-blue-2)!important;
}
.cash-sale-return-actions .shop-cart-badge strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:1.5rem;
    height:1.5rem;
    margin-left:.25rem;
    border-radius:999px;
}

/* v17.18: Stornieren direkt im Platzbuchungskalender */
.booking-cancel-form{
  display:block;
  margin-top:6px;
}
.booking-cancel-button{
  padding:4px 8px!important;
  font-size:12px!important;
  line-height:1.2;
  border-radius:999px;
  margin-top:0!important;
}


/* v17.22: Storno-Button im Open-Court-Kalender deutlicher darstellen */
.slot-table .booking-cancel-form{
  display:block!important;
  grid-template-columns:none!important;
  margin:.45rem 0 0!important;
  padding:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
}
.slot-table .booking-cancel-button,
.slot-table button.booking-cancel-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  padding:.35rem .65rem!important;
  border-radius:999px!important;
  border:1px solid #a71930!important;
  background:#a71930!important;
  color:#fff!important;
  font-size:.76rem!important;
  font-weight:800!important;
  line-height:1.15!important;
  box-shadow:0 2px 8px rgba(167,25,48,.22)!important;
  margin-top:0!important;
}
.slot-table .booking-cancel-button:hover,
.slot-table button.booking-cancel-button:hover{
  background:#8f1428!important;
  border-color:#8f1428!important;
  color:#fff!important;
}
@media(max-width:800px){
  .slot-table .booking-cancel-button,
  .slot-table button.booking-cancel-button{
    width:100%!important;
    margin-top:.35rem!important;
  }
}


/* v17.23: Storno-Button im Bereich Meine Open-Court-Termine */
.open-court-my-bookings form{
  display:inline-block!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.open-court-my-bookings button.danger.small-button,
.open-court-my-bookings .booking-cancel-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  padding:.35rem .7rem!important;
  border-radius:999px!important;
  border:1px solid #a71930!important;
  background:#a71930!important;
  color:#fff!important;
  font-size:.78rem!important;
  font-weight:800!important;
  line-height:1.15!important;
  box-shadow:0 2px 8px rgba(167,25,48,.22)!important;
  margin:0!important;
}
.open-court-my-bookings button.danger.small-button:hover,
.open-court-my-bookings .booking-cancel-button:hover{
  background:#8f1428!important;
  border-color:#8f1428!important;
  color:#fff!important;
}

/* v17.24: Cashdesk Button- und Layout-Konsolidierung */
.cashdesk-ui .button,
.cashdesk-ui button:not(.shop-qty-minus):not(.shop-qty-plus):not(.link-button){
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.4rem;
  min-height:44px;
  min-width:150px;
  padding:.65rem 1rem!important;
  border-radius:12px!important;
  font-size:.95rem;
  font-weight:850!important;
  line-height:1.15!important;
  text-align:center!important;
  text-decoration:none!important;
  white-space:normal;
  box-shadow:none!important;
  cursor:pointer;
}
.cashdesk-ui a.button{color:#fff;}
.cashdesk-ui .button:not(.secondary):not(.danger),
.cashdesk-ui button:not(.secondary):not(.danger):not(.shop-qty-minus):not(.shop-qty-plus):not(.link-button),
.cashdesk-ui .shop-cart-button,
.cashdesk-ui .cash-btn-primary{
  background:var(--tcn-blue)!important;
  border:1px solid var(--tcn-blue)!important;
  color:#fff!important;
}
.cashdesk-ui .button:not(.secondary):not(.danger):hover,
.cashdesk-ui button:not(.secondary):not(.danger):not(.shop-qty-minus):not(.shop-qty-plus):not(.link-button):hover,
.cashdesk-ui .shop-cart-button:hover,
.cashdesk-ui .cash-btn-primary:hover{
  background:var(--tcn-blue-2)!important;
  border-color:var(--tcn-blue-2)!important;
  color:#fff!important;
}
.cashdesk-ui .button.secondary,
.cashdesk-ui button.secondary,
.cashdesk-ui .cash-btn-secondary{
  background:#f8fafc!important;
  border:1px solid #cbd5e1!important;
  color:var(--tcn-blue)!important;
}
.cashdesk-ui .button.secondary:hover,
.cashdesk-ui button.secondary:hover,
.cashdesk-ui .cash-btn-secondary:hover{
  background:#eaf0f7!important;
  border-color:#9db4d8!important;
  color:var(--tcn-blue)!important;
}
.cashdesk-ui .button.danger,
.cashdesk-ui button.danger,
.cashdesk-ui .danger{
  background:#b42318!important;
  border:1px solid #b42318!important;
  color:#fff!important;
}
.cashdesk-ui .button.danger:hover,
.cashdesk-ui button.danger:hover,
.cashdesk-ui .danger:hover{
  background:#8f1c14!important;
  border-color:#8f1c14!important;
  color:#fff!important;
}
.cashdesk-ui .button.small,
.cashdesk-ui button.small,
.cashdesk-ui .button.compact,
.cashdesk-ui button.compact{
  min-height:36px!important;
  min-width:104px!important;
  padding:.45rem .7rem!important;
  border-radius:10px!important;
  font-size:.86rem!important;
}
.cashdesk-ui .shop-header-actions.shop-main-actions{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(155px,1fr));
  gap:.55rem!important;
  width:100%;
}
.cashdesk-ui .shop-header-actions.shop-main-actions .shop-nav-button{
  width:100%!important;
  min-width:0!important;
  min-height:48px!important;
  border-radius:14px!important;
}
.cashdesk-ui .shop-header-actions.shop-main-actions .shop-nav-button.active{
  background:var(--tcn-yellow)!important;
  border-color:var(--tcn-yellow)!important;
  color:var(--tcn-blue)!important;
}
.cashdesk-ui .form-actions,
.cashdesk-ui .cash-sale-return-actions,
.cashdesk-ui .cash-order-actions,
.cashdesk-ui .cash-cart-secondary-actions{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:.6rem!important;
  margin:.85rem 0!important;
}
.cashdesk-ui .form-actions .button,
.cashdesk-ui .form-actions button,
.cashdesk-ui .cash-cart-secondary-actions .button,
.cashdesk-ui .cash-cart-secondary-actions button{
  flex:0 1 220px;
}
.cashdesk-ui .cash-sale-return-actions{
  padding:.45rem!important;
  border-radius:16px!important;
  background:#fff!important;
  border:1px solid var(--tcn-border)!important;
}
.cashdesk-ui .cash-sale-return-actions .cash-sale-return-button{
  flex:1 1 240px!important;
  min-height:48px!important;
  border-radius:14px!important;
}
.cashdesk-ui .shop-cart-badge strong{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:1.6rem!important;
  height:1.6rem!important;
  padding:0 .35rem!important;
  border-radius:999px!important;
}
.cashdesk-ui .cash-tip-panel,
.cashdesk-ui .cash-member-booking-panel,
.cashdesk-ui .cash-account-booking-panel{
  border:1px solid #d5e2f3!important;
  border-radius:16px!important;
  background:#f8fbff!important;
  padding:1rem!important;
}
.cashdesk-ui .cash-tip-panel .inline-inputs{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:.8rem!important;
}
.cashdesk-ui .cash-order-tip-form{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:.75rem!important;
  align-items:end!important;
  width:100%;
}
.cashdesk-ui .cash-order-tip-form strong{
  grid-column:1/-1;
  color:var(--tcn-blue);
}
.cashdesk-ui .cash-order-tip-form label{margin:0!important;}
.cashdesk-ui .cash-order-tip-form .button,
.cashdesk-ui .cash-order-tip-form button{
  width:100%;
  min-width:0!important;
}
.cashdesk-ui .cash-account-compact-actions{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:.4rem!important;
  min-width:0!important;
}
.cashdesk-ui .cash-account-compact-actions .inline-form{margin:0!important;}
.cashdesk-ui .cash-account-compact-actions .button.small.compact{
  min-width:92px!important;
  width:auto!important;
}
.cashdesk-ui .shop-cart-remove{
  min-width:116px!important;
}
.cashdesk-ui .cash-account-pay-main-button,
.cashdesk-ui #cashSaleButton,
.cashdesk-ui #cashAccountPayButton,
.cashdesk-ui #cashBookMemberButton,
.cashdesk-ui #cashAccountBookMemberButton,
.cashdesk-ui .cash-cart-account-submit{
  width:100%!important;
  min-height:50px!important;
  font-size:1rem!important;
}
.cashdesk-ui .cash-summary-buttons .button,
.cashdesk-ui .cash-account-detail-head .button{
  min-width:180px!important;
}
@media(max-width:700px){
  .cashdesk-ui .button,
  .cashdesk-ui button:not(.shop-qty-minus):not(.shop-qty-plus):not(.link-button){
    width:100%!important;
    min-width:0!important;
  }
  .cashdesk-ui .form-actions,
  .cashdesk-ui .cash-sale-return-actions,
  .cashdesk-ui .cash-order-actions,
  .cashdesk-ui .cash-cart-secondary-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .cashdesk-ui .form-actions .button,
  .cashdesk-ui .form-actions button,
  .cashdesk-ui .cash-cart-secondary-actions .button,
  .cashdesk-ui .cash-cart-secondary-actions button{
    flex:none!important;
  }
  .cashdesk-ui .cash-account-compact-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
  }
}

/* v17.27: Platzbuchung UI-/Workflow-Optimierung */
.my-bookings-panel{
  border-radius:18px;
  border:1px solid #dbe7ff;
  background:linear-gradient(180deg,#fff,#f8fbff);
}
.booking-section-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}
.booking-section-head h2{margin:0 0 4px;}
.my-booking-card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:12px;
}
.my-booking-mini-card{
  border:1px solid #dce7f6;
  border-radius:14px;
  padding:14px;
  background:#fff;
  box-shadow:0 4px 14px rgba(8,40,95,.07);
}
.booking-status-row{margin-bottom:8px;}
.booking-status-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:4px 9px;
  font-size:.76rem;
  font-weight:800;
  background:#e8f1ff;
  color:var(--tcn-blue);
}
.booking-status-badge.open-court{background:#fff4ce;color:#7a4d00;}
.booking-status-badge.own{background:#e8f6ea;color:#12662c;}
.my-booking-meta{margin:6px 0 10px;color:var(--tcn-muted);font-size:.92rem;}
.booking-calendar-heading{
  margin:22px 0 12px;
  display:flex;
  align-items:center;
  gap:10px;
}
.booking-day-heading{
  margin:20px 0 10px;
  padding-left:10px;
  border-left:5px solid var(--tcn-yellow);
}
.booking-calendar-table{
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(8,40,95,.08);
}
.booking-calendar-table th:first-child,
.booking-calendar-table td:first-child{
  width:82px;
  white-space:nowrap;
  font-weight:800;
  color:var(--tcn-blue);
  background:#f8fbff;
}
.booking-calendar-table th:first-child{background:var(--tcn-blue);color:#fff;}
.booking-calendar-table td{
  min-width:130px;
}
.booking-calendar-table .slot-booked,
.booking-calendar-table .slot-blocked,
.booking-calendar-table .slot-past{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:3px 8px;
  font-size:.78rem;
  line-height:1.2;
}
.booking-calendar-table .slot-booked{background:#fee2e2;color:#991b1b;}
.booking-calendar-table .slot-blocked{background:#fff7ed;color:#9a3412;}
.booking-calendar-table .slot-past{background:#f3f4f6;color:#6b7280;}
.booking-players{margin-top:5px;line-height:1.25;}
.booking-form-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
  align-items:center;
}
.booking-primary-action{
  min-width:160px;
  min-height:44px;
}
.booking-secondary-action{
  background:#eef2f7!important;
  color:var(--tcn-blue)!important;
  border:1px solid #cbd5e1!important;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.booking-secondary-action:hover{background:#dfe7f1!important;color:var(--tcn-blue)!important;}
.quick-booking-card{
  border-radius:18px;
}
.quick-booking-card h2{margin-top:0;}
.quick-booking-form .quick-grid{
  gap:14px;
}
.quick-booking-form input[readonly]{
  background:#f8fafc;
  color:#334155;
  font-weight:700;
}
@media(max-width:800px){
  .my-booking-card-grid{grid-template-columns:1fr;}
  .booking-form-actions{display:grid;grid-template-columns:1fr;}
  .booking-form-actions button,.booking-form-actions .btn{width:100%;}
  .booking-calendar-table td{min-width:115px;}
}

/* v17.28: Admin-Kasse Kassenbestand-Korrektur */
#kasse .inline-form input[name="cash_balance_target"]{font-weight:700;}

/* v17.31: Rechtebereinigung und Clubkonto-Layout */
.account-summary-tile{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:inherit;background:rgba(255,255,255,.75);border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:14px;box-shadow:0 6px 18px rgba(0,0,0,.06)}
.account-summary-tile:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.09)}
.account-summary-tile strong{font-size:1.35rem}.account-summary-tile span{font-weight:700}.account-summary-tile em{font-size:.85rem;color:#53606a;font-style:normal}
#cashOfflineCartPanel,#cashOfflineAccountsPanel{border:2px solid rgba(30,115,190,.25)}

/* v17.58: Kasse Modern - UX-Layout, Touchoptimierung und 3-Klick-Kasse */
.cashdesk-ui{--cash-ok:#15803d;--cash-info:#1e73be;--cash-warn:#f59e0b;--cash-danger:#dc2626;}
.cash-modern-sale-card{padding:18px;}
.cash-modern-sale-header{align-items:center;gap:12px;}
.cash-modern-mode-toggle{display:inline-flex;gap:4px;background:#eef2f7;border-radius:999px;padding:4px;font-weight:800;font-size:.88rem;}
.cash-modern-mode-toggle span{padding:8px 12px;border-radius:999px;color:#475569;}
.cash-modern-mode-toggle .active{background:#fff;color:#0f172a;box-shadow:0 2px 8px rgba(15,23,42,.12);}
.cash-modern-workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;}
.cash-modern-article-zone{min-width:0;}
.cash-modern-cart-panel{position:sticky;top:82px;border:1px solid rgba(30,115,190,.18);border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.10);padding:16px;display:flex;flex-direction:column;gap:12px;}
.cash-modern-panel-head,.cash-modern-total-row,.cash-modern-cart-line{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.cash-modern-panel-head strong{font-size:1.15rem;}.cash-modern-panel-head span{background:#eef2ff;color:#1e3a8a;border-radius:999px;padding:5px 10px;font-weight:800;}
.cash-modern-cart-lines{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto;padding-right:4px;}
.cash-modern-cart-line{font-size:.95rem;border-bottom:1px solid #eef2f7;padding-bottom:8px;}
.cash-modern-total-row{font-size:1.05rem;border-top:2px solid #e2e8f0;padding-top:12px;}.cash-modern-total-row strong{font-size:1.45rem;color:var(--cash-ok);}
.cash-modern-pay-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;}.cash-modern-pay-actions .cash-modern-primary-action{grid-column:1/-1;background:var(--cash-ok)!important;border-color:var(--cash-ok)!important;}
.cash-modern-primary-action,.cash-modern-secondary-action,.cash-modern-payment-grid .button,.shop-price-card .shop-cart-button,.cash-cart-account-submit{min-height:60px;font-size:1.05rem;font-weight:900;display:inline-flex;align-items:center;justify-content:center;}
.cash-modern-empty{margin:0;padding:12px;background:#f8fafc;border-radius:12px;}
.cash-category-tabs{position:sticky;top:70px;background:rgba(255,255,255,.96);z-index:4;padding:8px 0;}
.cash-category-tabs .shop-category-tab{min-height:52px;align-items:center;display:inline-flex;}
.cash-modern-checkout-card .shop-cart-table input[type="number"],.cash-modern-checkout-card input,.cash-modern-checkout-card select{min-height:46px;}
.cash-modern-checkout-steps{display:flex;gap:8px;flex-wrap:wrap}.cash-modern-checkout-steps span{background:#f1f5f9;border-radius:999px;padding:7px 10px;font-weight:800;color:#334155;}
.cash-modern-payment-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin:16px 0;}.cash-modern-payment-grid .shop-cart-button{background:var(--cash-ok)!important;border-color:var(--cash-ok)!important;}.cash-modern-payment-grid .button.secondary{background:#eef6ff!important;color:#0f4c81!important;border-color:#bfdbfe!important;}
.cash-cart-secondary-actions .danger,.shop-cart-remove,.cash-order-actions .danger{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important;}
.cash-account-booking-panel{border-left:5px solid var(--cash-warn);}.cash-tip-panel{border-left:5px solid var(--cash-info);}
.cash-modern-account-dashboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:16px 0;}.cash-modern-account-tile{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(15,23,42,.06);}.cash-modern-account-tile:hover,.cash-modern-account-tile.active{border-color:var(--cash-warn);box-shadow:0 12px 28px rgba(245,158,11,.18);transform:translateY(-1px);}.cash-modern-account-tile span{font-weight:900;color:#92400e;text-transform:uppercase;font-size:.78rem;letter-spacing:.03em;}.cash-modern-account-tile strong{font-size:1.25rem;}.cash-modern-account-tile em{font-style:normal;color:#334155;font-weight:800;}
.cash-account-compact-actions .shop-cart-button{background:var(--cash-ok)!important;border-color:var(--cash-ok)!important;}.shop-nav-button.active{box-shadow:inset 0 -3px 0 var(--cash-info);}
@media(max-width:1100px){.cash-modern-workspace{grid-template-columns:1fr;}.cash-modern-cart-panel{position:static;}.cash-modern-payment-grid{grid-template-columns:repeat(2,minmax(120px,1fr));}}
@media(max-width:720px){.cash-modern-sale-card{padding:12px;}.cash-modern-sale-header{display:block;}.cash-modern-mode-toggle{margin-top:8px;}.cash-modern-payment-grid,.cash-modern-pay-actions{grid-template-columns:1fr;}.shop-price-card .shop-cart-button,.cash-modern-primary-action,.cash-modern-secondary-action{width:100%;}.cash-modern-account-table{display:none;}.cash-category-tabs{top:0;overflow:auto;white-space:nowrap;}}

/* v17.60: Barverkauf-Dialog fuer bezahlten Betrag / Trinkgeld */
.cash-tip-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15, 23, 42, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.cash-tip-dialog-card {
  width: min(720px, 100%);
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28);
}
.cash-tip-dialog-card input[readonly] {
  background: #f3f4f6;
}
@media (max-width: 700px) {
  .cash-tip-dialog-card .inline-inputs {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* v17.66: Gast-/Tischkonto Kachelaktionen und Gastkorb */
.cash-modern-account-tile-wrap {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.cash-account-tile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.cash-account-new-cart {
  margin: 1rem 0;
}
.cash-modern-account-cart-panel .cash-modern-panel-head + .small {
  margin-top: .25rem;
}


/* v17.68: Gast-/Tischkonto Kacheln, Zahlen-Ansicht und dezentes Loeschen */
.cash-modern-account-tile-shell {
  position: relative;
}
.cash-account-delete-form {
  position: absolute;
  top: .45rem;
  right: .45rem;
  margin: 0;
}
.cash-account-delete-x {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  border: 1px solid #fecaca;
  background: #fff;
  color: #991b1b;
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(153,27,27,.12);
}
.cash-account-delete-x:hover {
  background: #fee2e2;
}
.cash-account-tile-actions .button {
  flex: 1 1 8rem;
  text-align: center;
}
.cash-modern-account-tile-shell .cash-modern-account-tile {
  min-height: 7rem;
}

/* v17.69: kleines Papierkorb-Symbol ohne Kachel-Ueberlagerung */
.cash-modern-account-tile-shell .cash-account-delete-form {
  position: absolute;
  top: .45rem;
  right: .45rem;
  width: auto;
  height: auto;
  z-index: 4;
  display: block;
  pointer-events: none;
}
.cash-modern-account-tile-shell .cash-account-delete-x {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  min-width: 2rem;
  min-height: 2rem;
  padding: 0;
  font-size: 1rem;
  line-height: 1;
}
.cash-modern-account-tile-shell .cash-account-delete-x span {
  display: block;
  transform: translateY(-1px);
}


/* v17.71: Gastkonto-Loeschen als gleich grosser Kachelbutton */
.cash-account-tile-actions .cash-account-tile-delete-form {
  flex: 1 1 8rem;
  display: flex;
  margin: 0;
}
.cash-account-tile-actions .cash-account-tile-delete-form .button {
  width: 100%;
}


/* v17.72: Gastkonto-Kachelbuttons exakt vereinheitlicht */
.cash-account-tile-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .4rem !important;
  align-items: stretch !important;
}
.cash-account-tile-actions > a,
.cash-account-tile-actions > form,
.cash-account-tile-actions > form > button {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}
.cash-account-tile-actions .button,
.cash-account-tile-actions .cash-account-tile-delete-form .button {
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 0 .75rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  border-radius: 10px !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  box-sizing: border-box !important;
}
.cash-account-tile-actions .cash-account-tile-delete-form {
  display: block !important;
  flex: none !important;
}
.cash-account-tile-actions .cash-account-tile-delete-form .button {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
  color: #fff !important;
}


/* v17.73: Eigene, identische Button-Typen nur fuer Gastkonto-Kacheln */
.cash-account-card-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .55rem !important;
  align-items: stretch !important;
}
.cash-account-card-actions .cash-account-card-form {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}
.cash-account-card-btn {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 0 12px !important;
  border-radius: 10px !important;
  border: 1px solid transparent !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  line-height: 1 !important;
  font: inherit !important;
  font-size: .92rem !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: none !important;
}
.cash-account-card-btn-order {
  background: #0b3572 !important;
  border-color: #0b3572 !important;
  color: #fff !important;
}
.cash-account-card-btn-delete {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
  color: #fff !important;
}
.cash-account-card-btn-pay {
  background: var(--tab-active-bg, #fff) !important;
  border-color: var(--tab-border, #cbd5e1) !important;
  color: var(--tab-active-color, #0b3572) !important;
}
.cash-account-card-btn:hover {
  filter: brightness(.98);
}

/* v17.78: Gastkonto-Loeschen exakt wie Zahlen-Button, nur rot befuellt */
.cash-account-card-actions {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .55rem !important;
  align-items: stretch !important;
}
.cash-account-card-actions .cash-account-card-form {
  display: block !important;
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.cash-account-card-actions .cash-account-card-btn,
.cash-account-card-actions a.cash-account-card-btn,
.cash-account-card-actions button.cash-account-card-btn {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 0 12px !important;
  margin: 0 !important;
  border-radius: 10px !important;
  border-width: 1px !important;
  border-style: solid !important;
  box-sizing: border-box !important;
  font: inherit !important;
  font-size: .92rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  vertical-align: top !important;
  cursor: pointer !important;
  box-shadow: none !important;
}
.cash-account-card-actions .cash-account-card-btn-pay {
  background: var(--tab-active-bg, #fff) !important;
  border-color: var(--tab-border, #cbd5e1) !important;
  color: var(--tab-active-color, #0b3572) !important;
}
.cash-account-card-actions .cash-account-card-btn-delete {
  background: #b91c1c !important;
  border-color: #b91c1c !important;
  color: #fff !important;
}


/* v17.79: Mobile Kalenderansicht scrollbar machen */
.booking-calendar-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  border-radius: 10px;
  margin-bottom: 24px;
}
.booking-calendar-scroll .booking-calendar-table {
  margin-bottom: 0;
}
@media (max-width: 720px) {
  .booking-calendar-scroll {
    max-height: calc(100vh - 190px);
    overflow: auto;
    border: 1px solid var(--tcn-border);
    background: #fff;
  }
  .booking-calendar-scroll .booking-calendar-table {
    display: table;
    min-width: max-content;
    width: auto;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .booking-calendar-scroll .booking-calendar-table th,
  .booking-calendar-scroll .booking-calendar-table td {
    min-width: 116px;
    white-space: nowrap;
  }
  .booking-calendar-scroll .booking-calendar-table th:first-child,
  .booking-calendar-scroll .booking-calendar-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 64px;
    width: 64px;
  }
  .booking-calendar-scroll .booking-calendar-table th:first-child {
    z-index: 4;
  }
  .booking-calendar-scroll .booking-calendar-table td:first-child {
    background: #fff;
    font-weight: 700;
    color: var(--tcn-blue);
  }
  .booking-calendar-scroll .booking-calendar-table th {
    position: sticky;
    top: 0;
    z-index: 3;
  }
}


/* v17.80: Mobile Kalender-Tabelle wirklich horizontal scrollbar machen */
.booking-calendar-scroll {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  box-sizing: border-box !important;
}
.booking-calendar-scroll > .booking-calendar-table {
  display: table !important;
  width: max-content !important;
  min-width: 100% !important;
  table-layout: auto !important;
}
.booking-calendar-scroll > .booking-calendar-table th,
.booking-calendar-scroll > .booking-calendar-table td {
  min-width: 132px !important;
  max-width: none !important;
  white-space: nowrap !important;
}
.booking-calendar-scroll > .booking-calendar-table th:first-child,
.booking-calendar-scroll > .booking-calendar-table td:first-child {
  min-width: 72px !important;
  width: 72px !important;
}
@media (max-width: 900px) {
  html, body { overflow-x: hidden !important; }
  .booking-calendar-scroll {
    border: 1px solid var(--tcn-border) !important;
    border-radius: 12px !important;
    background: #fff !important;
    max-height: calc(100vh - 170px) !important;
    overflow-x: scroll !important;
    overflow-y: auto !important;
  }
  .booking-calendar-scroll > .booking-calendar-table {
    display: table !important;
    width: max-content !important;
    min-width: 920px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .booking-calendar-scroll > .booking-calendar-table th,
  .booking-calendar-scroll > .booking-calendar-table td {
    min-width: 136px !important;
    width: 136px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .booking-calendar-scroll > .booking-calendar-table th:first-child,
  .booking-calendar-scroll > .booking-calendar-table td:first-child {
    position: sticky !important;
    left: 0 !important;
    z-index: 5 !important;
    min-width: 68px !important;
    width: 68px !important;
  }
  .booking-calendar-scroll > .booking-calendar-table th {
    position: sticky !important;
    top: 0 !important;
    z-index: 4 !important;
  }
  .booking-calendar-scroll > .booking-calendar-table th:first-child {
    z-index: 6 !important;
  }
}

/* v18.01: Sofort buchbare Plaetze als kleine rechteckige Kachel-Buttons und schmalere mobile Kalender-Spalten */
.instant-booking-dashboard{
  border-left:5px solid var(--tcn-green);
  padding:16px;
}
.instant-booking-dashboard h2{
  margin:0 0 12px 0;
  font-size:1.15rem;
}
.instant-booking-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:0;
}
.instant-booking-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,180px));
  gap:10px;
  align-items:stretch;
}
.instant-booking-tile{
  min-height:46px;
  border:1px solid rgba(25,118,210,.30);
  border-radius:10px;
  background:#1976d2;
  color:#fff;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:9px 12px;
  box-shadow:0 4px 12px rgba(25,118,210,.14);
  font-weight:800;
  line-height:1.15;
  touch-action:manipulation;
  box-sizing:border-box;
}
.instant-booking-tile:hover,
.instant-booking-tile:focus{
  background:#155fa8;
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(25,118,210,.20);
}
.instant-booking-tile strong{
  font-size:.95rem;
  font-weight:800;
  text-align:center;
}
@media (max-width: 720px){
  .instant-booking-dashboard{
    padding:12px;
  }
  .instant-booking-dashboard h2{
    font-size:1.05rem;
    margin-bottom:10px;
  }
  .instant-booking-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .instant-booking-tile{
    min-height:42px;
    border-radius:9px;
    padding:8px 7px;
  }
  .instant-booking-tile strong{
    font-size:.88rem;
  }
  .booking-calendar-scroll > .booking-calendar-table{
    min-width: 720px !important;
  }
  .booking-calendar-scroll > .booking-calendar-table th,
  .booking-calendar-scroll > .booking-calendar-table td{
    min-width:104px !important;
    width:104px !important;
    padding-left:5px !important;
    padding-right:5px !important;
    font-size:.82rem !important;
  }
  .booking-calendar-scroll > .booking-calendar-table th:first-child,
  .booking-calendar-scroll > .booking-calendar-table td:first-child{
    min-width:56px !important;
    width:56px !important;
  }
  .booking-calendar-table .slot-booked,
  .booking-calendar-table .slot-blocked,
  .booking-calendar-table .slot-past,
  .slot-free-link{
    padding:3px 6px !important;
    font-size:.74rem !important;
    min-width:auto !important;
  }
  .booking-players{
    font-size:.72rem !important;
    line-height:1.15 !important;
  }
}

/* v18.02: Schnellbuchen Dashboard und mobile Kalendernavigation */
.instant-booking-dashboard{
  border-left:5px solid #1976d2;
}
.instant-booking-head{
  margin-bottom:12px;
}
.instant-booking-head h2{
  margin:0;
}
.instant-direct-booking,
.instant-booking-tile{
  background:#1976d2 !important;
  color:#fff !important;
  border:1px solid #1976d2 !important;
  border-radius:10px;
  text-decoration:none !important;
  box-shadow:0 4px 12px rgba(25,118,210,.16);
}
.instant-direct-booking{
  min-height:42px;
  padding:9px 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  line-height:1.1;
  white-space:nowrap;
}
.instant-direct-booking:hover,
.instant-direct-booking:focus,
.instant-booking-tile:hover,
.instant-booking-tile:focus{
  background:#155fa8 !important;
  border-color:#155fa8 !important;
  color:#fff !important;
}
.instant-booking-grid{
  grid-template-columns:repeat(auto-fit,minmax(130px,170px));
}
.booking-toolbar .selected-date-line,
.booking-toolbar .date-nav-row,
.booking-toolbar .toolbar-actions{
  display:none !important;
}
.booking-calendar-heading-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:16px 0 10px;
}
.booking-calendar-heading-row .booking-calendar-heading{
  margin:0;
  text-align:center;
  flex:0 1 auto;
}
.booking-calendar-heading-row .date-nav.small-nav{
  min-width:42px;
  min-height:38px;
  padding:8px 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media (max-width:720px){
  .instant-booking-head{
    gap:8px;
  }
  .instant-direct-booking{
    min-height:38px;
    padding:8px 10px;
    font-size:.88rem;
  }
  .instant-booking-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .instant-booking-tile{
    min-height:40px;
    padding:8px 6px;
  }
  .booking-calendar-heading-row{
    gap:6px;
    margin:12px 0 8px;
  }
  .booking-calendar-heading-row .booking-calendar-heading{
    font-size:1rem;
  }
  .booking-calendar-heading-row .date-nav.small-nav{
    min-width:36px;
    min-height:34px;
    padding:6px 9px;
  }
}


/* v18.03: Schnellbuchen gelb, kompakte Button-Matrix und Kalender ohne Tabellen-Paging */
.instant-booking-dashboard{
  border-left:5px solid var(--tcn-yellow) !important;
}
.instant-booking-head{
  align-items:center;
  margin-bottom:10px;
}
.instant-direct-booking,
.instant-booking-tile{
  background:var(--tcn-yellow) !important;
  color:var(--tcn-blue) !important;
  border:1px solid #e8bd00 !important;
  text-decoration:none !important;
  border-radius:10px !important;
  box-shadow:0 4px 12px rgba(240,196,0,.18) !important;
}
.instant-direct-booking{
  min-height:42px;
  padding:9px 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  line-height:1.1;
  white-space:nowrap;
}
.instant-booking-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(120px,1fr)) !important;
  gap:8px !important;
  align-items:stretch;
}
.instant-booking-tile{
  min-height:42px !important;
  padding:8px 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
}
.instant-booking-tile strong{
  color:var(--tcn-blue) !important;
  font-size:.9rem !important;
  font-weight:800 !important;
  text-align:center !important;
}
.instant-direct-booking:hover,
.instant-direct-booking:focus,
.instant-booking-tile:hover,
.instant-booking-tile:focus{
  background:#e8bd00 !important;
  border-color:#d6ad00 !important;
  color:var(--tcn-blue) !important;
  transform:translateY(-1px);
}
.booking-toolbar .date-area{
  display:none !important;
}
.booking-toolbar .booking-toolbar-grid{
  grid-template-columns:1fr !important;
}
.booking-toolbar .view-area{
  justify-self:end;
}
.booking-calendar-heading-row{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  margin:14px 0 10px !important;
}
.booking-calendar-heading-row .booking-calendar-heading{
  margin:0 !important;
  text-align:center !important;
}
.booking-calendar-heading-row .date-nav.small-nav{
  min-width:40px !important;
  min-height:36px !important;
  padding:7px 11px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  font-size:1rem !important;
  line-height:1 !important;
}
.booking-calendar-scroll .table-pagination,
.booking-calendar-scroll + .table-pagination{
  display:none !important;
}
.booking-calendar-table[data-no-pagination="1"] tbody tr{
  display:table-row !important;
}
@media (max-width:720px){
  .instant-booking-head{
    flex-wrap:wrap;
  }
  .instant-direct-booking{
    width:100%;
  }
  .instant-booking-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .booking-toolbar .view-area{
    justify-self:stretch;
  }
  .booking-calendar-heading-row{
    gap:6px !important;
  }
  .booking-calendar-heading-row .booking-calendar-heading{
    font-size:1rem !important;
  }
  .booking-calendar-heading-row .date-nav.small-nav{
    min-width:36px !important;
    min-height:34px !important;
    padding:6px 9px !important;
  }
}


/* v18.04: sichtbare Schnellbuchen-Buttons und Cache-Busting-Fix */
.instant-booking-dashboard{
  border-left:5px solid #ffd21a !important;
  padding:14px !important;
}
.instant-booking-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  margin-bottom:10px !important;
}
.instant-booking-head h2{
  margin:0 !important;
}
.instant-direct-booking,
.instant-booking-tile{
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#ffd21a !important;
  color:#0055a4 !important;
  border:1px solid #e8bd00 !important;
  border-radius:10px !important;
  text-decoration:none !important;
  font-weight:800 !important;
  box-shadow:0 3px 10px rgba(0,0,0,.10) !important;
}
.instant-direct-booking{
  min-height:42px !important;
  padding:9px 15px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
}
.instant-booking-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(120px,1fr)) !important;
  gap:8px !important;
}
.instant-booking-tile{
  min-height:42px !important;
  padding:8px 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
.instant-booking-tile strong{
  color:#0055a4 !important;
  font-size:.9rem !important;
  font-weight:800 !important;
}
.instant-direct-booking:hover,
.instant-direct-booking:focus,
.instant-booking-tile:hover,
.instant-booking-tile:focus{
  background:#e8bd00 !important;
  border-color:#d6ad00 !important;
  color:#0055a4 !important;
  text-decoration:none !important;
}
.booking-toolbar .date-area,
.booking-toolbar .selected-date-line,
.booking-toolbar .date-nav-row,
.booking-toolbar .toolbar-actions{
  display:none !important;
}
.booking-calendar-heading-row{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  margin:14px 0 10px !important;
}
.booking-calendar-heading-row .booking-calendar-heading{
  margin:0 !important;
  text-align:center !important;
}
.booking-calendar-heading-row .date-nav.small-nav{
  min-width:40px !important;
  min-height:36px !important;
  padding:7px 11px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  line-height:1 !important;
}
.booking-calendar-scroll .table-pagination,
.booking-calendar-scroll + .table-pagination{
  display:none !important;
}
.booking-calendar-table[data-no-pagination="1"] tbody tr{
  display:table-row !important;
}
@media (max-width:720px){
  .instant-booking-head{flex-wrap:wrap !important;}
  .instant-direct-booking{width:100% !important;}
  .instant-booking-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}


/* v18.05: Kalendernavigation oben, Direktbuchung-Layout Desktop, sticky Zeitspalte */
.booking-toolbar-grid-v1805{
  display:grid !important;
  grid-template-columns:auto 1fr !important;
  align-items:center !important;
  gap:16px !important;
}
.booking-toolbar-grid-v1805 .view-area{
  justify-self:start !important;
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:10px !important;
}
.booking-toolbar-date-picker{
  max-width:160px !important;
  min-height:38px !important;
  padding:7px 9px !important;
}
.toolbar-date-nav-inline{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  min-width:0 !important;
}
.toolbar-date-label{
  color:#0055a4 !important;
  font-size:1.15rem !important;
  font-weight:900 !important;
  text-align:center !important;
  white-space:nowrap !important;
}
.booking-calendar-heading-row{display:none !important;}
.booking-calendar-anchor{scroll-margin-top:88px;}
.booking-calendar-scroll{
  position:relative !important;
  overflow:auto !important;
}
.booking-calendar-scroll > .booking-calendar-table th:first-child,
.booking-calendar-scroll > .booking-calendar-table td:first-child{
  position:sticky !important;
  left:0 !important;
  z-index:8 !important;
  box-shadow:2px 0 4px rgba(0,0,0,.08) !important;
}
.booking-calendar-scroll > .booking-calendar-table th:first-child{
  z-index:12 !important;
}
.booking-calendar-scroll > .booking-calendar-table th{
  position:sticky !important;
  top:0 !important;
  z-index:10 !important;
}
.booking-calendar-scroll > .booking-calendar-table th:first-child{
  z-index:13 !important;
}
@media (min-width:721px){
  .instant-booking-dashboard{display:grid !important;grid-template-columns:180px 1fr !important;align-items:start !important;gap:10px 14px !important;}
  .instant-booking-head{display:block !important;margin:0 !important;}
  .instant-direct-booking{width:100% !important;min-height:42px !important;margin-top:8px !important;}
  .instant-booking-grid{align-self:end !important;padding-top:34px !important;}
}
@media (max-width:720px){
  .booking-toolbar-grid-v1805{grid-template-columns:1fr !important;gap:10px !important;}
  .booking-toolbar-grid-v1805 .view-area{justify-content:center !important;}
  .toolbar-date-nav-inline{gap:6px !important;}
  .toolbar-date-label{font-size:1rem !important;white-space:normal !important;}
  .booking-toolbar-date-picker{max-width:150px !important;}
}

/* v18.06: naechster buchbarer Platz je Court und Direkt-Buchen-Dialog */
.instant-booking-tile{
  min-width:0 !important;
  white-space:normal !important;
}
.instant-booking-tile strong{
  color:#0055a4 !important;
  line-height:1.2 !important;
}
.instant-booking-empty{
  margin:8px 0 0 !important;
  color:#666 !important;
}
@media (min-width:721px){
  .instant-booking-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr)) !important;}
  .quick-booking-card{
    max-width:760px !important;
    margin:24px auto !important;
    border:1px solid rgba(0,85,164,.12) !important;
    box-shadow:0 18px 50px rgba(0,0,0,.16) !important;
  }
}

/* v18.07: Direkt-Buchen Verfuegbarkeitsstatus im Dialog */
.direct-booking-availability{
    grid-column: 1 / -1;
    border-radius: 10px;
    padding: 10px 12px;
    font-weight: 600;
    border: 1px solid rgba(0,0,0,.08);
}
.direct-booking-availability.ok{
    background: #e8f5e9;
    color: #1b5e20;
}
.direct-booking-availability.warning{
    background: #fff3cd;
    color: #7a5200;
}


/* v18.08: zentrale Datums-/KW-Steuerung mit nativem Datepicker */
.booking-toolbar-grid-v1808{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  text-align:center !important;
}
.booking-toolbar-grid-v1808 .view-area-centered{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  width:100% !important;
}
.toolbar-date-nav-v1808{
  width:100% !important;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:10px !important;
}
.toolbar-date-picker-label{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:220px !important;
  cursor:pointer !important;
  border-radius:10px !important;
  padding:6px 10px !important;
}
.toolbar-date-picker-label:hover{
  background:rgba(0,85,164,.08) !important;
}
.toolbar-date-picker-label .toolbar-date-label{
  pointer-events:none !important;
}
.toolbar-date-picker-native{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  opacity:0 !important;
  cursor:pointer !important;
  z-index:2 !important;
}
.toolbar-date-picker-native::-webkit-calendar-picker-indicator{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  opacity:0 !important;
  cursor:pointer !important;
}
@media (max-width:720px){
  .toolbar-date-picker-label{min-width:190px !important;padding:5px 6px !important;}
  .toolbar-date-nav-v1808{gap:6px !important;}
}


/* v18.09: Kalender-Zeitspalte einfrieren und Tabellenkopf fixieren */
.booking-calendar-scroll{
  position:relative !important;
  overflow:auto !important;
  max-width:100% !important;
  -webkit-overflow-scrolling:touch !important;
  isolation:isolate !important;
}
.booking-calendar-scroll > table.booking-calendar-table,
.booking-calendar-scroll > .booking-calendar-table{
  border-collapse:separate !important;
  border-spacing:0 !important;
}
.booking-calendar-scroll > .booking-calendar-table th,
.booking-calendar-scroll > .booking-calendar-table td{
  background-clip:padding-box !important;
}
.booking-calendar-scroll > .booking-calendar-table th{
  position:sticky !important;
  top:0 !important;
  z-index:30 !important;
  background:#eef5ff !important;
}
.booking-calendar-scroll > .booking-calendar-table th:first-child,
.booking-calendar-scroll > .booking-calendar-table td:first-child{
  position:sticky !important;
  left:0 !important;
  width:60px !important;
  min-width:60px !important;
  max-width:60px !important;
  z-index:40 !important;
  box-shadow:2px 0 5px rgba(0,0,0,.12) !important;
  white-space:nowrap !important;
}
.booking-calendar-scroll > .booking-calendar-table th:first-child{
  top:0 !important;
  z-index:60 !important;
  background:#0055a4 !important;
  color:#fff !important;
}
.booking-calendar-scroll > .booking-calendar-table td:first-child{
  z-index:45 !important;
  background:#fff !important;
  color:#0055a4 !important;
  font-weight:800 !important;
  text-align:center !important;
}
.booking-calendar-scroll > .booking-calendar-table tbody tr:nth-child(even) td:first-child{
  background:#fbfdff !important;
}
.booking-calendar-scroll > .booking-calendar-table tbody tr:hover td:first-child{
  background:#fff8dc !important;
}
@media (max-width:720px){
  .booking-calendar-scroll > .booking-calendar-table th:first-child,
  .booking-calendar-scroll > .booking-calendar-table td:first-child{
    width:56px !important;
    min-width:56px !important;
    max-width:56px !important;
  }
}

/* v18.10: Login-Screen mobil optimiert */
.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;
}
.auth-login-shell{
  min-height:calc(100vh - 260px);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:18px 0 36px;
}
.auth-login-card{
  width:min(100%,380px);
  margin:0 auto;
  padding:10px 8px 0;
}
.auth-login-logo{
  display:flex;
  justify-content:center;
  margin:0 0 26px;
}
.auth-login-logo img{
  width:min(230px,72vw);
  height:auto;
  display:block;
}
.auth-login-title{
  margin:0 0 14px;
  text-align:center;
  color:var(--tcn-blue);
  font-size:1.45rem;
  font-weight:800;
}
.auth-login-form{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
}
.auth-login-form input,
.auth-password-field input{
  width:100%;
  height:48px;
  border:1px solid #d7dde6;
  border-radius:6px;
  background:#e8eaee;
  color:var(--tcn-text);
  font-size:16px;
  padding:0 14px;
  box-shadow:none;
}
.auth-login-form input::placeholder{
  color:#9aa2ae;
}
.auth-password-field{
  position:relative;
  margin-top:10px;
}
.auth-password-field input{
  padding-right:52px;
}
.auth-password-toggle{
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  width:38px!important;
  height:34px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#6b7280!important;
  border-radius:18px!important;
  display:flex!important;
  align-items:center;
  justify-content:center;
  font-size:17px;
  line-height:1;
  box-shadow:none!important;
}
.auth-password-toggle:hover,
.auth-password-toggle:focus{
  background:rgba(8,40,95,.08)!important;
  color:var(--tcn-blue)!important;
}
.auth-primary-btn,
.auth-secondary-btn{
  width:100%;
  min-height:48px;
  border-radius:6px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:16px;
  font-weight:800;
  text-decoration:none!important;
  margin-top:10px;
  box-shadow:0 4px 10px rgba(8,40,95,.08);
}
.auth-primary-btn{
  background:var(--tcn-yellow)!important;
  color:var(--tcn-blue)!important;
  border:1px solid var(--tcn-yellow)!important;
}
.auth-primary-btn:hover,
.auth-primary-btn:focus{
  background:#e8bd00!important;
  color:var(--tcn-blue)!important;
}
.auth-secondary-btn{
  background:#fff!important;
  color:var(--tcn-text)!important;
  border:1px solid #eef1f5!important;
}
.auth-secondary-btn:hover,
.auth-secondary-btn:focus{
  background:#f8fafc!important;
  color:var(--tcn-blue)!important;
}
.auth-separator{
  display:flex;
  align-items:center;
  gap:12px;
  margin:28px 0 22px;
  color:#2f3541;
  font-weight:700;
}
.auth-separator::before,
.auth-separator::after{
  content:"";
  flex:1;
  height:1px;
  background:#d6dbe4;
}
.auth-separator span{
  padding:0 4px;
}
.auth-create-actions{
  display:grid;
  gap:10px;
}
.auth-create-actions .auth-secondary-btn{
  margin-top:0;
}
@media (max-width:640px){
  main.container{padding-top:18px;}
  .auth-login-shell{min-height:auto;padding-top:4px;}
  .auth-login-card{width:100%;max-width:360px;padding-left:0;padding-right:0;}
  .auth-login-logo{margin-bottom:24px;}
  .auth-login-title{display:none;}
}


/* v18.11: Login-Card und blaue Nebenaktionen */
.auth-login-card{
  background:#fff!important;
  border:1px solid rgba(255,255,255,.95)!important;
  border-radius:18px!important;
  padding:26px 22px 24px!important;
  box-shadow:0 12px 32px rgba(8,40,95,.13)!important;
}
.auth-password-toggle{
  background:var(--tcn-blue)!important;
  color:#fff!important;
  border:1px solid var(--tcn-blue)!important;
  box-shadow:0 3px 8px rgba(8,40,95,.18)!important;
}
.auth-password-toggle:hover,
.auth-password-toggle:focus{
  background:var(--tcn-blue-2)!important;
  color:#fff!important;
}
.auth-create-actions .auth-secondary-btn{
  background:var(--tcn-blue)!important;
  color:#fff!important;
  border:1px solid var(--tcn-blue)!important;
  box-shadow:0 4px 10px rgba(8,40,95,.16)!important;
}
.auth-create-actions .auth-secondary-btn:hover,
.auth-create-actions .auth-secondary-btn:focus{
  background:var(--tcn-blue-2)!important;
  color:#fff!important;
}
@media (max-width:640px){
  .auth-login-card{
    max-width:360px!important;
    padding:22px 16px 20px!important;
    border-radius:16px!important;
  }
}

/* v18.12: Rollenbasiertes Dashboard mit vier Domaenen-Kacheln */
.dashboard-welcome-card{
  text-align:center;
  max-width:1120px;
  margin:0 auto 18px auto;
}
.dashboard-welcome-card h2{
  margin-bottom:6px;
}
.dashboard-domain-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(170px,1fr));
  gap:18px;
  width:100%;
  max-width:1120px;
  margin:0 auto 24px auto;
  align-items:stretch;
}
.dashboard-domain-tile{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:190px;
  padding:22px 18px;
  border-radius:22px;
  background:#fff;
  border:2px solid rgba(0,59,121,.12);
  color:var(--tcn-blue);
  text-decoration:none !important;
  box-shadow:0 12px 30px rgba(8,40,95,.12);
  text-align:center;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
  box-sizing:border-box;
}
.dashboard-domain-tile:hover,
.dashboard-domain-tile:focus{
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(8,40,95,.18);
  border-color:var(--tcn-blue);
  color:var(--tcn-blue);
  outline:none;
}
.dashboard-domain-icon{
  font-size:2.6rem;
  line-height:1;
  margin-bottom:12px;
}
.dashboard-domain-label{
  display:block;
  font-size:1.25rem;
  line-height:1.15;
  font-weight:900;
  color:var(--tcn-blue);
}
.dashboard-domain-text{
  display:block;
  margin-top:8px;
  font-size:.95rem;
  line-height:1.25;
  color:#475569;
  font-weight:700;
}
.dashboard-domain-booking{border-color:rgba(0,59,121,.28);}
.dashboard-domain-work{border-color:rgba(240,196,0,.45);}
.dashboard-domain-shop{border-color:rgba(0,59,121,.18);}
.dashboard-domain-cashdesk{border-color:rgba(240,196,0,.35);}
.dashboard-empty-card{
  grid-column:1/-1;
}
@media (max-width: 900px){
  .dashboard-domain-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
  .dashboard-domain-tile{
    min-height:150px;
    padding:18px 12px;
    border-radius:18px;
  }
  .dashboard-domain-icon{font-size:2.1rem;margin-bottom:9px;}
  .dashboard-domain-label{font-size:1.05rem;}
  .dashboard-domain-text{font-size:.86rem;}
}
@media (max-width: 380px){
  .dashboard-domain-grid{
    grid-template-columns:1fr;
  }
}


/* v18.13: Platzbuchung im Dashboard-Look-and-Feel */
.booking-shell-card,
.instant-booking-dashboard,
.quick-booking-card,
.booking-calendar-card{
  background:#fff !important;
  border:2px solid rgba(0,59,121,.10) !important;
  border-radius:22px !important;
  box-shadow:0 12px 30px rgba(8,40,95,.10) !important;
  padding:20px !important;
  box-sizing:border-box !important;
}
.booking-shell-card{
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.booking-toolbar-grid-v1808 .view-title{
  color:var(--tcn-blue) !important;
  font-size:1.35rem !important;
  font-weight:900 !important;
  line-height:1.15 !important;
}
.view-icon-row{
  justify-content:center !important;
}
.view-icon-btn{
  min-width:42px !important;
  min-height:38px !important;
  border-radius:12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  font-weight:900 !important;
}
.toolbar-date-nav-v1808 .date-nav.small-nav{
  min-width:42px !important;
  min-height:38px !important;
  border-radius:12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
}
.toolbar-date-picker-label{
  border:1px solid rgba(0,59,121,.13) !important;
  background:#f8fbff !important;
  box-shadow:0 6px 18px rgba(8,40,95,.06) !important;
}
.toolbar-date-picker-label:hover,
.toolbar-date-picker-label:focus-within{
  background:#eef5ff !important;
  border-color:rgba(0,59,121,.28) !important;
}
.instant-booking-dashboard{
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.instant-booking-dashboard h2,
.quick-booking-card h2,
.booking-calendar-card-title{
  margin:0 0 12px 0 !important;
  color:var(--tcn-blue) !important;
  font-size:1.35rem !important;
  font-weight:900 !important;
  line-height:1.18 !important;
}
.instant-booking-head{
  align-items:stretch !important;
}
.instant-direct-booking,
.instant-booking-tile{
  border-radius:14px !important;
  min-height:46px !important;
  text-decoration:none !important;
  box-shadow:0 8px 18px rgba(8,40,95,.10) !important;
}
.instant-booking-tile strong{
  color:inherit !important;
}
.booking-calendar-card{
  max-width:1120px !important;
  margin:18px auto 0 auto !important;
  overflow:hidden !important;
}
.booking-calendar-card-title{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
}
.booking-calendar-card-title::before{
  content:"🎾";
  font-size:1.15em;
  line-height:1;
}
.booking-day-heading{
  margin:18px 0 10px !important;
  padding-left:12px !important;
  color:var(--tcn-blue) !important;
  font-weight:900 !important;
}
.booking-calendar-scroll{
  border:1px solid rgba(0,59,121,.10) !important;
  border-radius:16px !important;
  background:#fff !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45) !important;
}
.booking-calendar-scroll > .booking-calendar-table{
  box-shadow:none !important;
  border-radius:0 !important;
}
.booking-calendar-scroll > .booking-calendar-table th{
  background:#eef5ff !important;
  color:var(--tcn-blue) !important;
}
.booking-calendar-scroll > .booking-calendar-table th:first-child{
  background:var(--tcn-blue) !important;
  color:#fff !important;
}
.booking-calendar-scroll > .booking-calendar-table td:first-child{
  background:#f8fbff !important;
  color:var(--tcn-blue) !important;
}
.slot-free-link{
  text-decoration:none !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:28px !important;
  padding:4px 10px !important;
  font-weight:900 !important;
}
@media (min-width:721px){
  .instant-booking-dashboard{
    grid-template-columns:210px 1fr !important;
    gap:12px 18px !important;
  }
  .instant-booking-grid{
    padding-top:36px !important;
  }
}
@media (max-width:720px){
  .booking-shell-card,
  .instant-booking-dashboard,
  .quick-booking-card,
  .booking-calendar-card{
    border-radius:18px !important;
    padding:14px !important;
  }
  .booking-toolbar-grid-v1808 .view-title,
  .instant-booking-dashboard h2,
  .quick-booking-card h2,
  .booking-calendar-card-title{
    font-size:1.15rem !important;
  }
  .toolbar-date-picker-label{
    min-width:0 !important;
    max-width:100% !important;
  }
}


/* v18.14: Platzbuchung - Fokus oben halten und Zeitspalte robust einfrieren */
.booking-overview-anchor{
  display:block !important;
  position:relative !important;
  top:-88px !important;
  visibility:hidden !important;
}
.booking-calendar-anchor{
  scroll-margin-top:88px !important;
}
.booking-calendar-card{
  overflow:visible !important;
}
.booking-calendar-scroll{
  position:relative !important;
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  overflow-x:auto !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior-x:contain !important;
}
.booking-calendar-scroll > table.booking-calendar-table{
  border-collapse:separate !important;
  border-spacing:0 !important;
  table-layout:fixed !important;
}
.booking-calendar-scroll > table.booking-calendar-table th,
.booking-calendar-scroll > table.booking-calendar-table td{
  min-width:104px !important;
  box-sizing:border-box !important;
}
.booking-calendar-scroll > table.booking-calendar-table th{
  position:sticky !important;
  top:0 !important;
  z-index:40 !important;
}
.booking-calendar-scroll > table.booking-calendar-table th:first-child,
.booking-calendar-scroll > table.booking-calendar-table td:first-child{
  position:sticky !important;
  left:0 !important;
  width:60px !important;
  min-width:60px !important;
  max-width:60px !important;
  box-sizing:border-box !important;
  box-shadow:2px 0 0 rgba(0,59,121,.12) !important;
  background-clip:padding-box !important;
}
.booking-calendar-scroll > table.booking-calendar-table th:first-child{
  top:0 !important;
  z-index:60 !important;
  background:var(--tcn-blue) !important;
  color:#fff !important;
}
.booking-calendar-scroll > table.booking-calendar-table td:first-child{
  z-index:35 !important;
  background:#f8fbff !important;
  color:var(--tcn-blue) !important;
  font-weight:900 !important;
}
.booking-calendar-scroll > table.booking-calendar-table tbody tr:nth-child(even) td:first-child,
.booking-calendar-scroll > table.booking-calendar-table tbody tr:hover td:first-child{
  background:#f8fbff !important;
}
@media (max-width:720px){
  .booking-calendar-scroll > table.booking-calendar-table th,
  .booking-calendar-scroll > table.booking-calendar-table td{
    min-width:96px !important;
  }
  .booking-calendar-scroll > table.booking-calendar-table th:first-child,
  .booking-calendar-scroll > table.booking-calendar-table td:first-child{
    width:56px !important;
    min-width:56px !important;
    max-width:56px !important;
  }
}


/* v18.15: Platzbuchung - einheitliche Breite der Hauptbereiche */
.booking-page-width,
.my-bookings-panel,
.instant-booking-dashboard,
.booking-shell-card,
.quick-booking-card,
.booking-calendar-card,
.open-court-my-bookings{
  width:100% !important;
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
}
.my-bookings-panel,
.instant-booking-dashboard,
.booking-shell-card,
.quick-booking-card,
.booking-calendar-card,
.open-court-my-bookings{
  margin-top:18px !important;
}
.my-bookings-panel:first-child,
.instant-booking-dashboard:first-child,
.booking-shell-card:first-child{
  margin-top:0 !important;
}
.quick-booking-card{
  max-width:1120px !important;
}
@media (max-width:1160px){
  .my-bookings-panel,
  .instant-booking-dashboard,
  .booking-shell-card,
  .quick-booking-card,
  .booking-calendar-card,
  .open-court-my-bookings{
    max-width:calc(100vw - 24px) !important;
  }
}

/* v18.16: Kasse im Dashboard-Look-and-Feel */
.cashdesk-ui{
  width:100% !important;
  box-sizing:border-box !important;
}
.cashdesk-ui > .card,
.cashdesk-dashboard-card,
.cashdesk-ui .shop-content-card,
.cashdesk-ui .cash-modern-checkout-card,
.cashdesk-ui .cash-modern-sale-card,
.cashdesk-ui .cash-modern-account-detail-card{
  width:100% !important;
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  box-sizing:border-box !important;
  background:#fff !important;
  border:2px solid rgba(0,59,121,.10) !important;
  border-radius:22px !important;
  box-shadow:0 12px 30px rgba(8,40,95,.10) !important;
  padding:20px !important;
}
.cashdesk-ui > .card + .card,
.cashdesk-ui .card + .card{
  margin-top:18px !important;
}
.cashdesk-nav-card{
  margin-bottom:18px !important;
}
.cashdesk-ui .shop-section-header,
.cashdesk-ui .cash-modern-sale-header,
.cashdesk-dashboard-head{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:4px !important;
  margin-bottom:16px !important;
}
.cashdesk-ui .shop-section-header h3,
.cashdesk-ui .cash-modern-sale-header h3,
.cashdesk-dashboard-head h2{
  margin:0 !important;
  color:var(--tcn-blue) !important;
  font-size:1.35rem !important;
  font-weight:900 !important;
  line-height:1.18 !important;
}
.cashdesk-dashboard-head .small{margin:0!important;}
.cashdesk-domain-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important;
  gap:18px !important;
  width:100% !important;
  align-items:stretch !important;
}
.cashdesk-domain-tile{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:170px !important;
  padding:20px 16px !important;
  border-radius:22px !important;
  background:#fff !important;
  border:2px solid rgba(0,59,121,.12) !important;
  color:var(--tcn-blue) !important;
  text-decoration:none !important;
  box-shadow:0 12px 30px rgba(8,40,95,.12) !important;
  text-align:center !important;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease !important;
  box-sizing:border-box !important;
}
.cashdesk-domain-tile:hover,
.cashdesk-domain-tile:focus{
  transform:translateY(-2px) !important;
  box-shadow:0 16px 34px rgba(8,40,95,.18) !important;
  border-color:var(--tcn-blue) !important;
  color:var(--tcn-blue) !important;
  outline:none !important;
}
.cashdesk-domain-icon{
  font-size:2.35rem !important;
  line-height:1 !important;
  margin-bottom:12px !important;
}
.cashdesk-domain-label{
  display:block !important;
  font-size:1.16rem !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  color:var(--tcn-blue) !important;
}
.cashdesk-domain-text{
  display:block !important;
  margin-top:8px !important;
  font-size:.92rem !important;
  line-height:1.25 !important;
  color:#475569 !important;
  font-weight:700 !important;
}
.cashdesk-domain-sale{border-color:rgba(240,196,0,.45)!important;}
.cashdesk-domain-accounts{border-color:rgba(0,59,121,.20)!important;}
.cashdesk-domain-cart{border-color:rgba(240,196,0,.35)!important;}
.cashdesk-domain-balance{border-color:rgba(0,59,121,.18)!important;}
.cashdesk-domain-orders{border-color:rgba(0,59,121,.18)!important;}
.cashdesk-ui .shop-header-actions.shop-main-actions{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(155px,1fr)) !important;
  gap:.65rem !important;
  width:100% !important;
}
.cashdesk-ui .shop-header-actions.shop-main-actions .shop-nav-button{
  width:100% !important;
  min-width:0 !important;
  min-height:48px !important;
  border-radius:14px !important;
  box-shadow:0 8px 18px rgba(8,40,95,.08) !important;
}
.cashdesk-ui .admin-action-panel,
.cashdesk-ui .cash-tip-panel,
.cashdesk-ui .cash-member-booking-panel,
.cashdesk-ui .cash-account-booking-panel{
  border:1px solid rgba(0,59,121,.12) !important;
  border-radius:18px !important;
  background:#f8fbff !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55) !important;
}
.cashdesk-ui .cash-modern-account-dashboard,
.cashdesk-ui .cash-modern-payment-grid,
.cashdesk-ui .cash-modern-summary-grid{
  gap:14px !important;
}
.cashdesk-ui .cash-modern-account-tile-shell,
.cashdesk-ui .cash-modern-account-tile,
.cashdesk-ui .shop-article-card,
.cashdesk-ui .shop-group-card{
  border-radius:18px !important;
  box-shadow:0 10px 24px rgba(8,40,95,.08) !important;
}
.cashdesk-ui .table-scroll{
  border-radius:16px !important;
  border:1px solid rgba(0,59,121,.10) !important;
  background:#fff !important;
}
@media (max-width:1160px){
  .cashdesk-ui > .card,
  .cashdesk-dashboard-card,
  .cashdesk-ui .shop-content-card,
  .cashdesk-ui .cash-modern-checkout-card,
  .cashdesk-ui .cash-modern-sale-card,
  .cashdesk-ui .cash-modern-account-detail-card{
    max-width:calc(100vw - 24px) !important;
  }
}
@media (max-width:720px){
  .cashdesk-ui > .card,
  .cashdesk-dashboard-card,
  .cashdesk-ui .shop-content-card,
  .cashdesk-ui .cash-modern-checkout-card,
  .cashdesk-ui .cash-modern-sale-card,
  .cashdesk-ui .cash-modern-account-detail-card{
    border-radius:18px !important;
    padding:14px !important;
  }
  .cashdesk-domain-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
  }
  .cashdesk-domain-tile{
    min-height:142px !important;
    padding:16px 10px !important;
    border-radius:18px !important;
  }
  .cashdesk-domain-icon{font-size:2rem!important;margin-bottom:9px!important;}
  .cashdesk-domain-label{font-size:1.02rem!important;}
  .cashdesk-domain-text{font-size:.84rem!important;}
}
@media (max-width:380px){
  .cashdesk-domain-grid{grid-template-columns:1fr!important;}
}

/* v18.17: mobile Datumsnavigation, Cashdesk Desktop-Breite und Sticky-Warenkorb */
@media (max-width:720px){
  .toolbar-date-nav-v1808{
    display:grid !important;
    grid-template-columns:36px minmax(0,1fr) 36px !important;
    gap:6px !important;
    width:100% !important;
    align-items:center !important;
  }
  .toolbar-date-nav-v1808 .date-nav.small-nav{
    min-width:36px !important;
    width:36px !important;
    min-height:36px !important;
    height:36px !important;
    padding:0 !important;
    border-radius:10px !important;
    font-size:.95rem !important;
    line-height:1 !important;
  }
  .toolbar-date-picker-label{
    min-width:0 !important;
    width:100% !important;
    max-width:100% !important;
    padding:6px 4px !important;
    box-sizing:border-box !important;
  }
  .toolbar-date-label{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
    font-size:.92rem !important;
    line-height:1.15 !important;
  }
}
@media (max-width:390px){
  .toolbar-date-label{font-size:.86rem !important;}
  .toolbar-date-nav-v1808{grid-template-columns:32px minmax(0,1fr) 32px !important;gap:5px !important;}
  .toolbar-date-nav-v1808 .date-nav.small-nav{width:32px!important;min-width:32px!important;height:34px!important;min-height:34px!important;}
}

@media (min-width:1101px){
  .cashdesk-ui .cash-modern-sale-card{
    max-width:min(1560px, calc(100vw - 40px)) !important;
  }
  .cashdesk-ui .cash-modern-workspace{
    grid-template-columns:minmax(0,1fr) 380px !important;
    gap:22px !important;
  }
  .cashdesk-ui .cash-modern-article-zone{min-width:0 !important;}
  .cashdesk-ui .cash-modern-article-zone .shop-article-grid,
  .cashdesk-ui .cash-modern-article-zone .shop-price-card-grid{
    grid-template-columns:repeat(auto-fill,minmax(220px,1fr)) !important;
  }
  .cashdesk-ui .cash-modern-article-zone .shop-card-add-form{
    grid-template-columns:1fr !important;
  }
  .cashdesk-ui .cash-modern-article-zone .shop-cart-button{
    width:100% !important;
    min-width:0 !important;
    white-space:normal !important;
  }
}

@media (max-width:1100px){
  .cashdesk-ui .cash-modern-workspace{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .cashdesk-ui .cash-modern-cart-panel{
    order:-1 !important;
    position:sticky !important;
    top:8px !important;
    z-index:70 !important;
    max-height:45vh !important;
    overflow:auto !important;
    border-radius:18px !important;
  }
  .cashdesk-ui .cash-modern-cart-lines{max-height:130px !important;}
  .cashdesk-ui .cash-modern-pay-actions{grid-template-columns:1fr 1fr !important;}
  .cashdesk-ui .cash-modern-pay-actions .cash-modern-primary-action{grid-column:1/-1 !important;}
}
@media (max-width:520px){
  .cashdesk-ui .cash-modern-cart-panel{
    top:6px !important;
    padding:12px !important;
    max-height:52vh !important;
  }
  .cashdesk-ui .cash-modern-panel-head strong{font-size:1rem !important;}
  .cashdesk-ui .cash-modern-total-row strong{font-size:1.2rem !important;}
  .cashdesk-ui .cash-modern-pay-actions{gap:8px !important;}
  .cashdesk-ui .cash-modern-pay-actions .button{min-height:42px !important;font-size:.92rem !important;}
}

/* v18.17: robuste Sticky-Zeitspalte im Kalender */
.booking-calendar-scroll{
  overflow:auto !important;
  max-width:100% !important;
  position:relative !important;
  -webkit-overflow-scrolling:touch !important;
  isolation:isolate !important;
}
.booking-calendar-scroll > table.booking-calendar-table{
  border-collapse:separate !important;
  border-spacing:0 !important;
}
.booking-calendar-scroll > table.booking-calendar-table th{
  position:sticky !important;
  top:0 !important;
  z-index:50 !important;
  background:#eef5ff !important;
}
.booking-calendar-scroll > table.booking-calendar-table th:first-child,
.booking-calendar-scroll > table.booking-calendar-table td:first-child{
  position:sticky !important;
  left:0 !important;
  z-index:70 !important;
  width:58px !important;
  min-width:58px !important;
  max-width:58px !important;
  background:#f8fbff !important;
  color:var(--tcn-blue) !important;
  text-align:center !important;
  font-weight:900 !important;
  box-shadow:3px 0 0 rgba(0,59,121,.16) !important;
  background-clip:padding-box !important;
}
.booking-calendar-scroll > table.booking-calendar-table th:first-child{
  z-index:90 !important;
  background:var(--tcn-blue) !important;
  color:#fff !important;
}
@media (max-width:720px){
  .booking-calendar-scroll > table.booking-calendar-table th:first-child,
  .booking-calendar-scroll > table.booking-calendar-table td:first-child{
    width:54px !important;
    min-width:54px !important;
    max-width:54px !important;
  }
}


/* v18.18: mobiler Kassenkorb als fixe Bottom-Bar nur auf Mobilgeraeten */
@media (max-width:720px){
  .cashdesk-ui .cash-modern-workspace{
    padding-bottom:96px !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:calc(10px + env(safe-area-inset-bottom)) !important;
    top:auto !important;
    z-index:1200 !important;
    max-height:none !important;
    overflow:visible !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:10px !important;
    padding:10px 12px !important;
    border-radius:18px !important;
    box-shadow:0 18px 40px rgba(15,23,42,.24) !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-empty,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-cart-lines{
    display:none !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-panel-head{
    flex:1 1 auto !important;
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    gap:2px !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-panel-head strong{
    font-size:.95rem !important;
    line-height:1.1 !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-panel-head span{
    padding:3px 8px !important;
    font-size:.78rem !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-total-row{
    flex:0 0 auto !important;
    border-top:0 !important;
    padding-top:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-end !important;
    justify-content:center !important;
    gap:1px !important;
    white-space:nowrap !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-total-row span{
    font-size:.72rem !important;
    color:#64748b !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-total-row strong{
    font-size:1.08rem !important;
    line-height:1.1 !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-pay-actions{
    flex:0 0 auto !important;
    display:flex !important;
    gap:0 !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-pay-actions .cash-modern-secondary-action{
    display:none !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-pay-actions .cash-modern-primary-action{
    min-height:42px !important;
    width:auto !important;
    min-width:108px !important;
    padding:0 12px !important;
    font-size:.92rem !important;
    border-radius:12px !important;
    white-space:nowrap !important;
  }
}
@media (min-width:721px){
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    bottom:auto !important;
  }
}


/* v18.19: Kasse Desktop-/Browser-Layout verbreitern, Mobil unveraendert lassen */
@media (min-width:721px){
  main.container:has(.cashdesk-ui){
    max-width:1680px !important;
    width:100% !important;
    padding-left:24px !important;
    padding-right:24px !important;
    box-sizing:border-box !important;
  }
  .cashdesk-ui > .card,
  .cashdesk-dashboard-card,
  .cashdesk-ui .shop-content-card,
  .cashdesk-ui .cash-modern-checkout-card,
  .cashdesk-ui .cash-modern-sale-card,
  .cashdesk-ui .cash-modern-account-detail-card{
    max-width:1560px !important;
  }
  .cashdesk-ui .cash-modern-sale-card{
    padding:22px !important;
  }
  .cashdesk-ui .shop-header-actions.shop-main-actions{
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important;
  }
}
@media (min-width:1000px){
  .cashdesk-ui .cash-modern-workspace{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 400px !important;
    gap:24px !important;
    align-items:start !important;
  }
  .cashdesk-ui .cash-modern-article-zone{
    min-width:0 !important;
  }
  .cashdesk-ui .cash-modern-cart-panel{
    position:sticky !important;
    top:16px !important;
    align-self:start !important;
    max-height:calc(100vh - 32px) !important;
    overflow:auto !important;
  }
  .cashdesk-ui .cash-modern-article-zone .shop-article-grid,
  .cashdesk-ui .cash-modern-article-zone .shop-price-card-grid{
    grid-template-columns:repeat(auto-fill,minmax(190px,1fr)) !important;
    gap:14px !important;
  }
  .cashdesk-ui .cash-modern-article-zone .shop-card-add-form{
    grid-template-columns:1fr !important;
  }
  .cashdesk-ui .cash-modern-article-zone .shop-cart-button{
    width:100% !important;
    min-width:0 !important;
    white-space:normal !important;
    line-height:1.18 !important;
    min-height:44px !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }
}
@media (min-width:1300px){
  .cashdesk-ui .cash-modern-workspace{
    grid-template-columns:minmax(0,1fr) 420px !important;
  }
  .cashdesk-ui .cash-modern-article-zone .shop-article-grid,
  .cashdesk-ui .cash-modern-article-zone .shop-price-card-grid{
    grid-template-columns:repeat(auto-fill,minmax(210px,1fr)) !important;
  }
}


/* v18.20: Mobile Kassenkorb-Bottom-Bar oeffnet immer den vollstaendigen Kassenkorb */
@media (max-width:720px){
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url]{
    cursor:pointer !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-primary-action{
    pointer-events:auto !important;
  }
}


/* v18.21: Kassenkorb-Bottom-Bar auch fuer Tablets, Desktop unveraendert */
@media (min-width:721px) and (max-width:1100px){
  .cashdesk-ui .cash-modern-workspace{
    padding-bottom:104px !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url]{
    position:fixed !important;
    left:16px !important;
    right:16px !important;
    bottom:calc(14px + env(safe-area-inset-bottom)) !important;
    top:auto !important;
    z-index:1200 !important;
    max-height:none !important;
    overflow:visible !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:14px !important;
    padding:12px 16px !important;
    border-radius:18px !important;
    box-shadow:0 18px 40px rgba(15,23,42,.24) !important;
    cursor:pointer !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-empty,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-cart-lines{
    display:none !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-panel-head{
    flex:1 1 auto !important;
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    gap:3px !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-total-row{
    flex:0 0 auto !important;
    border-top:0 !important;
    padding-top:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-end !important;
    justify-content:center !important;
    white-space:nowrap !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-pay-actions{
    flex:0 0 auto !important;
    display:flex !important;
    gap:0 !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-pay-actions .cash-modern-secondary-action{
    display:none !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url] .cash-modern-pay-actions .cash-modern-primary-action{
    min-height:44px !important;
    width:auto !important;
    min-width:128px !important;
    padding:0 16px !important;
    border-radius:12px !important;
    white-space:nowrap !important;
    pointer-events:auto !important;
  }
}
@media (min-width:1101px){
  .cashdesk-ui .cash-modern-workspace{
    padding-bottom:0 !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url]{
    position:sticky !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    top:16px !important;
  }
}

/* v18.23 Profilbereich im Dashboard-Look */
.profile-dashboard-layout{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  display:grid;
  gap:18px;
}
.profile-dashboard-layout .card{
  margin-bottom:0;
  border-radius:18px;
  border:1px solid #e2e8f0;
  box-shadow:0 8px 24px rgba(15,23,42,.08);
}
.profile-hero-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:linear-gradient(135deg,#ffffff,#f8fafc);
}
.profile-hero-main h2{
  margin:.15rem 0 .3rem;
  color:var(--tcn-blue);
  font-size:clamp(1.55rem,3vw,2.15rem);
}
.profile-hero-main p{
  margin:0;
  color:#64748b;
  font-weight:700;
}
.profile-hero-eyebrow{
  display:inline-block;
  color:var(--tcn-blue-2);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.profile-hero-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}
.profile-domain-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:.65rem 1rem;
  border-radius:999px;
  background:var(--tcn-blue);
  color:#fff!important;
  text-decoration:none;
  font-weight:800;
  box-shadow:0 4px 12px rgba(8,40,95,.16);
}
.profile-domain-chip:hover{background:var(--tcn-blue-2);}
.profile-nav-card{padding:14px!important;}
.profile-content-card{padding:20px!important;}
.profile-dashboard-layout .profile-tabs{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  border:0;
}
.profile-dashboard-layout .profile-tabs .tab{
  border-radius:999px;
  border:1px solid #d8e0ea;
  background:#fff;
  color:var(--tcn-blue)!important;
  text-decoration:none;
  padding:.65rem 1rem;
  font-weight:800;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
}
.profile-dashboard-layout .profile-tabs .tab.active,
.profile-dashboard-layout .profile-tabs .tab:hover{
  background:var(--tcn-blue)!important;
  color:#fff!important;
  border-color:var(--tcn-blue);
}
.profile-dashboard-layout h3{
  margin-top:1rem;
}
.profile-dashboard-layout .profile-form{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin-bottom:0!important;
}
@media(max-width:700px){
  .profile-hero-card{display:block;}
  .profile-hero-actions{justify-content:flex-start;margin-top:14px;}
  .profile-domain-chip{width:100%;}
  .profile-content-card{padding:14px!important;}
  .profile-dashboard-layout .profile-tabs .tab{flex:1 1 140px;text-align:center;}
}


/* v18.24: Profil-Daten mobil/tablet und Dashboard-Breite */
.dashboard-welcome-card{
  max-width:1120px !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.profile-dashboard-layout .profile-content-card > .small:first-child{
  margin-top:0;
  max-width:760px;
}
#profileDataForm,
#profilePasswordForm{
  width:100%;
  box-sizing:border-box;
}
#profileDataForm label,
#profilePasswordForm label{
  min-width:0;
}
#profileDataForm input,
#profileDataForm textarea,
#profilePasswordForm input{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
#profileDataForm .compact-check{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid #d8e0ea;
  border-radius:12px;
  background:#f8fafc;
  box-sizing:border-box;
}
#profileDataForm .compact-check input{
  flex:0 0 auto;
}
#profileDataForm p,
#profilePasswordForm p{
  margin:0;
}
@media (min-width:701px) and (max-width:1024px){
  .profile-dashboard-layout{
    max-width:920px;
    padding-left:10px;
    padding-right:10px;
    box-sizing:border-box;
  }
  .profile-hero-card{
    align-items:flex-start;
  }
  .profile-hero-actions{
    min-width:220px;
  }
  .profile-dashboard-layout .profile-form{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
  }
  #profileDataForm label:has(textarea),
  #profileDataForm p,
  #profilePasswordForm p{
    grid-column:1/-1;
  }
}
@media (max-width:700px){
  .profile-dashboard-layout{
    gap:12px;
    padding-left:8px;
    padding-right:8px;
    box-sizing:border-box;
  }
  .profile-nav-card{
    padding:10px!important;
  }
  .profile-content-card{
    padding:14px 12px!important;
  }
  .profile-dashboard-layout .profile-form{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:11px!important;
  }
  #profileDataForm button,
  #profilePasswordForm button{
    width:100%;
    min-height:46px;
  }
  #profileDataForm textarea{
    min-height:104px;
  }
  .profile-dashboard-layout hr{
    margin:18px 0;
  }
  .profile-dashboard-layout h3{
    margin-top:.6rem;
    font-size:1.12rem;
  }
}
@media (max-width:430px){
  .profile-hero-main h2{
    font-size:1.45rem;
  }
  .profile-hero-main p{
    overflow-wrap:anywhere;
  }
  .profile-dashboard-layout .profile-tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .profile-dashboard-layout .profile-tabs .tab{
    flex:none;
    padding:.62rem .55rem;
    font-size:.92rem;
  }
}


/* v18.25: Shop-Warenkorb als kompakte Bottom-Bar fuer Mobil und Tablet */
.shop-mobile-cart-bar{
  display:none;
}
@media (max-width:1100px){
  body:has(.shop-mobile-cart-bar){
    padding-bottom:96px;
  }
  .shop-mobile-cart-bar{
    position:fixed;
    left:14px;
    right:14px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    z-index:1200;
    display:grid;
    grid-template-columns:1fr auto auto;
    align-items:center;
    gap:12px;
    min-height:58px;
    padding:10px 12px;
    border:1px solid #bfd0ea;
    border-radius:18px;
    background:rgba(255,255,255,.98);
    color:#08285f;
    text-decoration:none!important;
    box-shadow:0 18px 40px rgba(15,23,42,.24);
    backdrop-filter:blur(10px);
  }
  .shop-mobile-cart-main{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    font-weight:800;
  }
  .shop-mobile-cart-main strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:26px;
    height:26px;
    border-radius:999px;
    background:#f0c400;
    color:#08285f;
    padding:0 7px;
  }
  .shop-mobile-cart-total{
    font-weight:900;
    white-space:nowrap;
  }
  .shop-mobile-cart-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:0 12px;
    border-radius:12px;
    background:#003b79;
    color:#fff;
    font-weight:800;
    white-space:nowrap;
  }
}
@media (max-width:430px){
  .shop-mobile-cart-bar{
    grid-template-columns:1fr auto;
    gap:8px;
    left:10px;
    right:10px;
    padding:9px 10px;
  }
  .shop-mobile-cart-action{
    grid-column:1 / -1;
    width:100%;
  }
}
@media (min-width:1101px){
  .shop-mobile-cart-bar{display:none!important;}
}

/* v18.26: Shop-Warenkorb im Browser analog zur Kassenkorb-Schnellansicht */
.shop-desktop-cart-panel{
  display:none;
}
@media (min-width:1101px){
  body:has(.shop-desktop-cart-panel) main.container{
    max-width:1480px;
    padding-right:360px;
  }
  .shop-desktop-cart-panel{
    position:fixed;
    top:150px;
    right:max(24px,calc((100vw - 1480px)/2 + 24px));
    width:320px;
    max-height:calc(100vh - 180px);
    overflow:auto;
    z-index:40;
    display:flex;
    flex-direction:column;
    gap:.85rem;
    padding:1rem;
    border:1px solid #dbe7f5;
    border-radius:20px;
    background:#fff;
    box-shadow:0 14px 34px rgba(8,40,95,.14);
  }
  .shop-desktop-cart-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding-bottom:.65rem;
    border-bottom:1px solid #e6edf7;
    color:#08285f;
  }
  .shop-desktop-cart-head strong{font-size:1.08rem;}
  .shop-desktop-cart-head span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:0 .65rem;
    border-radius:999px;
    background:#eef5ff;
    color:#003b79;
    font-weight:800;
    white-space:nowrap;
  }
  .shop-desktop-cart-empty{margin:.2rem 0;color:#64748b;}
  .shop-desktop-cart-lines{
    display:flex;
    flex-direction:column;
    gap:.55rem;
  }
  .shop-desktop-cart-line{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:.7rem;
    padding:.55rem .65rem;
    border-radius:13px;
    background:#f8fafc;
    color:#0f172a;
  }
  .shop-desktop-cart-line span{min-width:0;overflow:hidden;text-overflow:ellipsis;}
  .shop-desktop-cart-line>strong{white-space:nowrap;color:#08285f;}
  .shop-desktop-cart-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:.8rem .65rem;
    border-radius:14px;
    background:#eef5ff;
    color:#08285f;
    font-weight:900;
  }
  .shop-desktop-cart-total strong{font-size:1.2rem;}
  .shop-desktop-cart-action{
    width:100%;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    text-decoration:none!important;
  }
}
@media (max-width:1100px){
  .shop-desktop-cart-panel{display:none!important;}
}

/* v18.27: Shop-Warenkorb Desktop als eigene Layout-Spalte statt Overlay */
@media (min-width:1101px){
  body:has(.shop-desktop-cart-layout) main.container{
    max-width:1480px;
  }
  .shop-desktop-cart-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:18px;
    align-items:start;
  }
  .shop-desktop-main{min-width:0;}
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{
    position:sticky !important;
    top:82px !important;
    right:auto !important;
    width:auto !important;
    max-height:calc(100vh - 110px);
    overflow:auto;
    z-index:auto;
    display:flex !important;
    flex-direction:column;
    gap:.85rem;
    padding:1rem;
    border:1px solid #dbe7f5;
    border-radius:20px;
    background:#fff;
    box-shadow:0 14px 34px rgba(8,40,95,.14);
  }
}
@media (max-width:1100px){
  .shop-desktop-cart-layout{display:block;}
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{display:none!important;}
}


/* v18.28: Kassenkorb und Shop-Warenkorb im Browser dauerhaft sichtbar halten */
@media (min-width:1101px){
  .cashdesk-ui .cash-modern-workspace,
  .shop-desktop-cart-layout{
    overflow:visible !important;
    align-items:start !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel,
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{
    position:-webkit-sticky !important;
    position:sticky !important;
    top:88px !important;
    align-self:start !important;
    max-height:calc(100dvh - 110px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    z-index:30 !important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    right:auto !important;
    bottom:auto !important;
  }
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{
    right:auto !important;
    bottom:auto !important;
  }
}


/* v18.29: Warenkoerbe im Browser robust als dauerhaft sichtbare rechte Spalte */
.shop-desktop-cart-checkout-form{
  margin:0;
  padding:0;
  display:block;
}
.shop-desktop-cart-club-action{
  background:#16a34a!important;
  border-color:#16a34a!important;
  color:#fff!important;
}
.shop-desktop-cart-club-action:hover{
  background:#15803d!important;
  border-color:#15803d!important;
  color:#fff!important;
}
.shop-desktop-cart-club-action:disabled{
  opacity:.55;
  cursor:not-allowed;
}
@media (min-width:1101px){
  body:has(.shop-desktop-cart-layout) main.container,
  main.container:has(.cashdesk-ui){
    overflow:visible!important;
  }
  .shop-desktop-cart-layout,
  .cashdesk-ui .cash-modern-workspace{
    overflow:visible!important;
    align-items:start!important;
  }
  .shop-desktop-cart-layout{
    grid-template-columns:minmax(0,1fr) 340px!important;
  }
  .cashdesk-ui .cash-modern-workspace{
    grid-template-columns:minmax(0,1fr) 400px!important;
  }
  .shop-desktop-cart-layout > .shop-desktop-cart-panel,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    position:fixed!important;
    top:88px!important;
    bottom:auto!important;
    align-self:auto!important;
    max-height:calc(100dvh - 112px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:80!important;
  }
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{
    width:340px!important;
    right:max(24px, calc((100vw - 1480px) / 2 + 24px))!important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    width:400px!important;
    right:max(24px, calc((100vw - 1680px) / 2 + 24px))!important;
  }
}
@media (min-width:1101px) and (max-width:1280px){
  .shop-desktop-cart-layout{
    grid-template-columns:minmax(0,1fr) 310px!important;
    gap:14px!important;
  }
  .cashdesk-ui .cash-modern-workspace{
    grid-template-columns:minmax(0,1fr) 340px!important;
    gap:16px!important;
  }
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{
    width:310px!important;
    right:18px!important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    width:340px!important;
    right:18px!important;
  }
}
@media (max-width:1100px){
  .shop-desktop-cart-checkout-form{display:none!important;}
}


/* v18.30: Warenkorb-/Kassenkorb-Positionen im Browser korrigiert
   - Shop-Warenkorb startet tiefer auf Hoehe der Inhaltskarte (Alle Artikel/Favoriten)
   - Kassenkorb bleibt im Browser dauerhaft sichtbar
   - Gastkorb im Verkauf startet tiefer auf Hoehe der Artikelsuche
   Mobile/Tablet-Bottom-Bar bleibt unveraendert. */
@media (min-width:1101px){
  body:has(.shop-desktop-cart-layout) main.container,
  main.container:has(.cashdesk-ui){
    overflow:visible!important;
  }
  .shop-desktop-cart-layout,
  .cashdesk-ui .cash-modern-workspace{
    overflow:visible!important;
    align-items:start!important;
  }
  .shop-desktop-cart-layout{
    grid-template-columns:minmax(0,1fr) 340px!important;
    gap:18px!important;
  }
  .cashdesk-ui .cash-modern-workspace{
    grid-template-columns:minmax(0,1fr) 400px!important;
    gap:18px!important;
  }
  .shop-desktop-cart-layout > .shop-desktop-cart-panel,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    position:fixed!important;
    bottom:auto!important;
    align-self:auto!important;
    max-height:calc(100dvh - 120px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:80!important;
    will-change:transform;
  }
  /* Shop: nicht mehr oben an der Hauptnavigation, sondern auf Hoehe der Artikel-/Favoriten-Card. */
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{
    top:168px!important;
    width:340px!important;
    right:max(24px, calc((100vw - 1480px) / 2 + 24px))!important;
    max-height:calc(100dvh - 190px)!important;
  }
  /* Kasse Barverkauf: Position bleibt oben neben dem Verkaufsbereich, aber dauerhaft viewport-fixiert. */
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    top:88px!important;
    width:400px!important;
    right:max(24px, calc((100vw - 1680px) / 2 + 24px))!important;
    max-height:calc(100dvh - 112px)!important;
  }
  /* Gast-/Tischkorb in der Artikelliste: tiefer starten, damit er optisch auf Hoehe der Artikelsuche liegt. */
  .cashdesk-ui .cash-modern-workspace > .cash-modern-account-cart-panel{
    top:168px!important;
    max-height:calc(100dvh - 190px)!important;
  }
}
@media (min-width:1101px) and (max-width:1280px){
  .shop-desktop-cart-layout{grid-template-columns:minmax(0,1fr) 310px!important;gap:14px!important;}
  .cashdesk-ui .cash-modern-workspace{grid-template-columns:minmax(0,1fr) 340px!important;gap:16px!important;}
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{width:310px!important;right:18px!important;top:158px!important;max-height:calc(100dvh - 180px)!important;}
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{width:340px!important;right:18px!important;top:88px!important;max-height:calc(100dvh - 112px)!important;}
  .cashdesk-ui .cash-modern-workspace > .cash-modern-account-cart-panel{top:158px!important;max-height:calc(100dvh - 180px)!important;}
}


/* v18.31: Sticky-Warenkoerbe an den tatsaechlichen Karten/Layout-Anfang koppeln
   - Shop-Warenkorb startet im normalen Grid auf Hoehe von .shop-desktop-cart-layout.
   - Gast-/Tischkorb startet im normalen Grid auf Hoehe von .cash-modern-sale-card / Verkaufsbereich.
   - Kassenkorb bleibt als echtes sticky-Element beim Scrollen sichtbar und slidet mit.
   Mobile/Tablet bis 1100px bleiben unveraendert. */
@media (min-width:1101px){
  body:has(.shop-desktop-cart-layout) main.container,
  main.container:has(.cashdesk-ui),
  .shop-content-card,
  .cashdesk-ui .shop-content-card,
  .cashdesk-ui .cash-modern-sale-card,
  .shop-desktop-cart-layout,
  .cashdesk-ui .cash-modern-workspace{
    overflow:visible!important;
  }

  .shop-desktop-cart-layout,
  .cashdesk-ui .cash-modern-workspace{
    align-items:start!important;
  }

  .shop-desktop-cart-layout > .shop-desktop-cart-panel,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    position:-webkit-sticky!important;
    position:sticky!important;
    right:auto!important;
    bottom:auto!important;
    align-self:start!important;
    z-index:80!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    will-change:auto!important;
  }

  /* Shop: kein fixer Viewport-Versatz mehr; im Grid auf Hoehe .shop-desktop-cart-layout starten. */
  .shop-desktop-cart-layout > .shop-desktop-cart-panel{
    top:12px!important;
    width:auto!important;
    max-height:calc(100dvh - 24px)!important;
  }

  /* Barverkauf: sticky statt fixed, damit der Kassenkorb sichtbar mit dem Scrollverlauf slidet. */
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel{
    top:12px!important;
    width:auto!important;
    max-height:calc(100dvh - 24px)!important;
  }

  /* Gast-/Tischkorb: gleicher Start wie die cash-modern-sale-card bzw. der Verkaufsbereich. */
  .cashdesk-ui .cash-modern-workspace > .cash-modern-account-cart-panel{
    top:12px!important;
    max-height:calc(100dvh - 24px)!important;
  }
}
@media (min-width:1101px) and (max-width:1280px){
  .shop-desktop-cart-layout > .shop-desktop-cart-panel,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-account-cart-panel{
    right:auto!important;
    top:12px!important;
  }
}


/* v18.32: Desktop-Koerbe nach korrekter Startposition viewport-fest halten
   Sticky endete am Elterncontainer; fixed mit per JS gemessener Startposition bleibt beim Scrollen sichtbar. */
@media (min-width:1101px){
  .shop-desktop-cart-layout > .shop-desktop-cart-panel.pb-cart-viewport-fixed,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel.pb-cart-viewport-fixed{
    position:fixed!important;
    top:var(--pb-cart-fixed-top, 12px)!important;
    left:var(--pb-cart-fixed-left, auto)!important;
    right:auto!important;
    width:var(--pb-cart-fixed-width, auto)!important;
    bottom:auto!important;
    align-self:auto!important;
    max-height:calc(100dvh - var(--pb-cart-fixed-top, 12px) - 12px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    z-index:90!important;
  }
}
@media (max-width:1100px){
  .shop-desktop-cart-layout > .shop-desktop-cart-panel.pb-cart-viewport-fixed,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel.pb-cart-viewport-fixed{
    position:static!important;
    left:auto!important;
    width:auto!important;
  }
}


/* v18.33: Mobile/Tablet-Koerbe aus v18.30 wiederherstellen
   Desktop ab 1101px bleibt unveraendert. */
@media (max-width:1100px){
  body:has(.shop-mobile-cart-bar),
  main.container:has(.cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel){
    padding-bottom:104px!important;
  }
  body:has(.shop-mobile-cart-club-action){
    padding-bottom:128px!important;
  }

  .shop-mobile-cart-bar{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    bottom:calc(12px + env(safe-area-inset-bottom))!important;
    z-index:1200!important;
    display:grid!important;
    grid-template-columns:1fr auto auto auto!important;
    align-items:center!important;
    gap:12px!important;
    min-height:58px!important;
  }


  .shop-mobile-cart-summary{
    display:contents!important;
    color:inherit!important;
    text-decoration:none!important;
  }

  .shop-mobile-cart-checkout-form{
    display:contents!important;
    margin:0!important;
  }

  .shop-mobile-cart-club-action{
    min-height:38px!important;
    padding:0 12px!important;
    border-radius:12px!important;
    white-space:nowrap!important;
    font-weight:900!important;
  }

  .shop-desktop-cart-layout > .shop-desktop-cart-panel,
  .shop-desktop-cart-panel{
    display:none!important;
  }

  .cashdesk-ui .cash-modern-workspace{
    padding-bottom:104px!important;
  }


  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url],
  .cashdesk-ui .cash-modern-workspace > .cash-modern-account-cart-panel{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    bottom:calc(12px + env(safe-area-inset-bottom))!important;
    top:auto!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    overflow:visible!important;
    z-index:1200!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:12px!important;
    padding:10px 12px!important;
    border-radius:18px!important;
    box-shadow:0 18px 40px rgba(15,23,42,.24)!important;
  }

  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-empty,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-cart-lines{
    display:none!important;
  }

  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-panel-head{
    flex:1 1 auto!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:3px!important;
  }

  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-total-row{
    flex:0 0 auto!important;
    border-top:0!important;
    padding-top:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:center!important;
    white-space:nowrap!important;
  }

  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-pay-actions{
    flex:0 0 auto!important;
    display:flex!important;
    gap:0!important;
  }

  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-pay-actions .cash-modern-secondary-action{
    display:none!important;
  }

  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-pay-actions .cash-modern-primary-action{
    min-height:42px!important;
    width:auto!important;
    min-width:112px!important;
    padding:0 12px!important;
    border-radius:12px!important;
    white-space:nowrap!important;
    pointer-events:auto!important;
  }
}

@media (max-width:430px){
  .shop-mobile-cart-bar{
    grid-template-columns:1fr auto!important;
    gap:8px!important;
    left:10px!important;
    right:10px!important;
    padding:9px 10px!important;
  }
  .shop-mobile-cart-action{
    grid-column:1 / -1!important;
    width:100%!important;
  }
  .shop-mobile-cart-club-action{
    grid-column:1 / -1!important;
    width:100%!important;
  }
  body:has(.shop-mobile-cart-club-action){
    padding-bottom:158px!important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel,
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel[data-mobile-cart-url],
  .cashdesk-ui .cash-modern-workspace > .cash-modern-account-cart-panel{
    left:10px!important;
    right:10px!important;
    gap:8px!important;
    padding:9px 10px!important;
  }
  .cashdesk-ui .cash-modern-workspace > .cash-modern-cart-panel .cash-modern-pay-actions .cash-modern-primary-action{
    min-width:96px!important;
    padding:0 10px!important;
    font-size:.92rem!important;
  }
}


/* v18.36: Profilbereich Mobile/Tablet scrollbar und nicht abgeschnitten */
@media (max-width:1100px){
  html,
  body{
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }
  body:has(#profile){
    min-height:100dvh !important;
    height:auto !important;
    position:relative !important;
    touch-action:pan-y !important;
  }
  body:has(#profile) main.container,
  main.container:has(#profile){
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:visible !important;
    box-sizing:border-box !important;
    padding-left:12px !important;
    padding-right:12px !important;
  }
  #profile,
  .profile-dashboard-layout,
  .profile-dashboard-layout .card,
  .profile-nav-card,
  .profile-content-card,
  .profile-card,
  #profileDataForm,
  #profilePasswordForm{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  .profile-dashboard-layout{
    display:block !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .profile-dashboard-layout .card{
    overflow:visible !important;
    margin-left:0 !important;
    margin-right:0 !important;
    margin-bottom:14px !important;
  }
  .profile-hero-card,
  .profile-hero-actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .profile-hero-main,
  .profile-hero-main h2,
  .profile-hero-main p{
    min-width:0 !important;
    max-width:100% !important;
    overflow-wrap:anywhere !important;
  }
  .profile-dashboard-layout .profile-tabs,
  .profile-subtabs{
    display:flex !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    max-width:100% !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:thin;
  }
  .profile-dashboard-layout .profile-tabs .tab,
  .profile-subtabs .tab{
    flex:0 0 auto !important;
    white-space:nowrap !important;
  }
  .profile-dashboard-layout .profile-form,
  #profileDataForm,
  #profilePasswordForm{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
  }
  #profile input,
  #profile select,
  #profile textarea,
  #profile button,
  #profile .btn{
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  #profile textarea{
    resize:vertical !important;
  }
  #profile .table-scroll,
  #profile .guest-table-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    box-sizing:border-box !important;
  }
  #profile table,
  #profile .responsive-table,
  #profile .admin-table,
  #profile .profile-bookings-table,
  #profile .shop-cart-table,
  #profile .guest-account-table{
    width:max-content !important;
    min-width:760px !important;
    max-width:none !important;
  }
  #profile .guest-account-table{
    min-width:920px !important;
  }
  #profile .inline-form,
  #profile .table-form{
    max-width:100% !important;
    min-width:0 !important;
  }
}
@media (max-width:640px){
  body:has(#profile) main.container,
  main.container:has(#profile){
    padding-left:8px !important;
    padding-right:8px !important;
  }
  .profile-content-card{
    padding:12px 10px !important;
  }
  #profile table,
  #profile .responsive-table,
  #profile .admin-table,
  #profile .profile-bookings-table,
  #profile .shop-cart-table{
    min-width:680px !important;
  }
  #profile .guest-account-table{
    min-width:860px !important;
  }
}

/* v18.37: Profil-Kacheln fuer Buchungen, Serien- und Wettkampftermine auf Mobile/Tablet begrenzen */
@media (max-width:1100px){
  #profile .profile-content-card .table-scroll{
    overflow-x:hidden !important;
    max-width:100% !important;
  }
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    table-layout:auto !important;
  }
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table thead,
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table tbody,
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table tr,
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table td,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table thead,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table tbody,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table tr,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table td{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table th,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table th{
    display:none !important;
  }
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table tr,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table tr{
    background:#fff !important;
    border:1px solid #dfe5ee !important;
    border-radius:14px !important;
    margin:0 0 12px !important;
    padding:10px !important;
    box-shadow:0 5px 16px rgba(8,40,95,.08) !important;
    overflow:hidden !important;
  }
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table td,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table td{
    border:0 !important;
    padding:7px 0 !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table td form,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table td form{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table td input,
  #profile .profile-content-card .table-scroll > table.admin-table.responsive-table td button,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table td input,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table td button,
  #profile .profile-content-card .table-scroll > table.profile-bookings-table.responsive-table td .button{
    width:100% !important;
    max-width:100% !important;
    margin:4px 0 !important;
  }
}

/* v18.57: Admin-Tabellen resizable V2 mit mitwachsender Tabellenbreite */
.admin-table-resize-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
}
.admin-table-resizable{
  table-layout:fixed;
  border-collapse:separate;
  border-spacing:0;
  width:max-content;
  min-width:100%;
}
.admin-table-resizable th,
.admin-table-resizable td{
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:top;
}
.admin-table-resizable th{
  position:relative;
  user-select:none;
}
.admin-col-resizer{
  position:absolute;
  top:0;
  right:-4px;
  width:8px;
  height:100%;
  cursor:col-resize;
  z-index:5;
  touch-action:none;
}
.admin-col-resizer::after{
  content:'';
  position:absolute;
  top:18%;
  bottom:18%;
  left:3px;
  border-left:1px solid rgba(8,40,95,.28);
}
.admin-table-resizing,
.admin-table-resizing *{
  cursor:col-resize!important;
  user-select:none!important;
}
.admin-table-resizable td:hover{
  overflow:visible;
  white-space:normal;
  word-break:break-word;
}
@media (max-width: 900px){
  .admin-table-resizable{table-layout:auto;width:100%;min-width:0;}
  .admin-col-resizer{display:none;}
}


/* v18.58: Resizable Tables V2 Hotfix fuer System und E-Mail-Log */
.admin-table-resize-wrap > table.admin-table-resizable,
.admin-layout .card .admin-table-resize-wrap > table.admin-table-resizable,
.card .admin-table-resize-wrap > table.admin-table-resizable,
#system .admin-table-resize-wrap > table.admin-table-resizable,
#email-log .admin-table-resize-wrap > table.admin-table-resizable{
  display:table!important;
  table-layout:fixed!important;
  width:max-content;
  min-width:100%!important;
  overflow:visible!important;
}
.admin-table-resizable thead,
.admin-table-resizable tbody{
  display:table-row-group!important;
  width:auto!important;
}
.admin-table-resizable tr{display:table-row!important;}
.admin-table-resizable th,
.admin-table-resizable td{display:table-cell!important;}
.admin-table-resizable th{
  overflow:visible!important;
  position:relative!important;
  padding-right:16px!important;
}
.admin-table-resizable .admin-col-resizer{
  right:0!important;
  width:12px!important;
  min-width:12px!important;
  background:rgba(8,40,95,.04);
}
.admin-table-resizable .admin-col-resizer:hover,
.admin-table-resizing .admin-col-resizer{
  background:rgba(8,40,95,.14);
}
#system .admin-table-resize-wrap,
#email-log .admin-table-resize-wrap{
  overflow-x:auto!important;
  max-width:100%!important;
}

/* v18.59: Buchungskalender Variante B - feste Zeitspalte und scrollbare Platzspalten */
.booking-calendar-split{
  display:grid;
  grid-template-columns:var(--booking-time-col-width,72px) minmax(0,1fr);
  align-items:start;
  width:100%;
  max-width:100%;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(8,40,95,.12);
  background:#fff;
}
.booking-calendar-time-pane{
  position:relative;
  z-index:4;
  width:var(--booking-time-col-width,72px);
  min-width:var(--booking-time-col-width,72px);
  box-shadow:8px 0 14px rgba(15,23,42,.08);
  background:#fff;
}
.booking-calendar-data-pane{
  overflow-x:auto;
  overflow-y:hidden;
  max-width:100%;
  -webkit-overflow-scrolling:touch;
}
.booking-calendar-split table{
  margin:0;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
  width:max-content;
  min-width:100%;
}
.booking-calendar-split .booking-calendar-time-table{
  width:var(--booking-time-col-width,72px)!important;
  min-width:var(--booking-time-col-width,72px)!important;
}
.booking-calendar-split .booking-calendar-data-table{
  width:var(--booking-data-table-width,520px)!important;
  min-width:100%!important;
}
.booking-calendar-split th,
.booking-calendar-split td{
  box-sizing:border-box;
  vertical-align:middle;
}
.booking-calendar-split .booking-calendar-time-table th,
.booking-calendar-split .booking-calendar-time-table td{
  width:var(--booking-time-col-width,72px)!important;
  min-width:var(--booking-time-col-width,72px)!important;
  max-width:var(--booking-time-col-width,72px)!important;
  position:relative!important;
  left:auto!important;
}
.booking-calendar-split .booking-calendar-data-table th,
.booking-calendar-split .booking-calendar-data-table td{
  width:var(--booking-court-col-width,132px);
  min-width:var(--booking-court-col-width,132px);
  position:relative!important;
  left:auto!important;
}
.booking-calendar-split .booking-calendar-data-table th:first-child,
.booking-calendar-split .booking-calendar-data-table td:first-child{
  position:relative!important;
  left:auto!important;
  z-index:auto!important;
}
.booking-calendar-scroll.booking-calendar-split-ready{
  overflow:visible!important;
}
@media (max-width: 900px){
  .booking-calendar-split{grid-template-columns:64px minmax(0,1fr);--booking-time-col-width:64px;}
}

/* v18.61: Buchungskalender - Platzspalten einheitlich breit und mobil/tablet optimiert */
.booking-calendar-split .booking-calendar-data-table{
  table-layout:fixed!important;
  width:max-content!important;
  min-width:max-content!important;
}
.booking-calendar-split .booking-calendar-data-table col{
  width:var(--booking-court-col-width,148px)!important;
}
.booking-calendar-split .booking-calendar-data-table th,
.booking-calendar-split .booking-calendar-data-table td{
  width:var(--booking-court-col-width,148px)!important;
  min-width:var(--booking-court-col-width,148px)!important;
  max-width:var(--booking-court-col-width,148px)!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.booking-calendar-split .booking-calendar-data-table th{
  white-space:normal!important;
  line-height:1.2!important;
}
.booking-calendar-split .booking-calendar-data-table td{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
@media (max-width:900px){
  .booking-calendar-split .booking-calendar-data-table{
    --booking-court-col-width:126px;
  }
}
@media (max-width:520px){
  .booking-calendar-split .booking-calendar-data-table{
    --booking-court-col-width:112px;
  }
  .booking-calendar-split .booking-calendar-data-table th,
  .booking-calendar-split .booking-calendar-data-table td{
    padding-left:6px!important;
    padding-right:6px!important;
  }
}


/* v18.63 Kalender Fix */
.booking-calendar-scroll{
  overflow-x:auto !important;
  overflow-y:visible !important;
  max-height:none !important;
}

@media (max-width:720px){
  .booking-calendar-scroll{
    max-height:none !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
  }
}

.booking-calendar-table th:first-child,
.booking-calendar-table td:first-child{
  position:sticky !important;
  left:0 !important;
  background:#fff !important;
}
.booking-calendar-table th:first-child{z-index:20 !important;}
.booking-calendar-table td:first-child{z-index:10 !important;}

@media (max-width:720px){
 .booking-calendar-table th:not(:first-child),
 .booking-calendar-table td:not(:first-child){min-width:110px !important;width:110px !important;}
}
@media (min-width:721px) and (max-width:1100px){
 .booking-calendar-table th:not(:first-child),
 .booking-calendar-table td:not(:first-child){min-width:160px !important;width:160px !important;}
}
@media (min-width:1101px){
 .booking-calendar-table th:not(:first-child),
 .booking-calendar-table td:not(:first-child){min-width:220px !important;width:220px !important;}
}


/* v18.64 Warnmodal bei Buchung ohne Mitspieler */
.booking-warning-modal-overlay{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(15,23,42,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.booking-warning-modal{
  width:min(420px, 100%);
  background:#fff;
  border-radius:16px;
  box-shadow:0 18px 50px rgba(15,23,42,.28);
  padding:22px;
}
.booking-warning-modal h3{margin-top:0;}
.booking-warning-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}
@media (max-width:720px){
  .booking-warning-modal-actions button,
  .booking-warning-modal-actions .btn{
    width:100%;
  }
}


/* v18.69.3: Passkey-Profil auf Mobile optimieren */
.passkey-register-card input,
.passkey-register-card button{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.passkey-login-help a,
#passkeyLoginMessage a{
  font-weight:800;
  color:var(--tcn-blue);
}
@media (max-width:720px){
  #profile .passkey-status-table,
  #profile .passkey-list-table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  #profile .passkey-table-scroll{
    overflow-x:hidden!important;
  }
  #profile .passkey-status-table tbody,
  #profile .passkey-status-table tr,
  #profile .passkey-status-table td,
  #profile .passkey-list-table tbody,
  #profile .passkey-list-table tr,
  #profile .passkey-list-table td{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #profile .passkey-status-table th,
  #profile .passkey-list-table th{
    display:none!important;
  }
  #profile .passkey-status-table tr,
  #profile .passkey-list-table tr{
    background:#fff!important;
    border:1px solid #dfe5ee!important;
    border-radius:14px!important;
    margin:0 0 12px!important;
    padding:10px!important;
    box-shadow:0 5px 16px rgba(8,40,95,.08)!important;
  }
  #profile .passkey-status-table td,
  #profile .passkey-list-table td{
    border:0!important;
    padding:7px 0!important;
    display:flex!important;
    justify-content:space-between!important;
    gap:12px!important;
    overflow-wrap:anywhere!important;
  }
  #profile .passkey-status-table td:before,
  #profile .passkey-list-table td:before{
    content:attr(data-label);
    font-weight:800;
    color:#08285f;
    min-width:105px;
    flex:0 0 105px;
  }
  #profile .passkey-list-table td[data-label="Aktion"],
  #profile .passkey-list-table td[data-label="Aktion"] form,
  #profile .passkey-list-table td[data-label="Aktion"] button{
    width:100%!important;
  }
  #profile .passkey-list-table td[data-label="Aktion"]{
    display:block!important;
  }
  #profile .passkey-list-table td[data-label="Aktion"]:before{
    display:block;
    margin-bottom:6px;
  }
}

/* Eventmanager Basis v18.73 */
.dashboard-domain-events{background:linear-gradient(135deg,#eef7ff,#fff7e8)!important;border-color:#cfe2ff!important;}
.event-layout{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:1rem;align-items:start}.event-card-list{display:flex;flex-direction:column;gap:.65rem}.event-card{display:block;text-decoration:none;color:#08285f;border:1px solid #dfe5ee;border-radius:12px;background:#fff;padding:.85rem}.event-card.active{border-color:#08285f;box-shadow:0 6px 18px rgba(8,40,95,.12)}.event-card strong,.event-card span,.event-card em{display:block}.event-card span{font-size:.9rem;color:#60708a;margin-top:.25rem}.event-card em{font-style:normal;font-weight:800;margin-top:.35rem}.event-description{background:#f7f9fc;border:1px solid #dfe5ee;border-radius:10px;padding:1rem;margin:1rem 0}.event-action-row{display:flex;flex-wrap:wrap;gap:.6rem}.event-action-row .secondary,.button.secondary{background:#eef3fb!important;color:#08285f!important}.admin-edit-grid select[multiple]{min-height:210px}@media(max-width:850px){.event-layout{grid-template-columns:1fr}}

/* Eventmanager Admin v18.73.5 */
.event-admin-counters {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: .75rem 0 1rem;
}
.event-admin-counters span {
  display: inline-block;
  padding: .35rem .6rem;
  border-radius: 999px;
  background: rgba(0,0,0,.06);
  font-size: .9rem;
}
