
:root{
  --ink:#0b2342;--muted:#55657a;--teal:#10a89f;--teal2:#27c9b5;--line:#dce8ea;
  --soft:#effaf8;--card:#fff;--danger:#c94c57;--warning:#b7791f;--shadow:0 12px 34px rgba(11,35,66,.08)
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:#f6fbfa}
a{text-decoration:none;color:inherit}
.portal-shell{min-height:100vh}
.portal-header{height:70px;display:flex;align-items:center;gap:18px;padding:0 4vw;background:#fff;border-bottom:1px solid var(--line)}
.portal-brand{font-weight:800;line-height:1.05}
.portal-header .spacer{flex:1}
.portal-main{width:min(1180px,92vw);margin:36px auto}
.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
h1,h2,h3{letter-spacing:-.025em}
label{display:block;font-size:12px;font-weight:700;margin:14px 0 6px}
input,select{width:100%;padding:13px 14px;border:1px solid #cfdfe1;border-radius:10px;font:inherit;background:#fff}
button,.pbtn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:9px;border:1px solid transparent;font:700 13px Inter,sans-serif;cursor:pointer}
.primary{background:linear-gradient(135deg,var(--teal),#0f9f98);color:#fff}
.secondary{background:#fff;border-color:#9fd8d4;color:#0b6864}
.danger{background:#fff;border-color:#e7b8bd;color:#a52f3a}
.muted{color:var(--muted)}
.status{padding:12px 14px;border-radius:10px;margin:12px 0;font-size:12px}
.status.info{background:#eef8f7;color:#0b6864}
.status.warn{background:#fff7e8;color:#8a5b08}
.status.error{background:#fff0f1;color:#a52f3a}
.hidden{display:none!important}
.dashboard-head{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.dashboard-head .spacer{flex:1}
.badge{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:800}
.badge.pending{background:#fff6df;color:#8a5b08}.badge.approved{background:#eaf9f5;color:#087d74}.badge.rejected{background:#fff0f1;color:#a52f3a}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.video-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.video-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,#0f5f60,#11b39f);display:grid;place-items:center;color:#fff;font-size:42px}
.video-card .copy{padding:16px}.video-card h4{margin:0 0 7px}.video-card p{font-size:12px;color:var(--muted);line-height:1.55}
.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}.admin-table th{font-size:10px;letter-spacing:.05em;color:var(--muted)}
.row-actions{display:flex;gap:8px;flex-wrap:wrap}
.note{font-size:11px;color:var(--muted);line-height:1.6}
@media(max-width:850px){.auth-grid{grid-template-columns:1fr}.video-grid{grid-template-columns:1fr 1fr}.admin-table{display:block;overflow:auto}}
@media(max-width:520px){.portal-header{padding:0 18px}.portal-main{width:min(94vw,1180px);margin:22px auto}.video-grid{grid-template-columns:1fr}.panel{padding:18px}}


.auth-tabs{
  display:flex;
  gap:8px;
  width:min(520px,100%);
  margin:0 auto 16px;
  background:#eaf4f2;
  padding:5px;
  border-radius:12px;
}
.auth-tab{
  flex:1;
  border:0;
  background:transparent;
  min-height:44px;
  border-radius:9px;
  font-weight:800;
  color:#48646a;
}
.auth-tab.active{
  background:#fff;
  color:var(--teal);
  box-shadow:0 5px 16px rgba(11,35,66,.08);
}
.auth-single{
  width:min(520px,100%);
  margin:0 auto;
}

.student-mode-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:18px 0 6px;
  padding:5px;
  border-radius:11px;
  background:#eef6f5;
}
.student-mode{
  min-height:42px;
  background:transparent;
  color:#48646a;
  border:0;
  border-radius:8px;
  padding:0 10px;
}
.student-mode.active{
  background:#fff;
  color:var(--teal);
  box-shadow:0 5px 14px rgba(11,35,66,.08);
}

.admin-grid{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:20px;align-items:start}
.table-scroll{overflow:auto}
@media(max-width:900px){.admin-grid{grid-template-columns:1fr}}

.download-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:14px}
.download-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;gap:14px;align-items:flex-start}
.download-icon{width:46px;height:46px;border-radius:12px;background:#e9faf6;display:grid;place-items:center;font-weight:900;color:#0b8f7f;flex:0 0 auto}
.download-copy{flex:1}.download-copy h4{margin:0 0 6px}.download-copy p{font-size:12px;color:var(--muted);line-height:1.55;margin:0 0 10px}.download-meta{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
@media(max-width:700px){.download-grid{grid-template-columns:1fr}}
