/* ElectroLink — admin.css */

:root {
  --navy-deep:  #08132b;
  --navy:       #0f2957;
  --navy-mid:   #173a70;
  --gold:       #c9a227;
  --gold-bright:#f0c24b;
  --white:      #ffffff;
  --ice:        #eef2f8;
  --gray-100:   #f6f8fc;
  --gray-200:   #e2e7f0;
  --gray-400:   #8b96ab;
  --gray-600:   #5a657c;
  --green:      #1e8f4e;
  --green-bg:   rgba(46,160,90,0.12);
  --red:        #c0392b;
  --red-bg:     rgba(192,57,43,0.10);
  --line:       rgba(255,255,255,0.10);
  --radius:     12px;
  --sidebar-w:  240px;
  --topbar-h:   60px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html, body { height:100%; }
body { font-family:'Inter',sans-serif; background:var(--ice); color:var(--navy-deep); -webkit-font-smoothing:antialiased; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { cursor:pointer; font-family:inherit; border:none; background:none; }
h1,h2,h3,h4 { font-family:'Barlow Condensed',sans-serif; font-weight:800; line-height:1.15; }
input,select,textarea { font-family:'Inter',sans-serif; }

/* ══ LOGIN ══ */
.login-screen {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:var(--navy-deep); padding:24px;
  background-image:linear-gradient(rgba(240,194,75,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(240,194,75,0.03) 1px, transparent 1px);
  background-size:40px 40px;
}
.login-card {
  background:#0f1f45; border:1px solid rgba(255,255,255,0.08);
  border-radius:18px; padding:40px 36px; width:100%; max-width:400px;
  box-shadow:0 32px 80px rgba(0,0,0,0.4);
}
.login-logo { margin-bottom:28px; display:flex; align-items:center; gap:10px; }
.login-logo img { height:34px; width:auto; }
.login-card h2 { font-size:26px; color:var(--white); margin-bottom:6px; }
.login-card > p { font-size:14px; color:var(--gray-400); margin-bottom:28px; }
.login-field { display:flex; flex-direction:column; gap:5px; margin-bottom:16px; }
.login-field label { font-size:12px; font-weight:600; color:var(--gray-400); letter-spacing:0.04em; text-transform:uppercase; }
.login-field input {
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12);
  border-radius:8px; padding:11px 14px; font-size:14px; color:var(--white);
  outline:none; transition:border-color 0.15s; width:100%;
}
.login-field input:focus { border-color:var(--gold); }
.login-field input::placeholder { color:rgba(255,255,255,0.25); }
.pw-wrap { position:relative; }
.pw-wrap input { padding-right:42px; }
.pw-toggle {
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  background:none; border:none; color:var(--gray-400); cursor:pointer; padding:2px;
}
.pw-toggle svg { width:17px; height:17px; display:block; }
.pw-toggle:hover { color:var(--white); }
.login-error {
  display:none; background:var(--red-bg); border:1px solid rgba(192,57,43,0.3);
  color:#f87171; font-size:13px; padding:10px 14px; border-radius:8px;
  margin-bottom:14px;
}
.login-error.visible { display:block; }
.btn-login {
  width:100%; padding:13px; border-radius:8px;
  background:var(--gold); color:var(--navy-deep);
  font-family:'Barlow Condensed',sans-serif; font-size:16px; font-weight:800;
  letter-spacing:0.06em; text-transform:uppercase; border:none; cursor:pointer;
  transition:background 0.15s, transform 0.15s; margin-top:4px;
}
.btn-login:hover { background:var(--gold-bright); transform:translateY(-1px); }
.btn-login:disabled { opacity:0.6; cursor:not-allowed; transform:none; }

/* ══ APP LAYOUT ══ */
.admin-app { display:flex; min-height:100vh; }

/* Overlay mobile */
.sidebar-overlay {
  display:none; position:fixed; inset:0; z-index:149;
  background:rgba(0,0,0,0.55);
}
.sidebar-overlay.open { display:block; }

/* ══ SIDEBAR ══ */
.sidebar {
  width:var(--sidebar-w); flex-shrink:0;
  background:var(--navy-deep);
  display:flex; flex-direction:column;
  height:100vh; position:sticky; top:0;
  border-right:1px solid rgba(255,255,255,0.06);
  transition:transform 0.25s ease;
  z-index:150;
}
.sidebar-logo {
  padding:18px 16px 14px;
  border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:10px; min-height:64px;
}
.sidebar-logo img { height:28px; width:auto; }
.logo-fallback { font-family:'Barlow Condensed',sans-serif; font-weight:900; font-size:19px; color:var(--white); }
.logo-fallback span { color:var(--gold-bright); }
.sidebar-close-btn {
  display:none; margin-left:auto; color:var(--gray-400);
  font-size:18px; padding:4px 6px; background:none; border:none; cursor:pointer;
}
.sidebar-close-btn:hover { color:var(--white); }

.sidebar-nav { flex:1; padding:10px 0; overflow-y:auto; }
.nav-section-label {
  font-family:'Barlow Condensed',sans-serif; font-size:10px; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--gray-400); padding:12px 16px 4px;
}
.nav-item {
  display:flex; align-items:center; gap:9px;
  padding:9px 16px; font-size:13.5px; font-weight:500;
  color:var(--gray-400); cursor:pointer;
  width:100%; text-align:left;
  border-left:3px solid transparent;
  transition:all 0.15s; border-top:none; border-right:none; border-bottom:none;
  background:none;
}
.nav-item svg { width:16px; height:16px; flex-shrink:0; opacity:0.7; }
.nav-item:hover { background:rgba(255,255,255,0.05); color:var(--white); }
.nav-item.active { background:rgba(240,194,75,0.09); color:var(--gold-bright); border-left-color:var(--gold-bright); }
.nav-item.active svg { opacity:1; }
.nav-badge {
  margin-left:auto; background:var(--gold-bright); color:var(--navy-deep);
  font-size:10px; font-weight:800; padding:2px 7px; border-radius:999px;
  font-family:'Barlow Condensed',sans-serif;
}

.sidebar-footer {
  padding:14px 16px; border-top:1px solid var(--line);
  display:flex; flex-direction:column; gap:10px;
}
.admin-user { display:flex; align-items:center; gap:10px; }
.admin-avatar {
  width:34px; height:34px; border-radius:50%;
  background:var(--gold); color:var(--navy-deep);
  font-family:'Barlow Condensed',sans-serif; font-weight:900; font-size:15px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.admin-name { font-size:13px; font-weight:700; color:var(--white); line-height:1.2; }
.admin-email { font-size:11px; color:var(--gray-400); }
.logout-btn {
  display:flex; align-items:center; gap:6px;
  font-size:12.5px; color:var(--gray-400); background:none; border:none;
  cursor:pointer; padding:0; transition:color 0.15s;
}
.logout-btn:hover { color:var(--gold-bright); }

/* ══ MAIN ══ */
.main { flex:1; display:flex; flex-direction:column; min-height:100vh; min-width:0; }

.topbar {
  background:var(--white); border-bottom:1px solid var(--gray-200);
  padding:0 20px; height:var(--topbar-h);
  display:flex; align-items:center; justify-content:space-between;
  position:sticky; top:0; z-index:10;
}
.topbar-left { display:flex; align-items:center; gap:12px; }
.topbar-title { font-family:'Barlow Condensed',sans-serif; font-size:20px; font-weight:800; color:var(--navy-deep); }
.topbar-right { display:flex; align-items:center; gap:10px; }
.admin-pill { font-size:11.5px; font-weight:600; color:var(--navy-mid); background:var(--ice); border:1px solid var(--gray-200); padding:4px 11px; border-radius:999px; white-space:nowrap; }

/* Burger do admin */
.burger-admin { display:none; flex-direction:column; gap:5px; padding:5px; cursor:pointer; }
.burger-admin span { width:20px; height:2px; background:var(--navy-deep); border-radius:2px; display:block; }

/* ══ BUTTONS ══ */
.btn-t {
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 14px; border-radius:8px; font-size:13px; font-weight:700;
  font-family:'Barlow Condensed',sans-serif; letter-spacing:0.04em; text-transform:uppercase;
  border:1px solid transparent; cursor:pointer; transition:all 0.15s; white-space:nowrap;
}
.btn-t.primary { background:var(--gold); color:var(--navy-deep); border-color:var(--gold); }
.btn-t.primary:hover { background:var(--gold-bright); }
.btn-t.ghost { background:var(--ice); color:var(--navy-deep); border-color:var(--gray-200); }
.btn-t.ghost:hover { border-color:var(--gold); color:var(--gold); }
.btn-t.danger { background:var(--red-bg); color:var(--red); border-color:rgba(192,57,43,0.25); }
.btn-t.danger:hover { background:var(--red); color:var(--white); }
.btn-t svg { width:13px; height:13px; }

/* ══ CONTENT ══ */
.content { flex:1; padding:20px; }

.panel { display:none; }
.panel.active { display:block; }

/* Stats */
.stats-row { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
.stat-card { background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius); padding:18px 20px; }
.s-label { font-size:11px; font-weight:600; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.07em; margin-bottom:8px; }
.s-value { font-family:'Barlow Condensed',sans-serif; font-size:34px; font-weight:800; color:var(--navy-deep); line-height:1; }
.s-sub { font-size:11.5px; color:var(--gray-400); margin-top:6px; display:flex; align-items:center; gap:5px; }
.dot { width:7px; height:7px; border-radius:50%; display:inline-block; flex-shrink:0; }
.dot-green { background:var(--green); }
.dot-gold  { background:var(--gold); }
.dot-gray  { background:var(--gray-400); }

/* Toolbar */
.toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius); padding:12px 16px; margin-bottom:14px; }
.toolbar-left { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.search-box { display:flex; align-items:center; gap:7px; background:var(--ice); border:1px solid var(--gray-200); border-radius:8px; padding:6px 12px; }
.search-box svg { width:14px; height:14px; color:var(--gray-400); flex-shrink:0; }
.search-box input { border:none; background:transparent; font-size:13px; color:var(--navy-deep); outline:none; width:150px; }
.search-box input::placeholder { color:var(--gray-400); }
.filter-sel { background:var(--ice); border:1px solid var(--gray-200); border-radius:8px; padding:7px 10px; font-size:13px; color:var(--navy-deep); outline:none; cursor:pointer; }

/* Table */
.table-wrap { background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius); overflow:hidden; }
.table-title { padding:14px 18px; border-bottom:1px solid var(--gray-200); display:flex; justify-content:space-between; align-items:center; }
.table-title h3 { font-size:15px; font-weight:700; }
.table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
table { width:100%; border-collapse:collapse; font-size:13px; min-width:500px; }
thead tr { background:var(--navy-deep); }
thead th { padding:10px 14px; text-align:left; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:11.5px; letter-spacing:0.07em; text-transform:uppercase; color:var(--gray-400); white-space:nowrap; }
tbody tr { border-bottom:1px solid var(--gray-200); transition:background 0.12s; }
tbody tr:last-child { border-bottom:none; }
tbody tr:hover { background:var(--gray-100); }
td { padding:11px 14px; color:var(--navy-deep); vertical-align:middle; }
td.muted { color:var(--gray-600); font-size:12.5px; }

