/* G78T — Brand & enterprise refinement on the confirmed-working G78S interaction core.
   Presentation only. No interaction, authentication, database, or workflow behavior is changed. */

:root{
  --t-navy:#102f47;
  --t-navy-2:#173f59;
  --t-blue:#2e6e91;
  --t-blue-2:#4f91b4;
  --t-ice:#eef5f8;
  --t-canvas:#f4f7f9;
  --t-panel:#ffffff;
  --t-ink:#17384d;
  --t-text:#3a5567;
  --t-muted:#748795;
  --t-line:#dce6ec;
  --t-line-soft:#eaf0f3;
  --t-shadow-xs:0 2px 8px rgba(15,47,67,.035);
  --t-shadow-sm:0 8px 24px rgba(15,47,67,.07);
  --t-shadow:0 20px 52px rgba(15,47,67,.105);
}

/* ---------- Exeter brand assets ---------- */
#loginView .brand-mark,
#portalHubView .brand-mark,
#appShell .brand-mark,
#coursePickerView .brand-mark{
  color:transparent!important;
  text-shadow:none!important;
  background-color:transparent!important;
  background-image:url('logo-icon-sm.webp')!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:contain!important;
  box-shadow:none!important;
  border-radius:0!important;
}
#loginView .brand-mark{width:82px!important;height:68px!important;margin-bottom:4px}
#portalHubView .brand-mark.small,#appShell .brand-mark.small{width:46px!important;height:39px!important;flex:0 0 46px}

/* ---------- login ---------- */
#loginView.login-shell{
  background:
    linear-gradient(120deg,rgba(244,248,250,.96),rgba(246,249,251,.94)),
    url('logo-watermark.png') right -90px bottom -115px/520px 520px no-repeat,
    linear-gradient(135deg,#edf3f6,#f9fbfc 58%,#edf4f7);
}
#loginView .login-card{
  width:min(500px,calc(100vw - 32px));
  padding:38px 38px 32px;
  border-radius:28px;
  border:1px solid #d7e3e9;
  background:linear-gradient(180deg,#fff 0%,#fdfefe 100%);
  box-shadow:0 30px 85px rgba(15,47,67,.16);
}
#loginView .login-card::before{
  background:#edf5f8;
  border:1px solid #dce9ef;
  color:#3f718a;
  padding:6px 10px;
}
#loginView .login-card h1{font-size:2.18rem;line-height:1.02;margin:.18em 0 .3em;color:#17384d}
#loginView .login-card>p.muted{font-size:.88rem;line-height:1.62;max-width:410px}
#loginView .login-card label{font-size:.69rem;color:#526c7c}
#loginView .login-card input{min-height:46px;border-radius:12px}
#loginView .login-card .btn.primary{min-height:47px;border-radius:12px;font-size:.82rem}
#loginView .login-card .btn.ghost{border-radius:11px}

/* ---------- top bars ---------- */
.portal-topbar,.topbar{
  min-height:76px;
  background:rgba(255,255,255,.985);
  border-bottom:1px solid #dfe8ed;
  box-shadow:0 5px 22px rgba(15,47,67,.045);
}
.portal-topbar .brand-inline,.topbar .brand-inline{gap:12px}
.portal-topbar .top-title,.topbar .top-title{font-size:.92rem;font-weight:870;color:#17384d}
.portal-topbar .top-subtitle,.topbar .top-subtitle{font-size:.64rem;color:#7a8d99}
.portal-top-actions,.top-actions{gap:7px}
.portal-top-actions .btn,.top-actions .btn{border-radius:11px;min-height:38px}
.portal-org-select{min-height:39px;border-radius:11px;background:#f9fbfc}

/* ---------- sidebars ---------- */
#portalSidebar,#sidebar{
  background-color:#102f47;
  background-image:
    linear-gradient(180deg,rgba(16,47,71,.98),rgba(11,35,53,.99)),
    url('logo-watermark.png');
  background-repeat:no-repeat,no-repeat;
  background-position:center,center bottom -120px;
  background-size:auto,300px 300px;
}
#portalSidebar nav,#sidebar nav{padding-top:12px}
#portalSidebar .nav-label,#sidebar .nav-label{color:#7fa0b3;font-size:.57rem;letter-spacing:.145em}
#portalSidebar .nav-btn,#sidebar .nav-btn{min-height:40px;font-size:.75rem;font-weight:720}
#portalSidebar .nav-btn span,#sidebar .nav-btn span{width:22px;text-align:center;opacity:.9}
#portalSidebar .nav-btn.active,#sidebar .nav-btn.active{
  background:linear-gradient(90deg,rgba(69,143,179,.39),rgba(255,255,255,.07));
  box-shadow:inset 3px 0 0 #a7d6ec,0 6px 18px rgba(0,0,0,.07);
}
#portalSidebar .sidebar-footer,#sidebar .sidebar-footer{
  background:rgba(5,24,38,.28);
}
#portalSidebar .sidebar-footer .user-name,#sidebar .sidebar-footer .user-name{color:#f2f7f9;font-weight:800}

