:root{
  --tbr-a-bg:#ffffff;
  --tbr-a-text:#111827;
  --tbr-a-muted:#6b7280;
  --tbr-a-accent:#B65A4A;
  --tbr-a-border:rgba(17,24,39,.10);
  --tbr-a-shadow:0 16px 50px rgba(0,0,0,.10);
  --tbr-a-radius:18px;
}

body.tbr-admin{
  margin:0;
  font-family:"DM Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--tbr-a-text);
  background:#f7f7f5;
}
.tbr-admin-shell{display:grid; grid-template-columns:280px 1fr; min-height:100vh;}
@media (max-width:980px){.tbr-admin-shell{grid-template-columns:1fr;}}

.tbr-admin-nav{
  background:var(--tbr-a-bg);
  border-right:1px solid var(--tbr-a-border);
  padding:18px;
}
.tbr-admin-brand__title{
  font-family:"Playfair Display", ui-serif, Georgia, serif;
  font-weight:700;
  font-size:22px;
}
.tbr-admin-brand__sub{color:var(--tbr-a-muted); font-size:12px; margin-top:4px;}
.tbr-admin-links{margin-top:18px; display:flex; flex-direction:column; gap:6px;}
.tbr-admin-links__section{
  margin: 2px 0 2px 0;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 800;
  color: var(--tbr-a-muted);
}
.tbr-admin-links a,.tbr-admin-logout{
  text-decoration:none;
  color:var(--tbr-a-text);
  padding:10px 10px;
  border-radius:14px;
  border:1px solid transparent;
  background:transparent;
  text-align:left;
  cursor:pointer;
  font-weight:600;
}
.tbr-admin-links a:hover,.tbr-admin-logout:hover{background:rgba(182,90,74,.06);}
.tbr-admin-links a.is-active{border-color:rgba(182,90,74,.35); background:rgba(182,90,74,.08);}
.tbr-admin-sep{height:1px; background:var(--tbr-a-border); margin:10px 0;}

.tbr-admin-main{padding:22px;}
.tbr-admin-page{background:var(--tbr-a-bg); border:1px solid var(--tbr-a-border); border-radius:var(--tbr-a-radius); box-shadow:var(--tbr-a-shadow); padding:18px;}
.tbr-admin-page__head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;}
.tbr-admin-h1{margin:0; font-size:18px;}
.tbr-admin-h2{margin:18px 0 10px 0; font-size:14px; color:var(--tbr-a-muted);}
.tbr-admin-muted{color:var(--tbr-a-muted); margin:8px 0;}

.tbr-admin-actions{display:flex; gap:10px; align-items:center;}
.tbr-admin-btn{
  border-radius:14px;
  padding:10px 12px;
  border:1px solid var(--tbr-a-border);
  background:white;
  cursor:pointer;
  font-weight:700;
}
.tbr-admin-btn--primary{background:var(--tbr-a-accent); color:white; border-color:transparent;}
.tbr-admin-btn--danger{background:#B42318; color:white; border-color:transparent;}
.tbr-admin-btn--day-to-close{
  background:white;
  color:#8B1A12;
  border-color:rgba(180,35,24,.45);
}
.tbr-admin-btn--day-to-close:hover{background:rgba(180,35,24,.06);}
.tbr-admin-btn--day-closed{
  background:var(--tbr-a-accent);
  color:white;
  border-color:transparent;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.tbr-admin-btn--day-closed:hover{filter:brightness(0.95);}

.tbr-admin-card{
  background:var(--tbr-a-bg);
  border:1px solid var(--tbr-a-border);
  border-radius:var(--tbr-a-radius);
  box-shadow:var(--tbr-a-shadow);
  padding:18px;
  max-width:520px;
  margin:40px auto;
}
.tbr-admin-form{display:flex; flex-direction:column; gap:12px; margin-top:12px;}
.tbr-admin-label span{display:block; font-size:12px; color:var(--tbr-a-muted); margin-bottom:6px;}
.tbr-admin-input,.tbr-admin-textarea,select.tbr-admin-input{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--tbr-a-border);
  border-radius:14px;
  outline:none;
  background:white;
}
.tbr-admin-input:focus,.tbr-admin-textarea:focus{border-color:rgba(182,90,74,.55); box-shadow:0 0 0 4px rgba(182,90,74,.10);}
.tbr-admin-check{display:flex; align-items:center; gap:10px; font-size:13px;}
.tbr-admin-toast{margin-top:10px; font-size:13px;}
.tbr-admin-toast--ok:not(:empty){
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  font-weight:600;
  color:#1a5c38;
  background:rgba(26,92,56,.10);
  border:1px solid rgba(26,92,56,.28);
}
.tbr-admin-toast--bad:not(:empty){
  margin-top:10px;
  padding:10px 12px;
  border-radius:12px;
  font-weight:600;
  color:#8a1c12;
  background:rgba(180,35,24,.08);
  border:1px solid rgba(180,35,24,.28);
}
.tbr-admin-note{margin-top:10px; font-size:12px; color:var(--tbr-a-muted); background:rgba(182,90,74,.06); padding:10px; border-radius:14px; border:1px solid rgba(182,90,74,.20);}

.tbr-admin-calendar-wrap{margin-top:10px;}
.tbr-admin-calendar{background:white; border:1px solid var(--tbr-a-border); border-radius:14px; padding:10px;}

/* Calendar view: day background = bookable (green) / full or closed (red/grey) / past (muted) — see tbr_admin_calendar_day_kinds */
#tbr-admin-calendar .fc-daygrid-day.tbr-cal-day--past .fc-daygrid-day-frame{
  background:rgba(100,100,100,.10);
}
#tbr-admin-calendar .fc-daygrid-day.tbr-cal-day--closed .fc-daygrid-day-frame{
  background:rgba(95,95,95,.16);
}
#tbr-admin-calendar .fc-daygrid-day.tbr-cal-day--full .fc-daygrid-day-frame{
  background:rgba(180,35,24,.14);
}
#tbr-admin-calendar .fc-daygrid-day.tbr-cal-day--available .fc-daygrid-day-frame{
  background:rgba(46,125,50,.13);
}
#tbr-admin-calendar .fc-timegrid-col.tbr-cal-day--past,
#tbr-admin-calendar .fc-col-header-cell.tbr-cal-day--past{
  background:rgba(100,100,100,.08);
}
#tbr-admin-calendar .fc-timegrid-col.tbr-cal-day--closed,
#tbr-admin-calendar .fc-col-header-cell.tbr-cal-day--closed{
  background:rgba(95,95,95,.12);
}
#tbr-admin-calendar .fc-timegrid-col.tbr-cal-day--full,
#tbr-admin-calendar .fc-col-header-cell.tbr-cal-day--full{
  background:rgba(180,35,24,.10);
}
#tbr-admin-calendar .fc-timegrid-col.tbr-cal-day--available,
#tbr-admin-calendar .fc-col-header-cell.tbr-cal-day--available{
  background:rgba(46,125,50,.11);
}

