/* G78N — Recovery visual polish, stage 1.
   VISUAL ONLY. Does not alter modal/dialog/overlay behavior or application event handling. */
:root{
  --g78n-ink:#18324a;
  --g78n-muted:#6b7f91;
  --g78n-border:#dbe5ed;
  --g78n-soft:#f6f9fb;
  --g78n-card:#ffffff;
  --g78n-shadow-sm:0 3px 12px rgba(18,50,74,.05);
  --g78n-shadow:0 10px 30px rgba(18,50,74,.08);
  --g78n-sidebar:#11324a;
  --g78n-sidebar2:#173f5c;
}

/* Global page tone */
html,body{background:#f4f7f9;color:var(--g78n-ink)}
.portal-shell,.app-shell{background:#f4f7f9}

/* Fixed headers */
.portal-topbar,.topbar{
  background:rgba(255,255,255,.985);
  border-bottom:1px solid #dde6ed;
  box-shadow:0 1px 0 rgba(18,50,74,.02),0 6px 22px rgba(18,50,74,.035);
  backdrop-filter:blur(14px);
}
.brand-inline{gap:13px}
.top-title{font-size:1rem;letter-spacing:-.01em;color:var(--g78n-ink)}
.top-subtitle{color:#748899}
.sync-pill{border:1px solid #cce4d5;background:#edf8f1;padding:7px 11px}

/* Sidebars — visual only, keep the existing nav DOM and handlers */
.portal-sidebar,.sidebar{
  background:linear-gradient(180deg,var(--g78n-sidebar) 0%,var(--g78n-sidebar2) 100%);
  border-right:0;
  box-shadow:10px 0 30px rgba(11,42,63,.07);
  padding:18px 10px 16px;
}
.portal-sidebar .nav-group,.sidebar .nav-group{margin-bottom:13px}
.portal-sidebar .nav-label,.sidebar .nav-label{
  padding:8px 12px 5px;
  color:#91a9ba;
  font-size:.61rem;
  letter-spacing:.12em;
  font-weight:900;
}
.portal-sidebar .nav-btn,.sidebar .nav-btn{
  color:#d9e6ee;
  min-height:42px;
  margin:2px 3px;
  padding:9px 11px;
  border-radius:10px;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
.portal-sidebar .nav-btn:hover,.sidebar .nav-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.portal-sidebar .nav-btn.active,.sidebar .nav-btn.active{
  background:rgba(255,255,255,.15);
  color:#fff;
  box-shadow:inset 3px 0 0 #fff;
}
.portal-sidebar .nav-btn span,.sidebar .nav-btn span{width:23px;text-align:center}
.portal-sidebar .sidebar-footer,.sidebar .sidebar-footer{
  border-top:1px solid rgba(255,255,255,.12);
  color:#dce8ef;
}
.portal-sidebar .sidebar-footer .muted,.sidebar .sidebar-footer .muted,
.portal-sidebar .version-tag,.sidebar .version-tag{color:#93aaba}
.portal-sidebar .user-name,.sidebar .user-name{color:#fff}

/* Main workspace spacing */
.portal-content,.content{padding-top:94px;padding-left:30px;padding-right:30px;padding-bottom:52px}
.portal-content>*,.content>*{max-width:1440px}

/* Page headers */
.page-head{
  align-items:center;
  margin-bottom:18px;
  padding:4px 2px 2px;
}
.page-head h2{color:var(--g78n-ink);font-size:1.75rem;letter-spacing:-.025em}
.page-head .eyebrow{color:#537b97;font-size:.67rem}
.page-subtitle,.page-head .tiny.muted{color:#748798;line-height:1.45}
.head-actions{align-items:center}

/* Cards / panels */
.panel,.kpi,.course-card,.portal-module-card,.access-user,.assignment-card,.student-assignment,
.req-student,.week-day,.module-chip,.training-offering-card,.import-job,.verification-row,
.payment-plan-card,.applicant-card,.mobile-card,.coverage-card,.mode-card{
  border-color:var(--g78n-border);
  box-shadow:var(--g78n-shadow-sm);
}
.panel,.kpi{border-radius:16px}
.panel{padding:19px}
.panel h3{color:var(--g78n-ink);letter-spacing:-.01em}
.panel-head{padding-bottom:4px}

/* Dashboard polish */
.portal-hero{
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  box-shadow:0 14px 34px rgba(18,50,74,.14);
}
.portal-card-grid,.portal-home-grid{gap:15px}
.portal-module-card{
  min-height:112px;
  border-radius:15px;
  padding:17px;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.portal-module-card:hover{transform:translateY(-2px);box-shadow:var(--g78n-shadow);border-color:#a9c0d1}
.portal-card-icon{width:44px;height:44px;border-radius:12px;background:#eef5fa}
.portal-module-card h3{color:var(--g78n-ink);font-size:.98rem}
.portal-module-card p{color:var(--g78n-muted)}

/* KPIs */
.kpi-grid{gap:13px}
.kpi{padding:17px 18px;background:linear-gradient(180deg,#fff 0%,#fbfdfe 100%)}
.kpi .label{color:#748798;font-size:.69rem;letter-spacing:.07em}
.kpi .value{color:var(--g78n-ink);letter-spacing:-.025em}

/* Buttons */
.btn{border-radius:10px;min-height:40px;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.btn:hover{box-shadow:0 4px 12px rgba(18,50,74,.07)}
.btn.primary{background:#163b56;border-color:#163b56}
.btn.primary:hover{background:#0f3049;border-color:#0f3049}
.btn.ghost{background:#fff;border-color:#d6e1e9}
.btn.ghost:hover{background:#f4f8fa;border-color:#b9ccd9}

/* Inputs / toolbars */
input,select,textarea{border-color:#d4e0e8;border-radius:10px;background:#fff}
input:focus,select:focus,textarea:focus{border-color:#7ca9c4;box-shadow:0 0 0 3px rgba(67,125,161,.11)}
.toolbar{padding:2px 0;gap:9px}
.segmented{border-color:#d5e0e8;box-shadow:0 1px 3px rgba(18,50,74,.03)}

/* Tables */
.table-wrap{border-radius:14px;border-color:var(--g78n-border);box-shadow:var(--g78n-shadow-sm)}
.data-table th{background:#f6f9fb;color:#647a8b}
.data-table td{border-bottom-color:#edf2f5}
.data-table tr:hover td{background:#f8fbfd}

/* Course selection */
.picker-shell,.login-shell{background:radial-gradient(circle at top right,#d8eaf3,transparent 35%),linear-gradient(135deg,#eef4f7,#f9fbfc)}
.picker-wrap{max-width:1180px}
.course-grid{gap:15px}
.course-card{border-radius:17px;padding:19px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.course-card:hover{transform:translateY(-2px);box-shadow:var(--g78n-shadow)}

/* Login card */
.login-card{border-color:#dde6ec;border-radius:22px;box-shadow:0 16px 45px rgba(18,50,74,.11)}

/* Mobile visual behavior only */
@media(max-width:900px){
  .portal-content,.content{padding-left:18px;padding-right:18px}
}
@media(max-width:650px){
  .portal-content,.content{padding-left:13px;padding-right:13px}
  .page-head h2{font-size:1.48rem}
  .panel{padding:15px}
}
