/* ===== SL Cast Manager - visual premium ===== */
:root {
  --sl-azul: #0B1F3A; --sl-azul2: #13315C; --sl-ouro: #C9A227;
  --sl-marfim: #F8F6F0; --sl-texto: #1A1A1A;
  --sl-fonte-titulo: 'Sora', sans-serif; --sl-fonte-texto: 'Inter', sans-serif;
}
body { font-family: var(--sl-fonte-texto); background: #eef1f6; color: var(--sl-texto); }
h1,h2,h3,h4,h5,.card-title,.sl-page-title { font-family: var(--sl-fonte-titulo); }

.sl-wrapper { display: flex; min-height: 100vh; }
.sl-sidebar { width: 252px; background: linear-gradient(180deg, var(--sl-azul) 0%, var(--sl-azul2) 130%); color: #dbe3f0; position: sticky; top:0; height: 100vh; }
.sl-sidebar-off { width: 262px !important; }
.sl-brand { display:flex; gap:11px; align-items:center; padding: 20px 18px 16px; border-bottom: 1px solid rgba(201,162,39,.28); }
.sl-brand-logo { height: 40px; max-width: 44px; object-fit: contain; }
.sl-brand-mono { width:40px;height:40px;border:1.5px solid var(--sl-ouro);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--sl-ouro);font-family:var(--sl-fonte-titulo);font-weight:700; }
.sl-brand-nome { font-family: var(--sl-fonte-titulo); font-weight: 700; color:#fff; font-size:.95rem; line-height:1.15; }
.sl-brand-slogan { font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color: var(--sl-ouro); }
.sl-nav { padding: 12px 10px; overflow-y:auto; }
.sl-nav-item { display:flex; align-items:center; gap:11px; padding:9px 13px; border-radius:9px; color:#c3cede; text-decoration:none; font-size:.875rem; margin-bottom:2px; transition:.15s; }
.sl-nav-item i { font-size:1rem; width:20px; text-align:center; }
.sl-nav-item:hover { background: rgba(255,255,255,.07); color:#fff; }
.sl-nav-item.ativo { background: rgba(201,162,39,.16); color:#fff; border-left:3px solid var(--sl-ouro); }
.sl-sidebar-footer { padding: 10px; border-top: 1px solid rgba(255,255,255,.08); }

.sl-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.sl-topbar { background: var(--sl-azul); color:#fff; padding: 14px 22px; display:flex; align-items:center; box-shadow: 0 2px 10px rgba(11,31,58,.25); }
.sl-page-title { font-size:1.05rem; margin:0; font-weight:600; color:#fff; }
.sl-user-btn { color:#e6ebf4; border:1px solid rgba(255,255,255,.25); border-radius:9px; font-size:.85rem; }
.sl-user-btn:hover { color:#fff; border-color: var(--sl-ouro); }
.sl-content { padding: 22px; max-width: 1400px; width:100%; }

/* Cards e tabelas */
.card { border:0; border-radius: 14px; box-shadow: 0 1px 6px rgba(15,28,52,.08); }
.card-header { background:#fff; border-bottom:1px solid #edf0f5; border-radius:14px 14px 0 0 !important; font-family:var(--sl-fonte-titulo); font-weight:600; }
.sl-stat { border-left: 4px solid var(--sl-ouro); }
.sl-stat .valor { font-size: 1.7rem; font-weight:700; font-family: var(--sl-fonte-titulo); color: var(--sl-azul); line-height:1.1; }
.sl-stat .rotulo { font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:#7a8699; }
.sl-stat i { font-size:1.5rem; color: var(--sl-ouro); opacity:.85; }
.table thead th { font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:#7a8699; border-bottom-width:1px; }
.table td { vertical-align: middle; font-size:.875rem; }
.badge-status { font-weight:500; }

/* Botoes */
.btn-primary { background: var(--sl-azul); border-color: var(--sl-azul); }
.btn-primary:hover { background: var(--sl-azul2); border-color: var(--sl-azul2); }
.btn-ouro { background: var(--sl-ouro); border-color: var(--sl-ouro); color:#fff; }
.btn-ouro:hover { background:#b3901f; border-color:#b3901f; color:#fff; }
.btn { border-radius: 9px; }
.form-control, .form-select { border-radius: 9px; }
.form-control:focus, .form-select:focus { border-color: var(--sl-ouro); box-shadow: 0 0 0 .2rem rgba(201,162,39,.18); }
.form-label { font-size:.82rem; font-weight:600; color:#3d4757; }

/* Login */
.sl-auth-body { min-height:100vh; display:flex; align-items:center; justify-content:center;
  background: radial-gradient(1000px 600px at 70% -10%, #1d3f70 0%, var(--sl-azul) 55%, #071528 100%); padding:16px; }
.sl-login-card { width: 400px; max-width:100%; border-radius:18px; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.45); }
.sl-login-head { background: var(--sl-azul); color:#fff; text-align:center; padding: 30px 24px 22px; }
.sl-login-head .marca { font-family:var(--sl-fonte-titulo); font-weight:700; font-size:1.35rem; letter-spacing:.04em; }
.sl-login-head .slogan { color: var(--sl-ouro); font-size:.68rem; letter-spacing:.22em; text-transform:uppercase; margin-top:3px; }
.sl-login-body { background:#fff; padding: 26px; }

/* Montador de roteiro */
.sl-sugestao { cursor:pointer; border:1px solid #e4e8ef; border-radius:10px; padding:8px 11px; margin-bottom:7px; font-size:.85rem; background:#fff; transition:.12s; }
.sl-sugestao:hover { border-color: var(--sl-ouro); background:#fffdf4; }
.sl-sugestao .meta { font-size:.68rem; color:#8a94a5; }
.sl-selecionada { background:#fff; border:1px solid #e4e8ef; border-radius:10px; padding:9px 11px; margin-bottom:7px; display:flex; gap:9px; align-items:flex-start; }
.sl-selecionada .grip { cursor:grab; color:#aab3c2; padding-top:2px; }
.sl-selecionada.sortable-ghost { opacity:.4; border-style:dashed; }
.sl-selecionada select { font-size:.72rem; padding:2px 6px; }
.sl-check-flag { font-size:.72rem; }

/* Agenda */
.sl-cal { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:5px; }
.sl-cal th { font-size:.7rem; text-transform:uppercase; color:#7a8699; text-align:center; }
.sl-cal td { background:#fff; border-radius:10px; height:96px; vertical-align:top; padding:6px 7px; border:1px solid #e8ecf2; }
.sl-cal td.fora { background:transparent; border:0; }
.sl-cal td.hoje { border:2px solid var(--sl-ouro); }
.sl-cal .dia { font-size:.75rem; font-weight:600; color:#5a6577; }
.sl-cal .evento { display:block; font-size:.66rem; border-radius:6px; padding:2px 6px; margin-top:3px; color:#fff; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.evento-gravacao { background: var(--sl-azul2); }
.evento-publicacao { background: #1c7a44; }

/* Diversos */
.sl-foto-mini { width:38px; height:38px; border-radius:50%; object-fit:cover; }
.sl-foto-media { width:86px; height:86px; border-radius:50%; object-fit:cover; border:3px solid var(--sl-ouro); }
.sl-vazio { text-align:center; color:#8a94a5; padding: 40px 10px; }
.sl-vazio i { font-size:2.4rem; opacity:.4; }
.cursor-pointer { cursor:pointer; }
@media (max-width: 575px) {
  .sl-content { padding: 14px; }
  .table-responsive { border-radius: 12px; }
}
