/* Admin "🔔 Csengetés" fül — a meglévő admin.css tokenjeire épül (--color-*, --radius-*, .card,
   .btn, .catalog-table, .catalog-tabs), csak a csengetés-specifikus elemek kapnak itt stílust. */

.bl-subtabs { margin-bottom: var(--space-4); flex-wrap: wrap; }
.bl-sub[hidden] { display: none; }

.bl-muted { color: var(--color-text-muted); }
.bl-small { font-size: 0.78rem; }
.bl-warn { color: #B45309; font-weight: 600; }
.bl-spacer { flex: 1; }
.bl-tag { font-size: 0.7rem; padding: 0.1rem 0.45rem; border-radius: 999px; background: #EEF2FF; color: #4338CA; }

/* ---------- Vezérlőpult ---------- */
.bl-dash-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--space-4);
  align-items: start;
}
.bl-dash-grid .card h3 { margin: 0 0 0.3rem; }
.bl-today-card { display: flex; flex-direction: column; gap: var(--space-4); }
.bl-eyebrow { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-text-muted); margin-bottom: 0.2rem; }
.bl-master-row { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); }
.bl-master-state { font-size: 1.15rem; font-weight: 700; }
.bl-on { color: #047857; }
.bl-off { color: var(--color-danger); }
.bl-today-plan { font-size: 1.05rem; }
.bl-next-event { margin-top: 0.4rem; color: var(--color-text); }
.bl-countdown {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.1rem 0.5rem;
  border-radius: var(--radius-sm);
  background: var(--color-ink);
  color: #fff;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.bl-today-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.bl-today-actions select { flex: 1; min-width: 10rem; }

.bl-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  font-weight: 700;
  background: color-mix(in srgb, var(--chip, #3b82f6) 15%, white);
  color: color-mix(in srgb, var(--chip, #3b82f6) 75%, black);
}
.bl-chip::before { content: ''; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--chip, #3b82f6); }
.bl-chip-off { --chip: #9CA3AF; }

/* Főkapcsoló */
.bl-switch { position: relative; display: inline-block; width: 3.6rem; height: 2rem; flex-shrink: 0; cursor: pointer; }
.bl-switch input { opacity: 0; width: 0; height: 0; }
.bl-switch-track {
  position: absolute; inset: 0; border-radius: 999px; background: #D1D5DB; transition: background 0.2s;
}
.bl-switch-track::after {
  content: ''; position: absolute; top: 0.2rem; left: 0.2rem; width: 1.6rem; height: 1.6rem;
  border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.25); transition: transform 0.2s;
}
.bl-switch input:checked + .bl-switch-track { background: #10B981; }
.bl-switch input:checked + .bl-switch-track::after { transform: translateX(1.6rem); }
.bl-switch input:focus-visible + .bl-switch-track { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.bl-quick-buttons { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 0.5rem; margin: 0.6rem 0; }
.bl-quick-btn {
  padding: 0.9rem 0.6rem;
  background: #FEF3C7;
  color: #78350F;
  font-weight: 600;
  border: 1px solid #FCD34D;
}
.bl-quick-btn:hover { background: #FDE68A; }
.bl-quick-btn:active { transform: scale(0.97); }
.bl-music-controls { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.6rem; }

.bl-dot { display: inline-block; width: 0.7rem; height: 0.7rem; border-radius: 50%; flex-shrink: 0; }
.bl-dot.on { background: #10B981; box-shadow: 0 0 0 3px rgba(16,185,129,0.2); }
.bl-dot.off { background: #EF4444; }
.bl-dev-row { display: flex; gap: 0.6rem; align-items: flex-start; padding: 0.4rem 0; }
.bl-dev-row .bl-dot { margin-top: 0.35rem; }
.bl-dev-main { font-size: 0.9rem; }
.bl-dev-main .bl-muted { font-size: 0.8rem; margin-top: 0.1rem; }

.bl-upcoming { display: flex; flex-direction: column; }
.bl-upcoming-row { display: flex; gap: 0.6rem; align-items: center; padding: 0.3rem 0.4rem; border-radius: var(--radius-sm); font-size: 0.88rem; }
.bl-upcoming-row.is-today { background: #ECFDF5; font-weight: 600; }
.bl-upcoming-date { width: 6.5rem; color: var(--color-text-muted); font-variant-numeric: tabular-nums; }

/* ---------- Csengetési rendek ---------- */
.bl-sched-layout { display: grid; grid-template-columns: 280px 1fr; gap: var(--space-4); align-items: start; }
@media (max-width: 900px) { .bl-sched-layout { grid-template-columns: 1fr; } }
.bl-sched-list { display: flex; flex-direction: column; gap: 0.25rem; margin: 0.5rem 0; }
.bl-sched-item {
  display: flex; align-items: center; gap: 0.5rem; width: 100%;
  padding: 0.55rem 0.6rem; border: 1px solid transparent; border-radius: var(--radius-sm);
  background: transparent; cursor: pointer; text-align: left; font: inherit;
}
.bl-sched-item:hover { background: var(--color-surface-muted); }
.bl-sched-item.active { background: #F0FDFA; border-color: var(--color-accent); }
.bl-sched-name { flex: 1; font-weight: 600; }
.bl-sched-item .bl-muted { font-size: 0.75rem; }

.bl-sched-head { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-bottom: var(--space-3); }
.bl-sched-name-input { font-size: 1.1rem; font-weight: 700; padding: 0.35rem 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); min-width: 10rem; }
.bl-sched-head input[type=color] { width: 2.4rem; height: 2.2rem; padding: 0; border: none; background: none; cursor: pointer; }

.bl-events-table select, .bl-events-table input[type=time] { padding: 0.3rem; border: 1px solid var(--color-border); border-radius: 0.4rem; font: inherit; }
.bl-events-table input[type=time] { font-variant-numeric: tabular-nums; }
.bl-events-table tr.t-row-in td:first-child { box-shadow: inset 3px 0 0 #3B82F6; }
.bl-events-table tr.t-row-warn td:first-child { box-shadow: inset 3px 0 0 #F59E0B; }
.bl-events-table tr.t-row-out td:first-child { box-shadow: inset 3px 0 0 #10B981; }
.bl-events-table tr.t-row-other td:first-child { box-shadow: inset 3px 0 0 #9CA3AF; }
.bl-events-table tr.bl-saved td { background: #ECFDF5; transition: background 0.2s; }
.bl-new-event-row td { background: var(--color-surface-muted); }
.bl-row-actions { white-space: nowrap; }
.bl-row-actions .btn { padding: 0.3rem 0.55rem; }
.bl-preview-btn.playing { background: #DBEAFE; color: #1D4ED8; }

.bl-timeline {
  position: relative; height: 2.2rem; margin: 0.4rem 0 var(--space-3);
  background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: var(--radius-sm);
}
.bl-tl-hour { position: absolute; bottom: 0.1rem; transform: translateX(-50%); font-size: 0.65rem; color: var(--color-text-faint); }
.bl-tl-mark { position: absolute; top: 0.25rem; width: 3px; height: 1.1rem; transform: translateX(-50%); border-radius: 2px; }
.bl-tl-mark.t-in { background: #3B82F6; }
.bl-tl-mark.t-warn { background: #F59E0B; }
.bl-tl-mark.t-out { background: #10B981; }
.bl-tl-mark.t-other { background: #9CA3AF; }

/* ---------- Naptár ---------- */
.bl-weekday-plan { display: flex; flex-direction: column; gap: 0.35rem; margin: 0.6rem 0; }
.bl-weekday-row { display: flex !important; flex-direction: row !important; align-items: center; gap: 0.6rem; }
.bl-weekday-row span { width: 6rem; font-weight: 600; }
.bl-weekday-row select { flex: 1; }
.bl-ov-row { display: flex; justify-content: space-between; align-items: center; padding: 0.35rem 0; border-bottom: 1px solid var(--color-border); }
.bl-past { opacity: 0.5; }

/* ---------- Hangtár ---------- */
.bl-dropzone {
  border: 2px dashed var(--color-border); border-radius: var(--radius-md);
  padding: var(--space-4); text-align: center; transition: background 0.15s, border-color 0.15s;
}
.bl-dropzone.drag { background: #F0FDFA; border-color: var(--color-accent); }
.bl-dropzone p { margin: 0.2rem 0; }
.bl-file-label { color: #0E7C8C; text-decoration: underline; cursor: pointer; }
.bl-upload-kind { display: flex; gap: 1.2rem; justify-content: center; margin-top: 0.5rem; }
.bl-upload-kind label { display: inline-flex !important; flex-direction: row !important; gap: 0.3rem; align-items: center; }
.bl-upload-row { display: flex; gap: 0.6rem; align-items: center; margin-top: 0.4rem; font-size: 0.85rem; }
.bl-upload-row progress { flex: 1; }
.bl-upload-error { color: var(--color-danger); }
.bl-sounds-table input[type=text] { width: 100%; min-width: 10rem; }

/* ---------- Szünetzene ---------- */
.bl-playlist { padding-left: 1.4rem; margin: 0.5rem 0; }
.bl-playlist li { padding: 0.2rem 0; }
.bl-playlist li > * { vertical-align: middle; }
.bl-pl-name { display: inline-block; min-width: 12rem; }
.bl-playlist .btn { padding: 0.25rem 0.5rem; }
.bl-range-row { display: flex !important; flex-direction: row !important; align-items: center; gap: 0.6rem; }
.bl-range-row input[type=range] { flex: 1; }

/* ---------- Eszközök ---------- */
.bl-dev-card { padding: 0.6rem 0; border-bottom: 1px solid var(--color-border); }
.bl-pair-info {
  margin-top: var(--space-3); padding: var(--space-3); border-radius: var(--radius-md);
  background: #F0FDFA; border: 1px solid var(--color-accent);
}
.bl-pair-info dl { display: grid; grid-template-columns: auto 1fr; gap: 0.3rem 1rem; margin: 0.4rem 0; }
.bl-pair-info dt { color: var(--color-text-muted); }
.bl-pair-info dd { margin: 0; }
.bl-pair-code { font-size: 1.6rem; font-weight: 800; letter-spacing: 0.12em; }
.bl-log { max-height: 480px; overflow: auto; }

.bl-dialog-msg { margin: 0; white-space: pre-line; line-height: 1.45; }

/* Szünetzene-listák */
.bl-pl-tabs { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.5rem 0; }
.bl-pl-tab {
  font: inherit; padding: 0.35rem 0.75rem; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--color-border); background: var(--color-surface);
}
.bl-pl-tab.active { border-color: var(--color-accent); background: #F0FDFA; font-weight: 600; }
.bl-pl-new { border-style: dashed; color: var(--color-text-muted); }
.bl-pl-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; font-size: 0.85rem; }
.ev-playlist { margin-top: 0.25rem; display: block; max-width: 11rem; }
.ev-playlist[hidden], #bl-ne-playlist[hidden] { display: none; }

/* Különleges napok / időszakok */
.bl-special-card { grid-column: 1 / -1; }
.bl-sp-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.6rem 0.9rem; margin: 0.6rem 0 0.9rem; align-items: end; }
.bl-sp-form label { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.85rem; }
.bl-sp-form .bl-sp-wide { grid-column: 1 / -1; }
.bl-sp-actions { display: flex; gap: 0.5rem; }
.bl-sp-row { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; padding: 0.55rem 0.2rem; border-bottom: 1px solid var(--color-border); }
.bl-sp-active { background: #FFFBEB; }
.bl-tag-special { background: #FEF3C7; color: #92400E; }

/* Ütemezett kikapcsolás */
.bl-active-mute { display: flex; justify-content: space-between; align-items: center; gap: 0.8rem; flex-wrap: wrap;
  padding: 0.7rem 0.9rem; border-radius: var(--radius-md); background: #FEE2E2; color: #7F1D1D; border: 1px solid #FCA5A5; }
.bl-mute-active { background: #FEF2F2; }
.bl-tag-mute { background: #FEE2E2; color: #991B1B; }

/* Hosszú hangnevek (pl. "becsengetes_balassa_karacsony") ne lógjanak ki a gombból: a név a
   gombon belül törik (aláhúzásnál is), a harang-ikon mellette marad. */
.bl-quick-btn { display: flex; align-items: center; justify-content: center; gap: 0.35rem; min-width: 0; text-align: center; line-height: 1.25; }
.bl-qb-ico { flex-shrink: 0; }
.bl-qb-name { min-width: 0; overflow-wrap: break-word; }

/* Szünetek zenéje (rend-szerkesztő) */
.bl-breaks { margin: 0.6rem 0 1rem; padding: 0.8rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface-muted); }
.bl-breaks h4 { margin: 0 0 0.3rem; font-size: 0.98rem; }
.bl-break-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); gap: 0.3rem 0.8rem; align-items: center; padding: 0.45rem 0; border-top: 1px solid var(--color-border); }
.bl-break-row:first-of-type { border-top: none; }
.bl-break-when .bl-muted { margin-left: 0.4rem; font-size: 0.85rem; }
.bl-break-row select { padding: 0.35rem; border: 1px solid var(--color-border); border-radius: 0.4rem; font: inherit; width: 100%; }
.bl-break-warn { grid-column: 1 / -1; color: #B45309; font-size: 0.85rem; }
@media (max-width: 700px) { .bl-break-row { grid-template-columns: 1fr; } }
/* Különleges nap: szünetenkénti zene */
.bl-sp-breaks { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0.5rem 0.9rem; }
.bl-sp-break { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.85rem; margin: 0; }
.bl-sp-break .bl-muted { font-weight: 400; }
.bl-sp-break-hint { grid-column: 1 / -1; margin: 0.2rem 0 0; }

/* Csengő-gép kijelző-módja */
.bl-dev-display { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5rem 0.8rem; margin: 0.6rem 0; padding: 0.6rem 0.8rem; border: 1px dashed var(--color-border); border-radius: var(--radius-md); font-size: 0.88rem; }
.bl-dev-display-title { width: 100%; font-weight: 600; }
.bl-dev-display label { display: flex; flex-direction: column; gap: 0.2rem; }
.bl-dev-display label[hidden] { display: none; }
.bl-dev-display select, .bl-dev-display input { padding: 0.35rem; border: 1px solid var(--color-border); border-radius: 0.4rem; font: inherit; max-width: 100%; }
.bl-dev-display input { width: 5rem; }
.bl-dev-display-hint { width: 100%; margin: 0.2rem 0 0; }
.bl-dev-display input[data-disp="pin"] { width: 13rem; }
.bl-kiosk-details { margin-top: 1rem; padding-top: 0.6rem; border-top: 1px solid var(--color-border); }
.bl-kiosk-details summary { cursor: pointer; font-weight: 600; }

/* Több zene, saját sorrendben — szerkesztő ablak */
.bl-seq-card { max-width: 34rem; width: calc(100vw - 2rem); }
.bl-seq-list { margin: 0.6rem 0; padding-left: 0; list-style: none; max-height: 45vh; overflow-y: auto; }
.bl-seq-list li { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.3rem 0; border-bottom: 1px solid var(--color-border); }
.bl-seq-list li::marker { font-weight: 600; }
.bl-seq-num { font-weight: 700; min-width: 1.8rem; color: var(--color-text-muted, #64748b); }
.bl-seq-name { min-width: 0; flex: 1; overflow-wrap: anywhere; }
.bl-break-seq { grid-column: 1 / -1; font-size: 0.85rem; color: var(--color-text-muted, #64748b); overflow-wrap: anywhere; }
.bl-seq-btns { display: flex; gap: 0.2rem; flex-shrink: 0; }
.bl-seq-btns .btn-sm { padding: 0.2rem 0.5rem; min-width: 2rem; }
.bl-seq-add select { width: 100%; padding: 0.4rem; border: 1px solid var(--color-border); border-radius: 0.4rem; font: inherit; }
