/* TABS */
.tabs{
  display:flex;
  gap:4px;
  border-bottom:2px solid var(--ink);
  margin-bottom:24px;
}
.tab-btn{
  font-family:var(--font-ui);
  font-size:14px;
  font-weight:600;
  color:var(--text-muted);
  background:none;
  border:none;
  padding:11px 16px;
  cursor:pointer;
  position:relative;
  top:2px;
}
.tab-btn.active{
  color:var(--ink);
  border-bottom:2px solid var(--ink);
}
.tab-btn:hover:not(.active){ color:var(--ink-soft); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }

.toolbar{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:8px; gap:16px; flex-wrap:wrap;
  padding-top:14px; padding-bottom:14px;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.booklet-label{ display:flex; align-items:baseline; gap:10px; }
.booklet-title{ font-family:var(--font-display); font-size:16.5px; font-weight:700; }
.booklet-range{ font-size:13px; color:var(--text-muted); }
.toolbar-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.btn{
  font-family:var(--font-ui); font-size:13.5px; font-weight:600;
  padding:8px 14px; border-radius:6px; border:1px solid transparent;
  cursor:pointer; transition:opacity .15s ease, transform .1s ease; white-space:nowrap;
}
.btn:hover{opacity:0.85;} .btn:active{transform:scale(0.97);}
.btn-primary{background:var(--ink); color:#fff;}
.btn-ghost{background:transparent; border-color:var(--line); color:var(--ink);}
.btn-auto{background:var(--amber); color:#fff;}

.alert-bar{
  display:flex; align-items:center; gap:10px;
  background:var(--red-flag-bg); border:1px solid #E3C3BB; color:var(--red-flag);
  padding:10px 14px; border-radius:6px; font-size:13px; margin:18px 0 22px;
}
.alert-bar .dot{width:7px;height:7px;border-radius:50%;background:var(--red-flag);flex-shrink:0;}
.alert-bar.hidden{display:none;}

.note-bar{
  display:flex; align-items:flex-start; gap:10px;
  background:#F1EEE3; border:1px solid var(--line); color:var(--ink-soft);
  padding:11px 14px; border-radius:6px; font-size:12.5px; margin:18px 0 22px; line-height:1.5;
}
.note-bar b{ color:var(--ink); }

.progress-strip{ display:flex; gap:5px; margin:18px 0 4px; }
.progress-dot{ flex:1; height:5px; border-radius:3px; background:var(--line); cursor:pointer; transition:background .15s ease; }
.progress-dot.filled{ background:var(--treasures); }
.progress-dot.active{ background:var(--ink); }
.tab-panel#panel-weekend .progress-dot.filled{ background:var(--weekend); }
.progress-label{ font-size:11.5px; color:var(--text-muted); margin-bottom:18px; }

.publication{
  background:var(--paper-raised); border:1px solid var(--line); border-radius:10px;
  overflow:hidden; margin-bottom:14px; box-shadow:0 1px 2px rgba(0,0,0,0.03);
}
.pub-header{
  padding:18px 28px; border-bottom:1px solid var(--line); cursor:pointer;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.pub-header:hover{ background:var(--paper); }
.pub-header-text .pub-week{ font-family:var(--font-display); font-size:12.5px; letter-spacing:0.03em; color:var(--text-muted); text-transform:uppercase; margin:0 0 4px 0; }
.pub-header-text .pub-scripture{ font-family:var(--font-display); font-size:19px; font-weight:700; margin:0; color:var(--ink); }
.pub-header-meta{ display:flex; align-items:center; gap:14px; flex-shrink:0; }
.pub-fill-status{ font-size:12px; font-weight:600; padding:4px 10px; border-radius:20px; white-space:nowrap; }
.pub-fill-status.complete{ background:#E7EFE7; color:#4B6B4F; }
.pub-fill-status.incomplete{ background:var(--ministry-bg); color:var(--ministry); }
.chevron{ font-size:13px; color:var(--text-muted); transition:transform .2s ease; }
.publication.expanded .chevron{ transform:rotate(180deg); }
.pub-body{ display:none; }
.publication.expanded .pub-body{ display:block; }
.pub-sub{ padding:14px 28px; font-size:13.5px; color:var(--ink-soft); border-bottom:1px solid var(--line); background:var(--paper); }
.pub-sub b{ color:var(--ink); }

.section-band{
  display:flex; align-items:center; gap:10px; padding:10px 28px;
  font-family:var(--font-display); font-weight:700; font-size:13.5px;
  letter-spacing:0.01em; text-transform:uppercase; color:#fff;
}
.section-band.treasures{ background:var(--treasures); }
.section-band.ministry{ background:var(--ministry); }
.section-band.christlife{ background:var(--christlife); }
.section-band.weekend{ background:var(--weekend); }
.section-band.duties{ background:var(--duties); }
.section-band .icon{ width:16px;height:16px; border-radius:50%; background:rgba(255,255,255,0.25); flex-shrink:0; }
.section-band .song-tag{ margin-left:auto; font-weight:500; font-size:12px; text-transform:none; opacity:0.9; }

.part{
  display:grid; grid-template-columns: 30px 1fr 250px 30px; align-items:start; gap:12px;
  padding:14px 28px; border-bottom:1px solid var(--line); transition:background .15s ease;
}
.part:last-child{ border-bottom:none; }
.part.treasures-tint{ background: color-mix(in srgb, var(--treasures-bg) 55%, white); }
.part.ministry-tint{ background: color-mix(in srgb, var(--ministry-bg) 55%, white); }
.part.christlife-tint{ background: color-mix(in srgb, var(--christlife-bg) 55%, white); }
.part.weekend-tint{ background: color-mix(in srgb, var(--weekend-bg) 55%, white); }
.part.duties-tint{ background: color-mix(in srgb, var(--duties-bg) 55%, white); }
.part.flagged{ background:var(--red-flag-bg) !important; }
.part-number{ font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--ink-soft); padding-top:1px; }
.part-info .part-title{ font-weight:700; font-size:14px; color:var(--ink); margin:0 0 3px 0; }
.part-info .part-meta{ font-size:12px; color:var(--text-muted); margin:0; }

.assign-block{ display:flex; flex-direction:column; gap:6px; }
.assign-field{
  display:flex; align-items:center; gap:9px; background:var(--paper-raised);
  border:1px solid var(--line); border-radius:7px; padding:6px 10px; cursor:pointer;
  transition:border-color .15s ease, box-shadow .15s ease; position:relative;
}
.assign-field:hover{ border-color:var(--ink-soft); }
.assign-field.open{ border-color:var(--treasures); box-shadow:0 0 0 3px rgba(76,107,135,0.12); }
.assign-field.assistant{ font-size:12.5px; }
.assign-field.linked-chair{ background:var(--paper); cursor:default; }
.assign-field.linked-chair::after{ content:'mesmo do início'; font-size:10.5px; color:var(--text-muted); font-style:italic; margin-left:auto; }

.avatar{
  width:24px;height:24px; border-radius:50%; background:var(--ink-soft); color:#fff;
  font-size:10px; font-weight:700; display:flex;align-items:center;justify-content:center; flex-shrink:0;
}
.avatar.empty{ background:transparent; border:1.5px dashed var(--line); color:var(--text-muted); }
.assignee-name{ font-size:13px; color:var(--ink); font-weight:600; }
.assignee-placeholder{ font-size:12.5px; color:var(--text-muted); font-style:italic; }
.warn-line{ font-size:10.5px; color:var(--red-flag); font-weight:600; display:block; margin-top:1px; }
.row-menu{ color:var(--text-muted); cursor:pointer; font-size:15px; text-align:center; padding-top:4px; }

.dropdown{
  position:absolute; top:calc(100% + 6px); right:0; width:250px; background:#fff;
  border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,0.14);
  z-index:50; max-height:280px; overflow-y:auto;
}
.dropdown.up{ top:auto; bottom:calc(100% + 6px); }
.dd-lift{ z-index:60; }
.dd-lift:not([style*="position"]){ position:relative; }
.dropdown-item .dd-main{ display:flex; flex-direction:column; min-width:0; flex:1; }
.dropdown-item .dd-name{ overflow-wrap:anywhere; }
.dropdown-search{ padding:8px; border-bottom:1px solid var(--line); position:sticky; top:0; background:#fff; }
.dropdown-search input{ width:100%; border:1px solid var(--line); border-radius:6px; padding:6px 9px; font-size:13px; font-family:var(--font-ui); outline:none; }
.dropdown-search input:focus{ border-color:var(--treasures); }
.dropdown-item{ display:flex; align-items:center; gap:9px; padding:8px 12px; cursor:pointer; font-size:13.5px; }
.dropdown-item:hover{ background:var(--paper); }
.dropdown-item .dd-avatar{ width:22px;height:22px;border-radius:50%; background:var(--ink-soft); color:#fff; font-size:9.5px; font-weight:700; display:flex;align-items:center;justify-content:center; flex-shrink:0; }
.dropdown-item .dd-name{ color:var(--ink); font-weight:500; }
.dropdown-item .dd-flag{ margin-left:auto; font-size:10px; color:var(--red-flag); font-weight:600; }
.dropdown-clear{ padding:8px 12px; font-size:12.5px; color:var(--text-muted); cursor:pointer; border-top:1px solid var(--line); }
.dropdown-clear:hover{ background:var(--paper); color:var(--red-flag); }
.group-dropdown{ width:230px; }
.group-dropdown .dropdown-item{ display:block; }

.footnote{ margin-top:14px; font-size:12px; color:var(--text-muted); display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.footnote .fn-item{ display:flex; align-items:center; gap:6px; }
.footnote .swatch{ width:9px;height:9px;border-radius:2px; display:inline-block; }

.toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--ink); color:#fff; padding:11px 20px; border-radius:7px; font-size:13.5px;
  opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease; z-index:100;
}
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
