/* Sistema visual compartido: portal, campus y administración. */
:root {
  --ui-ink: #182c45;
  --ui-muted: #586b82;
  --ui-line: #e0e7ef;
  --ui-canvas: #f5f7fb;
  --ui-primary: #245dac;
  --ui-soft: #eef4ff;
  --ui-teal: #16746b;
  --ui-shadow: 0 4px 20px rgb(27 53 88 / 5%);
  --ink: var(--ui-ink);
  --muted: var(--ui-muted);
  --paper: var(--ui-canvas);
  --portal-ink: var(--ui-ink);
  --portal-muted: var(--ui-muted);
  --portal-canvas: var(--ui-canvas);
  --portal-line: var(--ui-line);
  --admin-canvas: var(--ui-canvas);
  --admin-ink: var(--ui-ink);
  --admin-muted: var(--ui-muted);
}
body { font-family: var(--font-ui); text-rendering: optimizeLegibility; }
h1, h2, h3 { font-family: var(--font-ui); letter-spacing: -.025em; }
button, input, select, textarea { font-family: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 3px solid #76a9e5; outline-offset: 3px; }
.app-header { background: #fff; border-bottom: 1px solid var(--ui-line); box-shadow: 0 2px 12px rgb(27 53 88 / 3%); padding-inline: clamp(18px, 3.5vw, 54px); }
.app-header .brand { gap: 9px; }
.app-header .brand-mark { background: #fff; box-shadow: none; border: 0; border-radius: 0; width: 35px; height: 40px; }
.app-header .brand-mark img { width: 100%; height: 100%; object-fit: contain; }
.app-header .brand-wordmark { width: 112px; max-height: 28px; }
.app-header .brand-copy small { display: none; }
.app-header .tab-nav { gap: 5px; }
.app-header .tab-nav :is(button, a) { min-height: 44px; padding: 11px 14px; border-radius: 10px; color: #53657a; font-size: 13px; font-weight: 600; background: transparent; }
.app-header .tab-nav :is(button, a):hover { color: var(--ui-primary); background: #f6f8fc; }
.app-header .tab-nav :is(button.active, a.active) { background: var(--ui-soft); color: #1d5095; box-shadow: none; }
.app-header .tab-nav button > span { background: #e3ebf6; color: #325576; font-size: 10px; }
.app-header .header-login { border-radius: 10px; background: var(--ui-primary); font-weight: 650; }
.app-header .header-register { font-weight: 600; }
.app-header :is(.plan-button, .header-notifications-button) { border: 1px solid var(--ui-line); border-radius: 11px; width: 42px; height: 42px; min-height: 42px; background: #fff; box-shadow: none; color: var(--ui-ink); }
.app-header .header-profile { border: 1px solid var(--ui-line); border-radius: 11px; min-height: 44px; padding: 5px 9px 5px 5px; color: #243d5c; }
.app-header .header-profile-avatar { border-radius: 8px; background: #1e4f96; color: #fff; font-weight: 700; }
.app-header .header-profile-label { font-size: 12px; font-weight: 600; }
.public-profile-menu, .public-notifications-menu { border-color: var(--ui-line); border-radius: 16px; box-shadow: 0 16px 48px rgb(25 45 75 / 14%); }
.public-profile-identity { background: #f7f9fd; }
.public-profile-links :is(a, button) strong { font-weight: 650; }
.public-profile-links :is(a, button) small { font-weight: 400; }
.market-hero { background: #f1f5fb; border-radius: 20px; }
.market-hero h1 { font-weight: 750; font-size: clamp(34px, 4.25vw, 62px); line-height: 1.1; }
.market-hero .market-lead { color: #53677f; font-weight: 400; line-height: 1.75; }
.market-kicker, .market-section-head > div > span { letter-spacing: .07em; font-weight: 650; }
.catalog-course-card, .home-course-card, .specializations-page .specialization-card { border-radius: 14px; border-color: var(--ui-line); box-shadow: var(--ui-shadow); }
[data-tab-panel="cursos"] .catalog-card-body h3, .home-course-body h3 { font-weight: 650; line-height: 1.4; font-size: 18px; }
.specializations-page .specialization-card-art strong { font-weight: 700; line-height: 1.15; font-size: clamp(24px, 2.2vw, 30px); }
.catalog-card-meta, .home-course-meta { color: var(--ui-muted); line-height: 1.6; }
.catalog-card-actions button { border-radius: 9px; font-weight: 650; }
.catalog-shell, .market-section { color: var(--ui-ink); }
.catalog-course-card:hover, .home-course-card:hover, .specializations-page .specialization-card:hover { box-shadow: 0 9px 28px rgb(27 53 88 / 10%); transform: translateY(-2px); }
.course-detail-heading h1 { font-weight: 750; }
.course-detail-aside .course-buy-card { border-color: var(--ui-line); border-radius: 16px; }
.drawer-provider-section legend { font-size: 14px; }
.checkout-provider { border-radius: 12px; }
.checkout-provider-copy strong { font-weight: 650; }
.checkout-provider-copy small { font-weight: 400; }
.checkout-provider-copy small, .checkout-account-card small, .drawer-payment-caption, [data-drawer-subtitle] { color: var(--ui-muted); font-size: 11px; line-height: 1.5; }
.plan-drawer [data-drawer-subtitle] { color: var(--ui-muted); font-size: 11px; line-height: 1.5; }
.checkout-account-card .checkout-account-avatar { color: #fff; font-size: 11px; }
.checkout-yape { background: #faf7ff; border-color: #e8def4; opacity: 1; }
.checkout-yape .checkout-future-icon { border-radius: 12px; background: #eee5f8; color: #68378e; }
.checkout-yape .checkout-soon { background: #eee5f8; color: #68378e; }
.checkout-security-note strong { font-weight: 650; }
.checkout-security-note small { line-height: 1.6; }
.plan-drawer { box-shadow: -12px 0 45px rgb(24 44 69 / 10%); }
.cookie-consent { border-radius: 14px; box-shadow: 0 10px 36px rgb(24 44 69 / 12%); }
body:not(.is-course-player) .learning-shell > .topbar { background: #fff; border-bottom: 1px solid var(--ui-line); box-shadow: 0 2px 12px rgb(27 53 88 / 3%); }
body:not(.is-course-player) .topbar .brand-mark { background: #fff; box-shadow: none; border: 0; width: 35px; height: 40px; border-radius: 0; }
body:not(.is-course-player) .topbar .brand-mark img { object-fit: contain; }
.partner-primary-nav button, .teacher-primary-nav a { font-size: 13px; font-weight: 600; min-height: 44px; border-radius: 10px; padding: 11px 14px; color: #53657a; }
.partner-primary-nav button.active, .teacher-primary-nav a.active { background: var(--ui-soft); color: #1d5095; }
body:not(.is-course-player) .topbar-actions .topbar-icon-button { border: 1px solid var(--ui-line); color: var(--ui-ink); border-radius: 11px; background: #fff; width: 42px; height: 42px; min-height: 42px; }
body:not(.is-course-player) .topbar-actions .profile-chip { border: 1px solid var(--ui-line); color: var(--ui-ink); border-radius: 11px; background: #fff; min-height: 44px; padding: 5px 9px 5px 5px; }
.profile-chip b { font-size: 12px; font-weight: 600; }
body.is-course-player .topbar { background: #182d47; }
.player-progress-button, .curriculum-open-button { border-radius: 9px; }
.aula-authenticated:not([data-aula-view="partner"]) .aula-welcome { border-radius: 18px; background: #eef3fb; border-color: var(--ui-line); box-shadow: none; }
.aula-welcome h1 { font-weight: 750; font-size: clamp(28px, 3vw, 42px); line-height: 1.18; }
.aula-welcome-copy > p:not(.aula-kicker) { font-weight: 400; line-height: 1.7; }
.aula-local-nav button { border-radius: 10px; font-weight: 600; }
.aula-local-nav button.active { background: #eaf1fc; color: #1d5095; }
.aula-course-card, .aula-agenda-card, .student-course-card, .teacher-course-card { border-radius: 14px; border-color: var(--ui-line); box-shadow: var(--ui-shadow); }
.aula-course-card h3, .teacher-course-card h3 { font-weight: 650; line-height: 1.4; }
.auth-card { border-radius: 18px; border-color: var(--ui-line); box-shadow: 0 16px 46px rgb(24 44 69 / 7%); }
.auth-brand h1 { font-weight: 700; }
.auth-intro { font-weight: 400; }
.admin-sidebar { background: #152d4c; }
.admin-navigation button { border-radius: 9px; font-weight: 550; }
.admin-navigation button.active, .admin-navigation button[aria-current="page"] { background: #28496f; border-color: #45678c; color: #fff; }
.admin-section-card, .admin-metric, .admin-data-card { border-radius: 14px; border-color: var(--ui-line); box-shadow: var(--ui-shadow); }
.admin-view h1 { font-weight: 750; }
.admin-table :is(td, th) { line-height: 1.6; }
.admin-view :is(input, select, textarea), .account-dialog :is(input, select, textarea) { border-radius: 9px; }
.account-dialog .account-dialog-identity h2, .account-dialog .account-panel-heading h3 { font-weight: 700; }
.account-dialog .account-dialog-tabs button { font-weight: 600; }
.account-dialog .account-dialog-tabs button span { font-weight: 650; }
.account-dialog .account-details dt { font-weight: 500; color: #64758a; text-transform: none; font-size: 11px; letter-spacing: 0; }
.account-dialog .account-details dd { font-weight: 600; font-size: 13px; color: var(--ui-ink); }
.account-dialog .account-edit-button { border-radius: 9px; font-weight: 650; }
.account-dialog .settings-consequences small { color: #53667b; }
.institutional-workspace { --institutional-accent: #245dac; --institutional-soft: #eef4ff; display: grid; gap: 16px; margin: 0 0 24px; min-width: 0; color: var(--ui-ink); }
.aula-authenticated[data-aula-view="partner"] > .institutional-workspace { max-width: 1280px; width: calc(100% - 48px); margin: 28px auto 0; }
.aula-authenticated[data-aula-view="partner"] .aula-workspace { padding-top: 18px; }
.aula-authenticated[data-aula-view="partner"] .aula-content { padding-top: 0; }
.institutional-workspace[data-institution="corede"], .account-dialog[data-institution="corede"] { --institutional-accent: #16746b; --institutional-soft: #edf8f5; }
.institutional-workspace[data-institution="aneic"], .account-dialog[data-institution="aneic"] { --institutional-accent: #294775; --institutional-soft: #eff3fa; }
.institutional-context { display: flex; align-items: center; gap: 17px; background: #fff; padding: 22px 24px; border: 1px solid var(--ui-line); border-radius: 16px; box-shadow: var(--ui-shadow); }
.institutional-mark { width: 64px; height: 64px; flex: 0 0 64px; border: 1px solid #e1e8f0; border-radius: 16px; background: var(--institutional-soft, #eef4ff); display: grid; place-items: center; color: var(--institutional-accent, #245dac); overflow: hidden; }
.institutional-mark img { width: 100%; height: 100%; object-fit: contain; background: #fff; padding: 7px; }
.institutional-workspace svg, .institutional-profile-card svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.institutional-identity { min-width: 0; flex: 1; }
.institutional-identity > span, .institutional-profile-card > div > span { display: block; color: var(--institutional-accent, #245dac); font-size: 11px; font-weight: 650; margin-bottom: 6px; }
.institutional-identity h1 { font-size: clamp(20px, 2.2vw, 27px); font-weight: 700; line-height: 1.25; margin: 0; overflow-wrap: anywhere; }
.institutional-identity p { font-size: 12px; color: var(--ui-muted); font-weight: 400; margin: 7px 0 0; line-height: 1.5; }
.institutional-workspace .institutional-profile-button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 13px; color: #425b78; background: #fff; border: 1px solid var(--ui-line); border-radius: 10px; font: 600 12px var(--font-ui); cursor: pointer; }
.institutional-workspace .institutional-profile-button svg { width: 17px; height: 17px; }
.institutional-metrics { display: grid; grid-template-columns: repeat(var(--metric-columns), minmax(0, 1fr)); gap: 12px; }
.institutional-workspace:not([data-section="overview"]) .institutional-metrics { display: none; }
.aula-authenticated:not([data-aula-view="partner"]) > .institutional-workspace { display: none; }
.institutional-benefit { display: flex; align-items: center; gap: 20px; padding: 17px 22px; border: 1px solid #d5e3f5; border-radius: 13px; background: #f1f6ff; }
.institutional-benefit > div > span { display: block; color: #536c8c; font-size: 11px; margin-bottom: 5px; }
.institutional-benefit > div > strong { font-size: 20px; font-weight: 650; color: #204f8e; }
.institutional-benefit strong small { font-size: 11px; font-weight: 400; }
.institutional-coupon { flex: 1; border-left: 1px solid #d4e1f3; padding-left: 22px; }
.institutional-benefit .institutional-coupon strong { font-size: 15px; letter-spacing: .025em; overflow-wrap: anywhere; }
.institutional-benefit :is(button, a) { font: 600 12px var(--font-ui); display: inline-flex; align-items: center; gap: 9px; justify-content: center; min-height: 42px; padding: 10px 14px; border: 1px solid #c8d9ef; border-radius: 9px; background: #fff; color: #245dac; text-decoration: none; cursor: pointer; }
.institutional-workspace:not([data-section="overview"]) .institutional-benefit, .aula-authenticated[data-aula-view="partner"] .partner-activity-access { display: none; }
.institutional-workspace .institutional-metric { display: flex; align-items: center; text-align: left; gap: 12px; padding: 19px; border: 1px solid var(--ui-line); border-radius: 13px; background: #fff; font-family: var(--font-ui); cursor: pointer; box-shadow: var(--ui-shadow); min-width: 0; }
.institutional-metric-icon { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; background: var(--institutional-soft); color: var(--institutional-accent); border-radius: 11px; }
.institutional-metric-icon svg { width: 19px; height: 19px; }
.institutional-metric > span:nth-child(2) { flex: 1; min-width: 0; }
.institutional-metric small { display: block; color: var(--ui-muted); font-size: 11px; font-weight: 500; line-height: 1.4; }
.institutional-metric strong { display: block; color: var(--ui-ink); font-size: 24px; font-weight: 700; line-height: 1.3; margin-top: 5px; font-variant-numeric: tabular-nums; }
.institutional-metric-arrow { color: #64758a; font-size: 14px; }
.institutional-workspace .institutional-metric:hover { border-color: #b8cce3; background: #fbfcff; }
body.is-partner-dashboard .partner-hero, body.is-partner-dashboard [data-partner-kpis] { display: none; }
.partner-activity-shell { gap: 18px; --partner-activity-ink: var(--ui-ink); --partner-activity-muted: var(--ui-muted); --partner-activity-line: var(--ui-line); }
.partner-activity-access { border-radius: 14px; box-shadow: var(--ui-shadow); }
.partner-activity-code { grid-template-columns: 48px minmax(0, 1fr); padding: 17px 20px; gap: 14px; }
.partner-activity-code > img, .partner-activity-mark { width: 48px; height: 48px; }
.partner-activity-code code { font-family: var(--font-ui); font-size: 18px; font-weight: 650; letter-spacing: .015em; }
.partner-activity-code > div > span, .partner-activity-head > div > span { text-transform: none; font-weight: 500; font-size: 11px; letter-spacing: 0; }
.partner-activity-courses { border-radius: 14px; box-shadow: var(--ui-shadow); }
.partner-activity-head { padding: 20px 22px; }
.partner-activity-head h2 { font-size: 21px; font-weight: 700; line-height: 1.3; }
.partner-course-ledger-row { min-height: 112px; padding-top: 16px; padding-bottom: 16px; }
.partner-book-cover { width: 65px; height: 80px; box-shadow: 0 4px 10px rgb(27 53 88 / 9%); }
.partner-course-ledger-info :is(h3, .partner-course-ledger-title) { font-size: 15px; font-weight: 650; line-height: 1.4; }
.partner-course-ledger-metric strong { font-size: 19px; font-weight: 650; }
.partner-section, .aula-partner-section { border-radius: 15px; }
.partner-section-head h2, .aula-partner-card-head h2, .aula-partner-community-copy h2 { font-size: 23px; font-weight: 700; }
.partner-section-head p, .aula-partner-card-head p { font-weight: 400; }
.partner-section-head p, .partner-community-summary span, .partner-funds-summary span { color: var(--ui-muted); }
.partner-community-summary span, .partner-funds-summary span { font-size: 11px; font-weight: 500; text-transform: none; letter-spacing: 0; }
.partner-funds-summary small, .partner-payout-profile > p, .partner-payout-profile > small, .partner-payout-profile dt, .partner-fund-table small, .partner-funds-empty p { color: var(--ui-muted); }
.partner-payout-profile dt { font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.aula-partner-community-overview, .partner-community-summary, .partner-funds-summary { border-radius: 13px; }
.aula-partner-fund-card, .partner-funds-card, .aula-partner-asset-card { border-radius: 14px; border-color: var(--ui-line); box-shadow: var(--ui-shadow); }
.aula-partner-table-row, .partner-table-row { font-size: 13px; }
.aula-partner-table-row strong, .partner-table-row strong { font-weight: 600; }
.partner-rewards { border-radius: 16px; }
.partner-rewards { padding: 23px; }
.partner-rewards-head h2 { font-size: 24px; margin-top: 4px; }
.partner-rewards-heading-icon { width: 42px; height: 42px; border-radius: 12px; }
.partner-rewards-heading-icon svg { width: 25px; height: 25px; }
.partner-rewards-summary { margin: 18px 0; padding: 15px 18px; }
.partner-rewards-counter > strong { font-size: 38px; }
.partner-gift-card { padding: 18px; }
.partner-gift-value { font-size: 51px; margin: 17px 0; }
.partner-rewards-footer { margin-top: 16px; padding-top: 16px; }
body.is-partner-dashboard .partner-primary-nav button { font-weight: 600; }
body.is-partner-dashboard .partner-primary-nav button.active { background: var(--ui-soft); color: #1d5095; }
.institutional-profile-card { display: flex; align-items: center; gap: 15px; border: 1px solid var(--ui-line); border-radius: 13px; padding: 18px; background: #f9fbfd; margin-bottom: 18px; }
.institutional-profile-card > div { min-width: 0; }
.institutional-profile-card strong { display: block; color: var(--ui-ink); font-size: 17px; line-height: 1.4; font-weight: 650; }
.institutional-profile-card small { display: block; color: var(--ui-muted); font-size: 11px; margin-top: 5px; line-height: 1.5; }
@media (max-width: 1100px) {
  .app-header .tab-nav :is(button, a) { padding-inline: 10px; font-size: 12px; }
  .institutional-workspace .institutional-metric { padding: 15px; gap: 10px; }
  .institutional-metric-icon { width: 30px; height: 30px; flex-basis: 30px; }
}
@media (max-width: 720px) {
  .institutional-context { gap: 12px; padding: 17px; flex-wrap: wrap; }
  .institutional-mark { width: 48px; height: 48px; flex-basis: 48px; border-radius: 12px; }
  .institutional-identity { flex-basis: calc(100% - 64px); }
  .institutional-identity h1 { font-size: 19px; }
  .institutional-identity > span { font-size: 10px; margin-bottom: 5px; }
  .institutional-identity p { font-size: 11px; }
  .institutional-workspace .institutional-profile-button { margin-left: 60px; font-size: 11px; padding: 8px 12px; min-height: 40px; }
  .institutional-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .institutional-workspace .institutional-metric { padding: 13px; gap: 9px; }
  .institutional-metric strong { font-size: 20px; }
  .institutional-metric-arrow, .institutional-metric-icon { display: none; }
  .institutional-workspace { gap: 12px; margin-bottom: 18px; }
  .aula-authenticated[data-aula-view="partner"] > .institutional-workspace { width: calc(100% - 32px); margin-top: 20px; }
  .partner-rewards { padding: 18px 14px; }
  .partner-rewards-head h2 { font-size: 21px; }
  .partner-rewards-summary { margin: 16px 0; padding: 14px; gap: 12px; }
  .partner-rewards-counter > strong { font-size: 34px; }
  .partner-gift-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
  .partner-gift-card { padding: 14px 9px; border-radius: 11px; }
  .partner-gift-brand { font-size: 11px; }
  .partner-gift-brand > span { display: none; }
  .partner-gift-seal { display: none; }
  .partner-gift-value { font-size: clamp(26px, 7vw, 39px); margin: 18px 0 12px; letter-spacing: -1px; }
  .partner-gift-value > span { font-size: 10px; margin-right: 2px; }
  .partner-gift-card-bottom { display: block; padding-top: 10px; }
  .partner-gift-level { display: none; }
  .partner-gift-milestone { display: block; font-size: 9px; line-height: 1.6; text-align: left; white-space: normal; }
  .partner-gift-caption { font-size: 9px; line-height: 1.5; margin-top: 9px; }
  .partner-gift-caption > span:last-child { display: none; }
  .partner-rewards-how { padding: 12px; gap: 9px; }
  .partner-rewards-milestones { font-size: 10px; line-height: 1.4; min-height: 28px; }
  .partner-rewards-milestones > span:not(:first-child) { width: 40px; text-align: center; }
  .partner-rewards-milestones > span:last-child { text-align: right; }
  .institutional-metrics .institutional-metric:last-child:nth-child(3) { grid-column: 1 / -1; }
  .institutional-benefit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; padding: 16px; }
  .institutional-coupon { border: 0; padding-left: 0; }
  .institutional-benefit .institutional-coupon strong { font-size: 12px; }
  .institutional-benefit strong small { display: block; margin-top: 4px; }
  .institutional-profile-card { padding: 14px; }
  .institutional-profile-card strong { font-size: 15px; }
  .partner-activity-head { padding: 17px; }
  .partner-activity-head h2 { font-size: 19px; }
  .app-header .brand-mark, body:not(.is-course-player) .topbar .brand-mark { width: 29px; height: 35px; }
  .app-header .brand-wordmark { width: 95px; }
  .partner-primary-nav button { padding: 10px 8px; font-size: 11px; border-radius: 9px; }
  .market-hero { border-radius: 14px; }
  .market-hero h1 { font-size: clamp(32px, 8vw, 40px); }
}
@media (prefers-reduced-motion: reduce) { .institutional-workspace * { scroll-behavior: auto; } }
