/* ── CICLO DE ESTUDOS ── */

/* ─── Iteração completa / progresso ─────────────────────────── */
.ciclo-iter-box{
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  padding:16px 18px;display:flex;flex-direction:column;gap:12px;margin-top:4px;
}
.ciclo-iter-box.ciclo-iter-done{
  border-color:rgba(34,197,94,.3);
  background:rgba(34,197,94,.04);
}
.ciclo-iter-top{display:flex;align-items:center;gap:12px}
.ciclo-iter-icon{font-size:22px;flex-shrink:0}
.ciclo-iter-title{font-size:13px;font-weight:600;color:var(--text)}
.ciclo-iter-sub{font-size:11px;color:var(--muted);margin-top:2px}
.ciclo-iter-badge{
  margin-left:auto;flex-shrink:0;
  font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;
  color:#22c55e;border:1px solid rgba(34,197,94,.3);
  border-radius:99px;padding:3px 10px;white-space:nowrap;
}
.ciclo-iter-btn{margin-top:2px;align-self:flex-start}
.ciclo-reiniciar-form{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.ciclo-reiniciar-label{
  font-size:11px;color:var(--muted);
  font-family:'Geist Mono','JetBrains Mono',monospace;
  white-space:nowrap;
}
.ciclo-iter-bar-wrap{
  height:4px;border-radius:4px;background:var(--panel-2);overflow:hidden;
}
.ciclo-iter-bar{
  height:100%;border-radius:4px;
  background:linear-gradient(90deg,var(--accent),#5db8e8);
  transition:width .4s ease;
}

/* ─── Histórico de ciclos ─────────────────────────────────── */
.ciclo-hist-box{
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  padding:16px 18px;
}
.ciclo-hist-title{
  font-size:11px;font-family:'Geist Mono','JetBrains Mono',monospace;
  color:var(--dim);text-transform:uppercase;letter-spacing:.1em;
  margin-bottom:12px;
}
.ciclo-hist-row{
  padding:10px 0;border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:6px;
}
.ciclo-hist-row:last-child{border-bottom:none;padding-bottom:0}
.ciclo-hist-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ciclo-hist-period{font-size:11px;color:var(--muted);font-family:'Geist Mono','JetBrains Mono',monospace}
.ciclo-hist-status{
  font-size:10px;padding:2px 8px;border-radius:99px;
  font-family:'Geist Mono','JetBrains Mono',monospace;
}
.ciclo-hist-status.ativo{color:#60a5fa;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.2)}
.ciclo-hist-status.encerrado{color:#4ade80;background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.2)}
.ciclo-hist-status.incompleto{color:#fb923c;background:rgba(251,146,60,.08);border:1px solid rgba(251,146,60,.2)}
.ciclo-hist-iter{font-size:10px;color:#22c55e;margin-left:auto}
.ciclo-hist-iter.muted{color:var(--dim)}
.ciclo-hist-chips{display:flex;gap:4px;flex-wrap:wrap}
.ciclo-hist-more{font-size:10px;color:var(--dim);align-self:center}
.ciclo-hist-meta-extra{font-size:10px;color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace}

/* Botão "Ver calendário" */
.ciclo-hist-toggle-btn{
  margin-left:auto;flex-shrink:0;
  background:none;border:1px solid var(--line-2);border-radius:5px;
  color:var(--muted);font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;
  padding:3px 10px;cursor:pointer;transition:border-color .15s,color .15s;
}
.ciclo-hist-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}

/* Painel expandido */
.ciclo-hist-detail{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .25s ease;
  overflow:hidden;
}
.ciclo-hist-detail.open{grid-template-rows:1fr}
.ciclo-hist-detail-inner{
  min-height:0;overflow:hidden;
  padding-top:16px;
}
.ciclo-hist-detail-header{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);
}
.ciclo-hist-detail-period{
  font-size:12px;font-family:'Geist Mono','JetBrains Mono',monospace;
  color:var(--ink);font-weight:600;
}
.ciclo-hist-detail-cfg{
  font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;
  color:var(--dim);
}

/* ─── Abas do painel de ciclo ─────────────────────────────────── */
.ciclo-tab-bar{
  display:flex;gap:4px;
  border-bottom:1px solid var(--line);
  padding-bottom:0;
  margin-bottom:4px;
}
.ciclo-tab-btn{
  background:none;border:none;cursor:pointer;
  padding:8px 16px;font-size:12px;font-family:'Geist Mono','JetBrains Mono',monospace;
  color:var(--muted);border-bottom:2px solid transparent;
  margin-bottom:-1px;transition:color .15s,border-color .15s;
}
.ciclo-tab-btn:hover{color:var(--ink)}
.ciclo-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}

.ciclo-layout-v2{display:flex;flex-direction:column;gap:20px}

/* Config bar */
.ciclo-config-bar{
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  overflow:hidden;
}
.ciclo-cfg-toggle{
  display:flex;align-items:center;width:100%;background:none;border:none;
  padding:12px 18px;cursor:pointer;border-bottom:1px solid var(--line);
  transition:background .15s;
}
.ciclo-config-bar.collapsed .ciclo-cfg-toggle{border-bottom:none}
.ciclo-cfg-toggle:hover{background:var(--panel-2)}
.ciclo-cfg-toggle-label{font-size:11px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--muted)}
.ciclo-cfg-body-wrap{
  display:grid;
  grid-template-rows:1fr;
  transition:grid-template-rows .22s ease;
}
.ciclo-config-bar.collapsed .ciclo-cfg-body-wrap{grid-template-rows:0fr}
.ciclo-cfg-body{
  display:grid;grid-template-columns:auto 1fr;gap:24px;
  padding:18px 20px;
  min-height:0;overflow:hidden;
  transition:padding .22s ease;
}
.ciclo-config-bar.collapsed .ciclo-cfg-body{padding-top:0;padding-bottom:0}
.ciclo-cfg-left{display:flex;flex-direction:column;gap:16px;min-width:220px}
.ciclo-cfg-right{display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--line);padding-left:24px}
.ciclo-cfg-group{display:flex;flex-direction:column;gap:8px}

.ciclo-config-section{font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}
.ciclo-sessoes-lbl{font-size:10px;color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace}
.ciclo-placeholder{padding:60px;text-align:center;color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace;font-size:12px}

/* Dias da semana */
.ciclo-days{display:flex;gap:5px;flex-wrap:wrap}
.ciclo-day-btn{width:34px;height:34px;border-radius:6px;border:1px solid var(--line-2);background:none;color:var(--muted);font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;cursor:pointer;transition:all .15s;flex-shrink:0;line-height:1}
.ciclo-day-btn.on{background:var(--blue);color:#fff;border-color:var(--blue)}

/* Horas por dia */
.ciclo-horas-default{display:flex;align-items:center;gap:6px}
.ciclo-horas-inline{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.ciclo-horas-item{display:flex;align-items:center;gap:4px}
.ciclo-horas-lbl{font-size:11px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--muted);min-width:24px}
.ciclo-horas-input{width:52px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:5px;color:var(--ink);font-size:12px;padding:4px 6px;outline:none;text-align:center}
.ciclo-horas-input:focus{border-color:var(--blue)}
.ciclo-horas-unit{font-size:10px;color:var(--dim)}
.ciclo-horas-toggle-label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace;cursor:pointer;margin-top:2px}
.ciclo-horas-toggle-label input[type="checkbox"]{accent-color:var(--blue);cursor:pointer}

/* Chips de disciplina */
.ciclo-discs-chips{display:flex;flex-wrap:wrap;gap:6px}
.ciclo-disc-chip{display:flex;align-items:center;gap:5px;padding:5px 9px 5px 6px;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;cursor:pointer;transition:border-color .15s,background .15s;opacity:.55}
.ciclo-disc-chip:hover{opacity:.8}
.ciclo-disc-chip.sel{border-color:rgba(91,142,240,.4);background:rgba(91,142,240,.06);opacity:1}
.ciclo-disc-cod{font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0}
.ciclo-chip-nome{font-size:11px;color:var(--muted);white-space:nowrap}
.ciclo-chip-peso{font-size:9px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--dim);margin-left:2px}

