/* ============================================
   Agenda Scolaire EPS — Zone Total Sport
   Style zonetotalsport.ca — Vibrant & Modern
   ============================================ */

:root {
  --cyan: #00E5FF;
  --yellow: #FFD600;
  --pink: #FF1493;
  --purple: #7C4DFF;
  --orange: #FF9800;
  --green: #4CAF50;
  --navy: #0d1b2e;
  --dark: #1a1a2e;
  --white: #ffffff;
  --cream: #f5f0e8;
  --text: #1a1a2e;
  --text-light: #666;
  --r-sm: 12px;
  --r-md: 18px;
  --r-lg: 24px;
  --r-xl: 32px;
}

* { margin:0; padding:0; box-sizing:border-box; }

body {
  font-family:'Schoolbell',cursive,system-ui,sans-serif;
  background-color:#f5f5dc;
  color:var(--text);
  min-height:100vh;
  font-size:1.1rem;
  overflow-x:hidden;
}

#gymBg {
  position:fixed; inset:0; z-index:0;
  background:url('img/gym-bg-roots.jpg') center/cover no-repeat;
  opacity:1;
  pointer-events:none;
}

#app { position:relative; z-index:1; }

h1,h2,h3 { font-family:'Luckiest Guy',cursive; letter-spacing:2px; text-transform:uppercase; }

/* ========== LOADING SCREEN ========== */
#loading-screen {
  position:fixed; inset:0; z-index:999;
  background:#f5f5dc url('img/gym-bg-roots.jpg') center/cover no-repeat;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  animation:fadeOutLoading 0.6s 2.5s forwards;
}
.loading-mascot { height:220px; animation:bounce 0.8s infinite; filter:drop-shadow(0 10px 30px rgba(0,0,0,0.2)); }
.loading-title {
  font-family:'Luckiest Guy',cursive; font-size:4rem; color:var(--navy);
  margin-top:20px; letter-spacing:4px;
}
.loading-sub { font-family:'Schoolbell',cursive; font-size:1.6rem; color:var(--pink); font-weight:bold; margin-top:6px; }
.loading-bar {
  width:240px; height:8px;
  background:rgba(255,255,255,0.4);
  border-radius:20px; margin-top:30px; overflow:hidden;
}
.loading-fill {
  width:0; height:100%;
  background:linear-gradient(90deg,var(--pink),var(--yellow),var(--purple));
  border-radius:20px;
  animation:loadFill 2.2s ease forwards;
}
@keyframes loadFill { to { width:100%; } }
@keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-18px)} }
@keyframes fadeOutLoading { to { opacity:0; pointer-events:none; } }

.app-hidden { opacity:0; animation:fadeInApp 0.5s 2.8s forwards; }
@keyframes fadeInApp { to { opacity:1; } }

/* ========== HEADER ========== */
.app-header {
  display:flex; flex-direction:column; align-items:center;
  padding:20px 28px 14px;
  background:var(--navy);
  position:sticky; top:0; z-index:50;
  box-shadow:0 4px 30px rgba(0,0,0,0.3);
}
.header-center { display:flex; align-items:center; gap:18px; justify-content:center; }
.header-text { text-align:center; }
.header-mascot { height:120px; filter:drop-shadow(0 4px 12px rgba(0,0,0,0.3)); }
.header-title {
  font-size:3.8rem; color:var(--white);
  letter-spacing:4px;
}
.header-sub { font-family:'Schoolbell',cursive; font-size:1.5rem; color:var(--cyan); font-weight:bold; text-decoration:none; }
.header-sub:hover { text-decoration:underline; }
.header-actions { display:flex; gap:10px; margin-top:10px; align-items:center; flex-wrap:wrap; justify-content:center; }
.lang-switcher { display:flex; gap:4px; margin-right:8px; }
.lang-btn {
  font-family:'Schoolbell',sans-serif; font-size:0.75rem; font-weight:600;
  padding:6px 10px; border-radius:50px; border:2px solid rgba(255,255,255,0.3);
  background:transparent; color:rgba(255,255,255,0.7); cursor:pointer; transition:all 0.2s;
}
.lang-btn:hover { border-color:var(--cyan); color:var(--white); }
.lang-btn.lang-active { background:var(--cyan); color:var(--navy); border-color:var(--cyan); }
.hdr-btn {
  font-size:1.3rem; width:44px; height:44px;
  border-radius:var(--r-sm); border:none;
  background:rgba(255,255,255,0.1); color:var(--white);
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:all 0.2s;
}
.hdr-btn:hover { background:rgba(255,255,255,0.2); transform:scale(1.1); }
.hdr-btn-danger:hover { background:rgba(255,20,20,0.3); }

