/* ═══════════════════════════════════════
   shared.css — Leiturário design system
═══════════════════════════════════════ */

/* ─── TOKENS ─── */
:root {
  --ink:    #0f0e1a;
  --ink2:   #1e1d2e;
  --ink3:   #46455e;
  --ink4:   #7c7a96;
  --ink5:   #b0aec8;
  --ink6:   #d4d2e4;

  --page:   #f6f5f0;
  --paper:  #ffffff;
  --paper2: #f2f0ea;
  --paper3: #e8e6de;
  --paper4: #dddad0;

  --b0: #e2dfd6;
  --b1: #ccc9bc;

  /* Âmbar — principal */
  --a:    #b86d1a;
  --a-h:  #9a5a12;
  --a-lo: #d4882a;
  --a-bg: #fdf5e8;
  --a-bd: #edd8a8;
  --a-glow: rgba(184,109,26,.15);

  /* Azul — sagrado/bíblia */
  --bl:    #1e4f8c;
  --bl-lo: #2e6ab8;
  --bl-bg: #eef4fc;
  --bl-bd: #a8c8ec;

  /* Verde — cursos */
  --g:    #2d6b42;
  --g-lo: #3d8a56;
  --g-bg: #eef7f1;
  --g-bd: #9ecfae;

  /* Roxo — livros ficção */
  --p:    #5a3d8a;
  --p-lo: #7454aa;
  --p-bg: #f2eef8;
  --p-bd: #c4b0e0;

  /* Livro — creme/âmbar quente */
  --book-bg:   #fdf6ec;
  --book-bg2:  #f8eedc;
  --book-bd:   #c47a1e;
  --book-acc:  #a86318;

  /* Curso — azul */
  --crs-bg:   #f0f5ff;
  --crs-bg2:  #deeaff;
  --crs-bd:   #2563c4;
  --crs-acc:  #1a50a8;

  /* Vermelho suave — atrasado */
  --r:    #9b3a3a;
  --r-bg: #fdf2f2;
  --r-bd: #e8b4b4;

  /* Verde OK */
  --ok:    #2d6b42;
  --ok-bg: #eef7f1;
  --ok-bd: #9ecfae;

  /* Amarelo — atenção */
  --yw:    #8a6a10;
  --yw-bg: #fdfaec;
  --yw-bd: #e0d080;

  --rx: 2px;
  --rs: 4px;
  --rm: 5px;
  --rl: 7px;

  --sh0: 0 1px 3px rgba(15,14,26,.05);
  --sh1: 0 2px 8px rgba(15,14,26,.08), 0 1px 3px rgba(15,14,26,.04);
  --sh2: 0 4px 16px rgba(15,14,26,.10), 0 1px 5px rgba(15,14,26,.04);
  --sh3: 0 8px 32px rgba(15,14,26,.12), 0 2px 8px rgba(15,14,26,.05);

  --ease: cubic-bezier(.4,0,.2,1);
  --tf: .16s;
  --sb: 220px;
}

/* ─── RESET & BASE ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;font-size:13px;}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:#f0eeea;color:var(--ink);
  min-height:100vh;display:flex;line-height:1.5;
}
button,input,select,textarea{font-family:inherit;font-size:inherit;}

::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--b1);border-radius:99px;}

/* ─── SIDEBAR ─── */
.sidebar{
  width:var(--sb);
  background:var(--paper);border-right:1px solid var(--b0);
  display:flex;flex-direction:column;
  position:fixed;left:0;top:0;bottom:0;z-index:100;
  box-shadow:2px 0 12px rgba(15,14,26,.06);
}

.sl{
  padding:14px 14px 13px;
  display:flex;align-items:center;gap:9px;
  border-bottom:1px solid var(--b0);flex-shrink:0;
}
.sl-ico{
  width:28px;height:28px;border-radius:var(--rs);
  background:linear-gradient(135deg,#d4882a,#b86d1a);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;flex-shrink:0;
  box-shadow:0 1px 4px rgba(184,109,26,.3);
}
.sl-name{font-family:'Lora',serif;font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:-.1px;}
.sl-name em{font-style:italic;color:var(--a);}

.snav{flex:1;padding:6px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:1px;}
.snav::-webkit-scrollbar{width:0;}

.slabel{
  font-size:9px;font-weight:800;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--ink6);
  padding:12px 7px 4px;display:flex;align-items:center;gap:6px;
}
.slabel::after{content:'';flex:1;height:1px;background:var(--b0);}

