/* Positionnement institutionnel UniPay Université — public, rôles et continuité de session. */
.uni-presentation-tones {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0 24px;
}

.uni-presentation-tones p {
  margin: 0;
  padding: 14px 15px;
  border: 1px solid rgba(255,255,255,.14);
  border-top: 2px solid var(--cyan);
  border-radius: 16px;
  background: rgba(5,8,22,.52);
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.58;
}

.uni-presentation-tones p strong { display: block; margin-bottom: 5px; color: var(--text); }
.uni-tone-professional { border-top-color: var(--green) !important; }
.uni-tone-institutional { border-top-color: var(--warning) !important; }

.university-role-entry {
  position: relative;
  padding: 62px 0;
  scroll-margin-top: 76px;
}

.university-role-entry > .section-head { margin-bottom: 18px; }
.university-role-entry > .section-head p:last-child { max-width: 940px; }
.uni-public-kicker {
  margin-bottom: 8px;
  color: var(--cyan) !important;
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.university-role-status {
  margin: 0 0 16px;
  padding: 12px 15px;
  border: 1px solid rgba(0,245,255,.25);
  border-radius: 14px;
  background: rgba(0,245,255,.06);
  color: #d8fbff;
  font-size: .88rem;
  line-height: 1.5;
}

.university-role-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.university-role-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(255,255,255,.1), rgba(255,255,255,.045));
  box-shadow: 0 18px 44px rgba(0,0,0,.2);
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.university-role-card:hover,
.university-role-card[data-active="true"] {
  transform: translateY(-3px);
  border-color: rgba(0,245,255,.68);
  box-shadow: 0 20px 50px rgba(0,0,0,.28), 0 0 25px rgba(0,245,255,.12);
}