/* Badges */
.badge { display:inline-flex; align-items:center; gap:4px; font-family:'Barlow Condensed',sans-serif; font-size:10.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; padding:3px 8px; border-radius:999px; }
.b-green { background:var(--green-bg); color:var(--green); }
.b-gold  { background:rgba(201,162,39,0.13); color:var(--gold); }
.b-gray  { background:var(--gray-200); color:var(--gray-600); }
.b-red   { background:var(--red-bg); color:var(--red); }
.b-navy  { background:rgba(15,41,87,0.1); color:var(--navy-mid); }

/* Acções */
.actions { display:flex; align-items:center; gap:5px; }
.btn-a { display:inline-flex; align-items:center; gap:3px; padding:4px 9px; border-radius:6px; font-size:11px; font-weight:700; font-family:'Barlow Condensed',sans-serif; letter-spacing:0.04em; text-transform:uppercase; border:1px solid transparent; cursor:pointer; transition:all 0.15s; background:none; white-space:nowrap; }
.btn-a svg { width:11px; height:11px; }
.btn-a.view  { color:var(--navy-mid); border-color:var(--gray-200); }
.btn-a.view:hover  { background:var(--navy-mid); color:var(--white); }
.btn-a.edit  { color:var(--gold); border-color:rgba(201,162,39,0.3); }
.btn-a.edit:hover  { background:var(--gold); color:var(--navy-deep); }
.btn-a.del   { color:var(--red); border-color:rgba(192,57,43,0.2); }
.btn-a.del:hover   { background:var(--red); color:var(--white); }
.btn-a.close-v { color:var(--gray-600); border-color:var(--gray-200); }
.btn-a.close-v:hover { background:var(--gray-200); }