.sitem{
  display:flex;align-items:center;gap:8px;
  padding:6px 8px;border-radius:5px;
  cursor:pointer;color:var(--ink4);
  font-size:12px;font-weight:500;
  transition:all var(--tf) var(--ease);
  border:1px solid transparent;
  user-select:none;text-decoration:none;
  position:relative;
}
.sitem:hover{background:var(--paper2);color:var(--ink2);}
.sitem.on{background:var(--a-bg);color:var(--a);font-weight:700;border-color:var(--a-bd);}
.sitem.on::before{
  content:'';position:absolute;left:-8px;top:25%;bottom:25%;
  width:2.5px;border-radius:0 2px 2px 0;background:var(--a);
}

.si{
  width:24px;height:24px;flex-shrink:0;border-radius:5px;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;transition:all var(--tf);
}
.si-amber  {background:#fdf0e0;color:#c97c1e;}
.si-indigo {background:#eef0ff;color:#5157d4;}
.si-green  {background:#eef7f1;color:#2a7d46;}
.si-purple {background:#f5f0ff;color:#7c3abd;}
.si-teal   {background:#edfaf8;color:#0e8f81;}
.si-rose   {background:#fff0f2;color:#d63a55;}

.sitem:hover .si-amber,  .sitem.on .si-amber  {background:#fce6c6;color:#b86d1a;}
.sitem:hover .si-indigo, .sitem.on .si-indigo {background:#e0e3ff;color:#3f46c8;}
.sitem:hover .si-green,  .sitem.on .si-green  {background:#d6f0de;color:#236638;}
.sitem:hover .si-purple, .sitem.on .si-purple {background:#ead8ff;color:#6a24ae;}
.sitem:hover .si-teal,   .sitem.on .si-teal   {background:#c8f2ee;color:#0a7a6e;}
.sitem:hover .si-rose,   .sitem.on .si-rose   {background:#ffd6db;color:#be2d46;}

.sbadge{
  margin-left:auto;background:var(--paper2);
  color:var(--ink4);font-size:10px;font-weight:700;
  padding:1px 6px;border-radius:99px;line-height:1.6;
  border:1px solid var(--b0);
}
.sitem.on .sbadge{background:var(--a-bg);color:var(--a);border-color:var(--a-bd);}
.sitem:hover .sbadge{color:var(--ink2);}

.snav-sep{height:1px;background:var(--b0);margin:6px 4px;}

/* ─── FOOTER ─── */
.app-footer{
  height:38px;display:flex;align-items:center;gap:8px;
  padding:0 22px;border-top:1px solid var(--b0);
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
  font-size:11px;color:var(--ink5);font-weight:500;
  position:sticky;bottom:0;z-index:50;flex-shrink:0;
}
.app-footer-sep{color:var(--b1);}

/* ─── MAIN LAYOUT ─── */
.main{margin-left:var(--sb);flex:1;display:flex;flex-direction:column;}

.topbar{
  height:50px;display:flex;align-items:center;
  padding:0 22px;border-bottom:1px solid var(--b0);gap:10px;
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
}
.t-breadcrumb{font-size:12px;color:var(--ink4);font-weight:500;display:flex;align-items:center;gap:5px;}
.t-breadcrumb strong{color:var(--ink);font-weight:700;}
.t-sep{color:var(--ink6);}
.tf{flex:1;}

.t-search{
  display:flex;align-items:center;gap:7px;
  background:var(--paper);border:1px solid var(--b0);
  border-radius:var(--rs);padding:5px 11px;width:210px;
  box-shadow:var(--sh0);transition:all var(--tf) var(--ease);
}
.t-search:focus-within{border-color:var(--a);box-shadow:0 0 0 3px var(--a-glow);}
.t-search svg{width:12px;height:12px;fill:var(--ink5);flex-shrink:0;}
.t-search input{background:none;border:none;outline:none;color:var(--ink);font-size:12px;width:100%;}
.t-search input::placeholder{color:var(--ink5);}

.t-acts{display:flex;align-items:center;gap:6px;}

/* ─── BOTÕES ─── */
.btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 13px;border-radius:var(--rs);
  font-size:12px;font-weight:600;cursor:pointer;border:none;
  transition:all var(--tf) var(--ease);white-space:nowrap;letter-spacing:-.05px;
}
.btn-a{background:var(--a);color:#fff;box-shadow:0 1px 4px rgba(184,109,26,.28);}
.btn-a:hover{background:var(--a-h);transform:translateY(-1px);box-shadow:0 3px 12px rgba(184,109,26,.34);}
.btn-o{background:var(--paper);color:var(--ink2);border:1px solid var(--b0);box-shadow:var(--sh0);}
.btn-o:hover{background:var(--paper2);border-color:var(--b1);}
.btn-sm{padding:5px 11px;font-size:11.5px;}

.icobtn{
  width:30px;height:30px;border-radius:var(--rs);
  background:var(--paper);border:1px solid var(--b0);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:13px;box-shadow:var(--sh0);
  transition:all var(--tf);position:relative;
}
.icobtn:hover{background:var(--paper2);border-color:var(--b1);}

/* ─── CONTENT ─── */
.content{padding:20px 22px 24px;flex:1;}

/* ─── CHIPS ─── */
.chip{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:3px;font-size:10.5px;font-weight:600;white-space:nowrap;}
.ch-a  {background:var(--a-bg);color:var(--a);border:1px solid var(--a-bd);}
.ch-bl {background:var(--bl-bg);color:var(--bl);border:1px solid var(--bl-bd);}
.ch-g  {background:var(--g-bg);color:var(--g);border:1px solid var(--g-bd);}
.ch-p  {background:var(--p-bg);color:var(--p);border:1px solid var(--p-bd);}
.ch-ok {background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-bd);}
.ch-r  {background:var(--r-bg);color:var(--r);border:1px solid var(--r-bd);}
.ch-yw {background:var(--yw-bg);color:var(--yw);border:1px solid var(--yw-bd);}
.ch-n  {background:var(--paper2);color:var(--ink3);border:1px solid var(--b0);}

/* ─── MODAL ─── */
.overlay{
  position:fixed;inset:0;
  background:rgba(15,14,26,.44);backdrop-filter:blur(6px);
  z-index:200;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;visibility:hidden;transition:opacity .18s var(--ease),visibility .18s;
}
.overlay.on{opacity:1;pointer-events:all;visibility:visible;}
.modal{
  background:var(--paper);border:1px solid var(--b1);border-radius:var(--rl);
  padding:22px;width:480px;max-width:calc(100vw - 28px);
  box-shadow:var(--sh3);
  transform:translateY(14px) scale(.97);
  transition:all .2s var(--ease);
}
.overlay.on .modal{transform:translateY(0) scale(1);}
.mhd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;}
.mtitle{font-family:'Lora',serif;font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.15px;}
.msub{font-size:11.5px;color:var(--ink4);margin-top:2px;}
.mclose{
  width:26px;height:26px;background:var(--paper2);border:1px solid var(--b0);border-radius:var(--rx);
  display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--ink4);
  cursor:pointer;transition:all var(--tf);flex-shrink:0;margin-left:10px;margin-top:1px;
}
.mclose:hover{background:var(--paper3);color:var(--ink);}
.fg{margin-bottom:12px;}
.fl{font-size:11px;font-weight:700;color:var(--ink3);margin-bottom:4px;display:flex;align-items:center;gap:4px;}
.fl span{font-weight:500;color:var(--ink5);}
.fc{
  width:100%;background:var(--paper2);border:1.5px solid var(--b0);
  border-radius:var(--rs);padding:8px 11px;color:var(--ink);outline:none;
  transition:all var(--tf);
}
.fc:focus{border-color:var(--a);background:var(--paper);box-shadow:0 0 0 3px var(--a-glow);}
.fc::placeholder{color:var(--ink5);}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
textarea.fc{resize:none;height:58px;line-height:1.5;}
.mft{display:flex;gap:7px;justify-content:flex-end;margin-top:16px;}

.seg{display:flex;gap:4px;background:var(--paper2);border:1px solid var(--b0);border-radius:var(--rs);padding:3px;}
.seg-opt{
  flex:1;background:none;border:none;border-radius:4px;
  padding:6px 10px;font-size:11.5px;font-weight:700;color:var(--ink4);
  cursor:pointer;transition:all var(--tf) var(--ease);
}
.seg-opt:hover{color:var(--ink2);}
.seg-opt.on{background:var(--paper);color:var(--a);box-shadow:var(--sh0);}
.fh{font-size:10.5px;color:var(--ink4);margin-top:5px;}

/* ─── TOAST ─── */
.toast{
  position:fixed;bottom:18px;right:18px;
  background:var(--ink2);color:#fff;
  padding:10px 14px;border-radius:var(--rm);
  font-size:12px;box-shadow:var(--sh3);z-index:999;
  display:flex;align-items:center;gap:9px;max-width:280px;
  animation:tin .22s var(--ease) both;
}
@keyframes tin{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.ttico{font-size:15px;}
.tttitle{font-size:12.5px;font-weight:800;}
.ttsub{font-size:10.5px;opacity:.6;margin-top:1px;}

/* ─── MOBILE ─── */
.sbdrop{display:none;position:fixed;inset:0;background:rgba(15,14,26,.25);z-index:90;}
.t-ham{display:none;width:30px;height:30px;border-radius:var(--rs);background:var(--paper);border:1px solid var(--b0);align-items:center;justify-content:center;font-size:14px;cursor:pointer;}

/* ─── COVER COLORS ─── */
.cv-blue  {background:linear-gradient(155deg,#1e3a8a 0%,#2563eb 55%,#60a5fa 100%);}
.cv-violet{background:linear-gradient(155deg,#4c1d95 0%,#6d28d9 55%,#a78bfa 100%);}
.cv-green {background:linear-gradient(155deg,#064e3b 0%,#059669 55%,#34d399 100%);}
.cv-rose  {background:linear-gradient(155deg,#881337 0%,#e11d48 55%,#fb7185 100%);}
.cv-teal  {background:linear-gradient(155deg,#134e4a 0%,#0d9488 55%,#2dd4bf 100%);}
.cv-amber {background:linear-gradient(155deg,#78350f 0%,#b86d1a 55%,#fcd34d 100%);}
.cv-slate {background:linear-gradient(155deg,#0f172a 0%,#334155 55%,#94a3b8 100%);}
.cv-parch {background:linear-gradient(155deg,#7c2d12 0%,#9a3412 55%,#c2410c 100%);}
.cv-course-g{background:linear-gradient(135deg,#064e3b 0%,#065f46 60%,#047857 100%);}
.cv-course-b{background:linear-gradient(135deg,#1e3a8a 0%,#1d4ed8 60%,#3b82f6 100%);}

/* ─── TASK CARD ─── */
.task-card{
  background:var(--paper);border:1px solid var(--b0);border-radius:var(--rm);
  box-shadow:var(--sh1);overflow:hidden;position:relative;
  display:flex;flex-direction:column;
  transition:box-shadow var(--tf),transform var(--tf);cursor:default;
  border-left:4px solid var(--b1);
}
.task-card:hover{box-shadow:var(--sh2);transform:translateY(-2px);}

.task-card.type-book  {border-left-color:var(--book-bd);background:var(--book-bg);}
.task-card.type-book .tc-footer{background:var(--book-bg2);border-top-color:#e8d4b0;}
.task-card.type-course{border-left-color:var(--crs-bd);background:var(--crs-bg);}
.task-card.type-course .tc-footer{background:var(--crs-bg2);border-top-color:#b8d0f0;}
.task-card.type-bible {border-left-color:var(--bl);}
.task-card.type-article{border-left-color:var(--p);}
.task-card.done-card  {border-left-color:var(--ok);}

.tc-hero{display:flex;gap:12px;align-items:stretch;padding:12px 12px 10px;}

.tc-cover{
  width:125px;height:192px;flex-shrink:0;border-radius:2px 5px 5px 2px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  box-shadow:inset -5px 0 10px rgba(0,0,0,.22),6px 8px 18px rgba(0,0,0,.32);
}
.tc-cover::after{content:'';position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.16) 0%,transparent 50%,rgba(0,0,0,.08) 100%);z-index:2;}
.tc-cover svg{position:relative;z-index:0;width:100%;height:100%;}
.tc-cover-emoji{font-size:42px;position:relative;z-index:3;}

.tc-cover.square{width:136px;height:136px;border-radius:var(--rs);box-shadow:0 6px 18px rgba(0,0,0,.3);}
.tc-cover.square::before,.tc-cover.square::after{display:none;}

.tc-type-badge{position:absolute;top:8px;right:8px;z-index:4;padding:2px 7px;border-radius:3px;font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;}
.tc-type-badge.tb-book   {background:rgba(196,122,30,.88);color:#fff;}
.tc-type-badge.tb-course {background:rgba(37,99,196,.88);color:#fff;}
.tc-type-badge.tb-bible  {background:rgba(30,79,140,.88);color:#fff;}
.tc-type-badge.tb-article{background:rgba(90,61,138,.88);color:#fff;}

.tc-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:0;}
.tc-type-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.tc-type-label{font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;}
.tc-type-label.tl-book   {color:var(--book-acc);}
.tc-type-label.tl-bible  {color:var(--bl);}
.tc-type-label.tl-course {color:var(--crs-acc);}
.tc-type-label.tl-article{color:var(--p);}
.tc-date-range{font-size:10px;color:var(--ink2);font-weight:600;}

.tc-title{font-family:'Lora',serif;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.1px;line-height:1.25;margin-bottom:1px;}
.tc-author{font-size:11px;color:var(--ink2);font-weight:500;margin-bottom:8px;}

.tc-overall{display:flex;align-items:center;gap:6px;margin-bottom:10px;}
.tc-overall-track{flex:1;height:4px;background:rgba(0,0,0,.08);border-radius:99px;overflow:hidden;}
.tc-overall-fill{height:100%;border-radius:99px;transition:width 1s var(--ease);}
.tc-overall-pct{font-size:10.5px;font-weight:900;letter-spacing:-.3px;flex-shrink:0;}

.tc-stats{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;margin-top:auto;}
.tc-stat{display:flex;flex-direction:column;gap:1px;}
.tc-stat-lbl{font-size:9px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink2);}
.tc-stat-val{font-size:13px;font-weight:900;letter-spacing:-.5px;line-height:1.1;}
.tc-stat-unit{font-size:9px;font-weight:600;color:var(--ink3);margin-left:2px;}
.tc-stat.gap-neg .tc-stat-val{color:var(--r);}
.tc-stat.gap-pos .tc-stat-val{color:var(--ok);}

.tc-stat-status{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-top:5px;border-top:1px solid var(--b0);margin-top:2px;}
.tc-stat-bar-wrap{flex:1;margin-right:8px;}
.tc-stat-bar-track{height:4px;background:rgba(0,0,0,.08);border-radius:1px;overflow:hidden;}
.tc-stat-bar-fill{height:100%;border-radius:1px;transition:width 1.1s var(--ease);}

.tc-status{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--rx);font-size:10px;font-weight:800;letter-spacing:-.1px;align-self:flex-start;}
.tc-status.ok     {background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-bd);}
.tc-status.late   {background:var(--r-bg);color:var(--r);border:1px solid var(--r-bd);}
.tc-status.partial{background:var(--yw-bg);color:var(--yw);border:1px solid var(--yw-bd);}
.tc-status.paused {background:var(--yw-bg);color:var(--yw);border:1px solid var(--yw-bd);}
.tc-status.queue  {background:var(--paper2);color:var(--ink4);border:1px solid var(--b0);}

.tc-footer{display:flex;align-items:center;gap:5px;padding:6px 10px 7px;border-top:1px solid var(--b0);background:var(--paper2);}
.tc-footer .btn{font-size:10.5px;padding:4px 9px;}
.tc-footer-spacer{flex:1;}

.fill-book{background:linear-gradient(90deg,var(--book-bd),#e09030);}
.fill-crs {background:linear-gradient(90deg,var(--crs-bd),#4a8ae0);}
.fill-ok  {background:linear-gradient(90deg,var(--ok),var(--g-lo));}
.fill-bl  {background:linear-gradient(90deg,var(--bl),var(--bl-lo));}

/* ─── UTILS ─── */
.divider{height:1px;background:var(--b0);margin:0 0 14px;}
.inline-sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--ink6);vertical-align:middle;margin:0 5px;}

/* ─── PAGE ENTER ANIMATION ─── */
@keyframes fu{from{opacity:0;transform:translateY(7px);}to{opacity:1;transform:translateY(0);}}
.content>*{animation:fu .26s var(--ease) both;}
.content>*:nth-child(1){animation-delay:.03s;}
.content>*:nth-child(2){animation-delay:.07s;}
.content>*:nth-child(3){animation-delay:.11s;}
.content>*:nth-child(4){animation-delay:.15s;}

/* ─── RESPONSIVE ─── */
@media(max-width:768px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.open{transform:translateX(0);box-shadow:var(--sh3);}
  .sbdrop{display:block;}
  .main{margin-left:0;}
  .content{padding:14px 14px 36px;}
  .topbar{padding:0 14px;}
  .t-search{display:none;}
  .t-ham{display:flex;}
}

/* ─── CRUD PAGES ─── */
.crud-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:12px;}
.crud-title{font-size:18px;font-weight:700;color:var(--ink);margin:0 0 2px;}
.crud-sub{font-size:12px;color:var(--ink4);margin:0;}
.back-link{color:var(--a);text-decoration:none;font-size:12px;}
.back-link:hover{text-decoration:underline;}

.crud-table-wrap{background:var(--paper);border:1px solid var(--b0);border-radius:var(--r);overflow:hidden;}
.crud-table{width:100%;border-collapse:collapse;font-size:13px;}
.crud-table thead th{padding:10px 14px;text-align:left;font-size:11px;font-weight:600;color:var(--ink4);text-transform:uppercase;letter-spacing:.04em;background:var(--paper2);border-bottom:1px solid var(--b0);}
.crud-table tbody tr{border-bottom:1px solid var(--b0);}
.crud-table tbody tr:last-child{border-bottom:none;}
.crud-table tbody tr:hover{background:var(--paper2);}
.crud-table tbody td{padding:10px 14px;color:var(--ink2);}
.row-inactive td{opacity:.5;}
.td-ico{font-size:18px;width:40px;}
.td-label{color:var(--ink4);font-size:12px;}
.td-num{text-align:center;width:60px;color:var(--ink4);}
.td-acts{text-align:right;white-space:nowrap;display:flex;gap:6px;justify-content:flex-end;}
.td-empty{text-align:center;color:var(--ink5);padding:32px!important;}

.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;}
.badge-ok{background:var(--g-bg);color:var(--g);border:1px solid var(--g-bd);}
.badge-off{background:var(--paper3);color:var(--ink4);border:1px solid var(--b0);}

.btn-danger{background:var(--r-bg);color:var(--r);border:1px solid var(--r-bd);}
.btn-danger:hover{background:var(--r);color:#fff;}
.btn-sm{padding:4px 10px;font-size:11px;}

.crud-form-wrap{background:var(--paper);border:1px solid var(--b0);border-radius:var(--r);padding:20px 24px;max-width:600px;}
.fl-req{color:var(--r);margin-left:2px;}

.flash{padding:10px 14px;border-radius:var(--rs);font-size:13px;margin-bottom:16px;}
.flash-ok{background:var(--g-bg);color:var(--g);border:1px solid var(--g-bd);}
.flash-err{background:var(--r-bg);color:var(--r);border:1px solid var(--r-bd);}

.cor-dot{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:middle;border:1px solid var(--b0);}

/* ─── CARD CICLO (show material) ─── */
.card-ciclo{background:var(--paper);border:1px solid var(--b0);border-radius:var(--r);padding:16px 18px;margin-bottom:14px;}
.cc-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.cc-num{font-size:13px;font-weight:700;color:var(--ink);}
.cc-meta{display:flex;gap:14px;font-size:11px;color:var(--ink4);margin-bottom:8px;flex-wrap:wrap;}
.cc-sessoes{margin-top:12px;border-top:1px solid var(--b0);padding-top:10px;}
.cc-sess-hd{display:flex;justify-content:space-between;font-size:11px;font-weight:600;color:var(--ink4);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em;}
.cc-sess-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--b0);font-size:12px;}
.cc-sess-row:last-child{border-bottom:none;}
.cc-sess-data{color:var(--ink4);min-width:80px;}
.cc-sess-val{font-weight:600;color:var(--ink2);}
.cc-sess-unit{font-weight:400;color:var(--ink4);}
.cc-sess-nota{cursor:default;}
