/* Planejamento e Cronograma de Estudos — estilos próprios da feature.
   Carrega depois de theme.css e herda as variáveis de tema (--bg,--white,--ink,--muted,--purple,
   --purple-dark,--line,--shadow,--radius-sm,--radius-md,--radius-lg) para se adaptar automaticamente
   ao claro/escuro sem duplicar regras. Cores de aviso/perigo seguem a mesma paleta já usada em
   .admin-badge.status-pending/.status-overdue (âmbar #ffc44f e coral #ff8d7d). */

.planning-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

.planning-checkbox-field{display:flex!important;align-items:center;gap:8px;flex-direction:row!important;color:var(--ink)!important;font:inherit!important;text-transform:none!important;letter-spacing:normal!important}
.planning-checkbox-field input{width:16px!important;height:16px!important;flex:0 0 16px;margin:0!important;padding:0!important;background:none!important;border:0!important;border-radius:0!important;accent-color:var(--purple);cursor:pointer}

.planning-tabs.admin-tabs{margin-bottom:24px}

.planning-tab-panel{display:none}
.planning-tab-panel.active{display:block}

.planning-state{display:grid;gap:6px;place-items:start;padding:30px 2px;border-top:1px solid var(--line);color:var(--muted);font-size:0.8rem}
.planning-state strong{font:400 1.0667rem 'IBM Plex Serif';color:var(--ink)}
.planning-state small{color:var(--muted)}
.planning-state.is-error strong{color:#ff8d7d}
.planning-state .soft-btn{margin-top:6px}

.planning-skeleton{display:grid;gap:12px}
.planning-skeleton-row{height:64px;border-radius:var(--radius-md,20px);background:linear-gradient(90deg,var(--line) 0%,rgba(182,255,77,.08) 50%,var(--line) 100%);background-size:200% 100%;animation:planningShimmer 1.3s ease-in-out infinite}
@keyframes planningShimmer{0%{background-position:0% 0}100%{background-position:-200% 0}}

/* ---------- Aba Hoje ---------- */
.planning-today-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}
.planning-today-stats article{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md,20px);padding:16px 18px;display:grid;gap:4px}
.planning-today-stats span{font-size:0.6667rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.planning-today-stats strong{font-size:1.6rem;font-weight:500}

.planning-attention-block{margin-bottom:22px;border-radius:var(--radius-md,20px);border:1px solid rgba(255,141,125,.35);background:rgba(255,141,125,.08);padding:18px 20px}
.planning-attention-block h3{margin:0 0 4px;font-size:0.95rem;color:#ff8d7d}
.planning-attention-block p{margin:0 0 12px;color:var(--muted);font-size:0.8rem}

.planning-session-list{display:grid;gap:14px}

.planning-session-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md,20px);padding:20px;display:grid;gap:12px}
.planning-session-card.is-completed{opacity:.72}
.planning-session-card.is-missed{border-color:rgba(255,141,125,.4)}
.planning-session-card.is-overdue{border-color:rgba(255,196,79,.45)}

.planning-session-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.planning-session-top h3{margin:0;font-size:1.05rem;font-weight:500}
.planning-session-top small{display:block;margin-top:3px;color:var(--muted)}

.planning-session-meta{display:flex;flex-wrap:wrap;gap:8px}
.planning-session-meta span{border-radius:999px;padding:5px 10px;font-size:0.6667rem;letter-spacing:.05em;background:rgba(182,255,77,.1);color:var(--purple-dark)}