/* Empty state */
.empty-state { padding:44px 20px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; }
.empty-state svg { width:34px; height:34px; color:var(--gray-400); opacity:0.4; }
.empty-state strong { font-family:'Barlow Condensed',sans-serif; font-size:17px; color:var(--gray-600); }
.empty-state p { font-size:13px; color:var(--gray-400); max-width:260px; }

/* Vaga card */
.vaga-card { background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius); padding:18px 20px; margin-bottom:12px; display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; transition:border-color 0.18s; }
.vaga-card:hover { border-color:var(--gold); }
.vaga-card h3 { font-size:18px; color:var(--navy-deep); margin-bottom:4px; }
.vaga-meta { font-size:12px; color:var(--gray-400); display:flex; gap:12px; flex-wrap:wrap; margin-top:6px; }
.vaga-meta span { display:inline-flex; align-items:center; gap:4px; }
.vaga-meta svg { width:12px; height:12px; }
.vaga-acts { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }

/* Drawer */
.drawer-overlay { position:fixed; inset:0; z-index:300; background:rgba(8,19,43,0.55); opacity:0; visibility:hidden; transition:opacity .2s, visibility .2s; display:flex; justify-content:flex-end; }
.drawer-overlay.open { opacity:1; visibility:visible; }
.drawer { width:100%; max-width:480px; background:var(--white); height:100%; overflow-y:auto; padding:24px; transform:translateX(28px); transition:transform .22s ease; }
.drawer-overlay.open .drawer { transform:translateX(0); }
.drawer-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--gray-200); }
.drawer-header h3 { font-size:20px; }
.drawer-close { background:none; border:none; font-size:20px; cursor:pointer; color:var(--gray-400); padding:4px; }
.drawer-close:hover { color:var(--navy-deep); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.form-grid .full { grid-column:1/-1; }
.field { display:flex; flex-direction:column; gap:4px; }
.field label { font-size:11.5px; font-weight:600; color:var(--gray-600); text-transform:uppercase; letter-spacing:0.04em; }
.field input,.field select,.field textarea { border:1px solid var(--gray-200); border-radius:8px; padding:8px 12px; font-size:13.5px; color:var(--navy-deep); outline:none; transition:border-color 0.15s; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--gold); }
.field textarea { resize:vertical; min-height:80px; }
.drawer-actions { display:flex; gap:10px; margin-top:18px; padding-top:14px; border-top:1px solid var(--gray-200); }

