/* =================================================================
   Bravador — painel administrativo
   ================================================================= */
:root {
  --navy:  #0d2b3e;
  --navy2: #123a52;
  --teal:  #1f6f78;
  --ipe:   #a5702e;
  --ipe-d: #7a4c22;
  --brass: #c9a24b;
  --bg:    #eef2f4;
  --panel: #ffffff;
  --ink:   #23303a;
  --soft:  #6b7880;
  --line:  #e2e8ec;
  --radius: 12px;
  --shadow: 0 6px 24px rgba(13,43,62,.08);
  --font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body.admin, body.admin-login { margin: 0; font-family: var(--font); background: var(--bg); color: var(--ink); font-size: 15px; line-height: 1.55; }
a { color: var(--teal); text-decoration: none; }
a:hover { color: var(--ipe); }
h1,h2,h3,h4 { margin: 0 0 .6rem; color: var(--navy); }
img { max-width: 100%; display: block; }

/* ---------- Botões ---------- */
.btn { display:inline-flex; align-items:center; gap:.4rem; font: inherit; font-weight:600; padding:.6rem 1.15rem; border-radius:9px; border:1.5px solid transparent; cursor:pointer; transition:.16s; font-size:.9rem; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--ipe); color:#fff; }
.btn-primary:hover { background: var(--ipe-d); color:#fff; }
.btn-outline { background:#fff; border-color: var(--line); color: var(--navy); }
.btn-outline:hover { border-color: var(--ipe); color: var(--ipe); }
.btn-sm { padding:.4rem .8rem; font-size:.82rem; }
.danger-btn, .btn.danger-btn { color:#b23b3b; border-color:#eecaca; }
.danger-btn:hover { background:#fbeaea; color:#a12a2a; }

/* ---------- Alertas ---------- */
.alert { padding:.8rem 1.1rem; border-radius:9px; margin-bottom:1rem; font-size:.9rem; border:1px solid; }
.alert-success { background:#e7f4ec; border-color:#b6ddc4; color:#1e6b3e; }
.alert-error   { background:#fbeaea; border-color:#eebcbc; color:#a12a2a; }
.alert-info    { background:#e9f1f6; border-color:#bcd4e2; color:#245a78; }

/* ---------- Login ---------- */
.admin-login { display:grid; place-items:center; min-height:100vh; background: radial-gradient(120% 80% at 50% 0%, #16405a, #0a2233); padding: 1.5rem; }
.login-card { background:#fff; border-radius:18px; box-shadow:0 30px 70px rgba(0,0,0,.35); padding:2.4rem; width:100%; max-width:400px; }
.login-brand { text-align:center; margin-bottom:1.6rem; }
.login-brand .mark { font-size:2.4rem; }
.login-brand h1 { font-family:"Cormorant Garamond",serif; font-size:2.2rem; letter-spacing:.08em; margin:.2rem 0 0; }
.login-brand p { color: var(--soft); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; margin:0; }
.login-back { display:block; text-align:center; margin-top:1.4rem; color:var(--soft); font-size:.85rem; }

/* ---------- Campos ---------- */
.field { margin-bottom:1rem; }
.field label { display:block; font-weight:600; font-size:.85rem; margin-bottom:.35rem; color:var(--navy); }
.field input, .field textarea, .field select {
  width:100%; padding:.65rem .85rem; border:1.5px solid var(--line); border-radius:8px; font:inherit; font-size:.92rem;
  background:#fbfcfd; color:var(--ink); transition:border-color .16s, box-shadow .16s;
}
.field input:focus, .field textarea:focus, .field select:focus { outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(31,111,120,.14); background:#fff; }
.field input:disabled { background:#eef1f3; color:var(--soft); }
.field textarea { resize:vertical; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.check { display:flex; align-items:center; gap:.5rem; font-weight:500; cursor:pointer; }
.check input { width:auto; }
.muted { color: var(--soft); font-size:.86rem; }

/* ---------- Shell ---------- */
.admin-shell { display:flex; min-height:100vh; }
.admin-sidebar {
  width:250px; background: linear-gradient(180deg, var(--navy), #0a2233); color:#fff; flex-shrink:0;
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh;
}
.admin-brand { display:flex; align-items:center; gap:.6rem; padding:1.3rem 1.4rem; color:#fff; border-bottom:1px solid rgba(255,255,255,.08); }
.admin-brand .mark { font-size:1.6rem; }
.admin-brand strong { display:block; font-family:"Cormorant Garamond",serif; font-size:1.4rem; letter-spacing:.06em; }
.admin-brand em { font-style:normal; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); }
.admin-menu { padding:1rem .8rem; display:flex; flex-direction:column; gap:.2rem; flex:1; }
.admin-menu a { display:flex; align-items:center; gap:.7rem; padding:.7rem .85rem; border-radius:9px; color:rgba(255,255,255,.78); font-weight:500; font-size:.92rem; }
.admin-menu a:hover { background:rgba(255,255,255,.08); color:#fff; }
.admin-menu a.is-active { background:rgba(201,162,75,.16); color:var(--brass); }
.admin-menu .ico { width:1.3rem; text-align:center; }
.admin-menu .pill { margin-left:auto; background:var(--ipe); color:#fff; font-size:.72rem; font-weight:700; padding:.05rem .45rem; border-radius:100px; }
.admin-sidebar-foot { padding:1rem; border-top:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; gap:.3rem; }
.admin-sidebar-foot a { color:rgba(255,255,255,.6); font-size:.85rem; padding:.35rem 0; }
.admin-sidebar-foot a:hover { color:#fff; }

.admin-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.admin-topbar { display:flex; align-items:center; gap:1rem; padding:1rem 1.6rem; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.admin-topbar h1 { margin:0; font-size:1.3rem; font-family:var(--font); }
.admin-user { margin-left:auto; color:var(--soft); font-size:.9rem; }
.admin-burger { display:none; background:none; border:0; font-size:1.4rem; cursor:pointer; color:var(--navy); }
.admin-content { padding:1.6rem; max-width:1200px; width:100%; }

/* ---------- Cards de estatística ---------- */
.stat-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px,1fr)); gap:1rem; margin-bottom:1.4rem; }
.stat-card { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:1.1rem 1.2rem; box-shadow:var(--shadow); display:flex; align-items:center; gap:.9rem; }
.stat-card .sc-ico { width:46px; height:46px; border-radius:11px; display:grid; place-items:center; font-size:1.3rem; }
.stat-card b { display:block; font-size:1.5rem; color:var(--navy); line-height:1; }
.stat-card span { font-size:.8rem; color:var(--soft); }

/* ---------- Barra de ações ---------- */
.admin-actions-bar { display:flex; align-items:center; gap:.7rem; margin-bottom:1.3rem; flex-wrap:wrap; }
.admin-actions-bar .tabs { margin-left:auto; display:flex; gap:.3rem; background:#fff; padding:.25rem; border-radius:10px; border:1px solid var(--line); }
.admin-actions-bar .tabs a { padding:.4rem .9rem; border-radius:7px; color:var(--soft); font-weight:600; font-size:.85rem; }
.admin-actions-bar .tabs a.is-active { background:var(--navy); color:#fff; }

/* ---------- Painéis ---------- */
.admin-panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem 1.4rem; box-shadow:var(--shadow); margin-bottom:1.3rem; }
.panel-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.panel-head h2 { margin:0; font-size:1.15rem; }
.panel-head a { font-size:.85rem; font-weight:600; }
.admin-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem; align-items:start; }

/* ---------- Tabelas ---------- */
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th { text-align:left; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase; color:var(--soft); padding:.5rem .6rem; border-bottom:2px solid var(--line); }
.admin-table td { padding:.75rem .6rem; border-bottom:1px solid var(--line); vertical-align:middle; }
.admin-table tr:last-child td { border-bottom:0; }
.admin-table a strong { color:var(--navy); }
.admin-table a:hover strong { color:var(--ipe); }
.tag-star { color:var(--brass); margin-left:.3rem; }

.status { display:inline-block; font-size:.74rem; font-weight:700; padding:.22rem .6rem; border-radius:100px; }
.status-published { background:#e2f2e8; color:#1e7a43; }
.status-draft { background:#f3ecda; color:#8a6d1e; }

.row-actions { display:flex; gap:.15rem; justify-content:flex-end; align-items:center; }
.row-actions .ra { background:none; border:0; cursor:pointer; font-size:1rem; padding:.3rem; border-radius:6px; line-height:1; }
.row-actions .ra:hover { background:var(--bg); }
.row-actions .ra-danger:hover { background:#fbeaea; }

/* ---------- Mensagens (dashboard mini + página) ---------- */
.msg-list { list-style:none; margin:0; padding:0; }
.msg-list li { border-bottom:1px solid var(--line); }
.msg-list li:last-child { border-bottom:0; }
.msg-list a { display:flex; gap:.6rem; align-items:baseline; padding:.7rem .2rem; color:var(--ink); flex-wrap:wrap; }
.msg-list a:hover { color:var(--ipe); }
.msg-list em { margin-left:auto; font-style:normal; color:var(--soft); font-size:.8rem; }
.msg-list .is-unread, .msg-list li.is-unread a strong { font-weight:700; }
.msg-list li.is-unread { position:relative; }
.msg-list li.is-unread::before { content:""; position:absolute; left:-.5rem; top:1rem; width:7px; height:7px; border-radius:50%; background:var(--ipe); }

.msg-cards { display:grid; gap:1rem; }
.msg-card { background:#fff; border:1px solid var(--line); border-left:4px solid var(--line); border-radius:var(--radius); padding:1.2rem 1.4rem; box-shadow:var(--shadow); }
.msg-card.is-unread { border-left-color:var(--ipe); }
.msg-card-head { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; }
.msg-card-head strong { color:var(--navy); }
.msg-card-head a { margin-left:.5rem; }
.msg-subject { font-weight:600; margin:.5rem 0 .3rem; color:var(--navy2); }
.msg-body { color:var(--ink); margin:.4rem 0 1rem; }
.msg-card-actions { display:flex; gap:.5rem; flex-wrap:wrap; }
.msg-card-actions form { margin:0; }

/* ---------- Editor de post ---------- */
.editor-grid { display:grid; grid-template-columns:1fr 320px; gap:1.3rem; align-items:start; }
.editor-side .admin-panel h3 { font-size:1rem; margin-bottom:.9rem; }
.editor-toolbar { display:flex; flex-wrap:wrap; gap:.3rem; margin-bottom:.5rem; }
.editor-toolbar button { background:#fff; border:1px solid var(--line); border-radius:7px; padding:.35rem .6rem; font-size:.8rem; cursor:pointer; color:var(--navy); font-weight:600; }
.editor-toolbar button:hover { border-color:var(--ipe); color:var(--ipe); }
.cover-preview { border-radius:9px; margin-bottom:.6rem; border:1px solid var(--line); }

/* ---------- Mídias no editor ---------- */
.media-add-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1.4rem; }
.media-add-box { background:#f8fafb; border:1px dashed var(--line); border-radius:10px; padding:1rem 1.1rem; }
.media-add-box h4 { margin:0 0 .6rem; font-size:.92rem; }
.media-add-box input[type=file], .media-add-box input[type=url], .media-add-box input[type=text] { width:100%; padding:.5rem .65rem; border:1.5px solid var(--line); border-radius:7px; font:inherit; font-size:.86rem; background:#fff; }
.media-manage-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px,1fr)); gap:1rem; }
.media-manage-item { border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#fff; }
.media-manage-item.is-cover { border-color:var(--brass); box-shadow:0 0 0 2px rgba(201,162,75,.3); }
.mm-thumb { position:relative; aspect-ratio:4/3; background:#0d2b3e; }
.mm-thumb img { width:100%; height:100%; object-fit:cover; }
.mm-videoph { display:grid; place-items:center; height:100%; color:rgba(255,255,255,.7); font-size:.9rem; }
.mm-kind { position:absolute; top:6px; left:6px; background:rgba(13,43,62,.8); color:#fff; font-size:.68rem; padding:.15rem .45rem; border-radius:5px; }
.mm-cover-flag { position:absolute; top:6px; right:6px; background:var(--brass); color:#3a2a08; font-size:.68rem; font-weight:700; padding:.15rem .45rem; border-radius:5px; }
.mm-caption { padding:.5rem; }
.mm-caption input { width:100%; border:1px solid var(--line); border-radius:6px; padding:.35rem .5rem; font:inherit; font-size:.8rem; }
.mm-actions { display:flex; justify-content:space-between; padding:0 .5rem .5rem; }
.mm-actions form { margin:0; }
.mm-actions button { background:none; border:1px solid var(--line); border-radius:6px; padding:.3rem .5rem; font-size:.78rem; cursor:pointer; color:var(--navy); }
.mm-actions button:hover { border-color:var(--ipe); }
.mm-actions button.danger:hover { border-color:#e0a0a0; background:#fbeaea; }

/* ---------- Timeline admin ---------- */
.tl-admin { list-style:none; margin:0; padding:0; }
.tl-admin li { display:flex; align-items:flex-start; gap:.8rem; padding:.8rem .2rem; border-bottom:1px solid var(--line); }
.tl-admin li:last-child { border-bottom:0; }
.tl-admin .tl-ico { font-size:1.4rem; width:2rem; text-align:center; flex-shrink:0; }
.tl-admin li > div:nth-child(2) { flex:1; }
.tl-admin-actions { display:flex; gap:.3rem; align-items:center; }
.tl-admin-actions form { margin:0; }
.tl-admin-actions a, .tl-admin-actions button { background:none; border:0; cursor:pointer; font-size:1rem; padding:.3rem; }
.tl-admin-actions .danger:hover { color:#b23b3b; }

/* ---------- Estado vazio ---------- */
.empty-state { text-align:center; padding:2.5rem 1rem; color:var(--soft); }
.empty-state .ico { font-size:2.6rem; margin-bottom:.4rem; }

/* ---------- Responsivo ---------- */
@media (max-width: 980px) {
  .admin-grid-2, .editor-grid, .media-add-row { grid-template-columns:1fr; }
}
@media (max-width: 760px) {
  .admin-sidebar { position:fixed; left:0; top:0; z-index:60; transform:translateX(-100%); transition:transform .3s; box-shadow:0 0 40px rgba(0,0,0,.4); }
  .admin-sidebar.open { transform:translateX(0); }
  .admin-burger { display:block; }
  .field-row { grid-template-columns:1fr; }
}