/* Result box */
.ciclo-result-box{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:20px}
.ciclo-result-title{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:4px}
.ciclo-result-sub{font-size:11px;color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace;margin-bottom:20px}

/* Table */
.ciclo-table{width:100%;border-collapse:collapse;font-size:11px}
.ciclo-table th{text-align:center;padding:6px 10px;border:1px solid var(--line);color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace;font-weight:500;background:var(--panel-2);font-size:10px}
.ciclo-table td{text-align:center;padding:5px 6px;border:1px solid var(--line);vertical-align:middle}
.ciclo-th-today{color:var(--accent)!important;border-bottom:2px solid var(--accent)!important}
.ciclo-td-today{background:rgba(59,130,246,.04);border-left:1px solid rgba(59,130,246,.2)!important;border-right:1px solid rgba(59,130,246,.2)!important}
.ciclo-week-lbl{text-align:left!important;padding:5px 10px!important;color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace;font-size:10px;white-space:nowrap;background:var(--panel-2)!important}
.ciclo-cell{display:inline-flex;align-items:center;justify-content:center;padding:3px 9px;border-radius:5px;font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;font-weight:600;white-space:nowrap}

/* Distribuição */
.ciclo-dist{display:flex;flex-direction:column;gap:9px}
.ciclo-dist-row{display:flex;align-items:center;gap:10px}
.ciclo-dist-cod{font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap;min-width:54px;text-align:center;flex-shrink:0}
.ciclo-dist-bar{flex:1;height:5px;border-radius:3px;background:var(--line-2);overflow:hidden}
.ciclo-dist-fill{height:100%;border-radius:3px;transition:width .4s}
.ciclo-dist-info{font-size:11px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--muted);white-space:nowrap;flex-shrink:0;min-width:130px}

