/* ============================================================
   OPOCLICK · PLAN DE ESTUDIO Y TUTORIZACIÓN — estilos
   Hoja independiente para no tocar estilos.css.
   ============================================================ */

/* Aviso en el menú principal */
.plan-menu-alert{
  display:none;align-items:center;gap:12px;flex-wrap:wrap;
  margin:14px 16px 0;padding:12px 16px;border-radius:14px;
  font-size:.92rem;font-weight:600;box-shadow:var(--shadow-sm,0 4px 14px rgba(11,38,78,.08));
}
.plan-menu-alert span{flex:1;min-width:200px;font-weight:600}
.plan-menu-alert button{white-space:nowrap}
.plan-menu-alert.hint{background:#eef3ff;color:#1a3a6b;border:1px solid #cfdcf7}
.plan-menu-alert.ontrack{background:#eafaf0;color:#1f7a43;border:1px solid #c8ecd7}
.plan-menu-alert.behind{background:#fdecec;color:#a5271f;border:1px solid #f6c8c4}

/* Panel de configuración */
.plan-config-panel .plan-toggle-row{display:flex;align-items:center;gap:14px;margin:14px 0}
.plan-switch{position:relative;display:inline-block;width:52px;height:30px;flex:0 0 auto}
.plan-switch input{opacity:0;width:0;height:0}
.plan-switch-slider{position:absolute;inset:0;background:#c7d0dc;border-radius:30px;cursor:pointer;transition:.2s}
.plan-switch-slider::before{content:"";position:absolute;height:24px;width:24px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.plan-switch input:checked + .plan-switch-slider{background:var(--ok,#27ae60)}
.plan-switch input:checked + .plan-switch-slider::before{transform:translateX(22px)}
.plan-toggle-row small{display:block;color:#5c6b7c;font-weight:500;margin-top:2px}

.plan-save-status{min-height:18px;font-size:.8rem;font-weight:700;color:#1f7a43;opacity:0;transition:opacity .3s ease;margin:2px 0 2px}
.plan-save-status.visible{opacity:1}
.plan-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:10px 0 16px}
.plan-config-grid label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:700;color:#1a3a6b}
.plan-config-grid input,.plan-config-grid select{padding:10px 12px;border-radius:10px;border:1px solid var(--line,#dfe7f2);font-size:.92rem;font-weight:500;color:#222}
.plan-config-grid button{align-self:end}
.plan-config-grid label.plan-no-exam-label{flex-direction:row;align-items:center;gap:8px;font-weight:600;color:#5c6b7c;justify-content:flex-start;padding-top:2px}
.plan-no-exam-label input[type="checkbox"]{width:16px;height:16px;flex:0 0 auto}

.plan-status-banner{border-radius:14px;padding:14px 16px;margin:10px 0;font-size:.92rem;font-weight:600;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.plan-status-banner button{white-space:nowrap}
.plan-status-banner.ontrack{background:#eafaf0;color:#1f7a43;border:1px solid #c8ecd7}
.plan-status-banner.behind{background:#fdecec;color:#a5271f;border:1px solid #f6c8c4}
.plan-overdue-list{display:flex;flex-wrap:wrap;gap:6px;width:100%;margin-top:2px}
.plan-overdue-item{background:#fff;border:1px solid #f6c8c4;color:#a5271f;border-radius:20px;padding:4px 10px;font-size:.76rem;font-weight:700;cursor:pointer}
.plan-overdue-item:hover{background:#a5271f;color:#fff}
.plan-overdue-more{width:100%;font-size:.78rem;color:#a5271f;font-weight:700}

.plan-tip-card{background:#fff8e6;border:1px solid #f5e2ab;color:#7a5b06;border-radius:14px;padding:12px 16px;margin:10px 0;font-size:.9rem;line-height:1.5}

/* Agenda / calendario */
.plan-day-row{display:flex;gap:14px;align-items:flex-start;padding:10px 4px;border-bottom:1px solid var(--line,#dfe7f2)}
.plan-day-row:last-child{border-bottom:none}
.plan-day-row.is-today{background:#f4f8ff;border-radius:12px;padding:10px 10px}
.plan-day-row.is-past{opacity:.75}
.plan-day-row.plan-exam-row{background:#fff3e9;border-radius:12px;padding:10px 10px;border:1px dashed var(--sec,#e05c1a);margin-bottom:6px}
.plan-day-date{min-width:96px;font-size:.85rem;color:#1a3a6b;display:flex;flex-direction:column;gap:4px}
.plan-today-chip{background:var(--pri,#1a3a6b);color:#fff;font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:20px;width:fit-content}
.plan-exam-chip{background:var(--sec,#e05c1a);color:#fff;font-size:.78rem;font-weight:800;padding:4px 10px;border-radius:20px}
.plan-day-body{flex:1;display:flex;flex-direction:column;gap:6px}
.plan-day-tasks{display:flex;flex-wrap:wrap;gap:8px}
.plan-task{display:inline-flex;align-items:stretch;border-radius:20px;border:1px solid var(--line,#dfe7f2);border-left:5px solid var(--line,#dfe7f2);background:#fff;overflow:hidden;transition:.15s}
.plan-task:hover{box-shadow:var(--shadow-sm,0 4px 14px rgba(11,38,78,.08))}
.plan-task.done{background:#eafaf0;border-color:#c8ecd7}
.plan-task.overdue{background:#fdecec;border-color:#f6c8c4}
.plan-task-main{display:flex;align-items:center;gap:6px;padding:7px 10px;border:none;background:transparent;font-size:.82rem;font-weight:600;color:#222;cursor:pointer}
.plan-task.done .plan-task-main{color:#1f7a43;text-decoration:line-through;text-decoration-thickness:1px}
.plan-task.overdue .plan-task-main{color:#a5271f}
.plan-task-type{opacity:.9;font-weight:700;padding:2px 8px;border-radius:10px;font-size:.72rem}
.plan-task-time{opacity:.7;font-weight:600;font-size:.74rem;color:#5c6b7c;white-space:nowrap}
/* Colores por tipo de tarea, para distinguir de un vistazo estudio/repaso/test/simulacro.
   Paleta elegida para que los 6 tonos se distingan bien entre sí y ninguno se
   confunda con el rojo (reservado para fines de semana/festivos): azul,
   verde, magenta, naranja, marrón y gris pizarra oscuro. */
.plan-task.type-estudio{border-left-color:#1565c0}
.plan-task.type-estudio .plan-task-type{background:#e3edfa;color:#0d47a1}
.plan-task.type-repaso{border-left-color:#1e8e5a}
.plan-task.type-repaso .plan-task-type{background:#e0f5ea;color:#146a41}
.plan-task.type-test{border-left-color:#9c27b0}
.plan-task.type-test .plan-task-type{background:#f5e3fa;color:#6a1b7a}
.plan-task.type-test_general{border-left-color:#ef6c00}
.plan-task.type-test_general .plan-task-type{background:#fdead3;color:#a34c00}
.plan-task.type-repaso_general{border-left-color:#6d4c41}
.plan-task.type-repaso_general .plan-task-type{background:#eee2de;color:#4a332b}
.plan-task.type-simulacro{border-left-color:#37474f}
.plan-task.type-simulacro .plan-task-type{background:#e4e9eb;color:#263238}
.plan-task.type-simulacro .plan-task-main{font-weight:800}
.plan-task-postpone,.plan-task-cancel{border:none;border-left:1px solid var(--line,#dfe7f2);background:transparent;color:#8a97a6;font-size:.74rem;padding:0 8px;cursor:pointer}
.plan-task-postpone:hover{color:#1565c0;background:#e3edfa}
.plan-task-cancel:hover{color:#a5271f;background:#fdecec}
.plan-day-add-toggle{align-self:flex-start;border:1px dashed var(--line,#dfe7f2);background:transparent;color:#5c6b7c;font-size:.76rem;font-weight:700;padding:4px 10px;border-radius:20px;cursor:pointer}
.plan-day-add-toggle:hover{border-color:var(--pri,#1a3a6b);color:var(--pri,#1a3a6b)}
.plan-day-add{display:flex;flex-wrap:wrap;gap:6px;align-items:center;background:#f7f9fc;border-radius:10px;padding:8px}
.plan-day-add select{padding:6px 8px;border-radius:8px;border:1px solid var(--line,#dfe7f2);font-size:.78rem;color:#222}
.plan-add-btn{padding:6px 12px;border-radius:8px;border:1px solid var(--pri,#1a3a6b);background:var(--pri,#1a3a6b);color:#fff;font-size:.78rem;font-weight:700;cursor:pointer}
.plan-add-btn:hover{opacity:.9}
.plan-empty{color:#5c6b7c;font-size:.9rem}

/* Calendario tradicional (vista mensual) */
.plan-cal-nav{display:flex;align-items:center;gap:10px;margin:6px 0 12px}
.plan-cal-nav strong{flex:1;text-align:center;font-size:1rem;color:#1a3a6b}
.plan-cal-nav button{border:1px solid var(--line,#dfe7f2);background:#fff;color:#1a3a6b;border-radius:8px;padding:6px 12px;font-weight:700;cursor:pointer}
.plan-cal-nav button:hover{background:#f4f8ff}
.plan-cal-today-btn{margin-left:auto}
.plan-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.plan-cal-headcell{text-align:center;font-size:.72rem;font-weight:800;color:#5c6b7c;padding:4px 0;text-transform:uppercase}
.plan-cal-headcell.weekend{color:#c0392b}
.plan-cal-day{min-height:66px;border-radius:10px;border:1px solid var(--line,#dfe7f2);background:#fff;padding:5px 6px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:.15s}
.plan-cal-day:hover{box-shadow:var(--shadow-sm,0 4px 14px rgba(11,38,78,.08))}
.plan-cal-day.other-month{opacity:.32}
.plan-cal-day.empty{background:#f2f4f7}
.plan-cal-day.has-tasks{background:#fff}
.plan-cal-day.is-today{border:2px solid var(--pri,#1a3a6b)}
.plan-cal-day.selected{outline:2px solid #2980b9;outline-offset:-2px}
.plan-cal-day.is-exam{background:#fff3e9;border-color:var(--sec,#e05c1a)}
.plan-cal-daynum{font-size:.82rem;font-weight:700;color:#222}
.plan-cal-day.is-red .plan-cal-daynum{color:#c0392b}
.plan-cal-day.is-past .plan-cal-daynum{opacity:.6}
.plan-cal-examflag{font-size:.66rem;font-weight:800;color:#e05c1a}
.plan-cal-dots{display:flex;flex-wrap:wrap;gap:4px}
.plan-cal-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 1px rgba(255,255,255,.9)}
.plan-cal-dot.type-estudio{background:#1565c0}
.plan-cal-dot.type-repaso{background:#1e8e5a}
.plan-cal-dot.type-test{background:#9c27b0}
.plan-cal-dot.type-test_general{background:#ef6c00}
.plan-cal-dot.type-repaso_general{background:#6d4c41}
.plan-cal-dot.type-simulacro{background:#37474f}
.plan-cal-dot.done{opacity:.35}
.plan-cal-legend{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 4px;font-size:.74rem;color:#5c6b7c;align-items:center}
.plan-cal-legend span{display:inline-flex;align-items:center;gap:4px}
.plan-cal-legend .plan-cal-swatch{width:12px;height:12px;border-radius:4px;display:inline-block}
.plan-cal-legend .swatch-empty{background:#f2f4f7;border:1px solid var(--line,#dfe7f2)}
.plan-cal-legend .swatch-red{color:#c0392b;font-weight:800}
.plan-cal-detail{margin-top:14px;border-top:1px dashed var(--line,#dfe7f2);padding-top:12px}
.plan-cal-detail-title{font-weight:800;color:#1a3a6b;margin-bottom:8px;font-size:.92rem}
@media (max-width:560px){
  .plan-cal-day{min-height:50px;padding:4px}
  .plan-cal-daynum{font-size:.72rem}
  .plan-cal-nav strong{font-size:.86rem}
}

@media (max-width:560px){
  .plan-day-row{flex-direction:column}
  .plan-day-date{min-width:0;flex-direction:row;align-items:center;gap:8px}
}
