/* Identidade EducaJão: profundidade violeta, base noturna e pontos de luz amarelos. */
:root {
  --brand-night:#090d2c;
  --brand-night-soft:#171149;
  --brand-purple:#6532e4;
  --brand-purple-bright:#a44dff;
  --brand-yellow:#ffca28;
  --brand-yellow-deep:#f3a900;
  --brand-lavender:#f0ebff;
  --theme-primary:#602dd2;
  --theme-primary-strong:#421e9f;
  --theme-accent:#6738d8;
  --theme-accent-soft:#f0ebff;
  --theme-highlight:var(--brand-yellow);
  --theme-background:#f7f6fd;
  --theme-surface-muted:#f1effa;
  --theme-text:#111632;
  --theme-border:#dedbf0;
  --theme-shadow:0 16px 38px rgba(28,18,86,.09);
}
body.dark {
  --theme-primary:#6a36dd;
  --theme-primary-strong:#4a20aa;
  --theme-accent:#b47aff;
  --theme-accent-soft:#312258;
  --theme-background:#0a0d2b;
  --theme-surface:#171a3b;
  --theme-surface-muted:#20234a;
  --theme-text:#fbfaff;
  --theme-muted:#b9bad9;
  --theme-border:#39345f;
  --theme-shadow:0 16px 38px rgba(0,0,0,.22);
}
.portal-body {background:radial-gradient(circle at 80% 0,rgba(120,70,241,.07),transparent 34%),var(--theme-background)}
.portal-sidebar {background:linear-gradient(168deg,var(--brand-night) 0%,#151047 65%,#211068 100%);border-right:1px solid #46338f;color:#f7f5ff}
.portal-sidebar .sidebar-brand {border-bottom-color:#493783;color:#fff}
.portal-sidebar .brand-word {color:#fff!important}
.portal-sidebar .brand-word span {color:var(--brand-yellow)!important}
.portal-sidebar .brand-mark {background:#fff!important;box-shadow:0 5px 14px #0005}
.portal-sidebar .sidebar-group-label {color:#a89cda}
.portal-sidebar .sidebar-link {color:#e0dcf8;border:1px solid transparent;border-radius:12px}
.portal-sidebar .sidebar-link:hover {background:#ffffff15;color:#fff;border-color:#a86eff58}
.portal-sidebar .sidebar-link.is-active {background:linear-gradient(105deg,#7135ec,#4e2bc6);color:#fff;border-color:#a47af4;box-shadow:inset 0 1px #ffffff40,0 7px 16px #0905225c}
.portal-sidebar .sidebar-link.is-active::before {background:var(--brand-yellow)}
.portal-sidebar .sidebar-link .icon {color:#c8bff2}
.portal-sidebar .sidebar-link:hover .icon,.portal-sidebar .sidebar-link.is-active .icon {color:var(--brand-yellow)}
.portal-sidebar .sidebar-collapse {background:#1b1054;color:#eee9ff;border-top:1px solid #493783}
.portal-sidebar .sidebar-collapse:hover {background:#2b1772;color:var(--brand-yellow)}
.portal-header {background:linear-gradient(102deg,var(--brand-night) 0%,#24116a 48%,#5b2ac9 100%);border-bottom:3px solid var(--brand-yellow);box-shadow:0 8px 24px #1a125020}
.portal-header h1 {font-family:var(--theme-logo-font);font-weight:700;letter-spacing:-.035em}
.portal-header .notification-count {background:var(--brand-yellow);color:var(--brand-night);border:2px solid var(--brand-night-soft);font-weight:900}
.portal-header .josy-trigger {background:linear-gradient(135deg,#7140ee,#4423a8);border-color:#c1a5ff;color:#fff;box-shadow:inset 0 1px #ffffff55,0 4px 12px #0003}
.portal-header .josy-spark {color:var(--brand-yellow)}
.portal-header .josy-count {background:var(--brand-yellow);color:var(--brand-night)}
.portal-header .header-icon-button:hover,.portal-header #theme-toggle:hover {background:#ffffff24}
.portal-content .page-heading,.portal-content .tool-heading,.portal-content .reference-heading,.portal-content .op-page-heading:not(.compact) {position:relative}
.portal-content .tool-heading,.portal-content .reference-heading,.portal-content .op-page-heading:not(.compact) {background:radial-gradient(circle at 95% 10%,#6830cd 0,#6830cd55 16%,transparent 28%),linear-gradient(112deg,var(--brand-night),var(--brand-night-soft) 68%,#352087);color:#fff;border-radius:24px;padding:26px 30px;margin:7px 0 27px;min-height:114px;box-shadow:0 16px 35px #1c145124;overflow:hidden}
.portal-content .tool-heading::after,.portal-content .reference-heading::after,.portal-content .op-page-heading:not(.compact)::after {content:"";position:absolute;right:-55px;bottom:-115px;width:260px;height:260px;border-radius:50%;border:42px solid #a45aff22;pointer-events:none}
.portal-content .tool-heading h2,.portal-content .reference-heading h2,.portal-content .op-page-heading:not(.compact) h2 {color:#fff;position:relative;z-index:1}
.portal-content .tool-heading p,.portal-content .reference-heading p,.portal-content .op-page-heading:not(.compact) p {color:#d8d2fa;position:relative;z-index:1}
.portal-content .tool-heading small,.portal-content .reference-heading small,.portal-content .op-page-heading:not(.compact) .op-eyebrow {color:var(--brand-yellow)!important}
.portal-content .tool-heading-icon,.portal-content .reference-heading .type-icon.large {background:linear-gradient(145deg,#b676ff 0%,#7136eb 45%,#4d20ba 100%);color:#fff;border:1px solid #c6a1ff!important;border-bottom:1px solid #c6a1ff!important;box-shadow:inset 0 3px 2px #ffffff5c,inset 0 -5px 0 #2f148970,0 8px 0 #180c60,0 12px 18px #0005;transform:translateY(-3px)}
.portal-content .tool-heading-icon .icon,.portal-content .reference-heading .type-icon.large .icon {stroke-width:2.5;filter:drop-shadow(0 2px 1px #210e6d)}
.portal-content .tool-heading-icon::after,.portal-content .reference-heading .type-icon.large::after {content:"✦";position:absolute;top:-9px;right:-9px;color:var(--brand-yellow);font-size:18px;text-shadow:0 2px 4px #0008}
.portal-content .tool-heading-icon,.portal-content .reference-heading .type-icon.large {position:relative}
.portal-content .question-module-art,.portal-content .discipline-module-art,.portal-content .material-card-art,.portal-content .game-gallery-art,.portal-content .catalog-art,.portal-content .course-icon,.portal-content .kpi-icon,.portal-content .tool-tile>span {background:radial-gradient(circle at 50% 68%,#ffffffc9 0 18%,transparent 19%),linear-gradient(142deg,color-mix(in srgb,var(--subject-soft,var(--type-soft,var(--brand-lavender))),white 20%),color-mix(in srgb,var(--subject-soft,var(--type-soft,var(--brand-lavender))),#a77dff 17%));position:relative}
.portal-content .question-module-art .icon,.portal-content .discipline-module-art .icon,.portal-content .material-card-art .icon,.portal-content .game-gallery-art .icon,.portal-content .catalog-art .icon,.portal-content .tool-tile>span .icon {stroke-width:2.4;filter:drop-shadow(2px 5px 1px #29145c33)}
.portal-content .question-module-art::after,.portal-content .discipline-module-art::after,.portal-content .material-card-art::after,.portal-content .game-gallery-art::after {content:"✦";position:absolute;right:25%;top:18%;color:var(--brand-yellow);font-size:16px;text-shadow:0 2px 3px #6b421957}
.portal-content .material-card-art,.portal-content .discipline-module-art,.portal-content .question-module-art {width:100%}
.portal-content .type-button,.portal-content .button:not(.white),.portal-content .primary-button {background:linear-gradient(145deg,color-mix(in srgb,var(--type,var(--theme-primary)),#a971ff 17%),color-mix(in srgb,var(--type,var(--theme-primary)),#21105a 18%));color:#fff;border:1px solid #ffffff23;box-shadow:inset 0 1px #ffffff5e,0 4px 0 color-mix(in srgb,var(--type,var(--theme-primary)),#150634 35%);transition:transform .18s,box-shadow .18s,filter .18s}
.portal-content .type-button:hover,.portal-content .button:not(.white):hover,.portal-content .primary-button:hover {transform:translateY(-2px);filter:brightness(1.06);box-shadow:inset 0 1px #ffffff5e,0 6px 0 color-mix(in srgb,var(--type,var(--theme-primary)),#150634 35%)}
.portal-content .type-button:active,.portal-content .button:not(.white):active,.portal-content .primary-button:active {transform:translateY(2px);box-shadow:inset 0 1px #ffffff5e,0 1px 0 #2d166b}
.portal-content .panel,.portal-content .question-module,.portal-content .discipline-module,.portal-content .material-card,.portal-content .game-gallery-card,.portal-content .catalog-card,.portal-content .catalog-course {box-shadow:0 9px 24px #2115570b}
.portal-content .question-module:hover,.portal-content .discipline-module:hover,.portal-content .material-card:hover,.portal-content .game-gallery-card:hover,.portal-content .catalog-card:hover,.portal-content .catalog-course:hover {box-shadow:0 16px 30px #35209422,0 0 0 1px currentColor}
.portal-content .goal-track i,.portal-content .discipline-module-progress i,.portal-content .simulation-progress i {background:linear-gradient(90deg,var(--theme-primary),#a34eff,var(--brand-yellow))}
.portal-content .count-badge,.portal-content .heading-counter {font-weight:800}
.portal-content .chart-panel h3,.portal-content .panel h3 {letter-spacing:-.025em}
.portal-content .weekly-chart i {background:linear-gradient(0deg,#5f2ce0,#a653fa)}
.portal-content .flashcard {box-shadow:0 12px 0 color-mix(in srgb,var(--type),#201052 45%),0 20px 30px #150c5530;transform-style:preserve-3d}
.portal-content .flashcard:hover {transform:translateY(-3px) rotateY(2deg)}
.portal-content .dialog-highlight,.portal-content .material-dialog .dialog-highlight {background:color-mix(in srgb,var(--type-soft,var(--brand-lavender)),white 18%)}
body.dark .portal-content .tool-heading,body.dark .portal-content .reference-heading,body.dark .portal-content .op-page-heading:not(.compact) {border:1px solid #6a48b1}
@media(max-width:720px){.portal-content .tool-heading,.portal-content .reference-heading,.portal-content .op-page-heading:not(.compact){padding:20px;min-height:0}.portal-content .tool-heading-icon,.portal-content .reference-heading .type-icon.large{width:52px;height:52px}.portal-header h1{font-size:16px}}
@media(prefers-reduced-motion:reduce){.portal-content .type-button,.portal-content .button,.portal-content .primary-button{transition:none}}
