/* ============================================================
   Painel Admin — reaproveita as variáveis de cor de ../css/style.css
   ============================================================ */

.admin-checking{
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  font-family:Arial,sans-serif; color:var(--sub);
}

.admin-shell{display:grid; grid-template-columns:260px 1fr; min-height:100vh;}

.admin-side{
  background:var(--sidebar-bg); color:var(--sidebar-ink); position:fixed; top:0; left:0; bottom:0; width:260px;
  display:flex; flex-direction:column; z-index:50; border-right:1px solid rgba(255,255,255,.06);
}
.admin-side .side-head{padding:22px 20px 14px; border-bottom:1px solid rgba(255,255,255,.08);}
.admin-side .logo{font-size:18px; letter-spacing:2px; color:var(--gold-line); font-weight:700; font-family:Arial,sans-serif;}
.admin-side .logo-sub{font-size:10.5px; letter-spacing:1px; color:var(--sidebar-sub); text-transform:uppercase; margin-top:4px; font-family:Arial,sans-serif;}

.admin-nav{flex:1; padding:16px 12px; display:flex; flex-direction:column; gap:4px;}
.admin-nav-btn{
  text-align:left; padding:11px 14px; border-radius:8px; border:none; background:transparent;
  color:var(--sidebar-sub); font-family:Arial,sans-serif; font-size:13px; cursor:pointer; transition:all .15s;
}
.admin-nav-btn:hover{background:rgba(255,255,255,.06); color:#fff;}
.admin-nav-btn.active{background:rgba(255,255,255,.09); color:#fff; border-left:3px solid var(--gold-line);}

.admin-side .side-foot{padding:14px 18px 18px; border-top:1px solid rgba(255,255,255,.08); font-family:Arial,sans-serif;}
.admin-side .user-chip{display:flex; align-items:center; gap:8px; margin-bottom:12px; font-size:11.5px; color:var(--sidebar-sub); flex-wrap:wrap;}
.admin-side .role-badge{font-size:9.5px; text-transform:uppercase; letter-spacing:.4px; font-weight:700; padding:2px 8px; border-radius:10px; background:var(--gold-line); color:#1a1204;}
.admin-side .admin-link, .admin-side .logout-btn{
  width:100%; padding:9px; border-radius:8px; border:1px solid rgba(255,255,255,.15); background:transparent;
  color:#fff; font-family:Arial,sans-serif; font-size:12px; cursor:pointer; text-align:center; text-decoration:none;
  display:block; margin-bottom:8px;
}
.admin-side .admin-link:hover, .admin-side .logout-btn:hover{background:rgba(255,255,255,.08);}

.admin-main{grid-column:2; padding:40px clamp(24px, 4vw, 64px); max-width:none; width:100%; box-sizing:border-box;}
.admin-card{max-width:1100px;}
.admin-main h1{font-size:24px; color:var(--navy); margin:0 0 6px; font-family:Georgia,serif;}
.admin-sub{color:var(--sub); font-family:Arial,sans-serif; font-size:13.5px; line-height:1.6; margin:0 0 24px;}

.admin-card{
  background:var(--paper); border:1.5px solid rgba(120,110,80,.25); border-radius:14px; padding:28px;
  font-family:Arial,sans-serif;
}
.admin-empty-card{color:var(--sub); font-style:italic; font-size:13.5px;}

.form-row{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:16px;}
.form-group{margin-bottom:18px;}
.form-group label{display:block; font-size:12px; color:var(--sub); text-transform:uppercase; letter-spacing:.4px; margin-bottom:6px; font-weight:700;}
.admin-hint{margin:6px 0 0; font-size:12px; color:var(--sub); font-style:italic; line-height:1.5;}
.form-group input, .form-group select, .form-group textarea{
  width:100%; padding:10px 12px; border-radius:8px; border:1.5px solid #d8d2c0; font-family:Arial,sans-serif;
  font-size:13.5px; background:#fff; color:var(--ink);
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus{outline:none; border-color:var(--gold-line);}
.form-group textarea{font-family:'Courier New',monospace; font-size:11.5px; resize:vertical;}

.admin-btn-primary{
  padding:12px 26px; border-radius:8px; border:none; background:var(--gold-line); color:#1a1204;
  font-family:Arial,sans-serif; font-weight:700; font-size:13.5px; cursor:pointer; transition:transform .15s;
}
.admin-btn-primary:hover{transform:translateY(-1px);}
.admin-btn-primary:disabled{opacity:.6; cursor:default; transform:none;}

.admin-msg{
  border-radius:8px; padding:10px 14px; font-size:12.5px; margin-bottom:18px;
}
.admin-msg.ok{background:var(--green-light); border:1px solid var(--green); color:var(--green);}
.admin-msg.err{background:var(--wine-light); border:1px solid var(--wine); color:var(--wine);}

.repeat-row{display:grid; grid-template-columns:1fr 1fr auto; gap:10px; align-items:center; margin-bottom:10px;}
.repeat-row input[type=file]{padding:7px 8px; font-size:12px;}
.repeat-row .existing-note{grid-column:1/3; font-size:11px; color:var(--sub); margin-top:-4px;}
.remove-row-btn{
  width:34px; height:34px; border-radius:8px; border:1px solid rgba(122,41,66,.4); background:var(--wine-light);
  color:var(--wine); cursor:pointer; font-size:14px; line-height:1;
}
.remove-row-btn:hover{background:var(--wine); color:#fff;}
.admin-btn-secondary{
  padding:8px 16px; border-radius:8px; border:1.5px dashed var(--gold-line); background:transparent; color:#8a6a10;
  font-family:Arial,sans-serif; font-weight:700; font-size:12px; cursor:pointer;
}
.admin-btn-secondary:hover{background:var(--gold-light);}

.student-row{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:14px 16px; border:1.5px solid rgba(120,110,80,.25); border-radius:10px; background:var(--paper);
  margin-bottom:10px;
}
.student-row .student-info{min-width:180px;}
.student-row .student-name{font-weight:700; color:var(--ink); font-size:13.5px;}
.student-row .student-email{color:var(--sub); font-size:12px;}
.student-badge{
  display:inline-block; margin-left:8px; font-size:9.5px; text-transform:uppercase; letter-spacing:.4px;
  font-weight:700; padding:2px 8px; border-radius:10px; background:var(--wine); color:#fff; vertical-align:middle;
}
.student-actions{display:flex; gap:8px; flex-wrap:wrap;}
.student-actions button{
  padding:7px 12px; border-radius:7px; border:1px solid rgba(120,110,80,.3); background:transparent;
  color:var(--ink); font-family:Arial,sans-serif; font-size:11.5px; cursor:pointer; transition:all .15s;
}
.student-actions button:hover{background:var(--gold-light); border-color:var(--gold-line);}
.student-actions button.danger{border-color:rgba(122,41,66,.4); color:var(--wine);}
.student-actions button.danger:hover{background:var(--wine-light);}
.student-actions button.warn{border-color:rgba(122,41,66,.4); color:var(--wine);}
.student-actions button.warn.is-blocked{background:var(--wine); color:#fff;}
.student-actions button.moreh-toggle-btn{border-color:rgba(184,134,11,.4); color:var(--gold);}
.student-actions button.moreh-toggle-btn.is-active{background:var(--gold); color:#fff; border-color:var(--gold);}
.student-actions button.game-toggle-btn{border-color:rgba(122,41,66,.4); color:var(--wine);}
.student-actions button.game-toggle-btn.is-active{background:var(--wine); color:#fff; border-color:var(--wine);}

.sub-status-badge{
  display:inline-block; margin-left:8px; font-size:9.5px; text-transform:uppercase; letter-spacing:.4px;
  font-weight:700; padding:2px 8px; border-radius:10px; background:#8a6a10; color:#fff; vertical-align:middle;
}
.sub-status-badge.is-active{background:#2e7d32;}
.sub-status-badge.is-expired,
.sub-status-badge.is-cancelled{background:var(--wine);}
.sub-status-badge.is-pending{background:#8a6a10;}
.student-row .student-sub-dates{color:var(--sub); font-size:11.5px; margin-top:2px;}

@media(max-width:880px){
  .admin-shell{display:block;}
  .admin-side{position:static; width:100%; height:auto;}
  .admin-main{padding:24px 20px;}
  .form-row{grid-template-columns:1fr;}
  .repeat-row{grid-template-columns:1fr;}
}