/* Calendário — card Hoje */
.ciclo-cal-hoje{border-radius:8px;padding:14px 18px;margin-bottom:16px;border:1px solid transparent}
.ciclo-cal-hoje-label{font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;opacity:.75;margin-bottom:6px}
.ciclo-cal-hoje-body{display:flex;align-items:center;gap:10px}
.ciclo-cal-hoje-cod{font-size:15px;font-weight:700;font-family:'Geist Mono','JetBrains Mono',monospace}
.ciclo-cal-hoje-nome{font-size:13px;font-weight:500;color:var(--ink);flex:1}
.ciclo-cal-hoje-h{font-size:12px;font-family:'Geist Mono','JetBrains Mono',monospace;margin-left:auto;opacity:.8}

/* Calendário — grid */
.ciclo-cal-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.ciclo-cal-th{text-align:center;font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--dim);padding:6px 4px;border-bottom:1px solid var(--line);font-weight:500}
.ciclo-cal-th-month{width:36px}
.ciclo-cal-month-cell{
  width:36px;vertical-align:top;padding:6px 4px;
  font-size:9px;font-family:'Geist Mono','JetBrains Mono',monospace;
  font-weight:600;text-transform:uppercase;color:var(--muted);
  text-align:center;line-height:1.4;border:1px solid var(--line);
  background:var(--panel-2);
}
.ciclo-cal-month-year{font-size:8px;font-weight:400;color:var(--dim)}
.ciclo-cal-cell{border:1px solid var(--line);vertical-align:top;padding:6px 6px 6px;min-width:64px;transition:background .1s}
.ciclo-cal-cell.is-off{background:transparent}
.ciclo-cal-cell.is-past{opacity:.45}
.ciclo-cal-cell.is-today .ciclo-cal-daynum{background:var(--blue);color:#fff;border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.ciclo-cal-cell-top{display:flex;align-items:center;gap:5px;margin-bottom:5px}
.ciclo-cal-daynum{font-size:11px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--muted);line-height:1}
.ciclo-cal-month{font-size:9px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--dim);text-transform:uppercase}
.ciclo-cal-badges{display:flex;flex-direction:column;gap:3px}
.ciclo-cal-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:4px;font-size:9px;font-family:'Geist Mono','JetBrains Mono',monospace;font-weight:700;white-space:nowrap;align-self:flex-start}
.ciclo-cal-badge.feita{opacity:.55;text-decoration:line-through}
.ciclo-cal-cell.all-done{background:rgba(74,210,149,.04)}
.ciclo-cal-cell.all-done .ciclo-cal-daynum{color:var(--alta-text,#4ad295)}
.ciclo-cal-cell-h{display:block;font-size:9px;font-family:'Geist Mono','JetBrains Mono',monospace;color:var(--dim);margin-top:4px}

.ciclo-save-bar{display:flex;align-items:center;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}

/* Distribuição — label section */
.ciclo-dist-section-lbl{font-size:10px;font-family:'Geist Mono','JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--dim);margin-bottom:14px}
.ciclo-dist-warn{margin-top:14px;font-size:11px;color:var(--dim);font-family:'Geist Mono','JetBrains Mono',monospace}
.ciclo-dist-sep{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}

@media(max-width:720px){
  .ciclo-cfg-body{grid-template-columns:1fr}
  .ciclo-cfg-right{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:16px}
  .ciclo-dist-info{min-width:0;white-space:normal}
  .ciclo-dist-row{flex-wrap:wrap}
  .ciclo-result-box{overflow-x:auto}
  .ciclo-table{min-width:400px}
  .ciclo-cal-grid{min-width:420px}
  .ciclo-cal-cell{padding:4px}
}

/* ── Botão salvar neon ── */
@keyframes neon-spin { to { transform: rotate(1turn); } }

.ciclo-neon-wrap {
  position: relative;
  display: inline-flex;
  border-radius: 9px;
  padding: 2px;
  overflow: hidden;
  box-shadow: 0 0 12px rgba(34,211,238,.45), 0 0 28px rgba(167,139,250,.25);
}
.ciclo-neon-wrap::before {
  content: '';
  position: absolute;
  inset: -60%;
  background: conic-gradient(from 0deg, #22d3ee 0%, #818cf8 30%, #e879f9 55%, #22d3ee 100%);
  animation: neon-spin 2.5s linear infinite;
  z-index: 0;
}
.ciclo-neon-wrap > button {
  position: relative;
  z-index: 1;
  border-radius: 7px !important;
}