.planning-status-badge{border-radius:999px;padding:5px 10px;font-size:0.6667rem;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent}
.planning-status-badge.status-pending{background:rgba(255,196,79,.12);border-color:rgba(255,196,79,.4);color:#ffc44f}
.planning-status-badge.status-in_progress{background:rgba(32,87,245,.12);border-color:rgba(32,87,245,.35);color:#5c8dff}
.planning-status-badge.status-completed{background:rgba(182,255,77,.14);border-color:rgba(182,255,77,.4);color:var(--purple-dark)}
.planning-status-badge.status-postponed{background:rgba(255,196,79,.1);border-color:rgba(255,196,79,.3);color:#ffc44f}
.planning-status-badge.status-missed{background:rgba(255,114,94,.12);border-color:rgba(255,114,94,.4);color:#ff8d7d}
.planning-status-badge.status-cancelled{background:var(--line);border-color:var(--line);color:var(--muted)}

.planning-session-actions{display:flex;flex-wrap:wrap;gap:8px}
.planning-session-actions button{width:auto;padding:8px 14px;font-size:0.7333rem}

/* ---------- Aba Semana ---------- */
.planning-week-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.planning-week-toolbar h2{margin:0;font-size:1.1rem;font-weight:500}
.planning-week-nav{display:flex;gap:8px}
.planning-week-nav button{width:auto}

.planning-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.planning-week-day{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md,18px);padding:12px;display:flex;flex-direction:column;gap:8px;min-height:160px}
.planning-week-day.is-today{box-shadow:inset 0 0 0 1px var(--purple)}
.planning-week-day.no-availability{opacity:.55}
.planning-week-day-header{display:flex;justify-content:space-between;align-items:baseline}
.planning-week-day-header strong{font-size:0.8rem;font-weight:500}
.planning-week-day-header small{color:var(--muted);font-size:0.6667rem}
.planning-week-day-load{align-self:flex-start;border-radius:999px;padding:3px 9px;font-size:0.5867rem;letter-spacing:.05em;text-transform:uppercase}
.planning-week-day-load.load-empty{background:var(--line);color:var(--muted)}
.planning-week-day-load.load-light{background:rgba(182,255,77,.14);color:var(--purple-dark)}
.planning-week-day-load.load-moderate{background:rgba(255,196,79,.14);color:#ffc44f}
.planning-week-day-load.load-intense{background:rgba(255,141,125,.14);color:#ff8d7d}
.planning-week-day-load.load-overloaded{background:rgba(255,114,94,.22);color:#ff725e}

.planning-week-session{border-radius:12px;background:rgba(182,255,77,.07);border:1px solid var(--line);padding:8px 10px;text-align:left;cursor:pointer;display:grid;gap:2px}
.planning-week-session:hover{border-color:var(--purple)}
.planning-week-session strong{font-size:0.7333rem;font-weight:500;display:block}
.planning-week-session small{color:var(--muted);font-size:0.6rem}
.planning-week-session.is-completed{opacity:.6;text-decoration:line-through}
.planning-week-session.is-overdue{border-color:rgba(255,141,125,.5)}
.planning-week-day-empty{color:var(--muted);font-size:0.6667rem;padding:8px 0}

/* ---------- Aba Cronogramas ---------- */
.planning-plans-toolbar{display:flex;justify-content:flex-end;margin-bottom:16px}
.planning-plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.planning-plan-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md,22px);padding:22px;display:grid;gap:12px}
.planning-plan-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.planning-plan-card-top h3{margin:0;font-size:1.05rem;font-weight:500}
.planning-plan-card-top small{color:var(--muted);display:block;margin-top:3px}

.planning-health-badge{border-radius:999px;padding:5px 11px;font-size:0.6667rem;letter-spacing:.05em;white-space:nowrap}
.planning-health-badge.health-em-dia{background:rgba(182,255,77,.14);color:var(--purple-dark)}
.planning-health-badge.health-atencao{background:rgba(255,196,79,.14);color:#ffc44f}
.planning-health-badge.health-atrasado{background:rgba(255,114,94,.16);color:#ff725e}
.planning-health-badge.health-pausado{background:var(--line);color:var(--muted)}

.planning-plan-progress-row{display:flex;align-items:center;gap:10px}
.planning-plan-progress-row i{flex:1;height:8px;border-radius:999px;background:var(--line);overflow:hidden;display:block}
.planning-plan-progress-row i b{display:block;height:100%;background:var(--purple);border-radius:999px}
.planning-plan-progress-row strong{font-size:0.7333rem;color:var(--muted);white-space:nowrap}

.planning-plan-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.planning-plan-stats div{background:var(--bg);border-radius:14px;padding:8px 10px;text-align:center}
.planning-plan-stats span{display:block;font-size:0.5867rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.planning-plan-stats strong{font-size:0.9333rem;font-weight:500}

.planning-plan-actions{display:flex;flex-wrap:wrap;gap:8px}
.planning-plan-actions button{width:auto;padding:8px 13px;font-size:0.7rem}

/* ---------- Detalhe do cronograma ---------- */
.planning-detail-head{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.planning-detail-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px}
.planning-detail-summary div{background:var(--bg);border-radius:14px;padding:10px 12px}
.planning-detail-summary span{display:block;font-size:0.5867rem;color:var(--muted);text-transform:uppercase}
.planning-detail-summary strong{font-size:0.9333rem}
.planning-detail-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.planning-detail-tabs button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:8px 14px;font-size:0.7333rem;color:var(--muted);cursor:pointer}
.planning-detail-tabs button.active{background:var(--purple);border-color:var(--purple);color:#101210}
.planning-topic-list,.planning-detail-session-list{display:grid;gap:10px}
.planning-topic-item{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--bg);border-radius:14px;padding:10px 14px}
.planning-topic-item strong{font-size:0.8667rem;font-weight:500}
.planning-topic-item small{display:block;color:var(--muted);font-size:0.6667rem;margin-top:2px}
.planning-topic-item.is-completed strong{text-decoration:line-through;color:var(--muted)}

/* ---------- Wizard ---------- */
.planning-wizard-modal .modal{max-width:640px}
#planningWizardBody.activity-form{margin-top:14px;row-gap:16px}
.planning-wizard-steps{display:flex;gap:6px;margin-bottom:18px}
.planning-wizard-steps span{flex:1;height:5px;border-radius:999px;background:var(--line)}
.planning-wizard-steps span.done,.planning-wizard-steps span.current{background:var(--purple)}
.planning-wizard-step-label{color:var(--muted);font-size:0.7333rem;margin:-10px 0 18px;letter-spacing:.04em;text-transform:uppercase}

.wizard-objective-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:6px;margin-top:0}
.wizard-objective-card{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:var(--radius-md,18px);padding:16px;text-align:left;cursor:pointer;display:grid;gap:4px;transition:border-color .15s,background .15s}
.wizard-objective-card strong{font-size:0.9333rem;font-weight:500;color:inherit}
.wizard-objective-card small{color:var(--muted);font-size:0.7rem}
.wizard-objective-card:hover{border-color:var(--purple)}
.wizard-objective-card:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
.wizard-objective-card.selected{border-color:var(--purple);background:rgba(182,255,77,.1);color:var(--ink)}

.planning-source-toggle{display:flex;gap:8px;margin-bottom:14px;margin-top:0}
.planning-source-toggle button{flex:1;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:9px;font-size:0.7333rem;color:var(--muted);cursor:pointer}
.planning-source-toggle button.active{background:var(--purple);border-color:var(--purple);color:#101210}

.planning-topic-editor{display:grid;gap:12px;margin-bottom:14px;margin-top:0}
.planning-topic-row{border:1px solid var(--line);border-radius:var(--radius-md,18px);padding:14px;display:grid;gap:10px;background:var(--bg)}
.planning-topic-row-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}
.planning-topic-row-fields.form-wide-desc{grid-template-columns:1fr}
.planning-topic-row-fields label{margin:0}
.planning-topic-row-fields input,.planning-topic-row-fields select{margin-top:6px!important}
.planning-topic-row-actions{display:flex;justify-content:flex-end;gap:6px}
.planning-topic-row-actions button[data-topic-move]{width:auto;padding:6px 11px;font-size:0.7333rem;line-height:1;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:8px;cursor:pointer}
.planning-topic-row-actions button[data-topic-move]:disabled{opacity:.35;cursor:not-allowed}
.planning-topic-row-actions button[data-topic-move]:not(:disabled):hover{border-color:var(--purple);color:var(--purple)}
.planning-topic-row-actions .danger-btn{width:auto;padding:6px 12px;font-size:0.7333rem}

/* ---------- Dias e horários específicos por conteúdo (wizard, etapa 4) ---------- */
.planning-custom-schedule{border-top:1px dashed var(--line);padding-top:12px;margin-top:2px;display:grid;gap:10px}
.planning-toggle-field{display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--ink)!important;font-size:0.8rem!important;font-weight:400!important;text-transform:none!important;letter-spacing:normal!important;margin:0!important}

.planning-schedule-mode{display:grid;gap:8px}
.planning-schedule-mode-label{font-size:0.7rem;color:var(--muted);text-transform:uppercase}
.planning-schedule-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.planning-schedule-mode-option{width:auto;text-align:left;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:var(--radius-sm,14px);padding:10px 12px;cursor:pointer;display:grid;gap:2px;transition:border-color .15s,background .15s}
.planning-schedule-mode-option strong{font-size:0.7778rem;font-weight:500;color:inherit}
.planning-schedule-mode-option small{color:var(--muted);font-size:0.6667rem}
.planning-schedule-mode-option:hover{border-color:var(--purple)}
.planning-schedule-mode-option.selected{border-color:var(--purple);background:rgba(182,255,77,.1)}

.planning-weekday-chips{display:flex;flex-wrap:wrap;gap:6px}
.planning-weekday-chip{width:auto;padding:7px 12px;font-size:0.7333rem;border:1px solid var(--line);background:var(--white);color:var(--ink);border-radius:999px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.planning-weekday-chip:hover{border-color:var(--purple)}
.planning-weekday-chip.selected{background:var(--purple);border-color:var(--purple);color:#101210}
.planning-schedule-days{display:grid;gap:8px}
.planning-schedule-day-row{display:grid;grid-template-columns:44px 1fr 1fr auto;gap:8px;align-items:end;background:var(--bg);border-radius:14px;padding:10px 12px}
.planning-schedule-day-label{font-size:0.7333rem;font-weight:500;color:var(--ink);align-self:center}
.planning-schedule-time-field{display:grid;gap:4px;margin:0!important}
.planning-schedule-time-field span{font-size:0.6rem;color:var(--muted);text-transform:uppercase}
.planning-schedule-time-field input{padding:8px 9px!important;font-size:0.8rem;margin-top:0!important}
.planning-schedule-day-row .danger-btn{width:auto;padding:8px 10px;font-size:0.7rem}
.planning-schedule-bulk{border:1px dashed var(--line);border-radius:14px;padding:10px 12px;display:grid;gap:8px}
.planning-schedule-bulk>span{font-size:0.7rem;color:var(--muted)}
.planning-schedule-bulk-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.planning-schedule-bulk-row label{display:grid;gap:4px;margin:0!important}
.planning-schedule-bulk-row label span{font-size:0.6rem;color:var(--muted);text-transform:uppercase}
.planning-schedule-bulk-row input{padding:8px 9px!important;font-size:0.8rem;margin-top:0!important}
.planning-schedule-bulk-days{display:flex;flex-wrap:wrap;gap:10px}
.planning-schedule-bulk-day{display:flex!important;align-items:center;gap:6px;flex-direction:row!important;color:var(--ink)!important;font-size:0.7333rem!important;font-weight:400!important;text-transform:none!important;letter-spacing:normal!important;margin:0!important}
.planning-schedule-bulk-day input{width:15px!important;height:15px!important;margin:0!important;padding:0!important;background:none!important;border:0!important;border-radius:0!important;accent-color:var(--purple);cursor:pointer}
.planning-schedule-bulk button[data-topic-bulk-apply]{width:auto;padding:8px 14px;font-size:0.7333rem;justify-self:start}

.planning-preview-section-label{font-size:0.7333rem;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-weight:500}
.planning-preview-custom-topics{margin-bottom:14px;display:grid;gap:8px}
.planning-preview-custom-topics h4{font-size:0.7333rem;text-transform:uppercase;color:var(--muted);margin:0 0 2px;font-weight:500}
.planning-preview-topic-schedule{background:var(--bg);border-radius:14px;padding:10px 14px;display:grid;gap:2px}
.planning-preview-topic-schedule strong{font-size:0.8333rem;font-weight:500}
.planning-preview-topic-schedule small{color:var(--muted);font-size:0.7rem}
.planning-preview-topic-schedule span{font-size:0.7rem;color:var(--ink)}
.planning-preview-topic-schedule.has-unallocated{border:1px solid rgba(255,114,94,.4)}
.planning-preview-unallocated-note{color:#ff725e!important}

.planning-preview-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.planning-preview-stats div{background:var(--bg);border-radius:14px;padding:12px 14px}
.planning-preview-stats span{display:block;font-size:0.6rem;color:var(--muted);text-transform:uppercase}
.planning-preview-stats strong{font-size:1.1rem}

.planning-warning-banner{border:1px solid rgba(255,196,79,.4);background:rgba(255,196,79,.1);border-radius:var(--radius-md,18px);padding:14px 16px;margin-bottom:14px;color:#a87a1f}
html[data-theme="dark"] .planning-warning-banner,:root .planning-warning-banner{color:#ffc44f}
.planning-warning-banner strong{display:block;margin-bottom:4px}
.planning-warning-banner label{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:0.7333rem;color:var(--ink)}

/* ---------- Disponibilidade ---------- */
.planning-availability-suggestion{border:1px dashed var(--line);border-radius:var(--radius-md,18px);padding:18px;margin-bottom:18px;display:grid;gap:8px}
.planning-availability-suggestion strong{font-size:0.9333rem}
.planning-availability-suggestion .form-actions{margin-top:6px}

.planning-availability-day{border:1px solid var(--line);border-radius:var(--radius-md,20px);padding:16px 18px;margin-bottom:14px}
.planning-availability-day-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.planning-availability-day-head strong{font-size:0.9333rem;font-weight:500}
.planning-availability-toggle{position:relative;display:inline-block;width:40px;height:22px}
.planning-availability-toggle input{opacity:0;width:0;height:0}
.planning-availability-toggle i{position:absolute;inset:0;background:var(--line);border-radius:999px;transition:.2s}
.planning-availability-toggle i:after{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:var(--white);border-radius:50%;transition:.2s}
.planning-availability-toggle input:checked+i{background:var(--purple)}
.planning-availability-toggle input:checked+i:after{transform:translateX(18px)}

.planning-slot-row{display:grid;grid-template-columns:1fr 1fr 100px 1fr auto;gap:8px;align-items:center;margin-bottom:8px}
.planning-slot-row input{padding:9px 10px;font-size:0.8rem}
.planning-slot-row button{width:auto;padding:8px 10px}
.planning-slot-warning{color:#ffc44f;font-size:0.7rem;margin:2px 0 8px}
.planning-availability-day-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.planning-availability-day-actions button{width:auto;padding:7px 12px;font-size:0.7rem}
.planning-availability-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}

/* ---------- Reorganizar (prévia) ---------- */
.planning-reorg-list{display:grid;gap:8px;max-height:340px;overflow-y:auto}
.planning-reorg-item{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--bg);border-radius:14px;padding:10px 14px}
.planning-reorg-item strong{font-size:0.8rem;font-weight:500;display:block}
.planning-reorg-item small{color:var(--muted);font-size:0.6667rem}
.planning-reorg-item.did-not-fit{border:1px solid rgba(255,114,94,.4)}
.planning-reorg-arrow{color:var(--muted);font-size:0.7333rem}

/* ---------- Calendário: diferenciação atividade x sessão ---------- */
.calendar-source-filter{display:flex;gap:6px}
.calendar-day-session-dot{background:transparent!important;border:2px solid var(--purple);box-sizing:border-box}
.calendar-day-item.calendar-session-item{border-left:3px solid var(--purple)}

/* ---------- Responsivo ---------- */
@media(max-width:1100px){
  .planning-today-stats{grid-template-columns:repeat(2,1fr)}
  .planning-week-grid{grid-template-columns:repeat(7,minmax(140px,1fr));overflow-x:auto;padding-bottom:6px}
}
@media(max-width:768px){
  .planning-header-actions{width:100%;justify-content:space-between}
  .planning-today-stats{grid-template-columns:repeat(2,1fr)}
  .planning-week-grid{grid-template-columns:repeat(7,minmax(150px,1fr))}
  .planning-topic-row-fields{grid-template-columns:1fr}
  .planning-schedule-day-row{grid-template-columns:1fr 1fr}
  .planning-schedule-day-label,.planning-schedule-day-row .danger-btn{grid-column:1/-1}
  .planning-schedule-bulk-row{grid-template-columns:1fr}
  .planning-schedule-mode-options{grid-template-columns:1fr}
  .planning-preview-stats{grid-template-columns:1fr}
  .planning-slot-row{grid-template-columns:1fr 1fr;grid-template-areas:"start end" "max label" "remove remove"}
  .planning-plans-grid{grid-template-columns:1fr}
  .planning-plan-stats{grid-template-columns:repeat(3,1fr)}
  .wizard-objective-grid{grid-template-columns:1fr}
  .planning-session-actions button,.planning-plan-actions button{flex:1 1 auto}
}
@media(max-width:480px){
  .planning-today-stats{grid-template-columns:1fr}
}
