/* ============================================================
   REKAP NILAI — Main Stylesheet v3.0
   Fully Responsive: Mobile · Tablet · Desktop
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap');

/* ── VARIABLES ─────────────────────────────────────────────── */
:root {
  --sw: 260px;            /* sidebar width */
  --th: 58px;             /* topbar height */
  --clr-pri:    #f97316;
  --clr-pri-d:  #ea6e00;
  --clr-accent: #3b82f6;
  --clr-ok:     #22c55e;
  --clr-warn:   #f59e0b;
  --clr-err:    #ef4444;
  --sb-bg:      #0f172a;
  --sb-txt:     #94a3b8;
  --sb-txt-h:   #f1f5f9;
  --sb-border:  rgba(255,255,255,.07);
  --sb-active-bg: rgba(249,115,22,.14);
  --sb-active-c:  #f97316;
  --bg:         #f1f5f9;
  --surface:    #ffffff;
  --border:     #e2e8f0;
  --txt:        #0f172a;
  --txt-m:      #64748b;
  --shadow-sm:  0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:  0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:  0 10px 40px rgba(0,0,0,.13);
  --r:  12px;
  --r-s: 8px;
  --ease: .22s cubic-bezier(.4,0,.2,1);
}

/* ── RESET ──────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:14px;
  background:var(--bg);
  color:var(--txt);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
h1,h2,h3,h4,h5,h6{font-family:'Syne',sans-serif;line-height:1.3}
a{color:inherit;text-decoration:none}
img{max-width:100%}
input,select,textarea,button{font-family:inherit;font-size:inherit}

/* ── OVERLAY ────────────────────────────────────────────────── */
#sidebar-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(0,0,0,.5);
  z-index:299;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  transition:opacity var(--ease);
}
#sidebar-overlay.show{display:block}

/* ── SIDEBAR ────────────────────────────────────────────────── */
.sidebar{
  position:fixed;
  top:0;left:0;bottom:0;
  width:var(--sw);
  background:var(--sb-bg);
  z-index:300;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transition:transform var(--ease),box-shadow var(--ease);
  will-change:transform;
}