/* Detalhe candidatura */
.detail-section { margin-bottom:18px; }
.detail-section h4 { font-family:'Barlow Condensed',sans-serif; font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gray-400); border-bottom:1px solid var(--gray-200); padding-bottom:5px; margin-bottom:10px; }
.detail-row { display:flex; gap:10px; font-size:13px; margin-bottom:7px; }
.detail-row b { color:var(--navy-deep); min-width:100px; flex-shrink:0; font-weight:600; }
.detail-row span { color:var(--gray-600); }

/* ══ RESPONSIVE ══ */
@media(max-width:860px) {
  .sidebar {
    position:fixed; left:0; top:0; bottom:0;
    transform:translateX(-100%);
    height:100vh;
  }
  .sidebar.open { transform:translateX(0); }
  .sidebar-close-btn { display:flex !important; }
  .burger-admin { display:flex; }
  .stats-row { grid-template-columns:1fr 1fr; }
  .admin-app { display:block; }
  .main { min-height:100vh; }
}
@media(max-width:560px) {
  .stats-row { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .content { padding:14px; }
  .topbar { padding:0 14px; }
  .vaga-card { grid-template-columns:1fr; }
  .vaga-acts { flex-direction:row; align-items:flex-start; }
  .drawer { max-width:100%; }
  .toolbar { flex-direction:column; align-items:stretch; }
  .toolbar-left { flex-direction:column; }
  .search-box input { width:100%; }
}