/* ---------- page framing ---------- */
.portal-content,.content{
  background:
    radial-gradient(circle at 88% 0,rgba(80,153,187,.075),transparent 25%),
    linear-gradient(180deg,#f8fafb 0,#f4f7f9 220px,#f4f7f9 100%);
}
#portalPageBody,.page{max-width:1500px}
.page-head{
  padding:6px 2px 17px;
  border-bottom:1px solid #e5ecef;
  margin-bottom:21px;
}
.page-head h2{font-size:clamp(1.7rem,2.35vw,2.18rem);color:#17384d;letter-spacing:-.045em}
.page-head .eyebrow{font-size:.6rem;letter-spacing:.11em;color:#4b7992}
.page-subtitle{font-size:.79rem;line-height:1.58;color:#748794}
.head-actions{gap:7px}
.head-actions .btn{min-height:40px;border-radius:11px}

/* ---------- organization workspace ---------- */
.portal-hero{
  min-height:226px;
  padding:38px 40px;
  border-radius:25px;
  background:
    radial-gradient(circle at 87% 18%,rgba(116,193,228,.25),transparent 29%),
    linear-gradient(135deg,rgba(12,41,61,.98),rgba(20,72,97,.96) 62%,rgba(34,109,141,.94)),
    url('logo-watermark.png') right 28px center/240px 240px no-repeat;
  box-shadow:0 22px 54px rgba(15,47,67,.15);
}
.portal-hero h3{max-width:850px}
.portal-hero p:not(.eyebrow){max-width:760px}
.portal-hero-badge{border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.g78q-home-groups{gap:22px}
.g78q-workspace-section{
  padding:22px;
  border:1px solid #dce6eb;
  background:linear-gradient(180deg,#fff,#fbfdfe);
  box-shadow:0 7px 24px rgba(15,47,67,.05);
}
.g78q-workspace-section-head{gap:13px;padding-bottom:15px;border-bottom:1px solid #e8eef2}
.g78q-workspace-section-icon{background:linear-gradient(145deg,#edf6fa,#e4f0f5);color:#2f7394}
.g78q-workspace-section-head h3{font-size:1.08rem;color:#17384d}
.g78q-workspace-section .portal-module-card{padding:18px;border-radius:16px}
.g78q-workspace-section .portal-module-card h3{font-size:.89rem;color:#1b4259}
.g78q-workspace-section .portal-module-card p{font-size:.69rem;line-height:1.48;color:#7a8c98}

/* ---------- panels and cards ---------- */
.panel,.organization-card,.portal-module-card,.course-card,
.g5-student-card,.applicant-card,.req-student,.g14-clinical-card,.g14-readiness-card,
.assignment-card,.g12-assignment-card,.g10-focus-panel{
  border-color:#dce6eb;
  box-shadow:var(--t-shadow-xs);
}
.panel{border-radius:19px;background:linear-gradient(180deg,#fff,#fdfefe)}
.panel-head{padding-bottom:12px;border-bottom:1px solid #e9eff2}
.panel-head h3{font-size:.91rem;color:#1d4258}
.panel-head .tiny.muted{line-height:1.42}
.portal-section{margin-top:21px}
.info-banner{border-color:#d8e7ee;background:linear-gradient(180deg,#f4f9fb,#f7fbfc)}
.empty-state,.empty-inline{background:#fbfdfe}

/* ---------- KPI / dashboard ---------- */
.kpi-grid,.portal-kpis{gap:13px}
.kpi{
  min-height:112px;
  border:1px solid #dce6eb;
  background:linear-gradient(160deg,#fff,#f8fbfc);
  box-shadow:0 5px 18px rgba(15,47,67,.045);
}
.kpi .label{color:#6f8491}
.kpi .value{color:#17384d}
.g10-section-heading{padding-top:4px}
.g10-section-heading h3{color:#1c4057}

/* ---------- tables ---------- */
.table-wrap{border:1px solid #dde7ec;border-radius:17px;background:#fff;box-shadow:0 4px 15px rgba(15,47,67,.04)}
.data-table th{background:linear-gradient(180deg,#f5f8fa,#f1f6f8);color:#617a89}
.data-table tbody tr:nth-child(even) td{background:#fcfdfe}
.data-table tbody tr:hover td{background:#f5f9fb}
.data-table td{border-color:#eef2f4}

/* ---------- forms / controls ---------- */
input,select,textarea{border-radius:11px;border-color:#d7e2e8;background:#fff}
input:hover,select:hover,textarea:hover{border-color:#c6d6df}
.toolbar{padding:2px 0 5px}
.toolbar .search{border-radius:11px}
.btn{border-radius:10px}
.btn.primary{background:linear-gradient(180deg,#2e7295,#245f7d);border-color:#245f7d;box-shadow:0 4px 11px rgba(28,92,124,.15)}
.btn.primary:hover{background:linear-gradient(180deg,#337b9f,#286985)}
.btn.secondary,.btn.ghost{background:#fff}
.btn.secondary:hover,.btn.ghost:hover{background:#f4f8fa}
.badge,.status-pill,.nav-count{font-weight:800}

/* ---------- course picker ---------- */
#coursePickerView .picker-wrap{padding-top:42px;padding-bottom:58px}
#coursePickerView .picker-head{
  position:relative;
  overflow:hidden;
  padding:31px 33px;
  border-radius:23px;
  background:
    linear-gradient(100deg,rgba(255,255,255,.99),rgba(250,253,254,.98)),
    url('logo-watermark.png') right -30px center/210px 210px no-repeat;
}
#coursePickerView .picker-head h1{font-size:2.15rem;color:#17384d}
#coursePickerView .course-card{border-radius:18px;min-height:150px}

/* ---------- settings / admin ---------- */
.settings-section,.g9-access-card,.g9-user-card,.portal-settings-card,
.public-site-editor-card,.g70-settings-card{
  border-radius:18px!important;
  border-color:#dce6eb!important;
  box-shadow:0 4px 16px rgba(15,47,67,.04)!important;
}
.settings-section h3,.g9-access-card h3,.g9-user-card h3{color:#1c4157}
.segmented,.portal-subnav{padding:4px;border:1px solid #dfe8ed;border-radius:12px;background:#f1f6f8}
.segmented button,.portal-subnav button{border-radius:8px}

/* ---------- student / applicant presentation ---------- */
.g13-student-page .panel,.g14-student-page .panel{background:linear-gradient(180deg,#fff,#fbfdfe)}
.applicant-hero,.g15-applicant-hero,.g14-requirements-hero{border:1px solid #dbe7ed;background:linear-gradient(135deg,#eef6f9,#fff 62%)}
.recipient-check,.recipient-locked{background:#fbfdfe}

/* ---------- responsive internal ---------- */
@media(max-width:1100px){
  .g78q-workspace-section .portal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-hero{padding:32px 30px}
}
@media(max-width:720px){
  #loginView .login-card{padding:30px 24px 26px}
  .portal-topbar,.topbar{min-height:68px}
  .portal-hero{min-height:auto;padding:28px 24px;border-radius:20px}
  .g78q-workspace-section{padding:17px}
  .g78q-workspace-section .portal-card-grid{grid-template-columns:1fr}
  .page-head{align-items:flex-start}
}