.university-role-card[data-active="true"]::after {
  content: "Session correspondante";
  align-self: flex-start;
  order: -1;
  margin: -7px 0 10px;
  padding: 4px 8px;
  border: 1px solid rgba(0,255,157,.38);
  border-radius: 999px;
  color: var(--green);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.university-role-card h3 { margin: 6px 0 8px; }
.university-role-card p { flex: 1; margin: 0 0 16px; color: var(--muted); line-height: 1.56; }
.university-role-card .btn { align-self: flex-start; min-height: 44px; }
.university-role-label {
  align-self: flex-start;
  padding: 5px 8px;
  border: 1px solid rgba(123,47,247,.42);
  border-radius: 999px;
  color: #e2d2ff;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.uni-visitor-journey { scroll-margin-top: 82px; }
.uni-visitor-journey-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:20px 0 28px; padding:0; list-style:none; }
.uni-visitor-journey-steps li { min-width:0; padding:14px; border:1px solid rgba(114,225,255,.2); border-radius:16px; background:linear-gradient(145deg,rgba(8,28,48,.76),rgba(16,45,62,.42)); }
.uni-visitor-journey-steps span { display:inline-grid; place-items:center; width:30px; height:30px; margin-bottom:10px; border-radius:10px; background:rgba(0,245,255,.12); color:#8ef4ff; font-size:.72rem; font-weight:900; }
.uni-visitor-journey-steps strong,.uni-visitor-journey-steps small { display:block; }
.uni-visitor-journey-steps strong { margin-bottom:4px; color:#fff; }
.uni-visitor-journey-steps small { color:var(--muted); line-height:1.4; }
.uni-visitor-catalog-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin:10px 0 14px; }
.uni-visitor-catalog-head h3 { margin:4px 0; }
.uni-visitor-catalog-head p { margin:0; color:var(--muted); line-height:1.5; }
.uni-visitor-catalog-note { flex:0 0 auto; padding:8px 11px; border:1px solid rgba(0,255,157,.26); border-radius:999px; color:#b7ffdf; font-size:.76rem; }
.uni-visitor-journey > #universityRoleEntry { margin-top:34px; padding-top:30px; border-top:1px solid rgba(114,225,255,.16); }
@media (max-width:980px) { .uni-visitor-journey-steps { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:620px) { .uni-visitor-journey-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .uni-visitor-journey-steps li { padding:12px; } .uni-visitor-catalog-head { align-items:flex-start; flex-direction:column; } .uni-visitor-catalog-note { white-space:normal; } }
.uni-visitor-journey-steps { display:none !important; }
.uni-institution-coverage { clear:both; display:block; margin:32px 0 0; padding:24px 26px; border:1px solid rgba(114,225,255,.2); border-radius:22px; background:linear-gradient(135deg,rgba(8,28,48,.82),rgba(21,34,68,.55)); box-shadow:0 16px 38px rgba(2,6,23,.18); }
.uni-institution-coverage h3 { margin:6px 0 8px; color:#fff; }
.uni-institution-coverage p:last-child { max-width:980px; margin:0; color:var(--muted); line-height:1.62; }
.uni-visitor-journey > #universityRoleEntry { clear:both; position:relative; margin-top:28px; }

@media (max-width: 980px) {
  .uni-presentation-tones,
  .university-role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .uni-presentation-tones,
  .university-role-grid { grid-template-columns: 1fr; }
  .university-role-entry { padding: 42px 0; }
  .university-role-card .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .university-role-card { transition: none; }
}
.uni-institution-value{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0 20px}
.uni-institution-value article{padding:18px;border:1px solid rgba(114,225,255,.2);border-radius:18px;background:linear-gradient(145deg,rgba(8,28,48,.76),rgba(16,45,62,.48));box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 14px 34px rgba(0,0,0,.17)}
.uni-institution-value span{display:block;color:#79e8ff;font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.uni-institution-value h2{margin:8px 0;font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.25}
.uni-institution-value p{margin:0;color:rgba(229,245,255,.82);font-size:.91rem;line-height:1.55}
@media(max-width:760px){.uni-institution-value{grid-template-columns:1fr}.uni-institution-value article{padding:15px}}

.manager-module-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 28px}
.manager-module-showcase article{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:start;padding:18px;border:1px solid rgba(95,226,255,.2);border-radius:20px;background:linear-gradient(145deg,rgba(6,26,49,.8),rgba(19,19,55,.58));box-shadow:inset 0 1px rgba(255,255,255,.08),0 14px 32px rgba(0,0,0,.16)}
.manager-module-visual{display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(108,241,255,.55);border-radius:18px;background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.25),rgba(0,210,255,.2) 35%,rgba(76,54,210,.42));box-shadow:0 0 22px rgba(0,225,255,.18);font-size:1.75rem}
.manager-module-showcase span{color:#8ef4ff;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.manager-module-showcase h3{margin:5px 0 7px;color:#fff;font-size:1.08rem;line-height:1.25}
.manager-module-showcase p{margin:0;color:rgba(225,243,255,.8);font-size:.9rem;line-height:1.55}
@media(max-width:760px){.manager-module-showcase{grid-template-columns:1fr}.manager-module-showcase article{grid-template-columns:54px 1fr;padding:15px}.manager-module-visual{width:50px;height:50px;font-size:1.45rem}}

.uni-hero-source-card {
  display: grid;
  gap: 12px;
  min-height: 100%;
  padding: 24px;
  border: 1px solid rgba(114,225,255,.24);
  border-radius: 22px;
  background: radial-gradient(circle at 20% 0%, rgba(0,245,255,.14), transparent 48%), rgba(7,16,34,.74);
  box-shadow: 0 18px 44px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.08);
}
.uni-hero-source-card h3 { margin: 0; color: #fff; line-height: 1.25; }
.uni-hero-source-card > p { margin: 0; line-height: 1.58; }
.uni-hero-source-card ol { display: grid; gap: 9px; margin: 4px 0 0; padding: 0; list-style: none; }
.uni-hero-source-card li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(255,255,255,.045); }
.uni-hero-source-card li strong { color: #fff; }
.uni-hero-source-card li span { color: var(--muted); font-size: .84rem; text-align: right; }

.uni-public-catalog-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 22px 0 24px; }
.uni-public-catalog-metric { display: grid; gap: 10px; min-width: 0; padding: 18px; border: 1px solid rgba(114,225,255,.2); border-radius: 19px; background: linear-gradient(145deg, rgba(8,28,48,.78), rgba(16,45,62,.4)); }
.uni-public-catalog-metric > div { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.uni-public-catalog-metric strong { color: #fff; font-size: clamp(1.65rem, 3vw, 2.25rem); line-height: 1; }
.uni-public-catalog-label { color: #8ef4ff; font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.uni-public-catalog-metric p { min-height: 3.1em; margin: 0; color: var(--muted); font-size: .87rem; line-height: 1.5; }
.uni-public-catalog-metric label { color: #d8fbff; font-size: .76rem; font-weight: 750; }
.uni-public-catalog-metric input { width: 100%; min-height: 42px; box-sizing: border-box; padding: 9px 11px; border: 1px solid rgba(255,255,255,.16); border-radius: 11px; background: rgba(0,0,0,.24); color: #fff; }
.uni-public-catalog-metric input:focus { outline: 2px solid rgba(0,245,255,.55); outline-offset: 2px; }

.uni-institution-coverage { clear: both; display: block; margin: 30px 0 0; padding: 26px; border: 1px solid rgba(114,225,255,.22); border-radius: 22px; background: linear-gradient(135deg, rgba(8,28,48,.86), rgba(21,34,68,.56)); box-shadow: 0 16px 38px rgba(2,6,23,.18); scroll-margin-top: 82px; }
.uni-institution-coverage h3 { margin: 6px 0 9px; color: #fff; line-height: 1.25; }
.uni-institution-coverage > p { max-width: 1060px; margin: 0; color: var(--muted); line-height: 1.65; }
.uni-institution-coverage-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 20px 0 16px; }
.uni-institution-coverage-grid article { min-width: 0; padding: 15px; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; background: rgba(255,255,255,.045); }
.uni-institution-coverage-grid span { display: block; margin-bottom: 7px; color: #8ef4ff; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }
.uni-institution-coverage-grid strong { display: block; margin-bottom: 5px; color: #fff; }
.uni-institution-coverage-grid p { margin: 0; color: rgba(229,245,255,.76); font-size: .86rem; line-height: 1.5; }
.uni-institution-coverage-note { padding-top: 14px; border-top: 1px solid rgba(255,255,255,.1); font-size: .86rem; }

/* The coverage card and the role entry are consecutive blocks in the public
   journey.  Keep their vertical rhythm deterministic: the generic section
   padding must not leak into this nested sequence when the session controller
   reveals or refreshes the catalogue. */
.uni-visitor-journey > #institutionCoverageEntry,
.uni-visitor-journey > #universityRoleEntry {
  position: relative;
  clear: both;
  box-sizing: border-box;
  margin-bottom: 0 !important;
}
.uni-visitor-journey > #institutionCoverageEntry {
  margin-top: 24px !important;
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}
.uni-visitor-journey > #universityRoleEntry {
  margin-top: 24px !important;
  padding-top: 30px !important;
  padding-bottom: 30px !important;
  border-top: 1px solid rgba(114,225,255,.16);
}
.uni-visitor-journey > #institutionCoverageEntry + #universityRoleEntry {
  margin-top: 24px !important;
}

@media (max-width: 980px) {
  .uni-public-catalog-summary { grid-template-columns: 1fr; }
  .uni-public-catalog-metric p { min-height: 0; }
  .uni-institution-coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .uni-hero-source-card { padding: 18px; }
  .uni-hero-source-card li { align-items: flex-start; flex-direction: column; gap: 4px; }
  .uni-hero-source-card li span { text-align: left; }
  .uni-institution-coverage { margin-top: 22px; padding: 18px; }
  .uni-institution-coverage-grid { grid-template-columns: 1fr; }
  .uni-visitor-journey > #institutionCoverageEntry { margin-top: 18px !important; padding: 18px !important; }
  .uni-visitor-journey > #universityRoleEntry { margin-top: 18px !important; padding: 24px 0 !important; }
}
