
.training-table { width: 100%; border-collapse: collapse; background: var(--bg-elev); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.training-table th, .training-table td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--line); }
.training-table th { background: var(--bg-soft); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.training-table tr:last-child td { border-bottom: none; }
.training-table tr:hover { background: var(--bg-soft); }
.day-pill { display: inline-block; background: var(--pink); color: #fff; padding: 4px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.crew-name { font-weight: 700; font-family: 'Bricolage Grotesque', sans-serif; }
.crew-age { color: var(--muted); font-size: 12px; margin-top: 2px; }
.event-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.event-card { background: var(--bg-elev); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; transition: all 0.3s; }
.event-card:hover { border-color: var(--pink); transform: translateY(-4px); box-shadow: 0 12px 30px rgba(0,0,0,0.08); }
.event-date { background: var(--pink); color: #fff; display: inline-block; padding: 5px 12px; border-radius: 6px; font-weight: 700; font-size: 12px; margin-bottom: 12px; }
.event-title { font-family: 'Bricolage Grotesque', sans-serif; font-weight: 800; font-size: 19px; letter-spacing: -0.01em; margin-bottom: 6px; line-height: 1.2; }
.event-loc { font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.event-desc { font-size: 13px; color: #3a3a35; line-height: 1.5; }
.event-tag { display: inline-block; background: var(--bg-soft); padding: 3px 10px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; margin-top: 10px; }
.info-banner { background: linear-gradient(135deg, #0d0d0d, #2a2a2a); color: #fff; border-radius: 16px; padding: 32px; display: flex; gap: 28px; align-items: center; flex-wrap: wrap; margin-bottom: 50px; }
.info-banner h3 { font-family: 'Bricolage Grotesque', sans-serif; font-size: 28px; font-weight: 800; margin-bottom: 10px; letter-spacing: -0.02em; }
.info-banner h3 em { color: var(--pink-light); font-style: normal; }
.info-banner p { color: rgba(255,255,255,0.8); margin-bottom: 16px; font-size: 14px; }
.info-banner a { background: var(--pink); color: #fff; padding: 10px 22px; border-radius: 999px; font-weight: 600; display: inline-block; transition: all 0.2s; }
.info-banner a:hover { background: var(--pink-light); transform: translateY(-2px); }
.info-banner-big { font-family: 'Bricolage Grotesque', sans-serif; font-size: 64px; font-weight: 800; color: rgba(230,0,126,0.25); line-height: 1; }
@media (max-width: 640px) { .training-table th, .training-table td { padding: 10px 8px; font-size: 13px; } .info-banner { padding: 24px; } }

.schedule-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap; scroll-margin-top:100px; }
.schedule-heading .section-sub { margin-bottom:24px; }
.schedule-actions { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:24px; }
.schedule-list { border-top:1px solid var(--line); }
.schedule-entry { display:flex; align-items:flex-start; gap:28px; padding:26px 0; border-bottom:1px solid var(--line); }
.schedule-date { flex:0 0 95px; }
.schedule-date strong { display:block; font:800 28px 'Bricolage Grotesque',sans-serif; color:var(--pink); }
.schedule-date span { display:block; font-size:13px; color:var(--muted); }
.schedule-body { flex:1; min-width:0; }
.schedule-body h3 { font:800 24px 'Bricolage Grotesque',sans-serif; margin:4px 0 8px; overflow-wrap:anywhere; }
.schedule-kind,.schedule-repeat { font-size:12px; color:var(--muted); }
.schedule-meta,.schedule-description,.schedule-body>p { margin-bottom:8px; }
.schedule-description { white-space:pre-wrap; overflow-wrap:anywhere; }
.schedule-body a { color:var(--pink); text-decoration:underline; }
.appointment-dialog { margin:auto; padding:0; width:min(620px,calc(100% - 24px)); max-height:90dvh; border:1px solid #a580c7; border-radius:18px; background:white; }
.appointment-dialog::backdrop { background:#17101e66; }
.appointment-form { padding:0 24px 24px; }
.appointment-columns { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.appointment-columns label { min-width:0; }
.appointment-buttons { display:flex; flex-wrap:wrap; gap:10px; }
.appointment-manager-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; border-bottom:1px solid #e6dfee; }
.appointment-manager-row p { font-size:13px; color:#69616e; }
@media(max-width:600px) { .schedule-entry { flex-wrap:wrap; gap:16px; } .schedule-date { flex-basis:76px; } .schedule-entry>.adm-ui { flex-basis:100%; } .appointment-columns { grid-template-columns:1fr; gap:0; } .appointment-form { padding:0 18px 18px; } }
.training-note { display:block; font-size:12px; color:var(--muted); margin-top:5px; }
.training-table .adm-ui button { padding:5px 10px; margin-top:6px; font-size:12px; }
