*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#f4f6f9;color:#1f2937}.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#111827,#b91c1c)}.login-card{width:100%;max-width:420px;background:#fff;border-radius:18px;padding:30px;box-shadow:0 20px 50px rgba(0,0,0,.25)}.brand{display:flex;gap:14px;align-items:center;margin-bottom:24px}.brand-mark{width:52px;height:52px;border-radius:14px;background:#dc2626;color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800}.brand h1{font-size:22px;margin:0}.brand p{margin:4px 0 0;color:#6b7280}label{display:block;margin-top:14px;margin-bottom:6px;font-weight:700}input{width:100%;padding:13px 14px;border:1px solid #d1d5db;border-radius:10px}button{width:100%;margin-top:20px;background:#dc2626;color:#fff;border:0;border-radius:10px;padding:13px 16px;font-weight:800;cursor:pointer}.alert{background:#fee2e2;color:#991b1b;padding:12px;border-radius:10px;margin-bottom:12px}.layout{display:flex;min-height:100vh}.sidebar{width:260px;background:#111827;color:#fff;padding:20px;display:flex;flex-direction:column;gap:8px}.logo{font-weight:900;font-size:22px;margin-bottom:24px;color:#fff}.sidebar a{color:#d1d5db;text-decoration:none;padding:12px 14px;border-radius:10px}.sidebar a.active,.sidebar a:hover{background:#dc2626;color:#fff}.main{flex:1;padding:24px}.topbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:16px;padding:18px 22px;margin-bottom:22px;box-shadow:0 4px 16px rgba(0,0,0,.06)}.topbar h1{margin:0;font-size:24px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}.card,.panel{background:#fff;border-radius:16px;padding:22px;box-shadow:0 4px 16px rgba(0,0,0,.06)}.card span{display:block;color:#6b7280;margin-bottom:10px}.card strong{font-size:34px;color:#111827}.panel h2{margin-top:0}@media(max-width:900px){.layout{display:block}.sidebar{width:100%;}.cards{grid-template-columns:1fr 1fr}}@media(max-width:600px){.cards{grid-template-columns:1fr}.topbar{display:block}}
.btn{display:inline-block;background:#dc2626;color:#fff!important;text-decoration:none;border-radius:10px;padding:10px 14px;font-weight:800;margin-right:8px}.btn.secondary{background:#111827}.success{background:#dcfce7;color:#166534;padding:12px;border-radius:10px;margin-bottom:12px}.form-grid{max-width:780px}.form-grid h2{margin-top:28px;border-top:1px solid #e5e7eb;padding-top:22px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #e5e7eb}th{font-size:13px;color:#6b7280;text-transform:uppercase}.table-wrap{overflow:auto}.badge{background:#f3f4f6;border-radius:999px;padding:5px 10px;font-size:12px}

select{width:100%;padding:13px 14px;border:1px solid #d1d5db;border-radius:10px;background:#fff}.login-card.wide{max-width:560px}.form-inline{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.form-inline label{margin-top:0}@media(max-width:800px){.form-inline{grid-template-columns:1fr}}

.filter-grid{display:grid;grid-template-columns:120px 1fr 1fr auto;gap:12px;align-items:end}@media(max-width:900px){.filter-grid{grid-template-columns:1fr}}

.solo{max-width:960px;margin:0 auto;padding:24px}.question-card{margin-bottom:18px}.option{display:block;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;padding:12px;margin:8px 0;font-weight:500}.option input{width:auto;margin-right:8px}.question-img{max-width:100%;border-radius:12px;border:1px solid #e5e7eb}.score-big{font-size:54px;font-weight:900;color:#dc2626;margin:10px 0}

.preview-question{border:1px solid #e5e7eb;border-radius:12px;padding:14px;margin:12px 0;background:#fafafa}.preview-question ol{margin-top:8px}

.dot{display:inline-block;width:16px;height:16px;border-radius:50%}.dot.green,.cal-dot.green{background:#16a34a}.dot.yellow{background:#eab308}.dot.red,.cal-dot.red{background:#dc2626}.cal-dot.blue{background:#2563eb}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:18px}.cal-head{font-weight:800;text-align:center;background:#111827;color:#fff;border-radius:8px;padding:10px}.cal-day{min-height:86px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:8px}.cal-day.empty{background:#f3f4f6}.cal-dot{display:inline-block;width:14px;height:14px;border-radius:50%;margin:4px 3px 0 0}@media(max-width:700px){.calendar-grid{gap:4px}.cal-day{min-height:58px;padding:5px}.cal-head{font-size:12px;padding:6px}}

.planner-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.planner-subject{border:1px solid #e5e7eb;border-radius:14px;padding:16px;background:#fafafa}.planner-subject h3{margin-top:0}.checkline{display:block;margin:8px 0;font-weight:500}.checkline input{width:auto;margin-right:8px}@media(max-width:800px){.planner-topics{grid-template-columns:1fr}}

/* Rocker-inspired polish */
.sidebar.rocker{background:linear-gradient(180deg,#111827,#1f2937);box-shadow:8px 0 24px rgba(0,0,0,.12)}
.brand-mini{display:flex;align-items:center;gap:12px;margin-bottom:22px;padding:10px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-icon{width:44px;height:44px;border-radius:12px;background:#dc2626;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:26px}
.brand-mini strong{display:block;color:#fff;font-size:18px}.brand-mini small{color:#cbd5e1}
.sidebar nav{display:flex;flex-direction:column;gap:6px}.rocker-topbar p{margin:4px 0 0;color:#6b7280}.user-pill{display:flex;gap:10px;align-items:center;background:#f3f4f6;border-radius:999px;padding:8px 14px}.user-pill span{font-size:12px;color:#6b7280}.metric-card{position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;right:-20px;bottom:-20px;width:90px;height:90px;background:rgba(220,38,38,.08);border-radius:50%}.metric-card small{display:block;color:#6b7280;margin-top:6px}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.action-card{display:block;background:#fff;border-radius:16px;padding:18px;text-decoration:none;color:#111827;font-weight:800;box-shadow:0 4px 16px rgba(0,0,0,.06);border-left:5px solid #dc2626}.action-card:hover{transform:translateY(-2px);transition:.15s}.panel{border:1px solid #eef2f7}@media(max-width:1000px){.quick-actions{grid-template-columns:1fr 1fr}.user-pill{margin-top:12px;display:inline-flex}}@media(max-width:600px){.quick-actions{grid-template-columns:1fr}}

/* Official SmartLatihan logo */
.login-logo-img{max-width:280px;width:100%;height:auto;display:block;margin:0 auto 10px}.center-brand{justify-content:center;text-align:center}.brand-logo-img{max-width:190px;width:100%;height:auto;display:block}.brand-mini:has(.brand-logo-img){justify-content:center;background:#fff;border-radius:14px;padding:12px}


/* =========================================================
   SmartLatihan V2 Premium SaaS UI Patch
   ========================================================= */
:root{
  --sl-bg:#f6f7fb;
  --sl-card:#ffffff;
  --sl-text:#0f172a;
  --sl-muted:#64748b;
  --sl-border:#e8edf5;
  --sl-red:#e11d2e;
  --sl-red-dark:#b91c1c;
  --sl-navy:#101827;
  --sl-blue:#4057c8;
  --sl-green:#16a34a;
  --sl-orange:#f59e0b;
  --sl-shadow:0 10px 30px rgba(15,23,42,.07);
  --sl-radius:18px;
}
body{background:var(--sl-bg);color:var(--sl-text);font-family:Inter,Arial,Helvetica,sans-serif}
.layout{background:var(--sl-bg)}
.sidebar,.sidebar.rocker{
  width:270px;
  background:#fff;
  color:#1e293b;
  border-right:1px solid var(--sl-border);
  box-shadow:none;
  padding:18px 16px;
  gap:0;
}
.sidebar a{
  color:#475569;
  border-radius:12px;
  padding:10px 12px;
  font-weight:650;
  display:flex;
  align-items:center;
  gap:10px;
  margin:2px 0;
}
.sidebar a:hover{background:#f1f5ff;color:var(--sl-blue)}
.sidebar a.active{
  background:linear-gradient(135deg,#eef2ff,#fff);
  color:var(--sl-blue);
  box-shadow:inset 3px 0 0 var(--sl-blue);
}
.brand-mini{
  border:0;
  padding:10px 8px 18px;
  margin-bottom:8px;
  border-bottom:1px solid var(--sl-border);
}
.brand-logo-img{
  max-width:170px;
  filter:none;
}
.brand-mini:has(.brand-logo-img){
  background:transparent;
  padding:10px 8px 18px;
  justify-content:flex-start;
}
.sidebar-section{
  margin:18px 10px 8px;
  font-size:11px;
  letter-spacing:.08em;
  font-weight:900;
  color:#94a3b8;
  text-transform:uppercase;
}
.main{
  padding:22px;
  overflow-x:hidden;
}
.topbar,.rocker-topbar{
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
  border:1px solid var(--sl-border);
  border-radius:20px;
  box-shadow:var(--sl-shadow);
  padding:16px 20px;
}
.topbar h1{font-size:24px;letter-spacing:-.02em}
.rocker-topbar p{color:var(--sl-muted)}
.user-pill{
  background:#f8fafc;
  border:1px solid var(--sl-border);
  color:var(--sl-text);
}
.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.card,.panel{
  border:1px solid var(--sl-border);
  box-shadow:var(--sl-shadow);
  border-radius:var(--sl-radius);
}
.metric-card{
  min-height:128px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.metric-card span{font-weight:750;color:var(--sl-muted)}
.metric-card strong{font-size:34px;letter-spacing:-.04em}
.metric-card small{color:#94a3b8}
.metric-card:after{
  width:96px;height:96px;right:-24px;bottom:-24px;
  background:linear-gradient(135deg,rgba(64,87,200,.12),rgba(225,29,46,.08));
}
.metric-icon{
  width:42px;height:42px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  background:#eef2ff;color:var(--sl-blue);font-size:20px;font-weight:900;
}
.metric-top{display:flex;justify-content:space-between;align-items:flex-start}
.quick-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.action-card{
  border:1px solid var(--sl-border);
  border-left:0;
  background:var(--sl-card);
  min-height:94px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
  position:relative;
  overflow:hidden;
}
.action-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--sl-blue),var(--sl-red));
}
.action-card small{color:var(--sl-muted);font-weight:600}
.action-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(15,23,42,.10)}
.dashboard-grid{
  display:grid;
  grid-template-columns:1.45fr .9fr;
  gap:18px;
  margin-bottom:22px;
}
.chart-card,.status-card{
  background:#fff;border:1px solid var(--sl-border);border-radius:var(--sl-radius);
  box-shadow:var(--sl-shadow);padding:22px;
}
.mini-bars{
  height:220px;
  display:flex;align-items:end;gap:16px;
  padding:20px 8px 8px;
  border-bottom:1px dashed #dbe3ef;
}
.mini-bar{
  flex:1;border-radius:12px 12px 4px 4px;
  background:linear-gradient(180deg,rgba(64,87,200,.85),rgba(64,87,200,.16));
  min-height:28px;
  position:relative;
}
.mini-bar span{
  position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);
  font-size:12px;color:#64748b;font-weight:700;
}
.status-list{display:flex;flex-direction:column;gap:14px}
.status-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--sl-border);padding-bottom:12px}
.status-row:last-child{border-bottom:0;padding-bottom:0}
.status-row strong{font-size:15px}
.status-row span{font-weight:900}
.badge-soft{padding:7px 10px;border-radius:999px;background:#eef2ff;color:var(--sl-blue);font-weight:800;font-size:12px}
.school-highlight{
  background:linear-gradient(135deg,#101827,#1e293b);
  color:#fff;border:0;position:relative;overflow:hidden;
}
.school-highlight:after{
  content:"";position:absolute;width:240px;height:240px;border-radius:50%;
  right:-80px;top:-90px;background:rgba(225,29,46,.25);
}
.school-highlight h2,.school-highlight p{position:relative;z-index:1}
.premium-page-title{
  display:flex;justify-content:space-between;align-items:center;
  gap:16px;margin-bottom:18px;
}
.premium-page-title h2{margin:0;font-size:22px}
.premium-page-title p{margin:4px 0 0;color:var(--sl-muted)}
input,select,textarea{
  border:1px solid #dbe3ef;
  background:#fff;
  border-radius:12px;
}
button,.btn{
  border-radius:12px;
}
.table-wrap table, table{border-collapse:collapse;width:100%}
th{color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
td,th{border-bottom:1px solid #eef2f7}
.success{background:#dcfce7;color:#166534}
.alert{background:#fee2e2;color:#991b1b}
@media(max-width:1200px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .layout{display:block}
  .sidebar,.sidebar.rocker{width:100%;min-height:auto}
  .main{padding:16px}
  .topbar{display:block}
}
@media(max-width:640px){
  .cards,.quick-actions{grid-template-columns:1fr}
}


/* =========================================================
   SmartLatihan Sidebar Light Theme v2 - like reference UI
   ========================================================= */
body .sidebar,
body .sidebar.rocker{
  background:#ffffff !important;
  color:#20263a !important;
  border-right:1px solid #edf0f6 !important;
  box-shadow:none !important;
}
body .sidebar .brand-mini,
body .sidebar.rocker .brand-mini{
  background:#ffffff !important;
  border-bottom:1px solid #edf0f6 !important;
}
body .sidebar .brand-logo-img{
  max-width:165px !important;
}
body .sidebar nav a,
body .sidebar.rocker nav a{
  color:#5d6478 !important;
  background:transparent !important;
  font-weight:650 !important;
  border-radius:12px !important;
  padding:10px 14px !important;
  margin:2px 0 !important;
  box-shadow:none !important;
}
body .sidebar nav a span,
body .sidebar.rocker nav a span{
  width:22px !important;
  display:inline-flex !important;
  justify-content:center !important;
  opacity:.9 !important;
}
body .sidebar nav a:hover,
body .sidebar.rocker nav a:hover{
  color:#4057c8 !important;
  background:#f4f6ff !important;
}
body .sidebar nav a.active,
body .sidebar.rocker nav a.active{
  color:#4057c8 !important;
  background:#eef2ff !important;
  box-shadow:inset 3px 0 0 #4057c8 !important;
}
body .sidebar .sidebar-section,
body .sidebar.rocker .sidebar-section{
  color:#9aa3b8 !important;
  font-size:11px !important;
  letter-spacing:.08em !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  margin:18px 12px 7px !important;
}

/* Ensure dashboard cards/graphs load even if old CSS was cached before */
body .dashboard-grid{
  display:grid !important;
  grid-template-columns:1.45fr .9fr !important;
  gap:18px !important;
  margin-bottom:22px !important;
}
body .chart-card,
body .status-card{
  background:#fff !important;
  border:1px solid #e8edf5 !important;
  border-radius:18px !important;
  box-shadow:0 10px 30px rgba(15,23,42,.07) !important;
  padding:22px !important;
}
body .mini-bars{
  height:220px !important;
  display:flex !important;
  align-items:end !important;
  gap:16px !important;
  padding:20px 8px 36px !important;
  border-bottom:1px dashed #dbe3ef !important;
}
body .mini-bar{
  flex:1 !important;
  border-radius:12px 12px 4px 4px !important;
  background:linear-gradient(180deg,rgba(64,87,200,.86),rgba(64,87,200,.18)) !important;
  min-height:28px !important;
  position:relative !important;
}
body .mini-bar span{
  position:absolute !important;
  bottom:-30px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  font-size:12px !important;
  color:#64748b !important;
  font-weight:700 !important;
}
@media(max-width:1200px){
  body .dashboard-grid{grid-template-columns:1fr !important}
}


/* SmartLatihan Logo V2 sharp display */
.brand-logo-img{
  width:210px !important;
  max-width:210px !important;
  height:auto !important;
  object-fit:contain !important;
  image-rendering:auto !important;
  transform:translateZ(0);
}
.login-logo-img{
  width:300px !important;
  max-width:300px !important;
  height:auto !important;
  object-fit:contain !important;
  image-rendering:auto !important;
}
.brand-mini{
  min-height:180px !important;
  align-items:center !important;
  justify-content:center !important;
}


/* =========================================================
   SmartLatihan ALL Mobile Top Dropdown Menu
   Applies to shared-layout and hardcoded sidebar pages
   ========================================================= */
.mobile-topnav{display:none}
@media(max-width:900px){
  body .layout{display:block !important}
  body .sidebar,
  body .sidebar.rocker{
    display:none !important;
  }
  body .main{
    padding:0 14px 16px !important;
    margin-left:0 !important;
    width:100% !important;
  }
  body .mobile-topnav{
    display:flex !important;
    position:sticky !important;
    top:0 !important;
    z-index:99999 !important;
    align-items:center !important;
    justify-content:space-between !important;
    background:#ffffff !important;
    border-bottom:1px solid #e8edf5 !important;
    padding:10px 12px !important;
    margin:0 -14px 14px !important;
    box-shadow:0 6px 20px rgba(15,23,42,.08) !important;
  }
  body .mobile-topnav-hardcoded{
    margin:0 !important;
  }
  body .mobile-brand{
    display:flex !important;
    align-items:center !important;
    min-height:44px !important;
  }
  body .mobile-brand img{
    width:150px !important;
    max-width:48vw !important;
    height:auto !important;
    display:block !important;
    object-fit:contain !important;
  }
  body .mobile-menu-toggle{
    width:auto !important;
    margin:0 !important;
    padding:10px 14px !important;
    border:1px solid #e8edf5 !important;
    background:#eef2ff !important;
    color:#4057c8 !important;
    border-radius:12px !important;
    font-weight:900 !important;
    cursor:pointer !important;
  }
  body .mobile-menu-panel{
    display:none !important;
    position:absolute !important;
    left:12px !important;
    right:12px !important;
    top:68px !important;
    background:#ffffff !important;
    border:1px solid #e8edf5 !important;
    border-radius:18px !important;
    box-shadow:0 20px 50px rgba(15,23,42,.18) !important;
    padding:12px !important;
    max-height:75vh !important;
    overflow:auto !important;
  }
  body.mobile-menu-open .mobile-menu-panel{
    display:block !important;
  }
  body .mobile-menu-section{
    margin:12px 10px 6px !important;
    color:#94a3b8 !important;
    font-size:11px !important;
    font-weight:900 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
  }
  body .mobile-menu-panel a{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    padding:12px 12px !important;
    border-radius:12px !important;
    text-decoration:none !important;
    color:#475569 !important;
    font-weight:750 !important;
    background:transparent !important;
  }
  body .mobile-menu-panel a span{
    width:22px !important;
    display:inline-flex !important;
    justify-content:center !important;
  }
  body .mobile-menu-panel a.active,
  body .mobile-menu-panel a:hover{
    background:#eef2ff !important;
    color:#4057c8 !important;
  }
  body .topbar{
    margin-top:0 !important;
  }
}


/* =========================================================
   SmartLatihan Mobile Logo Compact Patch
   ========================================================= */
@media(max-width:900px){
  body .mobile-topnav{
    min-height:56px !important;
    padding:7px 12px !important;
  }

  body .mobile-brand{
    min-height:38px !important;
  }

  body .mobile-brand img{
    width:100px !important;
    max-width:100px !important;
    height:auto !important;
    object-fit:contain !important;
  }

  body .mobile-menu-toggle{
    padding:8px 12px !important;
    font-size:14px !important;
  }

  body .mobile-menu-panel{
    top:58px !important;
  }
}

@media(max-width:420px){
  body .mobile-brand img{
    width:88px !important;
    max-width:88px !important;
  }
}


/* =========================================================
   SmartLatihan UNIVERSAL Mobile Logo Compact Patch
   Force all mobile logo variants to compact size
   ========================================================= */
@media(max-width:900px){
  body img[src*="smartlatihan-logo"],
  body img[src*="SmartLatihan"],
  body .brand-logo-img,
  body .login-logo-img,
  body .mobile-brand img,
  body .brand img,
  body .logo img,
  body .brand-mini img{
    width:96px !important;
    max-width:96px !important;
    height:auto !important;
    max-height:74px !important;
    object-fit:contain !important;
  }

  body .mobile-topnav{
    min-height:54px !important;
    padding:6px 12px !important;
  }

  body .mobile-brand,
  body .brand-mini,
  body .brand,
  body .logo{
    min-height:auto !important;
  }

  body .mobile-menu-toggle{
    padding:8px 12px !important;
    font-size:14px !important;
  }

  body .mobile-menu-panel{
    top:56px !important;
  }

  body .login-card .brand,
  body .login-card .center-brand{
    margin-bottom:12px !important;
  }

  body .login-card{
    padding-top:22px !important;
  }
}

@media(max-width:420px){
  body img[src*="smartlatihan-logo"],
  body img[src*="SmartLatihan"],
  body .brand-logo-img,
  body .login-logo-img,
  body .mobile-brand img,
  body .brand img,
  body .logo img,
  body .brand-mini img{
    width:82px !important;
    max-width:82px !important;
    max-height:64px !important;
  }
}


/* =========================================================
   SmartLatihan Desktop Sidebar Icons Universal
   ========================================================= */
@media(min-width:901px){
  body .sidebar nav a,
  body .sidebar a{
    display:flex !important;
    align-items:center !important;
    gap:11px !important;
  }

  body .sidebar nav a span,
  body .sidebar a span{
    width:22px !important;
    min-width:22px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    opacity:.95 !important;
  }

  body .sidebar a.active span,
  body .sidebar a:hover span{
    opacity:1 !important;
  }
}


/* =========================================================
   SmartLatihan Premium Login Page
   ========================================================= */
.smart-login-body{
  min-height:100vh !important;
  background:
    radial-gradient(circle at 15% 15%, rgba(64,87,200,.16), transparent 28%),
    radial-gradient(circle at 90% 20%, rgba(225,29,46,.12), transparent 30%),
    linear-gradient(135deg,#f7f8fc 0%,#eef2ff 48%,#ffffff 100%) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:28px !important;
}

.smart-login-shell{
  width:100%;
  max-width:1080px;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:28px;
  align-items:stretch;
}

.smart-login-hero,
.smart-login-card{
  background:rgba(255,255,255,.82);
  border:1px solid #e8edf5;
  box-shadow:0 24px 60px rgba(15,23,42,.10);
  border-radius:28px;
}

.smart-login-hero{
  padding:46px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.smart-login-hero:after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-110px;
  width:320px;
  height:320px;
  border-radius:50%;
  background:linear-gradient(135deg,rgba(64,87,200,.16),rgba(225,29,46,.12));
}

.hero-badge{
  width:max-content;
  background:#eef2ff;
  color:#4057c8;
  padding:9px 13px;
  border-radius:999px;
  font-weight:900;
  font-size:13px;
  margin-bottom:18px;
}

.smart-login-hero h1{
  font-size:44px;
  line-height:1.05;
  letter-spacing:-.04em;
  margin:0 0 16px;
  color:#0f172a;
  max-width:560px;
}

.smart-login-hero p{
  color:#64748b;
  font-size:17px;
  line-height:1.7;
  margin:0;
  max-width:560px;
}

.hero-points{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:34px;
  position:relative;
  z-index:1;
}

.hero-points div{
  background:#fff;
  border:1px solid #e8edf5;
  border-radius:18px;
  padding:16px;
}

.hero-points strong{
  display:block;
  color:#0f172a;
  font-size:15px;
  margin-bottom:6px;
}

.hero-points span{
  display:block;
  color:#64748b;
  font-size:13px;
  line-height:1.4;
}

.smart-login-card{
  padding:34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.login-logo-wrap{
  text-align:center;
  margin-bottom:16px;
}

.smart-login-card .login-logo-img{
  width:180px !important;
  max-width:180px !important;
  height:auto !important;
  margin:0 auto !important;
  display:block;
}

.login-title{
  text-align:center;
  margin-bottom:18px;
}

.login-title h2{
  margin:0 0 6px;
  font-size:28px;
  letter-spacing:-.03em;
  color:#0f172a;
}

.login-title p{
  margin:0;
  color:#64748b;
}

.smart-login-form label{
  color:#0f172a;
  font-weight:850;
}

.smart-login-form input{
  background:#f8fafc !important;
  border:1px solid #dbe3ef !important;
  border-radius:14px !important;
  padding:14px 15px !important;
  font-size:15px;
}

.smart-login-form input:focus{
  outline:none;
  border-color:#4057c8 !important;
  box-shadow:0 0 0 4px rgba(64,87,200,.10);
}

.smart-login-form button{
  background:linear-gradient(135deg,#4057c8,#e11d2e) !important;
  border-radius:14px !important;
  padding:14px 16px !important;
  font-size:15px;
  box-shadow:0 14px 30px rgba(64,87,200,.20);
}

.login-footer-note{
  margin-top:16px;
  display:flex;
  flex-direction:column;
  gap:8px;
  text-align:center;
  color:#64748b;
  font-size:14px;
}

.login-footer-note a{
  color:#4057c8;
  font-weight:850;
  text-decoration:none;
}

.login-footer-note a:hover{
  text-decoration:underline;
}

@media(max-width:900px){
  .smart-login-body{
    padding:18px !important;
    align-items:flex-start !important;
  }

  .smart-login-shell{
    grid-template-columns:1fr;
    max-width:460px;
  }

  .smart-login-hero{
    display:none;
  }

  .smart-login-card{
    padding:28px 22px;
    border-radius:24px;
    margin-top:20px;
  }

  .smart-login-card .login-logo-img{
    width:120px !important;
    max-width:120px !important;
  }

  .login-title h2{
    font-size:24px;
  }
}

@media(max-width:420px){
  .smart-login-card .login-logo-img{
    width:100px !important;
    max-width:100px !important;
  }

  .smart-login-card{
    padding:24px 18px;
  }
}


/* SmartLatihan Registration Flow Patch */
.hint{background:#f8fafc;border:1px solid #e8edf5;border-radius:12px;padding:12px;color:#64748b;font-weight:600}
.login-card.wide{max-width:560px}
.panel input[readonly]{background:#f8fafc;color:#334155;font-weight:700}


/* SmartLatihan Share Buttons Patch */
.share-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) 240px;
  gap:18px;
  align-items:start;
}
.share-link-row{
  grid-column:1 / 2;
}
.share-link-row input{
  font-weight:750;
  color:#334155;
  background:#f8fafc;
}
.share-actions{
  grid-column:1 / 2;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
}
.share-actions button,
.share-actions a{
  width:auto !important;
  margin-top:0 !important;
  border:0;
  border-radius:12px;
  padding:11px 14px;
  font-weight:900;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer;
}
.btn-copy{background:#eef2ff !important;color:#4057c8 !important}
.btn-wa{background:#dcfce7 !important;color:#166534 !important}
.btn-share{background:#f1f5f9 !important;color:#0f172a !important}
.qr-wrap{
  grid-column:2 / 3;
  grid-row:1 / span 2;
  background:#fff;
  border:1px solid #e8edf5;
  border-radius:18px;
  padding:14px;
  text-align:center;
}
.qr-wrap img{
  max-width:210px;
  width:100%;
  height:auto;
  display:block;
  margin:0 auto;
}
@media(max-width:760px){
  .share-card{grid-template-columns:1fr}
  .qr-wrap{grid-column:1;grid-row:auto}
  .share-actions{display:grid;grid-template-columns:1fr}
  .share-actions button,.share-actions a{width:100% !important}
}


/* SmartLatihan Share Buttons Patch - Fixed */
.share-card{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:18px;align-items:start}
.share-link-row{grid-column:1 / 2}
.share-link-row input{font-weight:750;color:#334155;background:#f8fafc}
.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.share-actions button,.share-actions a{width:auto!important;margin-top:0!important;border:0;border-radius:12px;padding:11px 14px;font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}
.btn-copy{background:#eef2ff!important;color:#4057c8!important}
.btn-wa{background:#dcfce7!important;color:#166534!important}
.btn-share{background:#f1f5f9!important;color:#0f172a!important}
.qr-wrap{grid-column:2 / 3;grid-row:1 / span 2;background:#fff;border:1px solid #e8edf5;border-radius:18px;padding:14px;text-align:center}
.qr-wrap img{max-width:210px;width:100%;height:auto;display:block;margin:0 auto}
@media(max-width:760px){.share-card{grid-template-columns:1fr}.qr-wrap{grid-column:1;grid-row:auto}.share-actions{display:grid;grid-template-columns:1fr}.share-actions button,.share-actions a{width:100%!important}}


/* SmartLatihan Clean Share Card Like BDB */
.share-panel-clean{
  padding:28px !important;
}
.share-clean-grid{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:28px;
  align-items:center;
}
.share-clean-qr{
  background:#ffffff;
  border:1px solid #e8edf5;
  border-radius:18px;
  padding:12px;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
.share-clean-qr img{
  width:100%;
  max-width:166px;
  height:auto;
  display:block;
  margin:0 auto;
}
.share-clean-label{
  color:#4057c8;
  font-size:12px;
  letter-spacing:.15em;
  font-weight:950;
  margin-bottom:14px;
  text-transform:uppercase;
}
.share-clean-content h2{
  margin:0 0 12px;
  font-size:28px;
  letter-spacing:-.03em;
}
.share-clean-content p{
  margin:0 0 18px;
  color:#64748b;
  line-height:1.55;
}
.share-clean-content label{
  margin-top:0;
  margin-bottom:7px;
  color:#334155;
  font-size:13px;
}
.share-clean-input{
  display:grid;
  grid-template-columns:minmax(0,1fr) 92px;
  gap:10px;
  max-width:640px;
}
.share-clean-input input{
  background:#fff !important;
  border:1px solid #dbe3ef !important;
  border-radius:16px !important;
  font-weight:750;
  color:#0f172a;
}
.share-clean-input button{
  width:auto !important;
  margin-top:0 !important;
  background:#eef2ff !important;
  color:#4057c8 !important;
  border-radius:16px !important;
  box-shadow:none !important;
}
.share-clean-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:14px;
}
.share-clean-btn{
  width:auto !important;
  margin-top:0 !important;
  border:0 !important;
  border-radius:16px !important;
  padding:12px 18px !important;
  font-weight:900 !important;
  text-decoration:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:linear-gradient(135deg,#4057c8,#e11d2e) !important;
  color:#fff !important;
  cursor:pointer;
}
.share-clean-btn.whatsapp{
  background:#22c55e !important;
  color:#052e16 !important;
}
@media(max-width:760px){
  .share-panel-clean{padding:22px !important}
  .share-clean-grid{grid-template-columns:1fr;gap:18px}
  .share-clean-qr{max-width:190px}
  .share-clean-input{grid-template-columns:1fr}
  .share-clean-input button{width:100% !important}
  .share-clean-actions{display:grid;grid-template-columns:1fr}
  .share-clean-btn{width:100% !important}
}


/* SmartLatihan Side-by-side Share Cards */
.share-mini-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin-top:22px;
}
.share-mini-card{
  background:#ffffff;
  border:1px solid #e8edf5;
  border-radius:24px;
  padding:24px;
  box-shadow:0 16px 40px rgba(15,23,42,.08);
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:22px;
  align-items:center;
  overflow:hidden;
}
.share-mini-qr{
  background:#fff;
  border:1px solid #edf2f7;
  border-radius:18px;
  padding:10px;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
.share-mini-qr img{
  width:100%;
  height:auto;
  display:block;
}
.share-mini-label{
  color:#4057c8;
  font-size:12px;
  letter-spacing:.16em;
  font-weight:950;
  text-transform:uppercase;
  margin-bottom:8px;
}
.share-mini-body h2{
  margin:0 0 8px;
  font-size:26px;
  letter-spacing:-.03em;
}
.share-mini-body p{
  margin:0 0 14px;
  color:#64748b;
  line-height:1.45;
}
.share-mini-body input{
  background:#f8fafc !important;
  border:1px solid #dbe3ef !important;
  border-radius:15px !important;
  font-weight:750;
  margin-bottom:12px;
}
.share-mini-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.share-mini-actions button,
.share-mini-actions a{
  width:auto !important;
  margin-top:0 !important;
  border:0 !important;
  border-radius:14px !important;
  padding:10px 14px !important;
  font-weight:900 !important;
  text-decoration:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer !important;
  background:#eef2ff !important;
  color:#4057c8 !important;
  box-shadow:none !important;
}
.share-mini-actions a{
  background:#dcfce7 !important;
  color:#166534 !important;
}
.share-mini-actions button:last-child{
  background:#f1f5f9 !important;
  color:#0f172a !important;
}
@media(max-width:1180px){
  .share-mini-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .share-mini-card{grid-template-columns:1fr;text-align:left}
  .share-mini-qr{max-width:180px}
  .share-mini-actions{display:grid;grid-template-columns:1fr}
  .share-mini-actions button,.share-mini-actions a{width:100% !important}
}


/* SmartLatihan Registration Links Separate Page */
.reg-share-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  margin-top:22px;
}
.reg-share-card{
  background:#fff;
  border:1px solid #e8edf5;
  border-radius:26px;
  padding:24px;
  box-shadow:0 18px 45px rgba(15,23,42,.08);
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:22px;
  align-items:center;
}
.reg-share-qr{
  background:#fff;
  border:1px solid #edf2f7;
  border-radius:18px;
  padding:10px;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}
.reg-share-qr img{width:100%;height:auto;display:block}
.reg-share-label{
  color:#4057c8;
  font-size:12px;
  letter-spacing:.14em;
  font-weight:950;
  text-transform:uppercase;
  margin-bottom:8px;
}
.reg-share-body h2{margin:0 0 8px;font-size:26px;letter-spacing:-.03em}
.reg-share-body p{margin:0 0 14px;color:#64748b;line-height:1.45}
.reg-link-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:10px}
.reg-link-row input{background:#f8fafc!important;border:1px solid #dbe3ef!important;border-radius:15px!important;font-weight:750}
.reg-link-row button,.reg-actions button,.reg-actions a{
  width:auto!important;margin-top:0!important;border:0!important;border-radius:14px!important;padding:10px 14px!important;font-weight:900!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;box-shadow:none!important;
}
.reg-link-row button{background:#eef2ff!important;color:#4057c8!important}
.reg-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.reg-actions a.whatsapp{background:#dcfce7!important;color:#166534!important}
.reg-actions button{background:#f1f5f9!important;color:#0f172a!important}
@media(max-width:1180px){.reg-share-grid{grid-template-columns:1fr}}
@media(max-width:680px){
  .reg-share-card{grid-template-columns:1fr}
  .reg-share-qr{max-width:180px}
  .reg-link-row{grid-template-columns:1fr}
  .reg-link-row button,.reg-actions button,.reg-actions a{width:100%!important}
  .reg-actions{display:grid;grid-template-columns:1fr}
}

/* Consultant register class */
textarea{width:100%;padding:13px 14px;border:1px solid #d1d5db;border-radius:10px;font-family:Arial,Helvetica,sans-serif}
.btn.tiny{padding:7px 12px!important;border-radius:10px!important;font-size:13px!important;margin:0!important;white-space:nowrap}.table-wrap{width:100%;overflow-x:auto}.class-mode-grid{display:grid;grid-template-columns:1fr;gap:18px}.class-box{background:#f8fafc;border:1px solid #e8edf5;border-radius:16px;padding:18px}.class-box h3{margin:0 0 10px}
button[disabled]{opacity:.55;cursor:not-allowed}


/* First Login Premium Background Fix */
.first-login-body{
  background:
    radial-gradient(circle at 18% 20%, rgba(64,87,200,.18), transparent 32%),
    radial-gradient(circle at 82% 18%, rgba(225,29,46,.13), transparent 30%),
    linear-gradient(135deg,#eef3ff 0%,#f8fafc 46%,#fff7f7 100%) !important;
  padding:24px;
}
.first-login-card{
  max-width:520px;
  border-radius:28px;
  box-shadow:0 28px 80px rgba(15,23,42,.12);
  border:1px solid rgba(226,232,240,.9);
}
.first-login-card h2{
  margin:10px 0 8px;
  font-size:28px;
  letter-spacing:-.03em;
}
.first-login-card p{
  color:#64748b;
  margin-top:0;
}
.first-login-logo{
  max-width:190px;
  display:block;
  margin:0 auto 12px;
}
@media(max-width:600px){
  .first-login-body{padding:14px;align-items:flex-start}
  .first-login-card{max-width:100%;padding:24px}
  .first-login-logo{max-width:140px}
}


/* SmartLatihan UI Typography Polish - lighter premium dashboard */
:root{
  --sl-weight-regular:400;
  --sl-weight-medium:500;
  --sl-weight-semibold:600;
  --sl-weight-bold:700;
}

/* Global text rhythm */
body{
  font-weight:var(--sl-weight-regular);
  letter-spacing:-.01em;
}

/* Main page titles */
.topbar h1,
.page-title,
.main h1{
  font-weight:var(--sl-weight-bold) !important;
  letter-spacing:-.035em;
}

/* Header pill / user name */
.topbar span,
.user-pill,
.header-user,
.account-pill{
  font-weight:var(--sl-weight-semibold) !important;
}

/* Sidebar */
.sidebar a,
.sidebar .menu-link,
.mobile-nav a,
.mobile-nav select{
  font-weight:var(--sl-weight-medium) !important;
}

.sidebar .section,
.sidebar .menu-section,
.sidebar small,
.nav-section{
  font-weight:var(--sl-weight-bold) !important;
  letter-spacing:.12em;
}

/* Cards */
.card span,
.metric-card span{
  font-weight:var(--sl-weight-semibold) !important;
}

.card strong,
.metric-card strong{
  font-weight:var(--sl-weight-bold) !important;
  letter-spacing:-.04em;
}

.action-card strong,
.quick-actions strong{
  font-weight:var(--sl-weight-semibold) !important;
}

.action-card small,
.quick-actions small,
.card small,
.metric-card small{
  font-weight:var(--sl-weight-medium) !important;
}

/* Panels & content */
.panel h2,
.panel h3,
.content-card h2,
.content-card h3{
  font-weight:var(--sl-weight-semibold) !important;
  letter-spacing:-.03em;
}

.panel p,
.panel li,
.table-wrap td,
table td{
  font-weight:var(--sl-weight-regular) !important;
}

/* Forms and tables */
label,
th,
.table-wrap th,
table th{
  font-weight:var(--sl-weight-semibold) !important;
  letter-spacing:.04em;
}

input,
select,
textarea{
  font-weight:var(--sl-weight-medium) !important;
}

button,
.btn,
.action-btn{
  font-weight:var(--sl-weight-semibold) !important;
}

/* Badges */
.badge{
  font-weight:var(--sl-weight-medium) !important;
}

/* Login / first-login keep clear but not too heavy */
.smart-login-card h2,
.login-card h2,
.smart-login-hero h1{
  font-weight:var(--sl-weight-bold) !important;
}

.hero-points strong,
.smart-login-card label{
  font-weight:var(--sl-weight-semibold) !important;
}


/* Teacher Register Assignment UI */
.teacher-register-card{
  max-width:760px !important;
}
.teacher-extra-section{
  margin-top:18px;
  padding:18px;
  border:1px solid #e8edf5;
  border-radius:18px;
  background:#f8fafc;
}
.teacher-extra-section h3{
  margin:0 0 6px;
  font-weight:650;
}
.teacher-extra-section p{
  margin:0 0 12px;
  color:#64748b;
}
.checkbox-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:10px 0 16px;
}
.check-card{
  margin:0 !important;
  display:flex !important;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border:1px solid #dbe3ef;
  border-radius:14px;
  background:#fff;
  cursor:pointer;
  font-weight:500 !important;
}
.check-card input{
  width:auto !important;
  margin:0;
}
.check-card span{
  font-size:14px;
}
.btn.tiny{
  padding:7px 12px !important;
  border-radius:10px !important;
  font-size:13px !important;
  margin:0 4px 0 0 !important;
  white-space:nowrap;
  width:auto !important;
}
@media(max-width:720px){
  .checkbox-grid{grid-template-columns:1fr}
  .teacher-register-card{max-width:100% !important}
}


/* Teacher register dropdown assignment UI */
.assignment-picker{
  display:grid;
  grid-template-columns:1fr 1fr 140px;
  gap:12px;
  align-items:end;
  margin-top:10px;
}
.assignment-add-wrap{
  display:flex;
  align-items:end;
}
.btn-add-assignment{
  margin-top:0 !important;
  height:48px;
  border-radius:14px !important;
  background:#4057c8 !important;
  color:#fff !important;
}
.assignment-list-wrap{
  margin-top:18px;
}
.assignment-list-wrap h4{
  margin:0 0 10px;
  font-size:16px;
  font-weight:650;
}
.assignment-list{
  display:grid;
  gap:10px;
}
.assignment-list.empty{
  background:#fff;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  padding:14px;
  color:#64748b;
  font-weight:500;
}
.assignment-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#fff;
  border:1px solid #dbe3ef;
  border-radius:14px;
  padding:12px;
}
.assignment-row strong{
  display:block;
  font-weight:650;
  color:#0f172a;
}
.assignment-row span{
  display:block;
  color:#64748b;
  margin-top:3px;
  font-weight:500;
}
.assignment-row button{
  width:auto !important;
  margin-top:0 !important;
  background:#fee2e2 !important;
  color:#991b1b !important;
  border-radius:12px !important;
  padding:9px 12px !important;
}
@media(max-width:720px){
  .assignment-picker{grid-template-columns:1fr}
  .btn-add-assignment{width:100% !important}
  .assignment-row{align-items:flex-start;flex-direction:column}
  .assignment-row button{width:100% !important}
}


/* Password Reset Pages */
.hint{background:#f8fafc;border:1px solid #e8edf5;border-radius:12px;padding:12px;color:#64748b;font-weight:500}
.btn.tiny{padding:7px 12px!important;border-radius:10px!important;font-size:13px!important;margin:0!important;white-space:nowrap;width:auto!important}
.table-wrap{width:100%;overflow-x:auto}


/* Student Class Selection Engine */
.level-status-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
  margin:18px 0 22px;
}
.level-status-card{
  background:#fff;
  border:1px solid #e8edf5;
  border-radius:20px;
  padding:18px;
  box-shadow:0 12px 32px rgba(15,23,42,.06);
}
.level-status-card h3{
  margin:0 0 12px;
  font-size:18px;
  font-weight:650;
}
.level-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 0;
  border-top:1px solid #f1f5f9;
}
.level-row span{
  color:#64748b;
  font-weight:550;
}
.level-row a{
  min-width:42px;
  text-align:center;
  border-radius:999px;
  padding:5px 10px;
  font-weight:800;
  text-decoration:none;
  background:#f1f5f9;
  color:#0f172a;
}
.level-row.confirmed a{background:#dcfce7;color:#166534}
.level-row.pending a{background:#fef9c3;color:#854d0e}
.level-row.floating a{background:#fee2e2;color:#991b1b}
.hint{
  background:#f8fafc;
  border:1px solid #e8edf5;
  border-radius:12px;
  padding:12px;
  color:#64748b;
  font-weight:500;
  margin-bottom:12px;
}
@media(max-width:1180px){
  .level-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .level-status-grid{grid-template-columns:1fr}
}


/* Remove / Floating Assignment */
.btn.danger,
.danger-btn{
  background:#fee2e2!important;
  color:#991b1b!important;
}
.btn.tiny{
  padding:7px 12px!important;
  border-radius:10px!important;
  font-size:13px!important;
  margin:3px 3px 3px 0!important;
  white-space:nowrap;
  width:auto!important;
}


/* Teacher My Classes Role Logic */
.teacher-task-form #subjectBlock{
  display:block;
}
.teacher-task-form p{
  color:#64748b;
}


/* Homework create filter polish */
select option[hidden]{
  display:none;
}


/* Student list filter */
.student-filter-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto auto;
  gap:12px;
  align-items:end;
}
.student-filter-grid .filter-reset{
  margin-top:20px;
  text-align:center;
}
@media(max-width:1000px){
  .student-filter-grid{grid-template-columns:1fr}
  .student-filter-grid .filter-reset{margin-top:0}
}


/* Feedback Mode: Homework immediate, Test protected */
.feedback-progress{
  margin-bottom:18px;
  background:#f8fafc;
}
.feedback-option{
  transition:.18s ease;
}
.feedback-option.is-correct-option{
  border-color:#22c55e!important;
  background:#dcfce7!important;
  color:#166534!important;
  font-weight:700;
}
.feedback-option.is-wrong-option{
  border-color:#ef4444!important;
  background:#fee2e2!important;
  color:#991b1b!important;
  font-weight:700;
}
.instant-feedback{
  margin-top:14px;
  padding:14px 16px;
  border-radius:12px;
  font-weight:600;
}
.instant-feedback.correct{
  background:#dcfce7;
  color:#166534;
}
.instant-feedback.wrong{
  background:#fee2e2;
  color:#991b1b;
}
.pulse-submit{
  box-shadow:0 0 0 4px rgba(34,197,94,.18);
}
.test-note,.hint{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  color:#64748b;
  border-radius:12px;
  padding:14px 16px;
}
.result-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:18px 0;
}
.result-grid div{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:16px;
  text-align:center;
}
.result-grid strong{
  display:block;
  font-size:30px;
  color:#0f172a;
}
.result-grid span{
  color:#64748b;
}
.answer-review{
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:16px;
  margin:12px 0;
}
.answer-review.correct{
  background:#f0fdf4;
}
.answer-review.wrong{
  background:#fff7f7;
}
@media(max-width:700px){
  .result-grid{grid-template-columns:1fr}
}

/* Student Dashboard V2 - light premium layout */
.student-v2{display:flex;flex-direction:column;gap:18px}
.student-v2 .card{border:1px solid rgba(15,23,42,.06);box-shadow:0 16px 35px rgba(15,23,42,.06)}
.student-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:24px!important;border-radius:22px!important;background:linear-gradient(135deg,#fff 0%,#f8fbff 65%,#eef4ff 100%)}
.student-avatar{width:94px;height:94px;border-radius:28px;display:flex;align-items:center;justify-content:center;font-size:48px;background:linear-gradient(135deg,#eef4ff,#fff);border:1px solid #e8eefb}
.student-hero-main h2{margin:3px 0 10px;font-size:28px;line-height:1.15;color:#0f172a}
.eyebrow{display:block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b;margin-bottom:4px}
.student-meta{display:flex;flex-wrap:wrap;gap:8px 14px;color:#475569;font-weight:650;font-size:14px}
.student-hero-kpi{min-width:190px;text-align:center;padding:18px 20px;border-left:1px solid #e8eefb}
.student-hero-kpi span,.student-hero-kpi small{display:block;color:#64748b;font-weight:700}
.student-hero-kpi strong{display:block;font-size:42px;color:#2563eb;line-height:1.05;margin:6px 0}
.student-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.student-metric-card{display:block;text-decoration:none;color:#0f172a;padding:20px!important;border-radius:20px!important;position:relative;overflow:hidden;transition:.18s ease}
.student-metric-card:hover{transform:translateY(-2px);box-shadow:0 20px 38px rgba(37,99,235,.10)}
.student-metric-card:after{content:"";position:absolute;right:-32px;bottom:-38px;width:110px;height:110px;border-radius:999px;background:linear-gradient(135deg,rgba(79,70,229,.08),rgba(244,63,94,.08))}
.metric-icon{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:12px}
.soft-blue{background:#eaf1ff}.soft-green{background:#e9fbef}.soft-orange{background:#fff3df}.soft-purple{background:#f5eaff}
.student-metric-card span{display:block;font-size:15px;font-weight:800;color:#64748b}.student-metric-card strong{display:block;font-size:38px;line-height:1.1;margin:8px 0 6px}.student-metric-card small{color:#94a3b8;font-weight:700}
.student-main-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:16px}.student-main-grid.lower{grid-template-columns:1fr 1fr}
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.section-head h2{margin:0;font-size:22px;color:#0f172a}.section-head p{margin:5px 0 0;color:#64748b}.section-head.compact{align-items:center}
.mini-link{font-weight:800;color:#2563eb;text-decoration:none;white-space:nowrap;font-size:14px}
.student-tasks-card,.student-calendar-card,.topic-card-v2,.recent-card-v2{padding:22px!important;border-radius:22px!important}
.task-list-v2{display:flex;flex-direction:column;gap:12px}.task-row-v2{display:flex;align-items:center;justify-content:space-between;gap:14px;text-decoration:none;color:#0f172a;border-radius:16px;padding:16px;border:1px solid #e8eefb;background:#fff;transition:.16s ease}.task-row-v2.active-task{border-left:5px solid #2563eb;background:linear-gradient(90deg,#eff6ff,#fff)}.task-row-v2.done{border-left:5px solid #22c55e;background:linear-gradient(90deg,#f0fdf4,#fff)}.task-row-v2:hover{transform:translateX(2px)}.task-row-v2 strong{display:block}.task-row-v2 small{display:block;color:#64748b;margin-top:5px;font-weight:650}.task-row-v2 span{padding:8px 12px;border-radius:999px;background:#2563eb;color:#fff;font-weight:900;font-size:12px;white-space:nowrap}.task-row-v2.done span{background:#16a34a}
.empty-state-soft{padding:18px;border-radius:16px;background:#f8fafc;color:#64748b;font-weight:700;border:1px dashed #dbe5f5}
.mini-calendar-v2{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.mini-cal-head{text-align:center;font-size:12px;color:#64748b;font-weight:900}.mini-cal-day{height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:850;color:#0f172a;background:#f8fafc}.mini-cal-day.muted{background:transparent}.mini-cal-day.green{background:#dcfce7;color:#166534}.mini-cal-day.blue{background:#dbeafe;color:#1d4ed8}.mini-cal-day.red{background:#fee2e2;color:#b91c1c}.mini-cal-day.today{outline:2px solid #2563eb;outline-offset:2px}.calendar-legend-v2{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;color:#64748b;font-size:13px;font-weight:800}.calendar-legend-v2 i{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:6px}.calendar-legend-v2 .green{background:#22c55e}.calendar-legend-v2 .blue{background:#2563eb}.calendar-legend-v2 .red{background:#ef4444}
.topic-list-v2,.recent-list-v2{display:flex;flex-direction:column;gap:10px}.topic-row-v2,.recent-row-v2{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #eef2f7}.recent-row-v2{grid-template-columns:1fr auto}.topic-row-v2:last-child,.recent-row-v2:last-child{border-bottom:0}.topic-row-v2 strong,.recent-row-v2 strong{display:block;color:#0f172a}.topic-row-v2 small,.recent-row-v2 small{display:block;color:#64748b;margin-top:4px;font-weight:650}.topic-row-v2 b,.recent-row-v2 span{font-size:18px;color:#2563eb}.status-pill{padding:7px 10px;border-radius:999px;font-weight:900;font-size:12px;white-space:nowrap}.status-pill.good{background:#dcfce7;color:#166534}.status-pill.ok{background:#e0f2fe;color:#075985}.status-pill.warn{background:#fff7ed;color:#c2410c}.status-pill.bad{background:#fee2e2;color:#b91c1c}
.student-action-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.action-tile-v2{text-decoration:none;color:#0f172a;padding:20px!important;border-radius:20px!important}.action-tile-v2 span{display:flex;width:44px;height:44px;border-radius:15px;align-items:center;justify-content:center;background:#eef4ff;font-size:22px;margin-bottom:12px}.action-tile-v2 strong{display:block;font-size:17px}.action-tile-v2 small{display:block;color:#64748b;margin-top:5px;line-height:1.45}
@media (max-width:1100px){.student-metrics-grid{grid-template-columns:repeat(2,1fr)}.student-main-grid,.student-main-grid.lower{grid-template-columns:1fr}.student-action-strip{grid-template-columns:repeat(2,1fr)}.student-hero{grid-template-columns:auto 1fr}.student-hero-kpi{grid-column:1/-1;border-left:0;border-top:1px solid #e8eefb}}
@media (max-width:640px){.student-v2{gap:14px}.student-hero{grid-template-columns:1fr;padding:18px!important;text-align:left}.student-avatar{width:72px;height:72px;font-size:38px;border-radius:22px}.student-hero-main h2{font-size:22px}.student-meta{font-size:13px}.student-hero-kpi{text-align:left;padding:14px 0 0}.student-metrics-grid,.student-action-strip{grid-template-columns:1fr}.student-metric-card strong{font-size:34px}.task-row-v2{align-items:flex-start;flex-direction:column}.task-row-v2 span{align-self:flex-start}.topic-row-v2{grid-template-columns:1fr auto}.topic-row-v2 .status-pill{grid-column:1/-1;justify-self:start}.mini-calendar-v2{gap:6px}.mini-cal-day{height:34px;border-radius:10px;font-size:13px}}


/* =========================================================
   SmartLatihan Premium Sidebar & Top Menu Thin Text
   Layout/function unchanged: typography only
   ========================================================= */

/* Sidebar menu: thinner, cleaner, more SaaS-like */
body .sidebar nav a,
body .sidebar.rocker nav a,
body .sidebar a,
body .mobile-menu-panel a{
  font-weight:400 !important;
  font-size:14px !important;
  letter-spacing:0 !important;
  color:#4b5563 !important;
}

/* Active / hover still clear, but not too heavy */
body .sidebar nav a.active,
body .sidebar.rocker nav a.active,
body .sidebar a.active,
body .mobile-menu-panel a.active{
  font-weight:500 !important;
  color:#4057c8 !important;
}

body .sidebar nav a:hover,
body .sidebar.rocker nav a:hover,
body .sidebar a:hover,
body .mobile-menu-panel a:hover{
  font-weight:500 !important;
  color:#4057c8 !important;
}

/* Sidebar section labels: small, neat, premium */
body .sidebar .sidebar-section,
body .sidebar.rocker .sidebar-section,
body .mobile-menu-section{
  font-weight:600 !important;
  font-size:11px !important;
  letter-spacing:.12em !important;
  color:#94a3b8 !important;
}

/* Sidebar user/profile text */
body .sidebar strong,
body .sidebar b,
body .sidebar .user-name,
body .sidebar .profile-name{
  font-weight:500 !important;
  letter-spacing:-.01em !important;
}

body .sidebar small,
body .sidebar .user-code,
body .sidebar .profile-code{
  font-weight:400 !important;
  color:#64748b !important;
}

/* Topbar / header user area */
body .topbar,
body .rocker-topbar,
body .user-pill,
body .account-pill,
body .header-user{
  font-weight:400 !important;
}

body .user-pill strong,
body .account-pill strong,
body .header-user strong,
body .topbar strong{
  font-weight:500 !important;
  letter-spacing:-.01em !important;
}

body .user-pill span,
body .account-pill span,
body .header-user span{
  font-weight:400 !important;
  color:#64748b !important;
}

/* Topbar title stays readable, but not too bold */
body .topbar h1,
body .rocker-topbar h1,
body .main > h1,
body .page-title{
  font-weight:600 !important;
  letter-spacing:-.035em !important;
}

/* Buttons in top menu slightly lighter */
body .topbar button,
body .topbar .btn,
body .mobile-menu-toggle{
  font-weight:500 !important;
}


/* =========================================================
   SmartLatihan Premium Hostinger-like UI Polish
   Focus: thin fonts, neutral icons, less crowded sidebar/topbar.
   Layout/function unchanged.
   ========================================================= */
:root{
  --sl-premium-text:#111827;
  --sl-premium-soft:#4b5563;
  --sl-premium-muted:#64748b;
  --sl-premium-faint:#94a3b8;
  --sl-premium-active:#4057c8;
  --sl-premium-active-bg:#eef2ff;
}

/* Overall text softer */
body{
  font-family:Inter,"Segoe UI",Arial,Helvetica,sans-serif !important;
  font-weight:400 !important;
  color:var(--sl-premium-text) !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Sidebar: lighter text and less visual weight */
body .sidebar,
body .sidebar.rocker{
  width:238px !important;
}

body .sidebar nav a,
body .sidebar.rocker nav a,
body .sidebar a,
body .mobile-menu-panel a{
  font-size:14px !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  color:var(--sl-premium-soft) !important;
}

/* Make sidebar icons neutral / monochrome */
body .sidebar nav a span,
body .sidebar.rocker nav a span,
body .sidebar a span,
body .mobile-menu-panel a span{
  filter:grayscale(1) saturate(0) !important;
  opacity:.72 !important;
  color:#6b7280 !important;
}

/* Active menu only gets soft color */
body .sidebar nav a.active,
body .sidebar.rocker nav a.active,
body .sidebar a.active,
body .mobile-menu-panel a.active{
  font-weight:500 !important;
  color:var(--sl-premium-active) !important;
  background:var(--sl-premium-active-bg) !important;
}

body .sidebar nav a.active span,
body .sidebar.rocker nav a.active span,
body .sidebar a.active span,
body .mobile-menu-panel a.active span{
  filter:grayscale(1) saturate(0) !important;
  opacity:.9 !important;
  color:var(--sl-premium-active) !important;
}

body .sidebar nav a:hover,
body .sidebar.rocker nav a:hover,
body .sidebar a:hover,
body .mobile-menu-panel a:hover{
  font-weight:500 !important;
  color:var(--sl-premium-active) !important;
  background:#f4f6ff !important;
}

/* Section labels like Hostinger: small, light, neat */
body .sidebar .sidebar-section,
body .sidebar.rocker .sidebar-section,
body .mobile-menu-section{
  font-size:10.5px !important;
  font-weight:600 !important;
  letter-spacing:.12em !important;
  color:var(--sl-premium-faint) !important;
}

/* Sidebar profile/user card text */
body .sidebar strong,
body .sidebar b,
body .sidebar .user-name,
body .sidebar .profile-name{
  font-weight:500 !important;
  letter-spacing:-.01em !important;
}

body .sidebar small,
body .sidebar .user-code,
body .sidebar .profile-code{
  font-weight:400 !important;
  color:var(--sl-premium-muted) !important;
}

/* Topbar: thinner and cleaner */
body .topbar,
body .rocker-topbar{
  color:var(--sl-premium-text) !important;
}

body .topbar h1,
body .rocker-topbar h1,
body .main > h1,
body .page-title{
  font-size:24px !important;
  font-weight:600 !important;
  letter-spacing:-.035em !important;
}

body .topbar p,
body .rocker-topbar p{
  font-weight:400 !important;
  color:var(--sl-premium-muted) !important;
}

body .user-pill,
body .account-pill,
body .header-user{
  font-weight:400 !important;
}

body .user-pill strong,
body .account-pill strong,
body .header-user strong,
body .topbar strong{
  font-weight:500 !important;
  letter-spacing:-.01em !important;
}

body .user-pill span,
body .account-pill span,
body .header-user span{
  font-weight:400 !important;
  color:var(--sl-premium-muted) !important;
}

/* Cards and panels: reduce bold, keep hierarchy */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .pay-title,
body .panel h2,
body .panel h3,
body .chart-card h2,
body .status-card h2,
body .content-card h2,
body .content-card h3{
  font-weight:600 !important;
  letter-spacing:-.025em !important;
}

body label,
body .pay-field label,
body .card span,
body .metric-card span,
body .pay-row span,
body th,
body .table-wrap th{
  font-weight:500 !important;
  color:var(--sl-premium-soft) !important;
}

body p,
body .pay-muted,
body .panel p,
body .hint,
body .pay-alert,
body .payment-note,
body .card small,
body .metric-card small,
body .action-card small{
  font-weight:400 !important;
  color:var(--sl-premium-muted) !important;
}

/* Important numbers stay readable but not too thick */
body strong,
body .card strong,
body .metric-card strong,
body .pay-row strong,
body .result-grid strong{
  font-weight:650 !important;
  letter-spacing:-.025em !important;
}

body .card strong,
body .metric-card strong{
  font-size:32px !important;
}

/* Buttons: premium medium weight */
body button,
body .btn,
body .pay-btn,
body .action-btn,
body .mobile-menu-toggle{
  font-weight:500 !important;
  letter-spacing:-.01em !important;
}

/* Tables less dense */
body table td,
body .table-wrap td{
  font-weight:400 !important;
  color:#1f2937 !important;
}

body table td strong,
body .table-wrap td strong{
  font-weight:600 !important;
}

/* Forms */
body input,
body select,
body textarea{
  font-weight:400 !important;
  color:#111827 !important;
}

body select option{
  font-weight:400 !important;
}

/* Pills/badges */
body .badge,
body .badge-soft,
body .pay-pill{
  font-weight:500 !important;
}

/* Analytics/status colors remain meaningful */
body .dot.green,
body .cal-dot.green,
body .instant-feedback.correct,
body .feedback-option.is-correct-option{
  filter:none !important;
}

body .dot.red,
body .cal-dot.red,
body .instant-feedback.wrong,
body .feedback-option.is-wrong-option{
  filter:none !important;
}

body .dot.yellow,
body .cal-dot.blue,
body .cal-dot,
body canvas,
body svg{
  filter:none !important;
}

/* Payment values slightly smaller and cleaner */
body .pay-row strong{
  font-size:18px !important;
}

body .pay-card .pay-title{
  font-size:21px !important;
}


/* =========================================================
   SmartLatihan Premium Analytics Table Text Polish
   Focus: smaller/thinner student names in analytics table.
   Layout/function unchanged.
   ========================================================= */
.student-link,
.analytics-table .student-link,
.analytics-table td a.student-link,
.analytics-table td a[href*="student"],
.analytics-table td:nth-child(2) a{
  font-size:14px !important;
  font-weight:400 !important;
  color:#1f2937 !important;
  text-decoration:none !important;
  line-height:1.45 !important;
  letter-spacing:-.01em !important;
  text-transform:none !important;
}

.student-link:hover,
.analytics-table .student-link:hover,
.analytics-table td a[href*="student"]:hover{
  color:#4057c8 !important;
}

/* Make any bold wrapper inside student name lighter */
.analytics-table td:nth-child(2) strong,
.analytics-table td:nth-child(2) b,
.analytics-table td:nth-child(2) span{
  font-size:14px !important;
  font-weight:400 !important;
  letter-spacing:-.01em !important;
  text-transform:none !important;
}

/* Student ID should be lighter than score/grade */
.analytics-table td:nth-child(3){
  font-size:13px !important;
  font-weight:400 !important;
  color:#64748b !important;
}

/* Keep score/grade readable */
.analytics-table td:nth-child(5),
.analytics-table td:nth-child(6){
  font-size:15px !important;
  font-weight:600 !important;
}