/* ========== TAB NAV ========== */
.tab-nav {
  display:flex; justify-content:center; gap:12px;
  padding:16px 20px;
  background:var(--dark);
  border-bottom:none;
}
.tab-btn {
  font-family:'Luckiest Guy',cursive; font-size:1.15rem;
  padding:12px 24px; border-radius:50px;
  border:2px solid rgba(255,255,255,0.15);
  background:rgba(255,255,255,0.06); color:rgba(255,255,255,0.7);
  cursor:pointer; transition:all 0.25s;
  display:flex; align-items:center; gap:8px; letter-spacing:1px;
}
.tab-btn:hover { border-color:rgba(255,255,255,0.3); color:#fff; background:rgba(255,255,255,0.1); }
.tab-active {
  background:var(--cyan) !important;
  border-color:var(--cyan) !important;
  color:var(--navy) !important;
  font-weight:bold;
}
.tab-icon { font-size:1.2rem; }

/* ========== VIEW SECTIONS ========== */
.view-section { display:none; padding:24px; max-width:1400px; margin:0 auto; }
.view-active { display:block; }

/* ========== HERO BANNER (above calendar) ========== */
.month-controls {
  display:flex; align-items:center; justify-content:center; gap:20px;
  padding:20px 24px; margin-bottom:20px; flex-wrap:wrap;
  background:var(--white);
  border-radius:var(--r-xl);
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
}
.ctrl-btn {
  font-family:'Luckiest Guy',cursive; font-size:1.6rem;
  width:52px; height:52px; border-radius:50%;
  border:none;
  cursor:pointer; transition:all 0.2s;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,0.1);
}
.ctrl-prev { background:var(--pink); color:#fff; }
.ctrl-next { background:var(--green); color:#fff; }
.ctrl-btn:hover { transform:scale(1.12); box-shadow:0 6px 20px rgba(0,0,0,0.15); }
.month-title {
  font-size:2.4rem; color:var(--navy);
  letter-spacing:3px;
}
.ctrl-periods {
  display:flex; align-items:center; gap:10px;
  background:var(--cream);
  border-radius:50px; padding:8px 18px;
}
.ctrl-periods label { font-family:'Luckiest Guy',cursive; font-size:1rem; color:var(--text-light); }
.ctrl-periods select {
  font-family:'Schoolbell',cursive; font-size:1.1rem;
  background:var(--white); color:var(--navy);
  border:2px solid #ddd; border-radius:50px;
  padding:4px 12px; cursor:pointer;
}

/* ========== CALENDAR ========== */
.cal-wrapper {
  background:rgba(255,255,255,0.75);
  border-radius:var(--r-xl); overflow:hidden;
  box-shadow:0 12px 40px rgba(0,0,0,0.08);
  backdrop-filter:blur(6px);
}
.cal-header-row, .cal-grid {
  display:grid; grid-template-columns:repeat(7,1fr); gap:0;
}
.cal-day-name {
  font-family:'Luckiest Guy',cursive; font-size:1.1rem;
  text-align:center; padding:12px 4px;
  background:var(--navy); color:var(--white);
  letter-spacing:2px;
}
.cal-cell {
  min-height:105px; padding:8px;
  background:var(--white);
  border:1px solid #eee;
  cursor:pointer; position:relative;
  transition:all 0.2s;
  display:flex; flex-direction:column;
}
.cal-cell:hover {
  background:#e0f7fa;
  transform:scale(1.05);
  z-index:5;
  box-shadow:0 8px 25px rgba(0,229,255,0.2);
  border-radius:var(--r-sm);
}
.cal-cell.empty { background:transparent; border:none; cursor:default; }
.cal-cell.empty:hover { background:transparent; transform:none; box-shadow:none; }
.cal-cell.today { background:#fff3e0; border:2px solid var(--orange); border-radius:var(--r-sm); }
.cal-cell.weekend { background:#f5f5f5; }
.cal-cell.weekend:hover { background:#e0e0e0; }
.cal-num { font-family:'Luckiest Guy',cursive; font-size:1.4rem; color:var(--navy); line-height:1; }
.cal-cell.today .cal-num { color:var(--orange); }
.cal-cell.weekend .cal-num { color:#999; }
.cal-holiday { position:absolute; top:3px; right:5px; text-align:right; pointer-events:none; max-width:80%; }
.cal-holiday-icon { font-size:1.5rem; }
.cal-holiday-name {
  font-size:0.65rem; background:var(--yellow); color:var(--navy);
  padding:2px 6px; border-radius:50px; font-weight:bold;
  display:inline-block; margin-top:2px; line-height:1.1;
}
.cal-note {
  font-size:0.72rem; background:var(--navy); color:#fff;
  padding:2px 6px; border-radius:50px; margin-top:4px;
  font-weight:bold; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cal-dots { display:flex; flex-wrap:wrap; gap:4px; margin-top:auto; padding-top:4px; }
.cal-dot { width:12px; height:12px; border-radius:50%; box-shadow:0 1px 3px rgba(0,0,0,0.15); }
.cal-weekend-note { font-size:0.72rem; color:#888; font-style:italic; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.cal-mascot-float {
  position:fixed; bottom:20px; right:20px; z-index:10;
  opacity:0.15; pointer-events:none;
}
.cal-mascot-float img { height:180px; filter:drop-shadow(0 4px 15px rgba(0,0,0,0.15)); }

/* ========== HEBDO ========== */
.hebdo-controls {
  display:flex; align-items:center; justify-content:center; gap:18px;
  padding:18px; margin-bottom:20px;
  background:var(--white);
  border-radius:var(--r-xl);
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
}
.hebdo-selects { display:flex; gap:10px; }
.hebdo-selects select {
  font-family:'Schoolbell',cursive; font-size:1.1rem;
  background:var(--white); color:var(--navy);
  border:2px solid #ddd; border-radius:50px;
  padding:8px 16px; cursor:pointer;
  transition:border-color 0.2s;
}
.hebdo-selects select:focus { border-color:var(--cyan); outline:none; }
.hebdo-grid {
  display:grid; grid-template-columns:repeat(5,1fr);
  gap:14px;
}
.hebdo-col { display:flex; flex-direction:column; gap:10px; min-width:0; }
.hebdo-day-hdr {
  text-align:center; padding:14px;
  border-radius:var(--r-lg);
  color:var(--navy);
  box-shadow:0 4px 15px rgba(0,0,0,0.06);
}
.hebdo-day-hdr h3 { font-size:1.3rem; margin-bottom:2px; color:var(--navy); }
.hebdo-day-hdr .hebdo-date { font-family:'Schoolbell',cursive; font-size:1rem; color:#444; font-weight:bold; }
.hebdo-day-hdr select {
  width:100%; margin-top:8px;
  font-family:'Schoolbell',cursive; font-size:0.85rem;
  background:rgba(255,255,255,0.6); color:var(--navy);
  border:1px solid rgba(0,0,0,0.1); border-radius:50px;
  padding:4px 8px; cursor:pointer;
}
.hebdo-activities {
  flex-grow:1; min-height:350px;
  background:var(--white);
  border:2px dashed #ddd;
  border-radius:var(--r-lg); padding:12px;
  display:flex; flex-direction:column; gap:10px;
  box-shadow:0 4px 15px rgba(0,0,0,0.04);
}
.hebdo-activities.day-off {
  background:#e0f7fa;
  border-color:var(--cyan);
  border-style:solid;
}
.hebdo-holiday-disp {
  text-align:center; padding:12px;
  background:rgba(255,214,0,0.1);
  border-radius:var(--r-md);
}
.hebdo-holiday-disp .h-icon { font-size:2.5rem; }
.hebdo-holiday-disp .h-name { font-family:'Luckiest Guy',cursive; font-size:1.1rem; color:var(--navy); }
.hebdo-block {
  background:var(--white);
  border:1px solid #eee;
  border-radius:var(--r-md); padding:12px;
  box-shadow:0 2px 8px rgba(0,0,0,0.05);
  transition:all 0.2s;
}
.hebdo-block:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,0.1); }
.hebdo-block-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.hebdo-group-badge {
  font-family:'Luckiest Guy',cursive; font-size:0.95rem;
  padding:3px 10px; border-radius:50px;
  background:var(--cream);
}
.hebdo-del { color:var(--pink); font-size:1.3rem; cursor:pointer; transition:transform 0.15s; }
.hebdo-del:hover { transform:scale(1.3); }
.hebdo-act-text { font-size:0.95rem; font-weight:bold; line-height:1.2; }
.hebdo-add-btn {
  font-family:'Luckiest Guy',cursive; font-size:1.1rem;
  width:100%; padding:10px;
  background:var(--cyan); color:var(--navy);
  border:none; border-radius:var(--r-md);
  cursor:pointer; transition:all 0.2s; margin-top:auto;
  letter-spacing:1px;
}
.hebdo-add-btn:hover { background:#00d4ff; transform:translateY(-2px); box-shadow:0 4px 15px rgba(0,229,255,0.3); }

.hebdo-notes-box {
  margin-top:20px;
  background:var(--white);
  border-radius:var(--r-xl); overflow:hidden;
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
}
.hebdo-notes-header {
  display:flex; align-items:center; gap:14px;
  padding:16px 22px;
  background:var(--yellow);
}
.hebdo-notes-mascot { height:45px; filter:drop-shadow(0 3px 8px rgba(0,0,0,0.15)); }
.hebdo-notes-header h3 { font-size:1.4rem; color:var(--navy); }
.hebdo-notes-box textarea {
  width:100%; min-height:120px; padding:18px;
  font-family:'Schoolbell',cursive; font-size:1.2rem;
  background:var(--white); color:var(--navy); border:none;
  resize:vertical; outline:none;
}

/* ========== SÉQUENTIEL ========== */
.seq-hero {
  display:flex; align-items:center; gap:28px;
  padding:30px; margin-bottom:24px;
  background:var(--white);
  border-radius:var(--r-xl);
  box-shadow:0 12px 40px rgba(0,0,0,0.08);
}
.seq-hero-mascot { height:120px; filter:drop-shadow(0 6px 20px rgba(0,0,0,0.15)); }
.seq-hero h2 { font-size:2.6rem; color:var(--navy); }
.seq-hero p { font-family:'Schoolbell',cursive; font-size:1.3rem; color:var(--pink); font-weight:bold; margin-top:6px; }

.seq-config {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px; margin-bottom:28px;
  padding:22px;
  background:var(--white);
  border-radius:var(--r-xl);
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
}
.seq-config-item label { display:block; font-family:'Luckiest Guy',cursive; font-size:1.2rem; color:var(--navy); margin-bottom:6px; }
.seq-config-item select, .seq-config-item input {
  width:100%; font-family:'Schoolbell',cursive; font-size:1.15rem;
  background:var(--white); color:var(--navy);
  border:2px solid #ddd; border-radius:var(--r-md);
  padding:10px 14px;
  transition:border-color 0.2s;
}
.seq-config-item input:focus, .seq-config-item select:focus { border-color:var(--cyan); outline:none; box-shadow:0 0 0 3px rgba(0,229,255,0.15); }

.seq-objectives {
  margin-bottom:28px; padding:22px;
  background:var(--white);
  border-radius:var(--r-xl);
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
}
.seq-objectives h3 { font-size:1.6rem; color:var(--navy); margin-bottom:14px; display:flex; align-items:center; gap:12px; }
.inline-mascot { height:45px; filter:drop-shadow(0 3px 8px rgba(0,0,0,0.15)); }
.seq-legend { display:flex; gap:18px; margin-bottom:14px; font-size:1rem; color:var(--text-light); align-items:center; font-weight:bold; }
.legend-dot { width:16px; height:16px; border-radius:50%; display:inline-block; margin-right:4px; }
.legend-apprend { background:var(--cyan); }
.legend-maitrise { background:var(--yellow); }
.legend-reutilise { background:#ddd; }
.seq-obj-grid { display:flex; gap:14px; overflow-x:auto; padding-bottom:10px; }
.seq-obj-col {
  min-width:290px; flex-shrink:0;
  background:var(--cream);
  border-radius:var(--r-lg); padding:16px;
}
.seq-obj-col h4 { font-family:'Luckiest Guy',cursive; font-size:1.15rem; color:var(--navy); margin-bottom:10px; border-bottom:2px solid rgba(0,0,0,0.08); padding-bottom:8px; }
.seq-obj-col label {
  display:flex; align-items:center; gap:10px; padding:6px 8px;
  border-radius:var(--r-sm); cursor:pointer; font-size:0.95rem; font-weight:bold; transition:background 0.15s;
}
.seq-obj-col label:hover { background:rgba(0,229,255,0.1); }
.seq-obj-col input[type="checkbox"] { width:20px; height:20px; accent-color:var(--cyan); }
.seq-obj-dot { width:12px; height:12px; border-radius:50%; flex-shrink:0; }

.seq-cards-grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:18px;
}
.seq-card {
  background:var(--white);
  border-radius:var(--r-xl); overflow:hidden;
  box-shadow:0 8px 25px rgba(0,0,0,0.06);
  transition:all 0.25s;
}
.seq-card:hover { transform:translateY(-6px); box-shadow:0 16px 40px rgba(0,0,0,0.12); }
.seq-card-header {
  padding:12px 16px;
  display:flex; justify-content:space-between; align-items:center;
}
.seq-card-header span:first-child { font-family:'Luckiest Guy',cursive; font-size:1.3rem; color:var(--white); }
.seq-card-header span:last-child { font-family:'Schoolbell',cursive; font-size:0.9rem; color:rgba(255,255,255,0.8); }
.seq-card-body { padding:16px; display:flex; flex-direction:column; gap:10px; }
.seq-card-body label { font-family:'Luckiest Guy',cursive; font-size:0.9rem; color:var(--text-light); }
.seq-card-body input {
  width:100%; font-family:'Schoolbell',cursive; font-size:1.05rem;
  background:#f8f8f8; color:var(--navy);
  border:2px solid #eee; border-radius:var(--r-sm);
  padding:8px 12px;
}
.seq-card-body input:focus { border-color:var(--cyan); outline:none; }
.seq-edit-btn {
  font-family:'Luckiest Guy',cursive; font-size:1.1rem;
  padding:10px; width:100%;
  background:var(--navy); color:var(--white);
  border:none; border-radius:50px;
  cursor:pointer; transition:all 0.2s; letter-spacing:1px;
}
.seq-edit-btn:hover { background:#2a2a4e; transform:translateY(-2px); box-shadow:0 4px 15px rgba(0,0,0,0.2); }

/* ========== NOTES ========== */
.notes-hero {
  display:flex; align-items:center; gap:24px;
  margin-bottom:24px;
  background:var(--white); padding:24px;
  border-radius:var(--r-xl);
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
}
.notes-hero-mascot { height:90px; filter:drop-shadow(0 4px 12px rgba(0,0,0,0.15)); }
.notes-hero h2 { font-size:2.4rem; color:var(--navy); }
.notes-area {
  background:var(--white);
  border-radius:var(--r-xl); padding:24px;
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
}
.notes-area h3 { font-family:'Luckiest Guy',cursive; font-size:1.4rem; color:var(--navy); margin-bottom:14px; }
.notes-area textarea {
  width:100%; min-height:350px; padding:20px;
  font-family:'Schoolbell',cursive; font-size:1.25rem;
  background:var(--cream); color:var(--navy);
  border:2px solid #eee; border-radius:var(--r-lg);
  resize:vertical; outline:none;
}
.notes-area textarea:focus { border-color:var(--cyan); }

/* ========== FOOTER ========== */
.app-footer {
  text-align:center; padding:36px 16px;
  margin-top:40px;
  display:flex; flex-direction:column; align-items:center;
}
.app-footer-inner {
  background:rgba(255,255,255,0.85);
  border-radius:var(--r-lg);
  backdrop-filter:blur(6px);
  padding:24px 36px;
  display:inline-block;
}
.footer-mascot { height:100px; filter:drop-shadow(0 6px 15px rgba(0,0,0,0.15)); opacity:0.6; margin-bottom:14px; }
.app-footer p { font-family:'Schoolbell',cursive; color:var(--navy); font-weight:bold; font-size:1.1rem; }
.app-footer a { color:var(--navy); text-decoration:none; }
.app-footer a:hover { text-decoration:underline; color:var(--cyan); }
.footer-copy { font-size:0.85rem; color:#555; margin-top:4px; }

/* ========== MODALS ========== */
.modal-overlay {
  display:none; position:fixed; inset:0; z-index:100;
  background:rgba(13,27,46,0.85); backdrop-filter:blur(8px);
  justify-content:center; align-items:center; padding:20px;
}
.modal-overlay.open { display:flex; }
.modal-box {
  background:var(--white);
  border-radius:var(--r-xl); width:100%; max-width:650px;
  max-height:90vh; overflow-y:auto;
  box-shadow:0 25px 60px rgba(0,0,0,0.3);
}
.modal-box-sm { max-width:440px; }
.modal-box-lg { max-width:900px; }
.modal-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 24px;
  background:var(--cyan);
  border-radius:var(--r-xl) var(--r-xl) 0 0;
}
.modal-header h2 { font-size:1.6rem; color:var(--navy); }
.modal-header-weekend { background:#e0e0e0; }
.modal-header-weekend h2 { color:#555; }
.modal-close {
  font-size:2rem; color:var(--navy);
  background:rgba(255,255,255,0.5); border:none;
  width:40px; height:40px; border-radius:50%;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:all 0.2s;
}
.modal-close:hover { background:var(--pink); color:#fff; transform:scale(1.1); }
.modal-body { padding:24px; }
.modal-field { margin-bottom:18px; }
.modal-field label { display:block; font-family:'Luckiest Guy',cursive; font-size:1.1rem; color:var(--navy); margin-bottom:6px; letter-spacing:0.5px; }
.modal-field input, .modal-field select, .modal-field textarea {
  width:100%; font-family:'Schoolbell',cursive; font-size:1.15rem;
  background:#f8f8f8; color:var(--navy);
  border:2px solid #ddd; border-radius:var(--r-md);
  padding:10px 14px; outline:none;
  transition:border-color 0.2s;
}
.modal-field input:focus, .modal-field select:focus, .modal-field textarea:focus { border-color:var(--cyan); box-shadow:0 0 0 3px rgba(0,229,255,0.12); }

.btn-save {
  font-family:'Luckiest Guy',cursive; font-size:1.3rem;
  width:100%; padding:14px;
  background:var(--navy); color:var(--white);
  border:none; border-radius:50px;
  cursor:pointer; letter-spacing:2px; margin-top:16px;
  transition:all 0.2s;
}
.btn-save:hover { background:#2a2a4e; transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,0.2); }

/* Period rows */
.period-row {
  display:flex; gap:10px; align-items:center;
  padding:12px; margin-bottom:10px;
  background:#f8f8f8;
  border-radius:var(--r-md);
  flex-wrap:wrap;
  transition:background 0.15s;
}
.period-row:hover { background:#f0f0f0; }
.period-label { font-family:'Luckiest Guy',cursive; font-size:1.4rem; min-width:40px; text-align:center; color:var(--pink); }
.period-row select, .period-row input {
  font-family:'Schoolbell',cursive; font-size:1.05rem;
  background:var(--white); color:var(--navy);
  border:2px solid #ddd; border-radius:var(--r-sm);
  padding:6px 10px; flex:1; min-width:0;
}

/* Seq modal */
.seq-modal-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.seq-obj-list {
  max-height:160px; overflow-y:auto;
  background:#f8f8f8;
  border-radius:var(--r-md); padding:10px;
}
.seq-obj-list label {
  display:flex; align-items:center; gap:8px; padding:5px;
  font-size:0.95rem; cursor:pointer; font-weight:bold;
}
.seq-obj-list input[type="checkbox"] { accent-color:var(--cyan); }
.editor-toolbar {
  display:flex; gap:6px; padding:10px;
  background:var(--cyan);
  border-radius:var(--r-md) var(--r-md) 0 0;
}
.editor-btn {
  padding:6px 16px; background:rgba(255,255,255,0.7);
  border:none; border-radius:50px;
  color:var(--navy); cursor:pointer; font-weight:bold;
  transition:background 0.15s;
}
.editor-btn:hover { background:var(--white); }
.editor-area {
  min-height:220px; padding:16px;
  background:#f8f8f8;
  border:2px solid #eee;
  border-top:none; border-radius:0 0 var(--r-md) var(--r-md);
  color:var(--navy); font-family:'Schoolbell',cursive; font-size:1.05rem;
  outline:none;
}

/* ========== RESPONSIVE ========== */
@media(max-width:900px) {
  .hebdo-grid { grid-template-columns:1fr; }
  .seq-modal-grid { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .tab-label { display:none; }
  .tab-btn { padding:10px 16px; }
  .header-title { font-size:1.4rem; }
  .month-title { font-size:1.6rem; }
  .cal-cell { min-height:65px; }
  .seq-hero { flex-direction:column; text-align:center; }
  .seq-hero h2 { font-size:1.8rem; }
}

/* ========== PRESENTATION ========== */
.pres-section {
  padding:30px 20px; max-width:1100px; margin:0 auto;
}
.pres-hero {
  text-align:center; margin-bottom:30px;
}
.pres-mascot { height:160px; filter:drop-shadow(0 8px 20px rgba(0,0,0,0.2)); margin-bottom:16px; }
.pres-hero h2 {
  font-family:'Luckiest Guy',cursive; font-size:2.8rem; color:var(--navy);
  letter-spacing:3px;
}
.pres-sub {
  font-family:'Schoolbell',cursive; font-size:1.4rem; color:var(--navy);
  opacity:0.8; margin-top:6px;
}
.pres-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:20px; margin-bottom:30px;
}
.pres-card {
  background:rgba(255,255,255,0.9); backdrop-filter:blur(6px);
  border-radius:var(--r-lg); padding:28px 24px;
  box-shadow:0 8px 30px rgba(0,0,0,0.08);
  text-align:center; transition:transform 0.2s;
}
.pres-card:hover { transform:translateY(-4px); }
.pres-card-icon { font-size:2.6rem; margin-bottom:12px; }
.pres-card h3 {
  font-family:'Luckiest Guy',cursive; font-size:1.5rem; color:var(--navy);
  letter-spacing:2px; margin-bottom:8px;
}
.pres-card p {
  font-family:'Schoolbell',cursive; font-size:1rem; color:var(--text-light); line-height:1.5;
}
.pres-cta { text-align:center; margin-top:10px; }
.pres-start-btn {
  font-family:'Luckiest Guy',cursive; font-size:1.6rem; letter-spacing:3px;
  padding:16px 48px; border-radius:50px; border:none;
  background:var(--navy); color:var(--white);
  cursor:pointer; box-shadow:0 8px 30px rgba(0,0,0,0.2);
  transition:all 0.2s;
}
.pres-start-btn:hover { transform:scale(1.05); background:var(--cyan); color:var(--navy); }

/* ========== PRINT ========== */
@media print {
  body { background:#fff !important; }
  .no-print { display:none !important; }
  .app-header { position:static; background:var(--navy) !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .view-section { display:none; }
  .view-active { display:block; }
  .cal-wrapper, .seq-card, .hebdo-notes-box { box-shadow:none; }
  .cal-cell:hover, .hebdo-block:hover, .seq-card:hover { transform:none; box-shadow:none; }
  .modal-overlay { display:none !important; }
  .cal-cell.today { background:#fff3e0 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
