/**
 * Template Name: LightBlack - Custom overrides
 * By (Author): LightBlack
 * Module/App (File Name): LB Custom CSS overrides (loaded after app.min.css)
 */

/* app.min.css lowers the flatpickr z-index to 999, which hides body-appended
   calendars behind Bootstrap offcanvas (1045) and modals (1055). Keep them
   above both (popover level). */
.flatpickr-calendar.open {
    z-index: 1075;
}

/* Δίοδος: bigger logo in the sidebar / topbar (was 26px high) */
.sidenav-menu .logo .logo-lg img,
.topbar .logo .logo-lg img { height: 42px; width: auto; }
.sidenav-menu .logo { padding-top: 6px; padding-bottom: 6px; }
.sidenav-menu .logo .logo-lg img { position: relative; top: -10px; }

/* Required fields: red asterisk after the label (Symfony puts .required on labels of required fields) */
label.required::after,
.form-label.required::after {
    content: " *";
    color: var(--bs-danger, #dc3545);
    font-weight: 600;
}

/* Description editor (public/js/rich-text.js) */
/* same font as the other fields (the textarea above): Quill's own is Helvetica 14px */
.rich-text-editor.ql-container, .rich-text-editor .ql-editor { font-family: var(--bs-body-font-family); font-size: var(--bs-body-font-size, .8125rem); line-height: 1.5; color: var(--bs-body-color); }
.rich-text-editor .ql-editor { min-height: 260px; padding: .5rem .75rem; }
.rich-text-editor .ql-editor p, .rich-text-editor .ql-editor li { margin-bottom: .35rem; }
/* the theme makes <strong> only 500 — barely visible as bold */
.rich-text-editor .ql-editor strong, .rich-text-editor .ql-editor b, .rich-text strong, .rich-text b { font-weight: 700; }
.rich-text-editor .ql-editor.ql-blank::before { font-style: normal; left: .75rem; }
.ql-toolbar.ql-snow, .ql-container.ql-snow { border-color: var(--bs-border-color); }
.ql-toolbar.ql-snow { border-radius: var(--bs-border-radius) var(--bs-border-radius) 0 0; }
.ql-container.ql-snow { border-radius: 0 0 var(--bs-border-radius) var(--bs-border-radius); }
[data-bs-theme="dark"] .ql-snow .ql-stroke { stroke: var(--bs-body-color); }
[data-bs-theme="dark"] .ql-snow .ql-fill { fill: var(--bs-body-color); }

.rich-text p { margin-bottom: .5rem; }
.rich-text ul, .rich-text ol { padding-left: 1.25rem; margin-bottom: .5rem; }

/* centre locations table: hide empty contact lines */
.loc-contact .loc-line:has(span:empty) { display: none; }

/* ---- Switches: one size everywhere (docs/UI-CONVENTIONS.md) ---- */
.form-switch { padding-left: 52px; min-height: 22px; }
.form-switch .form-check-input { width: 40px; height: 22px; margin-left: -52px; margin-top: 0; cursor: pointer; }
.form-switch .form-check-label { padding-top: 1px; cursor: pointer; }
/* a switch with no label next to it starts at the left edge, under its title */
.form-switch.switch-only, .switch-only .form-switch { padding-left: 0; }
.form-switch.switch-only .form-check-input, .switch-only .form-switch .form-check-input { margin-left: 0; }

/* ---- Locked / disabled fields: clearly not editable ---- */
.form-control:disabled, .form-select:disabled {
    background-color: var(--bs-tertiary-bg, #f3f4f6);
    color: var(--bs-secondary-color, #6c757d);
    border-style: dashed;
    cursor: not-allowed;
    opacity: 1;
}
/* switch OFF: clearly visible (grey track, dark knob), not a faint outline */
.form-switch .form-check-input:not(:checked) {
    background-color: #dfe3ea;
    border: 1px solid #9aa3b2;
    --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23ffffff' stroke='%236b7280' stroke-width='.6'/%3e%3c/svg%3e");
}
[data-bs-theme="dark"] .form-switch .form-check-input:not(:checked) { background-color: #3a3f4b; border-color: #6b7280; }

/* certifications table (templates/partials/certification_row.html.twig) */
.cert-table .cert-logo-box{width:36px;height:36px;flex:0 0 36px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:var(--bs-tertiary-bg);overflow:hidden}
.cert-table .cert-body-logo{max-width:100%;max-height:100%;object-fit:contain}
.cert-table tr.cert-row-invalid td{background:rgba(var(--bs-danger-rgb),.05)}
.cert-offcanvas .cert-field .form-text{margin-top:.25rem}
.cert-table .cert-logo-box:empty{display:none}
table#certifications + .add-button{display:none} /* the visible one is .add-cert-row-btn above the table, like locations */
table#specializations + .add-button{display:none} /* visible one: .add-spec-row-btn above the table */
/* centre team cards (templates/center/_team_cards.html.twig) — Figma «Profile KEK - Team Members» */
.team-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px;padding-top:68px;margin-top:8px}
.team-card-wrap{position:relative;max-width:300px}
.team-photo{position:absolute;top:-68px;left:50%;transform:translateX(-50%);width:132px;height:132px;border-radius:50%;overflow:hidden;background:#e6ecf1;border:6px solid #fff;box-shadow:0 0 0 1px #dde3ea,0 4px 10px rgba(0,0,0,.06);display:flex;align-items:center;justify-content:center;z-index:1}
.team-photo img{width:100%;height:100%;object-fit:cover}
.team-initials{font-size:36px;font-weight:600;color:#6b7785}
.team-card{border:1px solid #e3e8ee;border-radius:16px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.05);padding:78px 16px 14px;height:100%;display:flex;flex-direction:column}
.team-name{font-size:17px;font-weight:500;line-height:1.3}
.team-job{font-size:13px;margin-top:6px}
.team-specs{font-size:12px;color:#6b7785;margin-top:8px}
.team-foot{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:8px}
.team-pill{font-size:12px;border-radius:999px;padding:5px 14px;white-space:nowrap}
.team-pill-member{background:#bfe8c3;color:#14532d}
.team-pill-pending{background:#fbd38d;color:#7a4b00}
.team-btn{width:26px;height:26px;border:0;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:15px;padding:0}
.team-btn-del{background:#b42318}
.team-btn-mail{background:#2a9d8f}
.team-btn:hover{filter:brightness(1.1)}
.team-add{border:0;background:none;padding:0;margin-top:24px;display:inline-flex;align-items:center;gap:10px;font-size:14px;color:inherit}
.team-add-plus{width:22px;height:22px;background:#2a9d8f;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.team-avatar{width:40px;height:40px;flex:0 0 40px;border-radius:50%;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:#e6ecf1;font-size:18px;color:#6b7785}
.team-avatar img{width:100%;height:100%;object-fit:cover}
/* centre «Διαχειριστές» table (Figma «Profile KEK - Admins»): light rows with a gap between them */
.admins-table{border-collapse:separate;border-spacing:0 4px}
.admins-table thead th{border:0;font-weight:600}
.admins-table tbody td{background:#e9f5f2;border:0}
.admins-table tbody tr.admins-row-pending td{background:#f4f8f7}
.admins-photo-cell{width:56px}
/* dashboard: my own (trainer) profile card on a light background, above «Τα κέντρα μου» */
.dd-profile-me{background:#f1f8f6;border-color:#d7ebe6}
/* Seminar list (Figma 154:1199) */
.seminar-table thead th{font-weight:600;font-size:13px;color:#212529;border-bottom:0;text-transform:none;background:transparent}
.seminar-table tbody tr td{border:0;padding-top:10px;padding-bottom:10px}
.seminar-table tbody tr:nth-child(odd) td{background:#eaf6f3}
.seminar-thumb-col{width:64px}
.seminar-thumb{width:48px;height:48px;border-radius:6px;background:#e6e9ec;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;color:#9aa4ad;font-size:20px}
.seminar-thumb img{width:100%;height:100%;object-fit:cover}
.seminar-pill{display:inline-block;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}
.seminar-pill-done{background:#dfe2e5;color:#3d4650}
.seminar-pill-active{background:#c9f0cf;color:#1f7a35}
.seminar-pill-draft{background:#ffe2a1;color:#7a5200}
.seminar-act{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border-radius:4px;border:0;color:#fff!important;font-size:16px;margin-left:6px;vertical-align:middle}
.seminar-act-edit{background:#2a9d8f}.seminar-act-copy{background:#5b7bd5}.seminar-act-view{background:#8a9299}.seminar-act-delete{background:#b3191f}
.seminar-act:hover{filter:brightness(.92)}
.seminar-filter-date{width:auto}.seminar-filter-status{width:auto}
.seminar-search{width:300px;max-width:100%}
@media (max-width:767px){.seminar-search{width:100%;margin-left:0!important}}
/* Seminar form, General information (Figma 154:1702) */
.seminar-general .seminar-sub{display:flex;gap:10px;align-items:flex-start}
.seminar-general .seminar-sub-arrow{font-size:22px;color:#6c757d;margin-top:30px}
.seminar-image-preview{width:84px;height:84px;flex:0 0 84px;border-radius:8px;background:#e6e9ec;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#9aa4ad;font-size:28px}
.seminar-image-preview img{width:100%;height:100%;object-fit:cover}
.form-switch-lg .form-check-input{width:3em;height:1.5em}
.seminar-list .dt-container > .row{margin-left:0;margin-right:0}
.seminar-list .dt-container > .row > *{padding-left:0;padding-right:0}
/* Choices.js group headings (e.g. seminar «Κατηγορία»): main categories dark and bold, not greyed out */
.choices__list--dropdown .choices__group .choices__heading,.choices__list[aria-expanded] .choices__group .choices__heading{color:#212529;font-weight:700;opacity:1;font-size:13px;border-bottom:1px solid #e9ecef}
.seminar-general .crop-preview{display:none!important}
/* Seminar «Πρόγραμμα» (seminar-sessions.js) */
.sessions-table thead th{font-weight:600;font-size:13px;border-bottom:0;background:transparent}
.sessions-table tbody tr td{border:0;padding-top:10px;padding-bottom:10px}
.sessions-table tbody tr:nth-child(odd) td{background:#eaf6f3}
#session-offcanvas .session-days .btn{min-width:84px}