/* Brand */
.sb-brand{
  padding:18px 18px 14px;
  border-bottom:1px solid var(--sb-border);
  flex-shrink:0;
}
.sb-brand-row{display:flex;align-items:center;gap:10px}
.sb-logo{
  width:38px;height:38px;
  background:linear-gradient(135deg,var(--clr-pri),#fbbf24);
  border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;color:#fff;flex-shrink:0;
  box-shadow:0 4px 12px rgba(249,115,22,.3);
}
.sb-logo i{font-size:18px}
.sb-brand-txt h6{
  font-family:'Syne',sans-serif;font-weight:800;font-size:14px;
  color:#f1f5f9;letter-spacing:.2px;
}
.sb-brand-txt small{font-size:11px;color:var(--sb-txt)}
.sb-edisi{
  margin-top:10px;padding:8px 10px;
  background:rgba(249,115,22,.1);
  border:1px solid rgba(249,115,22,.18);
  border-radius:var(--r-s);
}
.sb-edisi .e-label{font-size:10px;color:var(--clr-pri);text-transform:uppercase;letter-spacing:.8px;font-weight:700}
.sb-edisi .e-val{font-size:12px;color:#e2e8f0;font-weight:600;margin-top:1px;word-break:break-word}

/* Nav */
.sb-scroll{
  flex:1;overflow-y:auto;padding:6px 0 12px;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent;
}
.sb-scroll::-webkit-scrollbar{width:3px}
.sb-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:3px}
.sb-section{
  font-size:10px;font-weight:700;letter-spacing:1.2px;
  color:rgba(148,163,184,.45);text-transform:uppercase;
  padding:12px 18px 4px;
}
.sb-nav{list-style:none;padding:0 8px}
.sb-nav li{margin:1px 0}
.sb-nav a{
  display:flex;align-items:center;gap:9px;
  padding:8px 11px;border-radius:7px;
  color:var(--sb-txt);font-size:13px;font-weight:500;
  transition:background var(--ease),color var(--ease);
  position:relative;
}
.sb-nav a .ni{
  width:20px;height:20px;display:flex;align-items:center;justify-content:center;
  font-size:15px;flex-shrink:0;opacity:.7;transition:opacity var(--ease);
}
.sb-nav a:hover{background:rgba(255,255,255,.06);color:var(--sb-txt-h)}
.sb-nav a:hover .ni{opacity:1}
.sb-nav a.active{
  background:var(--sb-active-bg);color:var(--sb-active-c);font-weight:600;
}
.sb-nav a.active .ni{opacity:1}
.sb-nav a.active::before{
  content:'';position:absolute;left:0;top:25%;bottom:25%;
  width:3px;background:var(--clr-pri);border-radius:0 3px 3px 0;
}

/* Footer */
.sb-footer{
  padding:12px 14px;border-top:1px solid var(--sb-border);flex-shrink:0;
}
.sb-user{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.sb-avatar{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--clr-accent),#6366f1);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:15px;
}
.sb-uname{font-size:13px;font-weight:600;color:#e2e8f0}
.sb-urole{font-size:10px;color:var(--sb-txt)}
.sb-logout{
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;padding:7px;border-radius:var(--r-s);
  border:1px solid rgba(239,68,68,.28);
  background:transparent;color:#fca5a5;
  font-size:12.5px;font-weight:500;cursor:pointer;
  transition:all var(--ease);
}
.sb-logout:hover{background:rgba(239,68,68,.12);color:#f87171}

/* ── MAIN WRAP ──────────────────────────────────────────────── */
.main-wrap{
  margin-left:var(--sw);
  min-height:100vh;
  display:flex;flex-direction:column;
  transition:margin-left var(--ease);
}

/* ── TOPBAR ─────────────────────────────────────────────────── */
.topbar{
  position:sticky;top:0;z-index:200;
  height:var(--th);
  background:var(--surface);
  border-bottom:1px solid var(--border);
  padding:0 20px;
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  box-shadow:0 1px 0 var(--border);
  flex-shrink:0;
}
.tb-left{display:flex;align-items:center;gap:12px;min-width:0}
.hamburger{
  display:none;flex-shrink:0;
  background:none;border:none;cursor:pointer;
  padding:5px;border-radius:7px;
  color:var(--txt-m);line-height:1;
  transition:all var(--ease);
}
.hamburger:hover{background:var(--bg);color:var(--txt)}
.hamburger i{font-size:22px;display:block}
.topbar-title{
  font-family:'Syne',sans-serif;font-weight:700;
  font-size:16px;color:var(--txt);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.tb-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.badge-live{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 9px;
  background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.22);
  border-radius:20px;font-size:11px;font-weight:700;color:var(--clr-ok);
  white-space:nowrap;
}
.badge-live .dot{
  width:6px;height:6px;border-radius:50%;background:var(--clr-ok);
  display:inline-block;animation:pulsedot 1.6s infinite;
}
@keyframes pulsedot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}
.tb-edisi{font-size:12px;color:var(--txt-m);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}

/* ── PAGE CONTENT ───────────────────────────────────────────── */
.page-content{flex:1;padding:22px 20px}
.fade-in{animation:fadein .32s ease both}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ── PAGE HEADER ────────────────────────────────────────────── */
.page-hdr{
  display:flex;align-items:flex-start;justify-content:space-between;
  flex-wrap:wrap;gap:12px;margin-bottom:20px;
}
.page-hdr h5{font-weight:800;font-size:18px;margin:0 0 2px}
.page-hdr p{font-size:13px;color:var(--txt-m);margin:0}
.page-hdr-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ── CARDS ──────────────────────────────────────────────────── */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.card-hdr{
  padding:13px 16px;
  border-bottom:1px solid var(--border);
  font-weight:600;font-size:13.5px;color:var(--txt);
  display:flex;align-items:center;gap:8px;
  flex-wrap:wrap;
}
.card-hdr .hdr-right{margin-left:auto}
.card-body{padding:16px}

/* Stat cards */
.stat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:12px;
  margin-bottom:20px;
}
.stat-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r);padding:16px;
  display:flex;align-items:center;gap:12px;
  box-shadow:var(--shadow-sm);
  transition:transform var(--ease),box-shadow var(--ease);
}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.stat-ico{
  width:44px;height:44px;border-radius:11px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:20px;
}
.ico-blue  {background:rgba(59,130,246,.1); color:var(--clr-accent)}
.ico-green {background:rgba(34,197,94,.1);  color:var(--clr-ok)}
.ico-orange{background:rgba(249,115,22,.1); color:var(--clr-pri)}
.ico-yellow{background:rgba(245,158,11,.12);color:var(--clr-warn)}
.ico-red   {background:rgba(239,68,68,.1);  color:var(--clr-err)}
.ico-purple{background:rgba(99,102,241,.1); color:#6366f1}
.stat-info .lbl{font-size:11.5px;color:var(--txt-m);margin-bottom:1px}
.stat-info .val{font-family:'Syne',sans-serif;font-size:24px;font-weight:800;line-height:1.1;color:var(--txt)}
.stat-info .sub{font-size:11px;color:var(--txt-m);margin-top:1px}

/* ── TABLES ─────────────────────────────────────────────────── */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl thead tr{background:var(--bg);border-bottom:2px solid var(--border)}
.tbl thead th{
  padding:9px 13px;font-weight:700;font-size:11.5px;
  text-transform:uppercase;letter-spacing:.5px;color:var(--txt-m);
  white-space:nowrap;
}
.tbl tbody tr{border-bottom:1px solid var(--border);transition:background var(--ease)}
.tbl tbody tr:last-child{border-bottom:none}
.tbl tbody tr:hover{background:#f8fafc}
.tbl td{padding:10px 13px;vertical-align:middle}
/* Rank badges */
.rb{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}
.rb-1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#78350f}
.rb-2{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#475569}
.rb-3{background:linear-gradient(135deg,#fed7aa,#fdba74);color:#9a3412}
.rb-n{background:#f1f5f9;color:var(--txt-m)}

/* Bootstrap table compat */
.table{width:100%;border-collapse:collapse;font-size:13.5px}
.table thead th,.table th{padding:9px 13px;font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--txt-m);white-space:nowrap;background:var(--bg)}
.table td{padding:10px 13px;vertical-align:middle;border-top:1px solid var(--border)}
.table-hover tbody tr:hover{background:#f8fafc}
.table-light{background:var(--bg)!important}
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-sm td,.table-sm th{padding:6px 10px}
.table-warning{background:rgba(245,158,11,.06)!important}
.table-bordered td,.table-bordered th{border:1px solid var(--border)}

/* ── FORMS ──────────────────────────────────────────────────── */
.form-label,.form-label-bs{
  display:block;font-size:12.5px;font-weight:600;color:var(--txt);margin-bottom:5px;
}
.form-hint{font-size:11px;color:var(--txt-m);margin-top:4px}
.form-control,.form-select{
  display:block;width:100%;
  padding:8px 11px;
  border:1.5px solid var(--border);
  border-radius:var(--r-s);
  font-size:14px;color:var(--txt);background:var(--surface);
  transition:border-color var(--ease),box-shadow var(--ease);
  appearance:none;-webkit-appearance:none;
}
.form-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:14px;
  padding-right:32px;
}
.form-control:focus,.form-select:focus{
  outline:none;border-color:var(--clr-pri);
  box-shadow:0 0 0 3px rgba(249,115,22,.12);
}
.form-control::placeholder{color:rgba(100,116,139,.55)}
.form-control-sm,.form-select-sm{padding:5px 8px;font-size:13px}
.form-check{display:flex;align-items:center;gap:8px;cursor:pointer}
.form-check-input{
  width:16px;height:16px;border:1.5px solid var(--border);border-radius:4px;
  cursor:pointer;accent-color:var(--clr-pri);flex-shrink:0;
}
.form-check-label{font-size:13px;cursor:pointer}
.input-group{display:flex;gap:0}
.input-group .form-control{border-radius:0;border-right:none}
.input-group .form-control:first-child{border-radius:var(--r-s) 0 0 var(--r-s)}
.input-group-text{
  padding:8px 11px;border:1.5px solid var(--border);
  border-radius:0 var(--r-s) var(--r-s) 0;
  background:var(--bg);color:var(--txt-m);font-size:13.5px;
  display:flex;align-items:center;
}
.mb-3{margin-bottom:14px}
.mb-2{margin-bottom:8px}
.row.g-2{display:flex;flex-wrap:wrap;gap:8px}
.row.g-2 .col,.row.g-2 .col-auto{flex:1;min-width:120px}
.row.g-2 .col-auto{flex:none}

/* ── BUTTONS ────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:8px 16px;border-radius:var(--r-s);
  font-size:13.5px;font-weight:600;cursor:pointer;
  border:1.5px solid transparent;line-height:1;
  transition:all var(--ease);white-space:nowrap;
  text-decoration:none;
}
.btn-sm{padding:5px 11px;font-size:12.5px}
.btn-primary{background:var(--clr-pri);color:#fff;border-color:var(--clr-pri)}
.btn-primary:hover{background:var(--clr-pri-d);border-color:var(--clr-pri-d);color:#fff}
.btn-secondary{background:var(--bg);color:var(--txt);border-color:var(--border)}
.btn-secondary:hover{background:var(--border);color:var(--txt)}
.btn-success{background:var(--clr-ok);color:#fff;border-color:var(--clr-ok)}
.btn-success:hover{background:#16a34a;color:#fff}
.btn-danger{background:var(--clr-err);color:#fff;border-color:var(--clr-err)}
.btn-danger:hover{background:#dc2626;color:#fff}
.btn-outline-secondary{background:transparent;color:var(--txt-m);border-color:var(--border)}
.btn-outline-secondary:hover{background:var(--bg);color:var(--txt)}
.btn-outline-primary{background:transparent;color:var(--clr-pri);border-color:var(--clr-pri)}
.btn-outline-primary:hover{background:var(--clr-pri);color:#fff}
.btn-outline-danger{background:transparent;color:var(--clr-err);border-color:var(--clr-err)}
.btn-outline-danger:hover{background:var(--clr-err);color:#fff}
.btn-outline-success{background:transparent;color:var(--clr-ok);border-color:var(--clr-ok)}
.btn-outline-success:hover{background:var(--clr-ok);color:#fff}
.btn-outline-info{background:transparent;color:var(--clr-accent);border-color:var(--clr-accent)}
.btn-outline-info:hover{background:var(--clr-accent);color:#fff}
.btn-outline-warning{background:transparent;color:var(--clr-warn);border-color:var(--clr-warn)}
.btn-outline-warning:hover{background:var(--clr-warn);color:#fff}
.btn-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:var(--r-s);
  border:1.5px solid var(--border);background:var(--bg);
  color:var(--txt-m);cursor:pointer;font-size:14px;
  transition:all var(--ease);padding:0;
}
.btn-icon:hover{border-color:var(--clr-pri);color:var(--clr-pri);background:rgba(249,115,22,.06)}
.btn-icon.danger:hover{border-color:var(--clr-err);color:var(--clr-err);background:rgba(239,68,68,.06)}
.d-inline{display:inline}

/* ── BADGES ─────────────────────────────────────────────────── */
.badge{
  display:inline-flex;align-items:center;
  padding:3px 8px;border-radius:20px;
  font-size:11px;font-weight:600;
}
.badge-pri   {background:rgba(249,115,22,.12);color:var(--clr-pri)}
.badge-blue  {background:rgba(59,130,246,.12); color:var(--clr-accent)}
.badge-green {background:rgba(34,197,94,.12);  color:var(--clr-ok)}
.badge-yellow{background:rgba(245,158,11,.14); color:#92400e}
.badge-red   {background:rgba(239,68,68,.12);  color:var(--clr-err)}
.badge-gray  {background:#f1f5f9;color:var(--txt-m)}
/* Bootstrap badge compat */
.bg-primary  {background:rgba(59,130,246,.12)!important;color:var(--clr-accent)!important}
.bg-secondary{background:#f1f5f9!important;color:var(--txt-m)!important}
.bg-success  {background:rgba(34,197,94,.12)!important; color:var(--clr-ok)!important}
.bg-warning  {background:rgba(245,158,11,.14)!important;color:#92400e!important}
.bg-danger   {background:rgba(239,68,68,.12)!important; color:var(--clr-err)!important}
.bg-info     {background:rgba(59,130,246,.12)!important;color:var(--clr-accent)!important}
.text-dark   {color:var(--txt)!important}

/* ── ALERTS ─────────────────────────────────────────────────── */
.alert,.alert-dismissible{
  padding:11px 14px;border-radius:var(--r-s);font-size:13.5px;
  display:flex;align-items:flex-start;gap:9px;margin-bottom:14px;
}
.alert-success  {background:rgba(34,197,94,.08); border:1px solid rgba(34,197,94,.2); color:#166534}
.alert-danger   {background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.2); color:#991b1b}
.alert-info     {background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.2);color:#1e40af}
.alert-warning  {background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2);color:#92400e}
.alert i{flex-shrink:0;margin-top:1px}
.alert-close,.btn-close{
  margin-left:auto;background:none;border:none;
  cursor:pointer;opacity:.5;font-size:16px;
  transition:opacity var(--ease);padding:0;
  display:inline-flex;align-items:center;
  color:inherit;
}
.alert-close:hover,.btn-close:hover{opacity:1}

/* ── MODAL ──────────────────────────────────────────────────── */
.modal-backdrop{
  position:fixed;inset:0;z-index:499;
  background:rgba(0,0,0,.45);
  display:flex;align-items:center;justify-content:center;padding:16px;
}
.modal-box{
  background:var(--surface);border-radius:16px;
  width:100%;max-width:520px;
  box-shadow:var(--shadow-lg);
  overflow:hidden;animation:fadein .2s ease;
  max-height:90vh;overflow-y:auto;
}
.modal-hdr{
  padding:16px 18px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
}
.modal-hdr h6{font-family:'Syne',sans-serif;font-weight:700;font-size:15px;margin:0}
.modal-body{padding:18px}
.modal-ftr{
  padding:12px 18px;border-top:1px solid var(--border);
  display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;
}
/* Bootstrap modal compat */
.modal.fade{display:none}
.modal.show,.modal.fade.show{
  position:fixed;inset:0;z-index:499;
  background:rgba(0,0,0,.45);
  display:flex!important;align-items:center;justify-content:center;padding:16px;
  overflow-y:auto;
}
.modal-dialog{width:100%;max-width:520px;margin:auto}
.modal-content{
  background:var(--surface)!important;border-radius:16px!important;
  border:1px solid var(--border)!important;box-shadow:var(--shadow-lg)!important;
  overflow:hidden;
}
.modal-header{
  padding:15px 18px!important;border-bottom:1px solid var(--border)!important;
  background:transparent!important;
}
.modal-title{font-family:'Syne',sans-serif;font-weight:700;font-size:15px}
.modal-body{padding:18px!important}
.modal-footer{padding:12px 18px!important;border-top:1px solid var(--border)!important;background:transparent!important}
.modal-footer{gap:8px;justify-content:flex-end}

/* ── LOGIN PAGE ─────────────────────────────────────────────── */
.login-page{
  min-height:100vh;
  background:linear-gradient(135deg,#0f172a 0%,#1e293b 60%,#0f172a 100%);
  display:flex;align-items:center;justify-content:center;
  padding:20px;position:relative;overflow:hidden;
}
.login-page::before{
  content:'';position:absolute;
  width:500px;height:500px;
  background:radial-gradient(circle,rgba(249,115,22,.14) 0%,transparent 65%);
  top:-80px;right:-80px;border-radius:50%;pointer-events:none;
}
.login-page::after{
  content:'';position:absolute;
  width:380px;height:380px;
  background:radial-gradient(circle,rgba(59,130,246,.09) 0%,transparent 65%);
  bottom:-80px;left:-80px;border-radius:50%;pointer-events:none;
}
.login-box{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  padding:38px 34px;width:100%;max-width:400px;
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  position:relative;z-index:1;animation:fadein .4s ease;
}
.login-logo{text-align:center;margin-bottom:26px}
.login-logo-icon{
  width:62px;height:62px;
  background:linear-gradient(135deg,var(--clr-pri),#fbbf24);
  border-radius:18px;display:inline-flex;align-items:center;justify-content:center;
  font-size:28px;color:#fff;margin-bottom:14px;
  box-shadow:0 8px 24px rgba(249,115,22,.35);
}
.login-logo h4{font-family:'Syne',sans-serif;font-weight:800;font-size:19px;color:#f1f5f9;margin-bottom:3px}
.login-logo p{font-size:13px;color:rgba(148,163,184,.8)}
.login-box .form-label{color:#e2e8f0}
.login-box .form-control{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);color:#f1f5f9}
.login-box .form-control::placeholder{color:rgba(148,163,184,.55)}
.login-box .form-control:focus{background:rgba(255,255,255,.1);border-color:var(--clr-pri)}
.login-error{
  background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.28);
  color:#fca5a5;padding:10px 13px;border-radius:var(--r-s);
  font-size:13px;margin-bottom:14px;display:flex;align-items:center;gap:8px;
}
.btn-login{
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;padding:11px;
  background:linear-gradient(135deg,var(--clr-pri),#fbbf24);
  color:#fff;border:none;border-radius:var(--r-s);
  font-size:15px;font-weight:700;cursor:pointer;
  transition:all var(--ease);margin-top:6px;
  font-family:'Syne',sans-serif;letter-spacing:.2px;
}
.btn-login:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(249,115,22,.35)}
.btn-login-blue{
  background:linear-gradient(135deg,#3b82f6,#6366f1);
}
.btn-login-blue:hover{box-shadow:0 6px 20px rgba(59,130,246,.35)}

/* ── PELATIH PAGES ──────────────────────────────────────────── */
body.pelatih-page{min-height:100vh;background:var(--bg)}
.pelatih-nav{
  position:sticky;top:0;z-index:200;
  background:var(--sb-bg);height:56px;
  padding:0 18px;
  display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 2px 12px rgba(0,0,0,.2);
}
.p-brand{display:flex;align-items:center;gap:9px;text-decoration:none}
.p-brand .ico{
  width:32px;height:32px;
  background:linear-gradient(135deg,var(--clr-pri),#fbbf24);
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:15px;color:#fff;
}
.p-brand span{font-family:'Syne',sans-serif;font-weight:800;font-size:14px;color:#f1f5f9}
.p-nav-right{display:flex;align-items:center;gap:10px}
.p-school{font-size:12px;color:rgba(148,163,184,.8);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p-logout{
  display:flex;align-items:center;gap:5px;padding:5px 11px;
  border-radius:7px;border:1px solid rgba(239,68,68,.28);
  background:transparent;color:#fca5a5;font-size:12.5px;
  text-decoration:none;transition:all var(--ease);white-space:nowrap;
}
.p-logout:hover{background:rgba(239,68,68,.14);color:#f87171}
.p-content{padding:18px;max-width:840px;margin:0 auto}

/* Pelatih hero card */
.p-hero{
  background:linear-gradient(135deg,var(--sb-bg) 0%,#1e293b 100%);
  border-radius:16px;padding:22px;color:#fff;
  margin-bottom:16px;position:relative;overflow:hidden;
}
.p-hero::after{
  content:'';position:absolute;right:18px;top:50%;
  transform:translateY(-50%);
  width:80px;height:80px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M2.5.5A.5.5 0 0 1 3 0h10a.5.5 0 0 1 .5.5c0 .538-.012 1.05-.034 1.536a3 3 0 1 1-1.133 5.89c-.79 1.865-1.878 2.777-2.833 3.011v2.173l1.425.356c.194.048.377.135.537.255L13.3 15.1a.5.5 0 0 1-.3.9H3a.5.5 0 0 1-.3-.9l1.838-1.379c.16-.12.343-.207.537-.255L6.5 13.11v-2.173c-.955-.234-2.043-1.146-2.833-3.012a3 3 0 1 1-1.132-5.89A33.076 33.076 0 0 1 2.5.5zm.099 2.54a2 2 0 0 0 .72 3.935c-.333-1.05-.588-2.346-.72-3.935zm10.083 3.935a2 2 0 0 0 .72-3.935c-.133 1.59-.388 2.885-.72 3.935z'/%3E%3C/svg%3E");
  background-size:contain;background-repeat:no-repeat;
  opacity:.07;pointer-events:none;
}
.p-hero h5{font-family:'Syne',sans-serif;font-weight:800;font-size:18px;color:#f1f5f9;margin-bottom:6px}
.p-hero-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:rgba(148,163,184,.8)}
.p-hero-meta span{display:flex;align-items:center;gap:4px}
.p-rank{font-family:'Syne',sans-serif;font-size:46px;font-weight:900;line-height:1;color:var(--clr-pri)}
/* Nilai summary */
.nilai-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:9px 0;border-bottom:1px solid var(--border);font-size:14px;
}
.nilai-row:last-child{border-bottom:none}
.nilai-row.total{font-weight:700;font-size:16px;padding-top:12px;color:var(--clr-pri)}

/* Quick card */
.q-card{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:22px 16px;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r);
  text-decoration:none;color:var(--txt);
  transition:all var(--ease);box-shadow:var(--shadow-sm);text-align:center;
}
.q-card:hover{border-color:var(--clr-pri);box-shadow:var(--shadow-md);transform:translateY(-3px);color:var(--txt)}
.q-card .qi{
  width:50px;height:50px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;font-size:22px;
  transition:transform var(--ease);
}
.q-card:hover .qi{transform:scale(1.1)}
.q-card .qt{font-size:13.5px;font-weight:600}
.q-card .qs{font-size:11px;color:var(--txt-m)}

/* ── UTILITIES ──────────────────────────────────────────────── */
.text-muted   {color:var(--txt-m)!important}
.text-primary {color:var(--clr-pri)!important}
.text-success {color:var(--clr-ok)!important}
.text-danger  {color:var(--clr-err)!important}
.text-warning {color:var(--clr-warn)!important}
.text-info    {color:var(--clr-accent)!important}
.text-center  {text-align:center!important}
.text-end     {text-align:right!important}
.text-start   {text-align:left!important}
.fw-bold      {font-weight:700!important}
.fw-semibold  {font-weight:600!important}
.fw-normal    {font-weight:400!important}
.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}
.fs-4{font-size:1.5rem!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}
.small{font-size:12px!important}
.fst-italic{font-style:italic}
.font-monospace{font-family:monospace!important}
.d-flex    {display:flex!important}
.d-block   {display:block!important}
.d-inline  {display:inline!important}
.d-inline-flex{display:inline-flex!important}
.d-none    {display:none!important}
.d-grid    {display:grid!important}
.flex-column   {flex-direction:column!important}
.flex-wrap     {flex-wrap:wrap!important}
.align-items-center   {align-items:center!important}
.align-items-end      {align-items:flex-end!important}
.align-items-start    {align-items:flex-start!important}
.justify-content-between{justify-content:space-between!important}
.justify-content-center {justify-content:center!important}
.justify-content-end    {justify-content:flex-end!important}
.gap-1{gap:4px!important}.gap-2{gap:8px!important}.gap-3{gap:14px!important}
.me-1{margin-right:4px!important}.me-2{margin-right:8px!important}.ms-1{margin-left:4px!important}.ms-2{margin-left:8px!important}
.mt-2{margin-top:8px!important}.mt-3{margin-top:14px!important}.mb-0{margin-bottom:0!important}
.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}
.mb-3{margin-bottom:14px!important}.mb-4{margin-bottom:20px!important}
.p-0{padding:0!important}.py-2{padding-top:8px!important;padding-bottom:8px!important}
.py-4{padding-top:20px!important;padding-bottom:20px!important}
.py-5{padding-top:28px!important;padding-bottom:28px!important}
.px-3{padding-left:14px!important;padding-right:14px!important}
.p-3{padding:14px!important}.p-4{padding:20px!important}
.w-100{width:100%!important}
.h-100{height:100%!important}
.mw-100{max-width:100%!important}
.rounded{border-radius:var(--r-s)!important}
.border-0{border:none!important}
.border-top{border-top:1px solid var(--border)!important}
.shadow-sm{box-shadow:var(--shadow-sm)!important}
.overflow-hidden{overflow:hidden!important}
.position-relative{position:relative!important}
/* Grid helpers */
.row{display:flex;flex-wrap:wrap;margin:-5px}
.row>[class*=col-]{padding:5px}
.col   {flex:1;min-width:0}
.col-6 {width:50%}
.col-12{width:100%}
.col-auto{flex:none}
@media(min-width:576px){.col-sm-6{width:50%}.col-sm-3{width:25%}.d-sm-block{display:block!important}}
@media(min-width:768px){
  .col-md-3{width:25%}.col-md-4{width:33.33%}.col-md-5{width:41.67%}
  .col-md-6{width:50%}.col-md-7{width:58.33%}.col-md-12{width:100%}
  .d-md-block{display:block!important}
}
.g-2{gap:8px!important}.g-3{gap:14px!important}

/* ── RESPONSIVE ─────────────────────────────────────────────── */
/* ≥ 769px: sidebar always visible */
@media(min-width:769px){
  .hamburger{display:none!important}
  #sidebar-overlay{display:none!important}
  .sidebar{transform:none!important}
  .main-wrap{margin-left:var(--sw)!important}
  .tb-edisi{display:block}
  .p-school{display:block}
}

/* ≤ 768px: hamburger mode */
@media(max-width:768px){
  .sidebar{transform:translateX(-100%);box-shadow:none}
  .sidebar.open{transform:translateX(0);box-shadow:var(--shadow-lg)}
  .main-wrap{margin-left:0!important}
  .hamburger{display:flex!important}
  .tb-edisi{display:none}
  .topbar{padding:0 14px}
  .page-content{padding:14px}

  /* Tables on mobile: horizontal scroll only, no text wrapping for keys */
  .table-wrap,.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* Stat grid 2-col on mobile */
  .stat-grid{grid-template-columns:repeat(2,1fr)!important}

  /* Page header stack */
  .page-hdr{flex-direction:column;align-items:flex-start}

  /* Row stacks to 1 col on mobile */
  .row .col-6,.row .col-md-3,.row .col-md-4,.row .col-md-5,.row .col-md-6{width:50%}
  .row .col-12,.row .col-md-12{width:100%}

  /* Modal fills screen */
  .modal-dialog,.modal-box{max-width:100%!important}
}

@media(max-width:480px){
  /* 1 col stat grid on very small */
  .stat-grid{grid-template-columns:1fr!important}
  .row .col-6{width:100%}

  .topbar-title{font-size:14px}
  .page-content{padding:12px}

  /* Pelatih adjustments */
  .p-content{padding:12px}
  .p-rank{font-size:34px}

  .login-box{padding:26px 18px}
}

/* Print styles */
@media print{
  .sidebar,.topbar,.hamburger,#sidebar-overlay,.no-print,.btn,.btn-icon{display:none!important}
  .main-wrap{margin-left:0!important}
  .page-content{padding:0}
  .card{box-shadow:none!important;border:1px solid #ddd!important}
}

/* ── NATIVE ACCORDION ────────────────────────────────────────── */
.accordion-item{border:1px solid var(--border);border-radius:var(--r-s);margin-bottom:8px;overflow:hidden}
.accordion-header{margin:0}
.accordion-button{
  width:100%;background:var(--surface);border:none;padding:12px 16px;
  cursor:pointer;display:flex;align-items:center;gap:8px;
  font-size:13.5px;font-weight:500;color:var(--txt);
  transition:background var(--ease);text-align:left;
}
.accordion-button::after{
  content:'';display:inline-block;margin-left:auto;flex-shrink:0;
  width:14px;height:14px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:contain;
  transition:transform var(--ease);
}
.accordion-button[aria-expanded="true"]::after{transform:rotate(180deg)}
.accordion-button:hover{background:var(--bg)}
.accordion-body{padding:14px 16px;border-top:1px solid var(--border)}
.accordion-flush .accordion-item{border-radius:0;margin-bottom:0;border-left:none;border-right:none;border-top:none}
.accordion-flush .accordion-item:first-child{border-top:none}

/* ── KELOLA AKSES print table ────────────────────────────────── */
@media print{
  .no-print{display:none!important}
  .main-wrap{margin-left:0!important}
  body{background:#fff!important}
}

/* ── LOGIN BODY WRAP ─────────────────────────────────────────── */
body.login-page-wrap{
  margin:0;padding:0;
  min-height:100vh;
  background:linear-gradient(135deg,#0f172a 0%,#1e293b 60%,#0f172a 100%);
}
body.login-page-wrap .login-page{
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  padding:20px;position:relative;overflow:hidden;
}
body.login-page-wrap .login-page::before{
  content:'';position:absolute;
  width:500px;height:500px;
  background:radial-gradient(circle,rgba(249,115,22,.14) 0%,transparent 65%);
  top:-80px;right:-80px;border-radius:50%;pointer-events:none;
}
body.login-page-wrap .login-page::after{
  content:'';position:absolute;
  width:380px;height:380px;
  background:radial-gradient(circle,rgba(59,130,246,.09) 0%,transparent 65%);
  bottom:-80px;left:-80px;border-radius:50%;pointer-events:none;
}

/* ── CARD-BODY compat (used in some pages) ───────────────────── */
.card-body{padding:16px}

/* ================================================================
   MISSING STYLES — ADDED SUPPLEMENT
   Classes used in PHP pages but not yet defined in main.css
   ================================================================ */

/* ── STAT CARD VARIANTS (index.php uses stat-icon, label, value) ── */
.stat-icon {
  width:44px;height:44px;border-radius:11px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:20px;
}
.stat-icon.blue,.stat-icon.ico-blue    { background:rgba(59,130,246,.1); color:var(--clr-accent); }
.stat-icon.green,.stat-icon.ico-green  { background:rgba(34,197,94,.1);  color:var(--clr-ok); }
.stat-icon.orange,.stat-icon.ico-orange{ background:rgba(249,115,22,.1); color:var(--clr-pri); }
.stat-icon.yellow,.stat-icon.ico-yellow{ background:rgba(245,158,11,.12);color:var(--clr-warn); }
.stat-icon.red,.stat-icon.ico-red      { background:rgba(239,68,68,.1);  color:var(--clr-err); }
.stat-icon.purple,.stat-icon.ico-purple{ background:rgba(99,102,241,.1); color:#6366f1; }

/* Generic .label and .value inside stat cards */
.stat-card .label,.stat-info .label{font-size:11.5px;color:var(--txt-m);margin-bottom:1px}
.stat-card .value,.stat-info .value{
  font-family:'Syne',sans-serif;font-size:24px;font-weight:800;line-height:1.1;color:var(--txt);
}
.stat-card .sub,.stat-info .sub{font-size:11px;color:var(--txt-m);margin-top:1px}

/* ── CARD HEADER & FOOTER (Bootstrap-style used in index.php) ── */
.card-header{
  padding:13px 16px;
  border-bottom:1px solid var(--border);
  font-weight:600;font-size:13.5px;color:var(--txt);
  display:flex;align-items:center;gap:8px;
  flex-wrap:wrap;background:transparent;
}
.card-footer{
  padding:11px 16px;
  border-top:1px solid var(--border);
  background:var(--bg);
  font-size:13px;color:var(--txt-m);
}

/* ── PAGE HEADER (used in rekap.php, peserta.php, etc) ── */
.page-header{
  display:flex;align-items:flex-start;justify-content:space-between;
  flex-wrap:wrap;gap:12px;margin-bottom:20px;
}
.page-header-title h5{font-weight:800;font-size:18px;margin:0 0 2px}
.page-header-title p{font-size:13px;color:var(--txt-m);margin:0}

/* ── LPBB TABLE (custom branded table) ── */
.lpbb-table{
  width:100%;border-collapse:collapse;font-size:13.5px;
}
.lpbb-table thead tr{background:var(--bg);border-bottom:2px solid var(--border)}
.lpbb-table thead th{
  padding:9px 13px;font-weight:700;font-size:11.5px;
  text-transform:uppercase;letter-spacing:.5px;color:var(--txt-m);
  white-space:nowrap;
}
.lpbb-table tbody tr{border-bottom:1px solid var(--border);transition:background var(--ease)}
.lpbb-table tbody tr:last-child{border-bottom:none}
.lpbb-table tbody tr:hover{background:#f8fafc}
.lpbb-table td{padding:10px 13px;vertical-align:middle}

/* ── RANK BADGES (index.php, rekap.php) ── */
.rank-badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;
  font-weight:800;font-size:12px;font-family:'Syne',sans-serif;
}
.rank-1,.rank-badge.rank-1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#78350f}
.rank-2,.rank-badge.rank-2{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#475569}
.rank-3,.rank-badge.rank-3{background:linear-gradient(135deg,#fed7aa,#fdba74);color:#9a3412}
.rank-other,.rank-badge.rank-other{background:#f1f5f9;color:var(--txt-m)}
/* CSS variable aliases used in some pages */
:root {
  --clr-primary: #f97316;
  --clr-warning: #f59e0b;
  --text-muted:  #64748b;
  --text-main:   #0f172a;
}

/* ── LIVE BAR (input_nilai.php) ── */
.live-bar{
  background:linear-gradient(135deg,var(--sb-bg),#1e293b);
  border-radius:var(--r);padding:14px 18px;color:#fff;margin-bottom:16px;
}
.live-bar-inner{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.live-total-val{
  font-family:'Syne',sans-serif;font-size:30px;font-weight:900;color:var(--clr-warn);
}
.live-breakdown{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.lb-item{text-align:center}
.lb-item .lb-lbl{font-size:10px;color:rgba(148,163,184,.8);text-transform:uppercase;letter-spacing:.5px}
.lb-item .lb-val{font-family:'Syne',sans-serif;font-weight:700;font-size:18px;color:#f1f5f9}

/* ── SCORE INPUT (input_nilai.php) ── */
.score-input{
  width:80px;padding:5px 4px;text-align:center;font-weight:600;
  border:1.5px solid var(--border);border-radius:var(--r-s);font-size:14px;
  transition:border-color var(--ease),box-shadow var(--ease);
  background:var(--surface);color:var(--txt);
}
.score-input:focus{outline:none;border-color:var(--clr-pri);box-shadow:0 0 0 3px rgba(249,115,22,.12)}

/* ── PENALTI INPUT ── */
.penalti-input{
  width:70px;padding:5px 4px;text-align:center;font-weight:700;
  border:1.5px solid var(--border);border-radius:var(--r-s);font-size:14px;
  background:var(--surface);color:var(--clr-err);
  transition:border-color var(--ease);
}
.penalti-input:focus{outline:none;border-color:var(--clr-err);box-shadow:0 0 0 3px rgba(239,68,68,.12)}

/* ── NAV PESERTA (input_nilai.php) ── */
.nav-peserta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ── NILAI SUMMARY ROW ── */
.nilai-summary-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--border);font-size:13.5px;
}
.nilai-summary-row:last-child{border-bottom:none}
.nilai-summary-row.total{font-weight:700;font-size:15px;padding-top:10px;color:var(--clr-pri)}

/* ── META / META-ITEM (detail_peserta, pelatih pages) ── */
.meta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:14px}
.meta-item{font-size:13px;color:var(--txt-m);display:flex;align-items:center;gap:5px}
.meta-item strong{color:var(--txt);font-weight:600}

/* ── PRINT HEADER & META ── */
.print-hdr{
  text-align:center;margin-bottom:18px;padding-bottom:12px;
  border-bottom:2px solid #000;
}
.print-hdr h4{font-size:18px;font-weight:800;margin-bottom:4px}
.print-hdr p{font-size:12px;margin:0}
.print-meta{display:flex;justify-content:space-between;font-size:12px;margin-bottom:12px}

/* ── FOOTER NOTE ── */
.footer-note{
  text-align:center;font-size:11.5px;color:var(--txt-m);
  padding-top:14px;margin-top:14px;border-top:1px solid var(--border);
}

/* ── FONT WEIGHT SHORTHANDS ── */
.fw6{font-weight:600!important}
.fw7{font-weight:700!important}

/* ── MS-AUTO ── */
.ms-auto{margin-left:auto!important}

/* ── PX SPACING ── */
.px-1{padding-left:4px!important;padding-right:4px!important}
.px-2{padding-left:8px!important;padding-right:8px!important}
.py-0{padding-top:0!important;padding-bottom:0!important}
.py-1{padding-top:4px!important;padding-bottom:4px!important}

/* ── TOGGLE ON/OFF (kelola_akses, materi pages) ── */
.on{
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;
  background:rgba(34,197,94,.12);color:var(--clr-ok);
}
.off{
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;
  background:#f1f5f9;color:var(--txt-m);
}

/* ── QUICK CARD (pelatih/dashboard) ── */
.quick-card{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:22px 16px;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r);
  text-decoration:none;color:var(--txt);
  transition:all var(--ease);box-shadow:var(--shadow-sm);text-align:center;
}
.quick-card:hover{
  border-color:var(--clr-pri);box-shadow:var(--shadow-md);
  transform:translateY(-3px);color:var(--txt);
}
.quick-card-icon{
  width:50px;height:50px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;font-size:22px;
  transition:transform var(--ease);
}
.quick-card:hover .quick-card-icon{transform:scale(1.1)}

/* ── PELATIH PAGES (alternative class names used) ── */
.pelatih-page{min-height:100vh;background:var(--bg)}
.pelatih-navbar{
  position:sticky;top:0;z-index:200;
  background:var(--sb-bg);height:56px;padding:0 18px;
  display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 2px 12px rgba(0,0,0,.2);
}
.pelatih-navbar-brand{display:flex;align-items:center;gap:9px;text-decoration:none}
.pelatih-navbar-brand .ico{
  width:32px;height:32px;
  background:linear-gradient(135deg,var(--clr-pri),#fbbf24);
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:15px;color:#fff;
}
.pelatih-navbar-brand span{font-family:'Syne',sans-serif;font-weight:800;font-size:14px;color:#f1f5f9}
.pelatih-navbar-right{display:flex;align-items:center;gap:10px}
.pelatih-school-name{font-size:12px;color:rgba(148,163,184,.8);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pelatih-logout{
  display:flex;align-items:center;gap:5px;padding:5px 11px;
  border-radius:7px;border:1px solid rgba(239,68,68,.28);
  background:transparent;color:#fca5a5;font-size:12.5px;
  text-decoration:none;transition:all var(--ease);white-space:nowrap;
}
.pelatih-logout:hover{background:rgba(239,68,68,.14);color:#f87171}
.pelatih-content{padding:18px;max-width:840px;margin:0 auto}
.pelatih-hero{
  background:linear-gradient(135deg,var(--sb-bg) 0%,#1e293b 100%);
  border-radius:16px;padding:22px;color:#fff;
  margin-bottom:16px;position:relative;overflow:hidden;
}
.pelatih-hero h5{font-family:'Syne',sans-serif;font-weight:800;font-size:18px;color:#f1f5f9;margin-bottom:6px}

/* ── DASH GRID RESPONSIVE ── */
.dash-grid{display:grid;grid-template-columns:1fr 2fr;gap:18px;margin-bottom:24px}
@media(max-width:640px){.dash-grid{grid-template-columns:1fr!important}}

/* ── TABLE: table-secondary ── */
.table-secondary{background:rgba(100,116,139,.06)!important}

/* ── NO PRINT BTN ── */
.no-print-btn{display:inline-flex}
@media print{.no-print-btn{display:none!important}}

/* ── FORM TEXT (Bootstrap alias) ── */
.form-text{font-size:11px;color:var(--txt-m);margin-top:4px;display:block}

/* ── TEXT-UPPERCASE ── */
.text-uppercase{text-transform:uppercase!important}

/* ── G-3 row gap util ── */
.row.g-3{gap:14px}

/* ── BADGE YELLOW (used for UTAMA) ── */
.badge-yellow{background:rgba(245,158,11,.14);color:#92400e}

/* ── SAVE INDICATOR ── */
.save-ind{font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:5px}

/* ── RESPONSIVE: live bar on mobile ── */
@media(max-width:600px){
  .score-input{width:60px;font-size:13px}
  .live-total-val{font-size:24px}
  .lb-item .lb-val{font-size:15px}
  .pelatih-content{padding:12px}
}
