/* G78R — Full visual restoration on the stable G78Q/G17 interaction core.
   Presentation only. The global modal/open-close/event architecture is intentionally not modified. */

:root{
  --r-navy:#102f47;
  --r-navy-2:#174a66;
  --r-blue:#2b6f92;
  --r-blue-soft:#edf6fa;
  --r-cyan:#74b4d1;
  --r-ink:#17364a;
  --r-text:#314e60;
  --r-muted:#6d8190;
  --r-line:#dbe5eb;
  --r-line-soft:#eaf0f4;
  --r-canvas:#f4f7f9;
  --r-panel:#fff;
  --r-shadow-xs:0 2px 8px rgba(15,47,67,.035);
  --r-shadow-sm:0 6px 18px rgba(15,47,67,.055);
  --r-shadow:0 16px 42px rgba(15,47,67,.08);
  --r-radius:18px;
  --r-radius-sm:13px;
}

/* ---------- overall shell ---------- */
body{background:var(--r-canvas);color:var(--r-text)}
.portal-shell,.app-shell{background:var(--r-canvas)}
.portal-content,.content{background:
  radial-gradient(circle at 92% 0,rgba(109,178,209,.065),transparent 24%),
  linear-gradient(180deg,#f7f9fb 0,#f4f7f9 190px,#f4f7f9 100%)}
.portal-content{padding-top:86px}
.content{padding-top:88px}
#portalPageBody,.page{max-width:1480px;margin-left:auto;margin-right:auto}

/* ---------- login + course selection ---------- */
.login-shell,.picker-shell{
  background:
    radial-gradient(circle at 84% 12%,rgba(100,180,216,.22),transparent 31%),
    radial-gradient(circle at 8% 92%,rgba(16,68,96,.08),transparent 27%),
    linear-gradient(135deg,#eef4f7 0%,#f8fafb 62%,#eef5f8 100%);
}
.login-card{
  width:min(470px,100%);
  border:1px solid #d9e4ea;
  border-radius:26px;
  padding:31px;
  box-shadow:0 26px 75px rgba(16,48,70,.14);
}
.login-card::before{
  content:"Secure education & operations portal";
  display:inline-flex;
  margin:2px 0 10px;
  padding:5px 9px;
  border-radius:999px;
  background:#edf5f8;
  color:#3d718b;
  font-size:.6rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.085em;
}
.login-card h1{font-size:2rem;letter-spacing:-.04em;color:var(--r-ink)}
.login-card .muted{line-height:1.55}
.login-card .brand-mark{width:64px;height:64px;border-radius:19px;box-shadow:0 12px 28px rgba(15,53,76,.2)}
.login-card .btn.primary{min-height:44px}
.picker-wrap{max-width:1320px}
.picker-head{padding:28px 30px;margin-bottom:18px;border:1px solid var(--r-line);border-radius:21px;background:#fff;box-shadow:var(--r-shadow-sm)}
.picker-head h1{font-size:2rem;letter-spacing:-.04em;color:var(--r-ink)}
.course-grid{gap:14px}
.course-card{transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.course-card:hover{transform:translateY(-2px);border-color:#b9d1dd;box-shadow:var(--r-shadow)}

/* ---------- fixed top navigation ---------- */
.portal-topbar,.topbar{
  background:rgba(255,255,255,.97);
  border-bottom:1px solid rgba(15,48,70,.09);
  box-shadow:0 3px 17px rgba(14,43,62,.035);
  backdrop-filter:blur(14px);
}
.portal-topbar-inner{max-width:none}
.portal-top-title,.top-title{font-weight:860;letter-spacing:-.015em;color:#173b51}
.portal-top-subtitle,.top-subtitle{color:#778b99}
.portal-top-actions .btn,.top-actions .btn{border-radius:10px}
.sync-pill{border:1px solid #d4e8dd;background:#eef8f2;color:#2d6c48}

/* ---------- sidebars ---------- */
#portalSidebar,#sidebar{
  background:
    radial-gradient(circle at 80% 0,rgba(107,172,203,.12),transparent 28%),
    linear-gradient(180deg,#102f47 0%,#0e293e 100%);
  border-right:1px solid rgba(255,255,255,.04);
  box-shadow:8px 0 30px rgba(13,38,56,.05);
}
#portalSidebar .nav-group,#sidebar .nav-group{margin:2px 7px 7px;padding:5px 2px 8px}
#portalSidebar .nav-group+.nav-group,#sidebar .nav-group+.nav-group{border-top:1px solid rgba(255,255,255,.065);padding-top:10px}
#portalSidebar .nav-label,#sidebar .nav-label{padding:7px 11px 5px;color:#7997aa;font-size:.58rem;letter-spacing:.13em}
#portalSidebar .nav-btn,#sidebar .nav-btn{
  margin:2px 4px;
  padding:9px 10px;
  border-radius:10px;
  color:#d9e6ed;
  transition:background .14s ease,color .14s ease,transform .14s ease;
}
#portalSidebar .nav-btn:hover,#sidebar .nav-btn:hover{background:rgba(255,255,255,.085);color:#fff;transform:translateX(1px)}
#portalSidebar .nav-btn.active,#sidebar .nav-btn.active{
  background:linear-gradient(90deg,rgba(81,158,194,.32),rgba(255,255,255,.08));
  color:#fff;
  box-shadow:inset 3px 0 0 #b9deef;
}
#portalSidebar .sidebar-footer,#sidebar .sidebar-footer{border-top:1px solid rgba(255,255,255,.075);color:#c1d1da}
.version-tag{color:#6f8b9b!important}

/* ---------- context + page hierarchy ---------- */
.g78o-contextbar{border:1px solid #dde7ed;background:rgba(255,255,255,.94)}
.page-head{padding:5px 2px 15px;margin-bottom:18px}
.page-head h2{font-size:clamp(1.62rem,2.3vw,2rem);letter-spacing:-.04em}
.page-head .eyebrow{color:#4d7892}
.page-subtitle{max-width:900px;font-size:.79rem;line-height:1.52}
.head-actions .btn{min-height:39px}

/* ---------- organization home ---------- */
.portal-hero{
  min-height:210px;
  padding:34px 36px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:23px;
  background:
    radial-gradient(circle at 84% 10%,rgba(106,191,230,.24),transparent 32%),
    linear-gradient(135deg,#0d2b41 0%,#164861 60%,#226d8d 100%);
  box-shadow:0 18px 46px rgba(15,47,67,.12);
}
.portal-hero h3{font-size:clamp(2rem,3.6vw,2.65rem)!important;letter-spacing:-.045em}
.portal-hero p:not(.eyebrow){font-size:.9rem;line-height:1.62}
.portal-hero-badge{padding:15px 18px;border-radius:15px;background:rgba(255,255,255,.075)}
.g78q-home-groups{gap:20px}
.g78q-workspace-section{padding:20px;border-radius:20px;box-shadow:var(--r-shadow-xs)}
.g78q-workspace-section-head{margin-bottom:15px;padding-bottom:14px}
.g78q-workspace-section-icon{width:42px;height:42px;border-radius:12px}
.g78q-workspace-section-head h3{font-size:1.03rem}
.g78q-workspace-section .portal-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.g78q-workspace-section .portal-module-card{
  min-height:112px;
  padding:16px;
  border:1px solid #e0e8ed;
  border-radius:15px;
  background:linear-gradient(180deg,#fff,#fbfdfe);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.g78q-workspace-section .portal-module-card:hover{transform:translateY(-2px);border-color:#bdd2dd;box-shadow:0 10px 25px rgba(16,48,70,.075)}
.g78q-workspace-section .portal-card-icon{width:45px;height:45px}

/* ---------- universal administrative surfaces ---------- */
.panel,.organization-card,.portal-course-grid .course-card,.course-grid .course-card{
  border-color:var(--r-line);
  box-shadow:var(--r-shadow-xs);
}
.panel{border-radius:18px}
.panel-head{padding-bottom:11px;border-bottom:1px solid var(--r-line-soft)}
.panel-head h3{letter-spacing:-.018em}
.portal-section{margin-top:19px}
.info-banner{border-radius:14px;border-color:#d9e7ee;background:#f2f8fb}
.info-banner strong{color:#24516a}
.empty-state{border:1px dashed #cbd9e1;border-radius:15px;background:#fbfdfe;color:#738792}

/* ---------- dashboard + KPIs ---------- */
.kpi-grid,.portal-kpis{gap:12px}
.kpi{min-height:108px;border-radius:16px;padding:17px 18px;background:linear-gradient(180deg,#fff,#fbfdfe)}
.kpi .label{font-size:.61rem;letter-spacing:.09em}
.kpi .value{font-size:1.75rem;letter-spacing:-.035em}
.g10-dashboard-focus-grid,.g10-communications-grid{gap:16px}
.g10-focus-panel{border-radius:18px}
.attention-row,.g3-attention-row,.g3-recent-row,.announcement-row,.feed-post,.discussion-post{transition:background .14s ease,border-color .14s ease}

/* ---------- tables ---------- */
.table-wrap{border-radius:16px;box-shadow:var(--r-shadow-xs)}
.data-table th{height:42px;background:#f3f7f9;color:#5f7787;font-size:.59rem;letter-spacing:.075em}
.data-table td{height:48px}
.data-table tbody tr:hover td{background:#f7fafc}
.data-table .actions{gap:6px}

/* ---------- controls ---------- */
.toolbar{gap:9px}
.toolbar .search{background:#fff}
input,select,textarea{border-color:#d8e3e9;background:#fff}
input:focus,select:focus,textarea:focus{border-color:#72a9c4;box-shadow:0 0 0 3px rgba(61,139,177,.11)}
.btn{font-weight:780}
.btn.primary{box-shadow:0 3px 9px rgba(25,91,124,.12)}
.btn.primary:hover{transform:translateY(-1px)}
.btn.ghost:hover,.btn.secondary:hover{background:#f2f7f9}
.check-pill{background:#f8fbfc}
.segmented,.portal-subnav{background:#f2f6f8}

/* ---------- students / applicants ---------- */
.g5-student-card,.req-student,.applicant-card,.g15-applicant-panel,.admissions-panel,.admissions-class-panel{
  border-radius:16px;
  box-shadow:var(--r-shadow-xs);
}
.g5-student-card:hover,.applicant-card:hover{border-color:#bfd3de;box-shadow:var(--r-shadow-sm)}
.applicant-hero,.g15-applicant-hero{padding:22px;border-radius:20px;background:linear-gradient(135deg,#f2f8fb,#fff)}
.applicant-workspace-tabs{border-bottom:1px solid var(--r-line-soft);padding-bottom:8px}
.recipient-check,.recipient-locked{border-radius:11px}

/* ---------- calendar + attendance ---------- */
.calendar-grid{gap:6px}
.calendar-day{min-height:116px;border-radius:11px;box-shadow:0 1px 4px rgba(15,47,67,.018)}
.calendar-day:hover{border-color:#bdd3df}
.calendar-day.today{box-shadow:inset 0 0 0 1px #7eafc6}
.attendance-row{border-radius:13px;box-shadow:0 2px 7px rgba(15,47,67,.025)}
.att-btn{border-radius:9px}

/* ---------- LMS / files / clinical ---------- */
.assignment-card,.g12-assignment-card,.g12-week-panel,.g12-next-item,.g12-week-item,
.assignment-clean-form,.external-tool-row,.g14-clinical-card,.g14-readiness-card,.g14-requirement-row,
.g14-requirements-hero,.g14-student-panel,.g14-checklist-panel{
  border-radius:16px;
  box-shadow:var(--r-shadow-xs);
}
.g12-week-hero{padding:25px;border-radius:20px;background:linear-gradient(135deg,#0f344b,#1b5d7d)}
.g8-workspace-panel{border-radius:18px}
.g8-panel-intro,.g7-panel-intro{padding-bottom:12px;border-bottom:1px solid var(--r-line-soft)}

/* ---------- gradebook / payments / reports ---------- */
.g13-grade-hero,.g13-record-panel,.category-row,.payment-plan-card,.student-payment-overview,.g14-online-payment,
.g3-report-section,.g4-archive-main,.g4-certificate-summary{
  border-radius:16px;
  box-shadow:var(--r-shadow-xs);
}
.g7-workspace-choice,.g9-workspace-choice{border-radius:15px;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.g7-workspace-choice:hover,.g9-workspace-choice:hover{transform:translateY(-1px);border-color:#bdd1dd;box-shadow:var(--r-shadow-sm)}
.g7-workspace-choice.selected,.g9-workspace-choice.selected{background:#edf7fb;border-color:#7eafc6}

/* ---------- settings / website administration ---------- */
.settings-dashboard{gap:19px}
.settings-dashboard .panel.settings-card{border-radius:21px}
.settings-value-grid>div{min-height:78px}
.settings-access-grid>div{border-radius:17px}
.mode-card{border-radius:18px}
.public-settings-preview{border-radius:20px}
#publicSiteControlsForm .feature-list{border-radius:16px}

/* ---------- users and access ---------- */
.access-user-row,.permission-group,.permission-row,.access-user-card{
  border-color:#dfe8ed;
  border-radius:13px;
}
.access-user-row:hover,.permission-row:hover{background:#f8fbfd}
.permission-group{overflow:hidden;background:#fff}
.permission-group-head{background:#f4f8fa;border-bottom:1px solid #e6edf1}
.access-mode-select{border-radius:9px}

/* ---------- organization operational modules ---------- */
.portal-dashboard-grid,.operations-grid,.fleet-grid,.inventory-grid,.training-grid,.document-grid{gap:14px}
.portal-dashboard-grid>.panel,.operations-grid>.panel,.fleet-grid>.panel,.inventory-grid>.panel,.training-grid>.panel,.document-grid>.panel{
  border-radius:18px;
  box-shadow:var(--r-shadow-xs);
}
.training-offering-card,.vehicle-card,.inventory-card,.work-order-card,.purchase-order-card,.credential-card,.employee-card{
  border:1px solid var(--r-line);
  border-radius:15px;
  background:#fff;
  box-shadow:var(--r-shadow-xs);
}
.training-offering-card:hover,.vehicle-card:hover,.inventory-card:hover,.work-order-card:hover,.purchase-order-card:hover{
  border-color:#bdd2dd;
  box-shadow:var(--r-shadow-sm);
}

/* ---------- student / applicant portal presentation ---------- */
.student-hero,.applicant-portal-hero,.student-home-hero{
  border-radius:20px;
  background:linear-gradient(135deg,#11374f,#1c6485);
  box-shadow:0 15px 36px rgba(15,48,70,.12);
}
.student-dashboard-card,.student-next-card,.student-course-card,.applicant-portal-card{
  border:1px solid var(--r-line);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--r-shadow-xs);
}

/* ---------- public/loading neutral states ---------- */
.public-neutral{background:
  radial-gradient(circle at 84% 12%,rgba(84,170,211,.18),transparent 30%),
  linear-gradient(135deg,#eef5f8,#fff)}
.public-neutral-card{border:1px solid #dbe6ec;border-radius:26px;box-shadow:0 24px 65px rgba(14,40,64,.12)}

/* ---------- responsiveness ---------- */
@media(max-width:1180px){
  .g78q-workspace-section .portal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-hero{grid-template-columns:1fr;min-height:0}
  .portal-hero-badge{justify-self:start}
}
@media(max-width:820px){
  .portal-content,.content{padding-top:78px}
  .page-head{align-items:flex-start}
  .g78q-workspace-section{padding:15px}
  .g78q-workspace-section-head{flex-direction:column}
  .g78q-workspace-section-count{align-self:flex-start}
}
@media(max-width:650px){
  .login-card{padding:23px;border-radius:22px}
  .picker-head{padding:20px;border-radius:17px}
  .portal-hero{padding:24px 20px;border-radius:19px}
  .portal-hero h3{font-size:1.85rem!important}
  .g78q-workspace-section .portal-card-grid{grid-template-columns:1fr}
  .g78q-workspace-section{border-radius:17px}
  .panel{border-radius:15px}
}