/* FullCalendar event colors (status + appeared override) */
.fc-event.status-confirmed {
  background-color: #1a5c38 !important;
  border-color: #1a5c38 !important;
  color: #ffffff !important;
}

.fc-event.status-modified {
  background-color: #2d7a4f !important;
  border-color: #2d7a4f !important;
  color: #ffffff !important;
}

.fc-event.appeared {
  background-color: #888888 !important;
  border-color: #888888 !important;
  color: #ffffff !important;
}

/* Törölt / lemondott foglalás – felismerhető piros (felszolgálás, naptár + lista). */
.fc-event.status-cancelled {
  background-color: #c62828 !important;
  border-color: #b71c1c !important;
  color: #ffffff !important;
}

.fc-event.status-cancelled .fc-event-title {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}

.tbr-admin-table tbody tr.tbr-admin-row--cancelled td {
  background-color: rgba(198, 40, 40, 0.14);
  color: #7f1d1d;
  border-bottom-color: rgba(198, 40, 40, 0.22);
  font-weight: 600;
}

.tbr-admin-modal[hidden]{display:none;}
.tbr-admin-modal{position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:9999;}
.tbr-admin-modal__backdrop{position:absolute; inset:0; background:rgba(0,0,0,.35);}
.tbr-admin-modal__card{position:relative; width:min(640px, 92vw); background:white; border-radius:18px; border:1px solid var(--tbr-a-border); box-shadow:var(--tbr-a-shadow); overflow:hidden;}
.tbr-admin-modal__head{display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--tbr-a-border);}
.tbr-admin-modal__title{font-weight:800;}
.tbr-admin-modal__body{padding:14px;}
.tbr-admin-modal__foot{display:flex; gap:10px; justify-content:flex-end; padding:12px 14px; border-top:1px solid var(--tbr-a-border);}
.tbr-admin-kv div{padding:6px 0; border-bottom:1px solid rgba(0,0,0,.06);}
.tbr-admin-kv div:last-child{border-bottom:none;}

.tbr-admin-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:980px){.tbr-admin-grid{grid-template-columns:1fr;}}

.tbr-admin-hours{display:flex; flex-direction:column; gap:8px;}
.tbr-admin-hours-row{display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:10px; align-items:center;}
.tbr-admin-hours-day{font-weight:700;}
@media (max-width:980px){.tbr-admin-hours-row{grid-template-columns:1fr;}}

.tbr-admin-table-wrap{margin-top:12px; overflow:auto; border:1px solid var(--tbr-a-border); border-radius:14px; background:white;}
.tbr-admin-table{width:100%; border-collapse:collapse; font-size:13px;}
.tbr-admin-table th,.tbr-admin-table td{padding:10px 10px; border-bottom:1px solid rgba(0,0,0,.06); text-align:left; white-space:nowrap;}
.tbr-admin-table th{color:var(--tbr-a-muted); font-weight:800; font-size:12px;}
.tbr-admin-filters{display:flex; gap:12px; flex-wrap:wrap; margin:10px 0;}

.tbr-admin-footer {
  margin-top: 40px;
  padding: 16px 24px;
  border-top: 1px solid #e8e3dc;
  font-size: 12px;
  color: #888;
  text-align: center;
}
.tbr-admin-footer a {
  color: #722503;
  text-decoration: none;
}
.tbr-admin-footer a:hover {
  text-decoration: underline;
}

.tbr-var-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:10px 0 14px 0;
}
.tbr-var-chip{
  border:1px solid var(--tbr-a-border);
  background:white;
  border-radius:999px;
  padding:6px 10px;
  font-size:12px;
  cursor:pointer;
  font-weight:700;
}
.tbr-var-chip:hover{background:rgba(182,90,74,.06);}

.tbr-admin-day-switch{
  margin: 0 0 18px 0;
  padding: 14px 16px;
  border-radius: var(--tbr-a-radius);
  border: 1px solid var(--tbr-a-border);
  background: #fffbeb;
  box-shadow: var(--tbr-a-shadow);
}
.tbr-admin-day-switch__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tbr-admin-day-switch__actions .tbr-admin-btn{
  width:100%;
  white-space:normal;
  text-align:center;
  line-height:1.35;
}

