/* ESCOLAR_EZ_VAULT_LAYOUT_V900
   Referência estrutural: frontend real do EZ Vault validado em produção.
*/

:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  color: #f7f9ff;
  background: #050914;
  color-scheme: dark;
  font-synthesis: none;
  text-rendering: optimizeLegibility;

  --premium-bg: #030712;
  --premium-surface: rgba(10, 18, 34, 0.78);
  --premium-surface-strong: rgba(13, 23, 43, 0.94);
  --premium-border: rgba(139, 163, 211, 0.18);
  --premium-border-bright: rgba(128, 166, 255, 0.42);
  --premium-blue: #6d92ff;
  --premium-blue-strong: #4f73ff;
  --premium-violet: #a986ff;
  --premium-cyan: #40d8dc;
  --premium-green: #45dda7;
  --premium-amber: #ffc96b;
  --premium-danger: #ff7d99;
  --premium-text: #f5f8ff;
  --premium-muted: #93a5c7;
  --premium-shadow: 0 24px 80px rgba(0, 0, 0, 0.38);

  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  min-height: 100%;
  background: var(--premium-bg);
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--premium-text);
  background:
    radial-gradient(circle at 8% -8%, rgba(79, 115, 255, 0.24), transparent 29rem),
    radial-gradient(circle at 92% 8%, rgba(64, 216, 220, 0.12), transparent 30rem),
    radial-gradient(circle at 52% 105%, rgba(169, 134, 255, 0.11), transparent 34rem),
    linear-gradient(155deg, #030712 0%, #061020 48%, #030712 100%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
}

body::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  content: "";
  opacity: 0.18;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
  background-size: 34px 34px;
  mask-image: linear-gradient(to bottom, black, transparent 88%);
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  color: inherit;
}

button:not(:disabled) {
  cursor: pointer;
}

button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid #78a6ff;
  outline-offset: 2px;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2 {
  letter-spacing: -0.035em;
}

.hidden {
  display: none !important;
}

.screen,
.vault-shell {
  min-height: 100vh;
  min-height: 100svh;
}

.eyebrow {
  margin: 0 0 8px;
  color: #8eb1ff;
  font-size: 0.73rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-shadow: 0 0 24px rgba(96, 142, 255, 0.34);
}

.button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 17px;
  border: 1px solid transparent;
  border-radius: 13px;
  cursor: pointer;
  font-weight: 800;
  transition: transform 140ms ease, opacity 140ms ease, background 140ms ease;
  -webkit-tap-highlight-color: transparent;
}

.button:hover:not(:disabled) {
  transform: translateY(-1px);
  filter: brightness(1.08);
}

.button:disabled {
  cursor: not-allowed;
  opacity: 0.46;
}

.button--primary {
  border-color: rgba(151, 180, 255, 0.26);
  color: white;
  background: linear-gradient(135deg, #6b91ff 0%, #4d71f5 52%, #6f51e9 100%);
  box-shadow:
    0 14px 34px rgba(69, 103, 232, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.button--ghost {
  border-color: rgba(135, 159, 207, 0.18);
  color: #cad5eb;
  background: linear-gradient(145deg, rgba(20, 32, 56, 0.88), rgba(12, 21, 39, 0.9));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.button--small {
  min-height: 38px;
  padding-inline: 13px;
  border-radius: 11px;
  font-size: 0.8rem;
}

.alert,
.security-note {
  border-radius: 13px;
  padding: 13px 15px;
  line-height: 1.5;
}

.alert--error {
  border: 1px solid rgba(248, 113, 113, 0.32);
  color: #fecaca;
  background: rgba(127, 29, 29, 0.34);
}

.alert--warning {
  border: 1px solid rgba(251, 191, 36, 0.32);
  color: #fde68a;
  background: rgba(120, 53, 15, 0.3);
}

.alert--inline {
  margin-bottom: 24px;
}

/* AUTH — reproduz a composição validada do EZ Vault */

.auth-shell {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(380px, 0.88fr) minmax(540px, 1.12fr);
  place-items: stretch;
  padding: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 18%, rgba(74, 113, 255, 0.08), transparent 24rem),
    #030712;
}

.auth-visual {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 40px;
  overflow: hidden;
  padding: clamp(34px, 4vw, 64px);
  border-right: 1px solid rgba(134, 159, 211, 0.13);
  background:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    radial-gradient(circle at 16% 12%, rgba(83, 125, 255, 0.26), transparent 25rem),
    radial-gradient(circle at 90% 78%, rgba(51, 218, 201, 0.11), transparent 25rem),
    linear-gradient(155deg, #071126 0%, #050b18 54%, #030712 100%);
  background-size: 38px 38px, 38px 38px, auto, auto, auto;
}

.auth-visual::before {
  position: absolute;
  inset: 0;
  z-index: -2;
  content: "";
  pointer-events: none;
  background: linear-gradient(118deg, rgba(255,255,255,0.025), transparent 35%, rgba(111,81,233,0.045));
}

.auth-visual__top,
.auth-visual__content,
.auth-visual__foot {
  position: relative;
  z-index: 2;
}

.auth-visual__content {
  max-width: 620px;
  margin: auto 0;
}

.auth-visual__content h2 {
  max-width: 13.5ch;
  margin: 0 0 20px;
  color: transparent;
  background: linear-gradient(105deg, #ffffff 0%, #dce7ff 62%, #91aaff 100%);
  background-clip: text;
  -webkit-background-clip: text;
  font-size: clamp(2.55rem, 4.2vw, 5.15rem);
  line-height: 0.98;
  text-wrap: balance;
}

.auth-visual__content > p:not(.eyebrow) {
  max-width: 54ch;
  margin-bottom: 28px;
  color: #9fb0d0;
  font-size: clamp(0.98rem, 1.2vw, 1.12rem);
  line-height: 1.75;
}

.auth-visual__features {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.auth-visual__features span {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 13px;
  border: 1px solid rgba(134, 163, 224, 0.2);
  border-radius: 999px;
  color: #c6d4ef;
  background: rgba(14, 28, 52, 0.62);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.04);
  font-size: 0.76rem;
  font-weight: 760;
  backdrop-filter: blur(12px);
}

.auth-visual__foot {
  margin: 0;
  color: #6f82a8;
  font-size: 0.76rem;
  letter-spacing: 0.04em;
}

.auth-visual__orb {
  position: absolute;
  right: clamp(-180px, -10vw, -80px);
  bottom: clamp(30px, 10vh, 120px);
  z-index: 0;
  width: clamp(320px, 38vw, 610px);
  aspect-ratio: 1;
  border: 1px solid rgba(113, 146, 226, 0.13);
  border-radius: 50%;
  opacity: 0.78;
  background: radial-gradient(circle, rgba(67, 104, 209, 0.15), rgba(8, 18, 38, 0.02) 58%, transparent 68%);
  box-shadow: inset 0 0 100px rgba(71, 113, 232, 0.06), 0 0 100px rgba(44, 88, 198, 0.05);
}

.auth-visual__orb > span {
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(127, 155, 219, 0.12);
  border-radius: 50%;
}

.auth-visual__orb > span:nth-child(2) {
  inset: 25%;
  border-style: dashed;
  animation: auth-orbit 24s linear infinite;
}

.auth-visual__orb > span:nth-child(3) {
  inset: 38%;
  border-color: rgba(67, 216, 207, 0.13);
}

.auth-visual__shield {
  position: absolute;
  inset: 39%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(128, 164, 255, 0.22);
  border-radius: 28%;
  background: linear-gradient(145deg, rgba(70, 109, 226, 0.32), rgba(46, 36, 112, 0.25));
  box-shadow: 0 28px 80px rgba(28, 62, 154, 0.25), inset 0 1px rgba(255,255,255,0.12);
  transform: rotate(8deg);
  backdrop-filter: blur(16px);
}

.auth-visual__shield svg {
  width: 58%;
  fill: none;
  stroke: #dce7ff;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: rotate(-8deg);
  filter: drop-shadow(0 8px 20px rgba(80, 123, 255, 0.35));
}

.auth-card {
  width: min(580px, calc(100% - clamp(56px, 7vw, 112px)));
  max-height: calc(100svh - 72px);
  align-self: center;
  justify-self: center;
  overflow: auto;
  padding: clamp(30px, 4vw, 48px);
  border: 1px solid var(--premium-border);
  border-radius: 28px;
  background:
    linear-gradient(150deg, rgba(18, 30, 53, 0.86), rgba(8, 16, 31, 0.88));
  box-shadow: var(--premium-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.045);
  backdrop-filter: blur(20px) saturate(125%);
}

.auth-shell > .auth-card > .brand {
  display: none;
}

.auth-copy {
  margin: 0 0 26px;
}

.auth-copy h1 {
  margin-bottom: 12px;
  font-size: clamp(2.15rem, 3.5vw, 3.45rem);
  line-height: 1;
}

.auth-copy p:not(.eyebrow) {
  color: #aebbd5;
  line-height: 1.62;
}

.form-stack {
  display: grid;
  gap: 16px;
}

.field {
  display: grid;
  gap: 8px;
}

.field > span {
  color: #cbd5ea;
  font-size: 0.86rem;
  font-weight: 700;
}

.field input {
  width: 100%;
  height: 50px;
  padding: 0 14px;
  border: 1px solid #2a3858;
  border-radius: 13px;
  color: #f7f9ff;
  background: #0b1222;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.field input:focus {
  border-color: #5d8cff;
  box-shadow: 0 0 0 4px rgba(93, 140, 255, 0.12);
  outline: none;
}

.input-with-action {
  position: relative;
}

.input-with-action input {
  padding-right: 96px;
}

.input-with-action button {
  position: absolute;
  top: 50%;
  right: 9px;
  min-height: 32px;
  transform: translateY(-50%);
  border: 0;
  color: #9eb8f4;
  background: transparent;
  cursor: pointer;
  font-size: 0.78rem;
  font-weight: 800;
}

.security-note {
  display: grid;
  gap: 5px;
  margin-top: 22px;
  border: 1px solid #263655;
  color: #aebbd5;
  background: #0b1324;
}

.security-note strong {
  color: #dbe6ff;
}

/* BRAND / TOPBAR */

.brand {
  display: flex;
  align-items: center;
  gap: 13px;
}

.brand__mark {
  position: relative;
  overflow: hidden;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(145deg, #638cff 0%, #4167ed 52%, #714de8 100%);
  box-shadow:
    0 13px 34px rgba(69, 105, 238, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.26);
}

.brand__mark::after {
  position: absolute;
  inset: -35% 42% 30% -28%;
  content: "";
  transform: rotate(24deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.28), transparent);
}

.brand__mark svg {
  width: 30px;
  fill: none;
  stroke: white;
  stroke-width: 2.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.brand strong,
.brand span {
  display: block;
}

.brand strong {
  color: #f8faff;
  font-size: 1.15rem;
  letter-spacing: -0.02em;
  text-shadow: 0 1px 18px rgba(114, 150, 255, 0.18);
}

.brand span {
  margin-top: 2px;
  color: #8fa1c4;
  font-size: 0.82rem;
}

.brand--compact .brand__mark {
  width: 38px;
  height: 38px;
  border-radius: 12px;
}

.brand--compact .brand__mark svg {
  width: 25px;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  min-height: 68px;
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 12px clamp(18px, 4vw, 54px);
  border-bottom: 1px solid rgba(139, 163, 211, 0.16);
  background: linear-gradient(180deg, rgba(5, 10, 22, 0.92), rgba(5, 10, 22, 0.76));
  box-shadow: 0 12px 45px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(24px) saturate(135%);
}

.topbar__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.sync-state {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-right: 6px;
  color: #8fa1c4;
  font-size: 0.78rem;
}

.sync-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #43d39e;
  box-shadow: 0 0 12px rgba(67, 211, 158, 0.7);
}

.school-top-context {
  min-width: 0;
  text-align: center;
}

.school-top-context span,
.school-top-context strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.school-top-context span {
  color: #7f91b4;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.school-top-context strong {
  margin-top: 2px;
  color: #f3f6ff;
  font-size: 0.92rem;
}

/* MAIN SHELL — mesmo padrão do VaultDashboard */

.vault-content {
  width: min(1220px, calc(100% - 36px));
  margin: 0 auto;
  padding: 52px 0 70px;
}

.vault-content--organized {
  width: min(1480px, calc(100% - 32px));
  padding-top: 30px;
}

.portal-content {
  width: min(1180px, calc(100% - 32px));
}

.vault-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 25px;
  align-items: start;
}

.vault-main {
  min-width: 0;
}

.vault-sidebar,
.vault-panel,
.selectedStudentPanel {
  border: 1px solid var(--premium-border);
  background:
    linear-gradient(150deg, rgba(18, 30, 53, 0.86), rgba(8, 16, 31, 0.88));
  box-shadow: var(--premium-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.045);
  backdrop-filter: blur(20px) saturate(125%);
}

.vault-sidebar {
  position: sticky;
  top: 88px;
  display: grid;
  gap: 18px;
  padding: 16px;
  border-radius: 18px;
}

.sidebar-section {
  display: grid;
  gap: 5px;
}

.sidebar-section + .sidebar-section {
  padding-top: 15px;
  border-top: 1px solid rgba(143, 164, 210, 0.13);
}

.sidebar-title {
  margin: 0 0 5px;
  color: #7f91b4;
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.sidebar-link {
  width: 100%;
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 9px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #aab8d2;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

/* SIDEBAR_ACTIVE_FIX_20260902 */

.sidebar-link:hover {
  color: #eef3ff;
}

.sidebar-link.active {
  border-color: rgba(92, 132, 220, 0.34);
  color: #eef3ff;
  background: rgba(49, 82, 151, 0.25);
}

.sidebar-link strong {
  color: #7184aa;
  font-size: 0.72rem;
}

.sidebar-info {
  min-height: 34px;
  padding: 6px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #8fa1c4;
  font-size: 0.72rem;
}

.sidebar-info strong {
  color: #b8c8e7;
  font-size: 0.72rem;
}

.sidebar-chips {
  width: 100%;
  display: grid;
  gap: 7px;
}

/* HERO */

.hero-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.hero-row--compact {
  align-items: center;
}

.hero-row--compact h1 {
  margin-bottom: 7px;
  color: transparent;
  background: linear-gradient(100deg, #ffffff 0%, #dbe7ff 58%, #9db5ff 100%);
  background-clip: text;
  -webkit-background-clip: text;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1;
  text-wrap: balance;
}

.hero-row p:not(.eyebrow) {
  margin-bottom: 0;
  color: #aebbd5;
  line-height: 1.62;
}

/* ROLE / PICKER */

.role-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
  margin-top: 28px;
}

.role-card {
  position: relative;
  isolation: isolate;
  min-height: 250px;
  overflow: hidden;
  padding: 24px;
  border: 1px solid rgba(133, 158, 207, 0.18);
  border-radius: 19px;
  color: #f5f8ff;
  text-align: left;
  background:
    radial-gradient(circle at 92% 0%, rgba(100, 139, 255, 0.09), transparent 15rem),
    linear-gradient(148deg, rgba(20, 33, 58, 0.94), rgba(8, 16, 31, 0.96));
  box-shadow:
    0 20px 62px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.role-card::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  content: "";
  opacity: 0.72;
  background: linear-gradient(90deg, transparent, rgba(111, 148, 255, 0.82), rgba(71, 222, 211, 0.38), transparent);
}

.role-card:hover {
  transform: translateY(-3px);
  border-color: rgba(126, 158, 231, 0.34);
  box-shadow:
    0 27px 78px rgba(0, 0, 0, 0.32),
    0 0 0 1px rgba(88, 126, 216, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.065);
}

.role-card__head {
  display: flex;
  align-items: center;
  gap: 13px;
}

.role-card__head h2 {
  margin: 0;
  font-size: 1.4rem;
}

.role-card > p {
  margin: 22px 0 0;
  max-width: 44ch;
  color: #94a7c9;
  line-height: 1.65;
}

.role-card__action {
  position: absolute;
  right: 24px;
  bottom: 22px;
  color: #a9c0ff;
  font-size: 0.78rem;
  font-weight: 800;
}

.role-parent-avatar {
  background: linear-gradient(145deg, rgba(123, 88, 218, 0.96), rgba(53, 48, 113, 0.98)) !important;
}

.studentPicker {
  margin-top: 22px;
  padding: 22px;
  border-radius: 18px;
}

.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.panel-heading h2 {
  margin-bottom: 7px;
}

.panel-heading p:not(.eyebrow) {
  margin-bottom: 0;
  color: #8fa1c4;
}

.studentGrid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  margin-top: 18px;
}

.studentCard {
  min-height: 74px;
  padding: 13px;
  border: 1px solid rgba(143, 164, 210, 0.17);
  border-radius: 13px;
  color: #eef3ff;
  background: rgba(9, 16, 30, 0.62);
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: 12px;
  text-align: left;
}

.studentCard .avatar {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #dfe8ff;
  background: linear-gradient(145deg, #2c477d, #1f3157);
  font-weight: 900;
}

.studentCard strong,
.studentCard span {
  display: block;
}

.studentCard span {
  margin-top: 3px;
  color: #8fa1c4;
  font-size: 0.78rem;
}

/* DASHBOARD */

.dashboard-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  margin: 26px 0 14px;
}

.dashboard-strip article {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(133, 158, 207, 0.16);
  border-radius: 16px;
  background:
    linear-gradient(145deg, rgba(17, 29, 51, 0.9), rgba(9, 17, 32, 0.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
}

/* ESCOLAR_PARENTMETRICS_SPAN_COLLISION_FIX_V997
   A regra antiga .parentMetrics span capturava tambem
   span.parentMetricIconB1 e substituia display:grid por block.
   Agora ela atinge somente o span textual interno do card.
*/
.dashboard-strip span,
.parentMetrics .parentMetricCardB1 > div > span {
  display: block;
  color: #7f91b4;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .08em;
}

.dashboard-strip strong {
  display: block;
  margin-top: 7px;
  color: #f6f9ff;
  font-size: clamp(1.35rem, 3vw, 2rem);
  overflow-wrap: anywhere;
}

.progress-panel,
.bag-summary {
  margin: 14px 0 24px;
  padding: 18px;
  border: 1px solid rgba(122, 149, 204, 0.18);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(5, 12, 25, 0.94), rgba(10, 19, 35, 0.95));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.progress-panel__head strong {
  color: #c8d4eb;
  font-size: .86rem;
}

.school-progress {
  height: 9px;
  margin-top: 14px;
  overflow: hidden;
  border-radius: 999px;
  background: #121d34;
}

.school-progress > span {
  display: block;
  width: calc(var(--p) * 1%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #48d8d2, #6f94ff);
  box-shadow: 0 0 13px rgba(72, 216, 210, 0.34);
  transition: width 240ms ease;
}

.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin: 28px 0 14px;
}

.section-heading h2 {
  margin: 0;
  font-size: 1.35rem;
}

/* CARDS — mesma linguagem de credential-card */

.credential-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
}

.taskCard,
.bagItem,
.agendaItem,
.familyCard,
.attentionCard,
.parentTask,
.occurrenceCard,
.quick-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(133, 158, 207, 0.18);
  border-radius: 19px;
  color: #f5f8ff;
  background:
    radial-gradient(circle at 92% 0%, rgba(100, 139, 255, 0.09), transparent 15rem),
    linear-gradient(148deg, rgba(20, 33, 58, 0.94), rgba(8, 16, 31, 0.96));
  box-shadow:
    0 20px 62px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.taskCard::before,
.bagItem::before,
.agendaItem::before,
.familyCard::before,
.attentionCard::before,
.parentTask::before,
.occurrenceCard::before,
.quick-card::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: -1;
  height: 2px;
  content: "";
  opacity: 0.72;
  background: linear-gradient(90deg, transparent, rgba(111, 148, 255, 0.82), rgba(71, 222, 211, 0.38), transparent);
}

.taskCard {
  padding: 21px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 18px;
  align-items: start;
}

.taskBody {
  min-width: 0;
}

.taskTop {
  min-height: 28px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
}

.taskNumber {
  color: #7184aa;
  font-size: .72rem;
  font-weight: 900;
}

.subjectTag,
.stateTag,
.extraTag,
.occurrenceType {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .69rem;
  font-weight: 800;
}

.subjectTag {
  border-color: #365a9e;
  color: #bcd2ff;
  background: rgba(44, 80, 150, 0.3);
}

.stateTag {
  border-color: #4c5c78;
  color: #d0d8e8;
  background: rgba(62, 75, 100, 0.3);
}

.taskCard h3 {
  margin: 0;
  color: #f6f9ff;
  font-size: 1.08rem;
  line-height: 1.45;
}

.taskMeta {
  margin-top: 11px;
  color: #7485a4;
  font-size: .75rem;
}

.doneBtn {
  min-width: 105px;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid rgba(124, 151, 207, 0.18);
  border-radius: 11px;
  color: #cbd8f1;
  background: linear-gradient(145deg, rgba(22, 35, 60, 0.92), rgba(12, 22, 41, 0.94));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-weight: 800;
}

.doneBtn.checked,
.state-MARCADA_CRIANCA .doneBtn {
  border-color: rgba(255, 199, 100, 0.34);
  color: #ffd78b;
  background: rgba(136, 86, 17, 0.26);
}

.state-VALIDADA_PAIS .doneBtn {
  border-color: rgba(69, 221, 167, 0.45);
  color: #a5f3d5;
  background: rgba(20, 112, 81, 0.28);
}

.state-REPROVADA_PAIS {
  border-color: rgba(255, 125, 153, .38);
}

.rejectNotice {
  margin-top: 13px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 125, 153, .26);
  border-radius: 11px;
  color: #ffc0ce;
  background: rgba(118, 35, 57, .25);
  font-size: .76rem;
  line-height: 1.5;
}

.checkCircle {
  width: 18px;
  height: 18px;
  border: 1px solid currentColor;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: .7rem;
}

.quick-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
  margin-top: 18px;
}

.quick-card {
  min-height: 112px;
  padding: 18px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 13px;
  align-items: center;
  text-align: left;
}

.quick-card strong {
  display: block;
  color: #f4f7ff;
  font-size: .95rem;
}

.quick-card small {
  display: block;
  margin-top: 5px;
  color: #8fa1c4;
  line-height: 1.45;
}

.quick-card b {
  color: #a9c0ff;
}

/* MOCHILA */

.bag-summary {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(240px, 1fr);
  gap: 28px;
  align-items: end;
}

.bag-summary strong {
  display: block;
  color: #f6f9ff;
  font-size: 2rem;
}

.bag-summary span {
  color: #8fa1c4;
  font-size: .8rem;
}

.bag-summary__progress {
  min-width: 0;
}

.bag-progress-label {
  display: block;
  margin-bottom: 10px;
  color: #c8d4eb;
  font-size: .82rem;
  font-weight: 800;
}

.bag-progress {
  margin-top: 0;
}

.bagList {
  align-items: stretch;
}

.bagItem {
  min-height: 96px;
  padding: 18px;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr) auto;
  gap: 13px;
  align-items: center;
}

/* resolve exatamente o checkbox duplicado visto na captura */
.bagItem input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  opacity: 0;
  overflow: hidden;
  clip-path: inset(50%);
}

.bagItem input[type="checkbox"]:focus-visible + .bagCheck {
  outline: 2px solid #78a6ff;
  outline-offset: 3px;
}

.bagCheck {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid #334667;
  border-radius: 12px;
  color: transparent;
  background: #0d1628;
  font-weight: 900;
}

.bagItem.checked .bagCheck {
  border-color: rgba(69, 221, 167, .5);
  color: #a5f3d5;
  background: rgba(20, 112, 81, .28);
  box-shadow: 0 0 22px rgba(69, 221, 167, .08);
}

.bagContent {
  min-width: 0;
}

.bagContent strong {
  display: block;
  color: #f6f9ff;
  font-size: .95rem;
}

.bagContent small {
  display: block;
  margin-top: 5px;
  color: #8fa1c4;
  font-size: .78rem;
}

.extraTag {
  border-color: #8e6929;
  color: #ffe1a1;
  background: rgba(132, 88, 20, 0.28);
}

/* AGENDA */

.agendaItem {
  min-height: 110px;
  padding: 18px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 13px;
  align-items: start;
}

.agendaDot,
.attentionIcon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #bcd2ff;
  background: linear-gradient(145deg, #2c477d, #1f3157);
  font-weight: 900;
}

.agendaItem.material .agendaDot {
  color: #ddc6ff;
  background: linear-gradient(145deg, rgba(123, 88, 218, .96), rgba(53, 48, 113, .98));
}

.agendaItem strong {
  color: #9db5ff;
  font-size: .72rem;
  letter-spacing: .08em;
}

.agendaItem p {
  margin: 8px 0 0;
  color: #dbe4f6;
  line-height: 1.55;
  white-space: pre-wrap;
}

/* FAMILY */

.familyCard {
  --family-color: #6d92ff;
  min-height: 170px;
  padding: 20px;
  text-align: left;
}

.familyCardTop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.familyPerson {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 13px;
}

.familyAvatar {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: white;
  background: var(--family-color);
  font-weight: 900;
}

.familyPerson strong,
.familyPerson small {
  display: block;
}

.familyPerson small {
  margin-top: 4px;
  color: #8fa1c4;
  font-size: .77rem;
}

.familyPercent {
  color: #f6f9ff;
  font-size: 1.5rem;
  font-weight: 900;
}

.familyProgress {
  height: 8px;
  margin-top: 18px;
  overflow: hidden;
  border-radius: 999px;
  background: #111b2f;
}

.familyProgress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--family-color), #40d8dc);
}

.familyMeta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 15px;
}

.familyMeta span {
  padding: 5px 9px;
  border: 1px solid #334667;
  border-radius: 999px;
  color: #acbddc;
  background: rgba(24, 39, 67, 0.7);
  font-size: .69rem;
  font-weight: 800;
}

.selectedStudentPanel {
  margin-top: 18px;
  padding: 20px;
  border-radius: 18px;
}

.selectedStudentHead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.selectedStudentHead h2 {
  margin-bottom: 6px;
}

.selectedStudentHead p:not(.eyebrow) {
  margin-bottom: 0;
  color: #8fa1c4;
}

.parentMetrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 1px;
  margin-top: 18px;
  border: 1px solid #263655;
  border-radius: 13px;
  overflow: hidden;
  background: #263655;
}

.parentMetrics > div {
  min-width: 0;
  padding: 14px;
  background: #0b1324;
}

.parentMetrics strong {
  display: block;
  margin-top: 6px;
  color: #f6f9ff;
  font-size: 1.25rem;
}

.attentionCard {
  min-height: 104px;
  padding: 18px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 13px;
  align-items: start;
}

.attentionCard strong {
  display: block;
  color: #f6f9ff;
}

.attentionCard small {
  display: block;
  margin-top: 5px;
  color: #8fa1c4;
  line-height: 1.48;
}

.attentionCard.warn .attentionIcon {
  color: #ffe1a1;
  background: rgba(132, 88, 20, .36);
}

.attentionCard.bad .attentionIcon {
  color: #ffc3d0;
  background: rgba(135, 45, 69, .35);
}

.parentStudentStrip {
  margin: 18px 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.parentStudentStrip::-webkit-scrollbar {
  display: none;
}

.chipRow {
  display: flex;
  gap: 8px;
}

.studentChip {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid #2c3b5a;
  border-radius: 10px;
  color: #aab8d2;
  background: #111a2d;
  font-size: .78rem;
  font-weight: 800;
}

.studentChip.active {
  border-color: rgba(113, 153, 255, .45);
  color: #f1f5ff;
  background: linear-gradient(145deg, rgba(58, 92, 176, .58), rgba(37, 55, 111, .5));
}

/* PARENT TASKS / OCCURRENCES */

.parentTask {
  min-height: 120px;
  padding: 19px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  align-items: center;
}

.parentTask strong {
  display: block;
  margin-top: 11px;
  color: #f6f9ff;
}

.parentTask small {
  display: block;
  margin-top: 5px;
  color: #8fa1c4;
}

.rejectBtn {
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid rgba(225, 109, 139, .35);
  border-radius: 10px;
  color: #ffc3d0;
  background: rgba(135, 45, 69, .24);
  font-weight: 800;
}

.stickyAction {
  position: sticky;
  bottom: 16px;
  z-index: 10;
  margin-top: 18px;
}

.stickyAction .button {
  width: 100%;
}

.occurrenceCard {
  min-height: 150px;
  padding: 19px;
}

.occurrenceTop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 13px;
}

.occurrenceType {
  border-color: rgba(225, 109, 139, .4);
  color: #ffc3d0;
  background: rgba(135, 45, 69, .2);
}

.occurrenceDate {
  color: #7485a4;
  font-size: .75rem;
}

.occurrenceCard h3 {
  margin: 16px 0 0;
  color: #f6f9ff;
  font-size: 1.05rem;
}

.occurrenceCard p {
  margin: 8px 0 0;
  color: #8fa1c4;
  line-height: 1.5;
}

/* PROFILE / SETTINGS */

.profile-avatar {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(139, 175, 255, .22);
  border-radius: 18px;
  color: #dfe8ff;
  background: linear-gradient(145deg, #2c477d, #1f3157);
  box-shadow: 0 10px 25px rgba(20, 45, 98, .34), inset 0 1px rgba(255,255,255,.18);
  font-size: 1.25rem;
  font-weight: 900;
}

.profile-avatar--parent {
  background: linear-gradient(145deg, rgba(123, 88, 218, .96), rgba(53, 48, 113, .98));
}

.settings-panel {
  margin-top: 24px;
  overflow: hidden;
  border-radius: 18px;
}

.settings-row {
  width: 100%;
  min-height: 72px;
  padding: 0 17px;
  border: 0;
  border-bottom: 1px solid rgba(143, 164, 210, .13);
  color: #eef3ff;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  text-align: left;
}

.settings-row:last-child {
  border-bottom: 0;
}

.settings-row strong,
.settings-row small {
  display: block;
}

.settings-row small {
  margin-top: 4px;
  color: #8292b1;
  font-size: .76rem;
}

.security-note--highlight {
  border-color: rgba(113, 153, 255, .28);
  background: rgba(23, 42, 79, .46);
}

/* EMPTY */

.empty-state {
  display: grid;
  place-items: center;
  padding: 70px 20px;
  text-align: center;
}

.empty-state__icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  border-radius: 18px;
  color: #bcd2ff;
  background: linear-gradient(145deg, #2c477d, #1f3157);
  font-weight: 900;
}

.empty-state h2 {
  margin-bottom: 8px;
}

.empty-state p {
  max-width: 42ch;
  margin-bottom: 0;
  color: #aebbd5;
  line-height: 1.62;
}

/* STATE PILLS */

.state-pill {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
  box-shadow: inset 0 1px rgba(255,255,255,.06);
}

.state-pill::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  content: "";
  background: currentColor;
  box-shadow: 0 0 10px currentColor;
}

.state-pill--blue {
  border-color: rgba(103, 146, 255, .35);
  color: #a9c0ff;
  background: rgba(48, 78, 145, .28);
}

.state-pill--cyan {
  border-color: rgba(64, 216, 220, .3);
  color: #8beaec;
  background: rgba(16, 103, 108, .24);
}

/* CATEGORIES — mesma paleta validada do EZ Vault */

.credential-classification {
  min-height: 28px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 15px;
}

.category-badge {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .69rem;
  font-weight: 800;
}

.category-badge--blue {
  border-color: #365a9e;
  color: #bcd2ff;
  background: rgba(44, 80, 150, .3);
}

.category-badge--teal {
  border-color: #277d75;
  color: #acf2e5;
  background: rgba(25, 105, 96, .28);
}

.category-badge--violet {
  border-color: #6d4bad;
  color: #ddc6ff;
  background: rgba(83, 53, 145, .3);
}

.category-badge--rose {
  border-color: #94455b;
  color: #ffc3d0;
  background: rgba(135, 45, 69, .28);
}

/* MODAL / TOAST */

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(1, 5, 13, .72);
  backdrop-filter: blur(12px);
}

.modal-card {
  width: min(560px, 100%);
  max-height: calc(100svh - 40px);
  overflow: auto;
  padding: 24px;
  border: 1px solid rgba(141, 168, 221, 0.22);
  border-radius: 22px;
  color: #f5f8ff;
  background: linear-gradient(155deg, rgba(18, 31, 55, 0.99), rgba(6, 14, 28, 0.99));
  box-shadow: 0 28px 90px rgba(0,0,0,.58), inset 0 1px rgba(255,255,255,.05);
}

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.modal-header h2 {
  margin-bottom: 0;
}

.modal-copy {
  color: #91a4c7;
  line-height: 1.6;
}

.icon-button {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 10px;
  color: #aebbd5;
  background: #151f35;
  font-size: 1.3rem;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.busyLayer {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  background: rgba(3, 7, 18, .72);
  backdrop-filter: blur(9px);
}

.busyCard {
  min-width: 190px;
  padding: 18px;
  border: 1px solid var(--premium-border);
  border-radius: 16px;
  background: rgba(8, 16, 31, .96);
  box-shadow: var(--premium-shadow);
  display: flex;
  align-items: center;
  gap: 13px;
}

.spinner {
  width: 34px;
  height: 34px;
  border: 3px solid #223254;
  border-top-color: #6f98ff;
  border-radius: 50%;
  animation: spin .8s linear infinite;
}

.toast {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 110;
  max-width: min(430px, calc(100% - 44px));
  padding: 14px 16px;
  border: 1px solid rgba(103, 146, 255, .44);
  border-radius: 13px;
  color: #dfe8ff;
  background: linear-gradient(145deg, rgba(27, 45, 79, .97), rgba(13, 25, 48, .98));
  box-shadow: 0 22px 70px rgba(0,0,0,.42), 0 0 30px rgba(78,118,237,.09);
  backdrop-filter: blur(18px);
  line-height: 1.5;
}

/* MOBILE NAV — mesma lógica visual da mobile-action-bar do EZ Vault */

.mobile-action-bar {
  display: none;
}

/* RESPONSIVE */

@media (max-width: 1100px) {
  .vault-layout {
    grid-template-columns: 190px minmax(0,1fr);
    gap: 18px;
  }

  .topbar {
    grid-template-columns: auto minmax(140px,1fr) auto;
  }
}

@media (max-width: 900px) {
  .auth-shell {
    grid-template-columns: minmax(0,1fr);
    place-items: center;
    overflow: auto;
    padding: clamp(24px, 6vw, 58px);
    background:
      radial-gradient(circle at 10% 0%, rgba(72, 111, 255, 0.18), transparent 26rem),
      radial-gradient(circle at 94% 90%, rgba(58, 213, 197, 0.07), transparent 20rem),
      #030712;
  }

  .auth-visual {
    display: none;
  }

  .auth-card {
    width: min(650px, 100%);
    max-height: none;
  }

  .auth-shell > .auth-card > .brand {
    display: flex;
  }

  .auth-copy {
    margin-top: 30px;
  }

  .role-grid,
  .credential-grid,
  .quick-grid,
  .studentGrid {
    grid-template-columns: 1fr;
  }

  .vault-layout {
    grid-template-columns: 1fr;
  }

  .vault-sidebar {
    display: none;
  }

  .school-content {
    padding-bottom: calc(118px + var(--safe-bottom));
  }

  .mobile-action-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 40;
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 7px;
    padding:
      10px
      12px
      calc(10px + var(--safe-bottom));
    border-top: 1px solid rgba(132, 158, 208, .2);
    background: linear-gradient(180deg, rgba(8, 16, 31, .87), rgba(3, 8, 18, .98));
    box-shadow: 0 -18px 48px rgba(0,0,0,.28);
    backdrop-filter: blur(24px) saturate(125%);
  }

  .mobile-action-bar button {
    min-height: 48px;
    padding: 0 8px;
    border: 1px solid rgba(126, 153, 208, .2);
    border-radius: 14px;
    color: #91a2c4;
    background: linear-gradient(145deg, rgba(23, 37, 64, .96), rgba(11, 21, 40, .98));
    box-shadow: inset 0 1px rgba(255,255,255,.045);
    font-size: .74rem;
    font-weight: 800;
    -webkit-tap-highlight-color: transparent;
  }

  .mobile-action-bar button.active {
    border-color: rgba(110, 151, 255, .7);
    color: #f1f5ff;
    background:
      radial-gradient(circle at 80% 0%, rgba(128, 157, 255, .22), transparent 7rem),
      linear-gradient(145deg, rgba(50, 81, 151, .72), rgba(25, 46, 90, .76));
    box-shadow: 0 12px 28px rgba(26, 58, 133, .22), inset 0 1px rgba(255,255,255,.10);
  }

  .topbar {
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: 12px;
    padding: 10px 14px;
    background: rgba(4, 10, 22, .84);
  }

  .school-top-actions .button {
    min-width: 0;
    padding-inline: 10px;
  }

  .school-top-actions .button:last-child {
    display: none;
  }

  .portal-content {
    padding-top: 30px;
  }

  .bag-summary {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

@media (max-width: 650px) {
  .vault-content--organized,
  .portal-content {
    width: min(100% - 20px, 1480px);
  }

  .dashboard-strip,
  .parentMetrics {
    grid-template-columns: 1fr;
  }

  .dashboard-strip {
    gap: 8px;
  }

  .parentMetrics {
    gap: 0;
  }

  .parentMetrics > div {
    border-bottom: 1px solid #263655;
  }

  .parentMetrics > div:last-child {
    border-bottom: 0;
  }

  .taskCard,
  .parentTask {
    grid-template-columns: 1fr;
  }

  .doneBtn,
  .rejectBtn {
    width: 100%;
  }

  .familyCard {
    min-height: 0;
  }

  .selectedStudentHead,
  .panel-heading,
  .hero-row {
    align-items: stretch;
    flex-direction: column;
  }

  .state-pill {
    width: fit-content;
  }
}

@media (max-width: 560px) {
  .auth-shell {
    align-items: start;
    padding: 14px;
  }

  .auth-card {
    width: 100%;
    padding: 23px 18px;
    border-radius: 21px;
  }

  .auth-copy {
    margin: 27px 0 22px;
  }

  .auth-copy h1 {
    font-size: clamp(2rem, 11vw, 2.75rem);
  }

  .brand--compact .brand__mark {
    width: 36px;
    height: 36px;
  }

  .brand--compact strong {
    font-size: 1rem;
  }

  .school-top-context span {
    display: none;
  }

  .school-top-context strong {
    font-size: .82rem;
  }

  .school-top-actions .button {
    min-height: 36px;
    padding-inline: 9px;
    font-size: .72rem;
  }

  .hero-row--compact h1 {
    font-size: clamp(2rem, 10vw, 2.7rem);
  }

  .vault-content--organized {
    padding-top: 22px;
  }

  .taskCard,
  .bagItem,
  .agendaItem,
  .familyCard,
  .attentionCard,
  .parentTask,
  .occurrenceCard,
  .quick-card {
    border-radius: 17px;
  }

  .bagItem {
    grid-template-columns: 42px minmax(0,1fr);
  }

  .bagItem .extraTag {
    grid-column: 2;
  }

  .toast {
    right: 10px;
    bottom: calc(84px + var(--safe-bottom));
    left: 10px;
    max-width: none;
  }

  .modal-backdrop {
    align-items: end;
    padding: 0;
  }

  .modal-card {
    width: 100%;
    max-height: 88svh;
    border-radius: 22px 22px 0 0;
  }
}

@media (hover: hover) and (pointer: fine) {
  .taskCard:hover,
  .bagItem:hover,
  .agendaItem:hover,
  .familyCard:hover,
  .attentionCard:hover,
  .parentTask:hover,
  .occurrenceCard:hover,
  .quick-card:hover {
    transform: translateY(-3px);
    border-color: rgba(126, 158, 231, .34);
    box-shadow:
      0 27px 78px rgba(0,0,0,.32),
      0 0 0 1px rgba(88,126,216,.08),
      inset 0 1px rgba(255,255,255,.065);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes auth-orbit {
  to { transform: rotate(360deg); }
}


/* ESCOLAR_VIDEO_VALIDACAO_V920 */
.video-validation-card,
.parent-video-panel {
  margin-top: 22px;
  padding: 22px;
  border: 1px solid rgba(109, 146, 255, .18);
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(18, 28, 49, .88), rgba(10, 17, 32, .92));
  box-shadow: 0 18px 46px rgba(0, 0, 0, .18);
}

.video-validation-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.video-validation-card__head h2 {
  margin: 5px 0 0;
  color: #f5f8ff;
}

.video-validation-card__head p:not(.eyebrow) {
  margin: 8px 0 0;
  max-width: 68ch;
  color: #93a5c7;
  line-height: 1.55;
}

.video-validation-ready {
  margin-top: 18px;
  display: grid;
  gap: 14px;
}

.video-validation-instructions {
  padding: 16px;
  border: 1px solid rgba(64, 216, 220, .16);
  border-radius: 16px;
  background: rgba(64, 216, 220, .06);
}

.video-validation-instructions strong {
  display: block;
  color: #f5f8ff;
}

.video-validation-instructions p {
  margin: 7px 0 0;
  color: #9fb1cf;
  line-height: 1.5;
}

.video-file-input {
  position: fixed;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.video-validation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.video-selected,
.video-status-message,
.video-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.video-selected,
.video-status-message {
  padding: 14px 16px;
  border: 1px solid rgba(109, 146, 255, .16);
  border-radius: 14px;
  background: rgba(109, 146, 255, .07);
}

.video-selected strong,
.video-status-message strong {
  color: #f5f8ff;
}

.video-selected span,
.video-status-message span,
.video-meta {
  color: #93a5c7;
  font-size: .86rem;
}

.video-status-message--ok {
  border-color: rgba(69, 221, 167, .22);
  background: rgba(69, 221, 167, .08);
}

.validation-video {
  display: block;
  width: 100%;
  max-height: 58vh;
  border-radius: 16px;
  background: #000;
  border: 1px solid rgba(255, 255, 255, .08);
}

.validation-video--parent {
  margin-top: 16px;
}

.video-upload-progress {
  display: grid;
  gap: 8px;
}

.video-upload-progress__head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #b9c6dd;
  font-size: .86rem;
}

.video-upload-progress__track {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
}

.video-upload-progress__track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6d92ff, #40d8dc);
  transition: width .2s ease;
}

.video-sent {
  margin-top: 16px;
}

.parent-video-panel {
  margin-bottom: 18px;
}

.video-meta {
  margin-top: 10px;
  justify-content: flex-start;
  flex-wrap: wrap;
}

.video-meta span {
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
}

@media (max-width: 680px) {
  .video-validation-card,
  .parent-video-panel {
    padding: 17px;
    border-radius: 17px;
  }

  .video-validation-card__head {
    display: grid;
  }

  .video-validation-actions {
    display: grid;
  }

  .video-validation-actions .button {
    width: 100%;
  }

  .video-selected,
  .video-status-message {
    align-items: flex-start;
    flex-direction: column;
  }

  .validation-video {
    max-height: 48vh;
  }
}


/* FAMILYLINK_SESSION_STYLE_V1 */

.familylink-session-card {
  margin-top: 18px;
}

.familylink-session-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.familylink-session-head h2 {
  margin: 3px 0 6px;
}

.familylink-session-head > div > p:last-child {
  margin: 0;
  opacity: 0.72;
}

.familylink-session-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(140, 160, 200, 0.30);
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 800;
}

.familylink-session-badge[data-state="ok"] {
  border-color: rgba(54, 179, 126, 0.55);
  color: #63d5a5;
}

.familylink-session-badge[data-state="bad"] {
  border-color: rgba(225, 91, 100, 0.55);
  color: #f08a91;
}

.familylink-session-meta {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.familylink-session-meta > div {
  padding: 11px 12px;
  border: 1px solid rgba(140, 160, 200, 0.16);
  border-radius: 12px;
}

.familylink-session-meta span {
  display: block;
  margin-bottom: 4px;
  font-size: 0.72rem;
  opacity: 0.62;
}

.familylink-session-meta strong {
  font-size: 0.88rem;
}

.familylink-students {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}

.familylink-student-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 11px;
  border: 1px solid rgba(140, 160, 200, 0.14);
  border-radius: 10px;
}

.familylink-ok {
  color: #63d5a5;
}

.familylink-bad {
  color: #f08a91;
}

.familylink-session-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.familylink-renew-panel {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(140, 160, 200, 0.15);
}

.familylink-instructions {
  margin-bottom: 13px;
}

.familylink-instructions ol {
  margin: 8px 0 0;
  padding-left: 22px;
  line-height: 1.55;
}

.familylink-curl-field {
  width: 100%;
  min-height: 145px;
  box-sizing: border-box;
  margin: 0 0 10px;
  padding: 11px;
  border: 1px solid rgba(140, 160, 200, 0.25);
  border-radius: 12px;
  background: rgba(8, 15, 29, 0.45);
  color: inherit;
  resize: vertical;
  font-family:
    ui-monospace,
    SFMono-Regular,
    Consolas,
    monospace;
  font-size: 0.76rem;
}

.familylink-session-message {
  min-height: 20px;
  margin: 12px 0 0;
  font-size: 0.82rem;
}

.familylink-session-message[data-kind="ok"] {
  color: #63d5a5;
}

.familylink-session-message[data-kind="bad"] {
  color: #f08a91;
}

@media (max-width: 720px) {
  .familylink-session-head {
    flex-direction: column;
  }

  .familylink-session-meta {
    grid-template-columns: 1fr;
  }

  .familylink-session-actions > button {
    flex: 1 1 150px;
  }
}


/* PASSKEY_CUTOVER_STYLE_V925 */

#loginScreen,
#portalScreen,
#parentAuthModal,
#studentSwitchBtn,
#parentBackBtn,
#parentSwitchRoleBtn {
  display: none !important;
}

[id*="familyLink"][id*="Pin"],
[id*="familyLink"][id*="PIN"],
[id*="familylink"][id*="pin"] {
  display: none !important;
}


/* ============================================================
   FAMILY_COLOR_B1_V926
   OPCAO B - HOME FAMILIA COLORIDA
   ============================================================ */

#parentScreen {
  --b1-bg: #050b17;
  --b1-surface: #0d172b;
  --b1-surface-2: #101e36;
  --b1-border: rgba(112, 145, 210, .25);

  --b1-blue: #3978ff;
  --b1-cyan: #37d6de;
  --b1-purple: #8352ed;
  --b1-green: #75d44d;
  --b1-yellow: #ffc442;
  --b1-orange: #ff9b30;
  --b1-red: #ff6269;

  background:
    radial-gradient(
      circle at 12% 3%,
      rgba(46, 104, 255, .15),
      transparent 34%
    ),
    radial-gradient(
      circle at 96% 28%,
      rgba(36, 214, 222, .08),
      transparent 32%
    ),
    #050b17;
}


/* ------------------------------------------------------------
   TOPBAR
   ------------------------------------------------------------ */

#parentScreen .parent-shell {
  min-height: 100dvh;
  background: transparent;
}

#parentScreen .topbar {
  position: relative;
  z-index: 20;

  min-height: 82px;

  padding:
    calc(14px + env(safe-area-inset-top))
    24px
    14px;

  border-bottom:
    1px solid
    rgba(90, 128, 198, .17);

  background:
    linear-gradient(
      180deg,
      rgba(5, 14, 31, .97),
      rgba(5, 14, 31, .91)
    );

  backdrop-filter:
    blur(18px);
}

#parentScreen .brand--compact {
  gap: 12px;
}

#parentScreen .brand--compact strong {
  font-size: 20px;
  font-weight: 850;
  letter-spacing: -.02em;
}

#parentScreen .brand__mark {
  width: 48px;
  height: 48px;

  border-radius: 15px;

  background:
    linear-gradient(
      145deg,
      #3292ff 0%,
      #4268ff 55%,
      #7650f2 100%
    );

  box-shadow:
    0 8px 26px
      rgba(48, 104, 255, .32),
    inset 0 1px 0
      rgba(255, 255, 255, .24);
}

#parentScreen .school-top-context {
  text-align: center;
}

#parentScreen .school-top-context > span {
  display: none;
}

#parentScreen .school-top-context strong {
  font-size: 20px;
  letter-spacing: -.02em;
}

#parentScreen .school-top-actions {
  justify-content: flex-end;
}

#parentScreen .parentRefreshB1 {
  gap: 8px;
  min-height: 46px;
  padding: 0 15px;

  border:
    1px solid
    rgba(93, 126, 190, .25);

  border-radius: 15px;

  background:
    rgba(13, 25, 49, .68);

  color:
    #e7edff;
}

#parentScreen .parentRefreshB1 svg {
  width: 20px;
  height: 20px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}


/* ------------------------------------------------------------
   LAYOUT
   ------------------------------------------------------------ */

#parentScreen .parent-content {
  padding-bottom:
    calc(
      112px
      + env(safe-area-inset-bottom)
    );
}

#parentScreen .vault-main {
  width: 100%;
}

#parentScreen .familyB1Overview {
  max-width: 960px;
  margin: 0 auto;
}


/* ------------------------------------------------------------
   HERO
   ------------------------------------------------------------ */

.familyB1Hero {
  position: relative;

  min-height: 210px;

  margin-bottom: 22px;
  padding: 34px 26px 22px;

  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    230px;

  align-items: center;
  gap: 24px;

  overflow: hidden;
}

.familyB1Hero::before {
  content: "";

  position: absolute;
  inset: 0;

  pointer-events: none;

  background:
    radial-gradient(
      circle at 75% 45%,
      rgba(48, 118, 255, .13),
      transparent 36%
    );
}

.familyB1HeroCopy {
  position: relative;
  z-index: 1;
}

.familyB1HeroCopy .eyebrow {
  margin-bottom: 12px;

  color: #6d95ff;

  font-size: 14px;
  font-weight: 900;
  letter-spacing: .18em;
}

.familyB1HeroCopy h1 {
  margin: 0;

  max-width: 620px;

  color: #f8faff;

  font-size:
    clamp(
      38px,
      6vw,
      60px
    );

  line-height: .98;

  letter-spacing: -.055em;
  font-weight: 900;
}

.familyB1HeroCopy h1 span {
  color: #45cadd;

  background:
    linear-gradient(
      90deg,
      #56dfe3,
      #55a7ff
    );

  -webkit-background-clip: text;
  background-clip: text;

  -webkit-text-fill-color:
    transparent;
}

.familyB1HeroCopy > p:last-child {
  max-width: 600px;

  margin:
    19px
    0
    0;

  color:
    #aebbd4;

  font-size: 17px;
  line-height: 1.5;
}

.familyB1HeroArt {
  position: relative;
  z-index: 1;

  display: grid;
  place-items: center;
}

.familyB1HeroArt svg {
  width: 100%;
  max-width: 220px;

  filter:
    drop-shadow(
      0 18px 24px
      rgba(0, 0, 0, .28)
    );
}


/* ------------------------------------------------------------
   FAMILY CARDS
   ------------------------------------------------------------ */

.familyCardsB1 {
  display: grid;
  gap: 20px;
}

.familyCardB1 {
  --family-color:
    #3978ff;

  position: relative;

  width: 100%;

  padding: 26px;

  overflow: hidden;

  border:
    1px solid
    color-mix(
      in srgb,
      var(--family-color) 50%,
      transparent
    );

  border-left:
    1px solid
    color-mix(
      in srgb,
      var(--family-color) 50%,
      transparent
    );

  border-radius: 27px;

  background:
    linear-gradient(
      135deg,
      color-mix(
        in srgb,
        var(--family-color) 14%,
        #101c33
      ),
      #0d182d 64%,
      #0a1427
    );

  color: #f7f9ff;

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.035),
    0 18px 42px
      rgba(0,0,0,.16);

  text-align: left;

  transition:
    transform .16s ease,
    border-color .16s ease,
    box-shadow .16s ease;
}

.familyCardB1::before {
  content: "";

  position: absolute;
  inset: 0 auto 0 0;

  width: 3px;

  background:
    linear-gradient(
      180deg,
      var(--family-color),
      transparent
    );

  opacity: .85;
}

.familyCardB1::after {
  content: "";

  position: absolute;
  right: -75px;
  top: -85px;

  width: 210px;
  height: 210px;

  border-radius: 50%;

  background:
    color-mix(
      in srgb,
      var(--family-color) 12%,
      transparent
    );

  filter: blur(15px);

  pointer-events: none;
}

.familyCardB1.active {
  border-color:
    color-mix(
      in srgb,
      var(--family-color) 72%,
      white 8%
    );

  box-shadow:
    0 0 0 1px
      color-mix(
        in srgb,
        var(--family-color) 22%,
        transparent
      ),
    0 20px 50px
      rgba(0,0,0,.24);
}

@media (hover:hover) {
  .familyCardB1:hover {
    transform:
      translateY(-2px);
  }
}

.familyCardTopB1 {
  position: relative;
  z-index: 2;

  align-items: center;
}

.familyPersonB1 {
  gap: 20px;
}

.familyAvatarB1 {
  width: 74px;
  height: 74px;

  flex:
    0 0
    74px;

  border-radius: 23px;

  background:
    linear-gradient(
      145deg,
      color-mix(
        in srgb,
        var(--family-color) 74%,
        white 20%
      ),
      var(--family-color)
    );

  box-shadow:
    0 13px 28px
      color-mix(
        in srgb,
        var(--family-color) 25%,
        transparent
      ),
    inset 0 1px 0
      rgba(255,255,255,.26);

  font-size: 29px;
  font-weight: 900;
}

.familyPersonTextB1 strong {
  color: #f7f9ff;

  font-size: 23px;
  line-height: 1.1;

  font-weight: 900;
  letter-spacing: .015em;
}

.familyPersonTextB1 small {
  margin-top: 7px;

  color: #8ea5d3;

  font-size: 16px;
  line-height: 1.2;
}

.familyScoreB1 {
  flex: 0 0 auto;

  display: grid;
  justify-items: end;
  gap: 6px;
}

.familyCardB1 .familyPercent {
  color: #ffffff;

  font-size: 42px;
  line-height: 1;

  font-weight: 900;
  letter-spacing: -.045em;
}

.familyStatusB1 {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  color: #78db4d;

  font-size: 15px;
  font-weight: 800;
}

.familyStatusB1.progress {
  color: #56baff;
}

.familyStatusB1.bad {
  color: #ff7e83;
}

.familyStatusB1 b {
  display: inline-grid;
  place-items: center;

  width: 22px;
  height: 22px;

  border:
    2px solid
    currentColor;

  border-radius: 50%;

  font-size: 13px;
  line-height: 1;
}

.familyProgressB1 {
  position: relative;
  z-index: 2;

  height: 10px;

  margin-top: 23px;

  border-radius: 999px;

  background:
    rgba(83, 109, 158, .20);

  overflow: hidden;
}

.familyProgressB1 span {
  height: 100%;

  background:
    linear-gradient(
      90deg,
      var(--family-color),
      #26d5df
    );

  box-shadow:
    0 0 18px
      color-mix(
        in srgb,
        var(--family-color) 42%,
        transparent
      );
}

.familyMetaB1 {
  position: relative;
  z-index: 2;

  margin-top: 20px;

  display: grid;
  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 12px;
}

.familyMetaB1 > span {
  min-height: 50px;

  padding: 10px 15px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;

  border:
    1px solid
    rgba(104, 143, 217, .23);

  border-radius: 999px;

  background:
    rgba(8, 19, 38, .49);

  color:
    #b9c7e5;

  font-size: 14px;
  font-weight: 700;

  white-space: nowrap;
}

.familyMetaB1 > span b {
  color: #f7f9ff;
  font-size: 17px;
}

.familyMetaB1 .familyMetaTaskB1 {
  border-color:
    rgba(54, 126, 255, .48);

  color:
    #70c6ff;

  background:
    rgba(29, 91, 200, .15);
}

.familyMetaB1 .familyMetaBagB1 {
  border-color:
    rgba(111, 195, 70, .45);

  color:
    #9bd66b;

  background:
    rgba(67, 127, 44, .15);
}

.familyMetaB1 .familyMetaCalendarB1 {
  border-color:
    rgba(135, 85, 234, .45);

  color:
    #c59aff;

  background:
    rgba(105, 63, 176, .15);
}


/* SVGs dentro dos chips */

.b1IconSvg {
  width: 22px;
  height: 22px;

  flex:
    0 0
    22px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}


/* ------------------------------------------------------------
   SELECTED STUDENT
   ------------------------------------------------------------ */

.selectedStudentB1 {
  position: relative;

  margin-top: 26px;

  padding: 28px;

  overflow: hidden;

  border:
    1px solid
    rgba(78, 126, 211, .38);

  border-radius: 27px;

  background:
    radial-gradient(
      circle at 12% 15%,
      rgba(49, 114, 255, .12),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #0d1a31,
      #0a1528
    );

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.035);
}

.selectedStudentHeadB1 {
  display: grid;
  grid-template-columns:
    minmax(0,1fr)
    auto;

  gap: 20px;
  align-items: start;
}

.selectedStudentIdentityB1 {
  display: flex;
  align-items: center;
  gap: 18px;

  min-width: 0;
}

.selectedStudentAvatarB1 {
  --selected-color:
    #3978ff;

  width: 78px;
  height: 78px;

  flex:
    0 0
    78px;

  display: grid;
  place-items: center;

  border:
    3px solid
    rgba(255,255,255,.18);

  border-radius: 50%;

  background:
    linear-gradient(
      145deg,
      color-mix(
        in srgb,
        var(--selected-color) 76%,
        white 18%
      ),
      var(--selected-color)
    );

  color: white;

  box-shadow:
    0 12px 30px
      color-mix(
        in srgb,
        var(--selected-color) 30%,
        transparent
      );

  font-size: 30px;
  font-weight: 900;
}

.selectedStudentTextB1 {
  min-width: 0;
}

.selectedStudentTextB1 .eyebrow {
  margin: 0 0 7px;

  color: #6b91ff;

  font-size: 12px;
  font-weight: 900;
  letter-spacing: .16em;
}

.selectedStudentHeadB1 h2 {
  margin: 0;

  color: #f8faff;

  font-size: 30px;
  line-height: 1.05;

  font-weight: 900;
  letter-spacing: .01em;
}

#parentStudentCourse {
  margin: 7px 0 0;

  color: #8da3cc;

  font-size: 14px;
}

.familySelectedStatusB1 {
  display: inline-flex;

  margin-top: 11px;
  padding: 7px 12px;

  border:
    1px solid
    rgba(62, 127, 255, .42);

  border-radius: 999px;

  background:
    rgba(45, 104, 223, .18);

  color: #b8d3ff;

  font-size: 12px;
  font-weight: 850;

  letter-spacing: .04em;
  text-transform: uppercase;
}

.familySelectedStatusB1[
  data-state="VALIDADA_PAIS"
] {
  border-color:
    rgba(105, 207, 75, .42);

  background:
    rgba(75, 145, 50, .16);

  color:
    #9ee678;
}

.familySelectedStatusB1[
  data-state="REPROVADA_PAIS"
] {
  border-color:
    rgba(255, 101, 105, .45);

  background:
    rgba(176, 48, 59, .16);

  color:
    #ff9296;
}

.selectedDateB1 {
  max-width: 200px;

  display: flex;
  align-items: center;
  gap: 11px;

  color:
    #b8c5df;

  font-size: 14px;
  line-height: 1.35;
}

/* ESCOLAR_FAMILY_ICONS_SOURCE_FIX_V996
   Centralizacao corrigida nos blocos originais da Familia.
   Sem override de cauda. */
.selectedDateIconB1 {
  width: 45px;
  height: 45px;

  flex:
    0 0
    45px;
border-radius: 13px;

  background:
    linear-gradient(
      145deg,
      #2987ff,
      #36bfe6
    );

  color: #eaf8ff;

  box-shadow:
    0 10px 24px
      rgba(37, 141, 255, .20);

  display: grid;
  place-items: center;
  line-height: 0;
}

.selectedDateIconB1 svg {
  width: 25px;
  height: 25px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;

  display: block;
  margin: 0;
  position: static;
  inset: auto;
  align-self: center;
  justify-self: center;
  transform: none;
  transform-origin: 50% 50%;
}


/* ------------------------------------------------------------
   METRICS
   ------------------------------------------------------------ */

.parentMetricsB1 {
  margin-top: 25px;

  display: grid;
  grid-template-columns:
    repeat(
      2,
      minmax(0, 1fr)
    );

  gap: 16px;

  border: 0;
}

.parentMetricsB1 > div {
  min-height: 124px;

  padding: 20px;

  display: flex;
  align-items: center;
  gap: 17px;

  border: 1px solid;
  border-radius: 22px;
}

.parentMetricsB1 > div:last-child {
  border-right:
    1px solid;
}

.parentMetricCardB1.taskMetricB1 {
  border-color:
    rgba(49, 120, 255, .48);

  background:
    linear-gradient(
      145deg,
      rgba(30, 88, 196, .18),
      rgba(8, 21, 43, .48)
    );
}

.parentMetricCardB1.bagMetricB1 {
  border-color:
    rgba(80, 180, 84, .40);

  background:
    linear-gradient(
      145deg,
      rgba(50, 125, 65, .17),
      rgba(8, 27, 31, .48)
    );
}

.parentMetricIconB1 {
  width: 72px;
  height: 72px;

  flex:
    0 0
    72px;
border-radius: 19px;

  display: grid;
  place-items: center;
  line-height: 0;
}

.taskMetricB1
.parentMetricIconB1 {
  background:
    linear-gradient(
      145deg,
      #2e83ff,
      #315ee8
    );

  color: white;
}

.bagMetricB1
.parentMetricIconB1 {
  background:
    linear-gradient(
      145deg,
      #74d44d,
      #3b9b4e
    );

  color: #f5ffe9;
}

.parentMetricIconB1 svg {
  width: 44px;
  height: 44px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;

  display: block;
  margin: 0;
  position: static;
  inset: auto;
  align-self: center;
  justify-self: center;
  transform: none;
  transform-origin: 50% 50%;
}

.parentMetricCardB1
> div
> span {
  display: block;

  margin-bottom: 7px;

  color: #6794f7;

  font-size: 13px;
  font-weight: 900;

  letter-spacing: .08em;
}

.bagMetricB1
> div
> span {
  color: #7bd365;
}

.parentMetricsB1 strong {
  color: #f8faff;

  font-size: 38px;
  line-height: 1;

  font-weight: 900;
  letter-spacing: -.04em;
}

.familyB1HiddenMetric {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  overflow: hidden !important;

  clip: rect(
    0,
    0,
    0,
    0
  ) !important;
}


/* ------------------------------------------------------------
   SUMMARY / ATTENTION
   ------------------------------------------------------------ */

.familyB1SummaryHead {
  margin-top: 29px;
}

.familyB1SummaryHead h2 {
  font-size: 24px;
}

.familyB1Attention {
  display: grid;
  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 13px;
}

.familyAttentionCardB1 {
  min-height: 122px;

  padding: 17px;

  align-items: flex-start;

  border:
    1px solid
    rgba(103, 136, 193, .20);

  border-radius: 20px;

  background:
    rgba(13, 25, 46, .72);
}

.familyAttentionCardB1.good {
  border-color:
    rgba(91, 199, 99, .28);
}

.familyAttentionCardB1.warn {
  border-color:
    rgba(255, 179, 57, .30);
}

.familyAttentionCardB1.bad {
  border-color:
    rgba(255, 92, 103, .32);
}

.familyAttentionIconB1 {
  width: 42px;
  height: 42px;

  flex:
    0 0
    42px;

  display: grid;
  place-items: center;

  border-radius: 13px;

  background:
    rgba(53, 115, 255, .14);

  color:
    #60a7ff;
}

.familyAttentionCardB1.good
.familyAttentionIconB1 {
  background:
    rgba(85, 188, 83, .14);

  color:
    #7adb69;
}

.familyAttentionCardB1.warn
.familyAttentionIconB1 {
  background:
    rgba(255, 170, 49, .14);

  color:
    #ffc152;
}

.familyAttentionCardB1.bad
.familyAttentionIconB1 {
  background:
    rgba(255, 83, 95, .14);

  color:
    #ff7e85;
}

.familyAttentionCardB1 strong {
  color: #f6f8ff;
}

.familyAttentionCardB1 small {
  color: #91a3c5;
}


/* ------------------------------------------------------------
   BOTTOM NAV
   ------------------------------------------------------------ */

.parentNavB1 {
  background:
    linear-gradient(
      180deg,
      rgba(7, 15, 30, .97),
      rgba(5, 11, 24, .99)
    );

  border-top:
    1px solid
    rgba(88, 119, 181, .22);

  box-shadow:
    0 -16px 40px
      rgba(0, 0, 0, .30);

  backdrop-filter:
    blur(20px);
}

.parentNavB1 button {
  min-height: 70px;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  gap: 5px;

  border-radius: 17px;

  color:
    #7f91b4;

  font-size: 12px;
  font-weight: 750;
}

.parentNavB1 button.active {
  background:
    linear-gradient(
      145deg,
      #276ce6,
      #2055c7
    );

  color: white;

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.18),
    0 10px 24px
      rgba(34, 94, 222, .30);
}

.parentNavIconB1 {
  height: 27px;

  display: grid;
  place-items: center;
}

.parentNavIconB1 svg {
  width: 26px;
  height: 26px;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.parentNavIconB1
.navSvgPathPlaceholder {
  display: none;
}


/* ------------------------------------------------------------
   DESKTOP
   ------------------------------------------------------------ */

@media (min-width: 921px) {

  #parentScreen
  .parent-content {
    padding-top: 26px;
  }

  #parentScreen
  .familyB1Overview {
    max-width: 1040px;
  }

  #parentScreen
  .vault-sidebar {
    border-radius: 22px;
  }
}


/* ------------------------------------------------------------
   MOBILE - FOCO DO MOCKUP
   ------------------------------------------------------------ */

@media (max-width: 920px) {

  #parentScreen .topbar {
    min-height: 82px;

    padding:
      calc(
        10px
        + env(
          safe-area-inset-top
        )
      )
      16px
      12px;

    display: grid;
    grid-template-columns:
      minmax(0, 1fr)
      auto
      minmax(0, 1fr);

    align-items: center;
    gap: 8px;
  }

  #parentScreen
  .brand--compact {
    min-width: 0;
  }

  #parentScreen
  .brand--compact strong {
    font-size: 17px;
  }

  #parentScreen
  .brand__mark {
    width: 43px;
    height: 43px;

    flex:
      0 0
      43px;

    border-radius: 13px;
  }

  #parentScreen
  .school-top-context {
    white-space: nowrap;
  }

  #parentScreen
  .school-top-context strong {
    font-size: 18px;
  }

  #parentScreen
  .school-top-actions {
    min-width: 0;
  }

  #parentScreen
  .parentRefreshB1 {
    min-height: 44px;

    padding:
      0
      12px;

    font-size: 13px;
  }

  #parentScreen
  .parentRefreshB1 svg {
    width: 18px;
    height: 18px;
  }

  #parentScreen
  .vault-layout {
    display: block;
  }

  #parentScreen
  .vault-sidebar {
    display: none;
  }

  #parentScreen
  .parent-content {
    padding:
      0
      16px
      calc(
        108px
        + env(
          safe-area-inset-bottom
        )
      );
  }

  .familyB1Hero {
    min-height: 220px;

    margin:
      0
      -16px
      18px;

    padding:
      29px
      18px
      18px;

    grid-template-columns:
      minmax(0,1fr)
      150px;

    gap: 8px;
  }

  .familyB1HeroCopy h1 {
    font-size:
      clamp(
        38px,
        11vw,
        53px
      );
  }

  .familyB1HeroCopy > p:last-child {
    margin-top: 16px;

    font-size: 15px;
  }

  .familyB1HeroArt svg {
    max-width: 165px;
  }

  .familyCardsB1 {
    gap: 17px;
  }

  .familyCardB1 {
    padding: 21px;

    border-radius: 24px;
  }

  .familyPersonB1 {
    gap: 15px;
  }

  .familyAvatarB1 {
    width: 64px;
    height: 64px;

    flex:
      0 0
      64px;

    border-radius: 20px;

    font-size: 25px;
  }

  .familyPersonTextB1 strong {
    font-size: 20px;
  }

  .familyPersonTextB1 small {
    font-size: 14px;
  }

  .familyCardB1
  .familyPercent {
    font-size: 37px;
  }

  .familyStatusB1 {
    font-size: 13px;
  }

  .familyProgressB1 {
    margin-top: 20px;
  }

  .familyMetaB1 {
    grid-template-columns:
      repeat(
        3,
        minmax(0, 1fr)
      );

    gap: 8px;
  }

  .familyMetaB1 > span {
    min-width: 0;
    min-height: 45px;

    padding:
      8px
      9px;

    gap: 5px;

    font-size: 11px;
  }

  .familyMetaB1 > span b {
    font-size: 14px;
  }

  .familyMetaB1 .b1IconSvg {
    width: 18px;
    height: 18px;

    flex:
      0 0
      18px;
  }

  .selectedStudentB1 {
    margin-top: 20px;

    padding: 22px;

    border-radius: 24px;
  }

  .selectedStudentHeadB1 {
    grid-template-columns: 1fr;

    gap: 18px;
  }

  .selectedStudentIdentityB1 {
    align-items: center;
  }

  .selectedStudentAvatarB1 {
    width: 66px;
    height: 66px;

    flex:
      0 0
      66px;

    font-size: 27px;
  }

  .selectedStudentHeadB1 h2 {
    font-size: 27px;
  }

  .selectedDateB1 {
    max-width: none;

    padding-top: 3px;
  }

  .selectedDateIconB1 {
    width: 40px;
    height: 40px;

    flex:
      0 0
      40px;
  }

  .parentMetricsB1 {
    gap: 10px;
  }

  .parentMetricsB1 > div {
    min-height: 107px;

    padding: 14px;

    gap: 11px;

    border-radius: 18px;
  }

  .parentMetricIconB1 {
    width: 54px;
    height: 54px;

    flex:
      0 0
      54px;

    border-radius: 16px;
  }

  .parentMetricIconB1 svg {
    width: 34px;
    height: 34px;
  }

  .parentMetricCardB1
  > div
  > span {
    margin-bottom: 5px;

    font-size: 10px;
  }

  .parentMetricsB1 strong {
    font-size: 31px;
  }

  .familyB1SummaryHead {
    margin-top: 24px;
  }

  .familyB1Attention {
    grid-template-columns: 1fr;
  }

  .familyAttentionCardB1 {
    min-height: 0;
  }

  .parentNavB1 {
    padding-bottom:
      max(
        8px,
        env(
          safe-area-inset-bottom
        )
      );
  }
}


/* ------------------------------------------------------------
   MOBILE ESTREITO
   ------------------------------------------------------------ */

@media (max-width: 430px) {

  #parentScreen
  .brand--compact strong {
    display: none;
  }

  #parentScreen
  .parentRefreshB1 span {
    display: none;
  }

  #parentScreen
  .parentRefreshB1 {
    width: 44px;
    padding: 0;

    justify-content: center;
  }

  .familyB1Hero {
    grid-template-columns:
      minmax(0, 1fr)
      118px;

    min-height: 196px;
  }

  .familyB1HeroArt svg {
    max-width: 132px;
  }

  .familyB1HeroCopy h1 {
    font-size:
      clamp(
        34px,
        11vw,
        46px
      );
  }

  .familyB1HeroCopy > p:last-child {
    font-size: 14px;
  }

  .familyCardB1 {
    padding: 18px;
  }

  .familyAvatarB1 {
    width: 56px;
    height: 56px;

    flex:
      0 0
      56px;

    border-radius: 17px;

    font-size: 22px;
  }

  .familyPersonTextB1 strong {
    font-size: 18px;
  }

  .familyPersonTextB1 small {
    font-size: 12px;
  }

  .familyCardB1
  .familyPercent {
    font-size: 32px;
  }

  .familyStatusB1 {
    font-size: 11px;
  }

  .familyMetaB1 {
    grid-template-columns:
      1fr
      1fr;
  }

  .familyMetaCalendarB1 {
    grid-column:
      1 / -1;
  }

  .selectedStudentB1 {
    padding: 18px;
  }

  .parentMetricsB1 {
    grid-template-columns:
      1fr
      1fr;
  }

  .parentMetricsB1 > div {
    min-height: 98px;

    padding: 12px;

    display: grid;
    gap: 8px;
  }

  .parentMetricIconB1 {
    width: 42px;
    height: 42px;

    flex:
      0 0
      42px;

    border-radius: 13px;
  }

  .parentMetricIconB1 svg {
    width: 28px;
    height: 28px;
  }

  .parentMetricsB1 strong {
    font-size: 28px;
  }
}


/* ============================================================
   FAMILY_REFINEMENT_V927
   Ajuste fino do mockup - proporcoes mobile
   ============================================================ */

@media (max-width: 920px) {

  /* Hero mais compacto */
  .familyB1Hero {
    min-height: 194px;

    margin-bottom: 16px;

    padding:
      23px
      18px
      13px;

    grid-template-columns:
      minmax(0, 1fr)
      142px;

    gap: 7px;
  }

  .familyB1HeroCopy .eyebrow {
    margin-bottom: 9px;
  }

  .familyB1HeroCopy h1 {
    line-height: .96;
  }

  .familyB1HeroCopy > p:last-child {
    margin-top: 13px;

    line-height: 1.42;
  }

  .familyB1HeroArt {
    transform:
      translateY(-7px);
  }

  .familyB1HeroArt svg {
    max-width: 150px;
  }


  /* Cards ligeiramente menores sem mudar o desenho */
  .familyCardsB1 {
    gap: 15px;
  }

  .familyCardB1 {
    padding: 18px;

    border-radius: 23px;
  }

  .familyPersonB1 {
    gap: 14px;
  }

  .familyAvatarB1 {
    width: 59px;
    height: 59px;

    flex:
      0 0
      59px;

    border-radius: 18px;

    font-size: 23px;
  }

  .familyPersonTextB1 strong {
    font-size: 19px;
  }

  .familyPersonTextB1 small {
    margin-top: 5px;

    font-size: 13px;
  }

  .familyCardB1
  .familyPercent {
    font-size: 35px;
  }

  .familyStatusB1 {
    gap: 6px;

    font-size: 12px;
  }

  .familyStatusB1 b {
    width: 20px;
    height: 20px;

    font-size: 12px;
  }

  .familyProgressB1 {
    height: 9px;

    margin-top: 17px;
  }

  .familyMetaB1 {
    margin-top: 15px;

    gap: 7px;
  }

  .familyMetaB1 > span {
    min-height: 43px;

    padding:
      7px
      8px;

    font-size: 10.5px;
  }

  .familyMetaB1 > span b {
    font-size: 14px;
  }


  /* Painel acompanhado também ganha um pouco de espaço útil */
  .selectedStudentB1 {
    margin-top: 18px;

    padding: 20px;

    border-radius: 23px;
  }


  /* Navegação inferior mais compacta */
  .parentNavB1 button {
    min-height: 63px;

    gap: 4px;

    border-radius: 15px;

    font-size: 11.5px;
  }

  .parentNavIconB1 {
    height: 24px;
  }

  .parentNavIconB1 svg {
    width: 23px;
    height: 23px;
  }

  #parentScreen .parent-content {
    padding-bottom:
      calc(
        98px
        + env(
          safe-area-inset-bottom
        )
      );
  }
}


/* iPhone / aparelhos estreitos */
@media (max-width: 430px) {

  .familyB1Hero {
    min-height: 178px;

    padding:
      21px
      17px
      11px;

    grid-template-columns:
      minmax(0, 1fr)
      112px;
  }

  .familyB1HeroCopy h1 {
    font-size: 40px;

    line-height: .95;

    letter-spacing: -.05em;
  }

  .familyB1HeroCopy > p:last-child {
    margin-top: 11px;

    font-size: 13.5px;
  }

  .familyB1HeroArt {
    transform:
      translateY(-9px);
  }

  .familyB1HeroArt svg {
    max-width: 122px;
  }


  .familyCardB1 {
    padding: 16px;

    border-radius: 22px;
  }

  .familyAvatarB1 {
    width: 53px;
    height: 53px;

    flex:
      0 0
      53px;

    border-radius: 16px;

    font-size: 21px;
  }

  .familyPersonTextB1 strong {
    font-size: 17.5px;
  }

  .familyPersonTextB1 small {
    font-size: 12px;
  }

  .familyCardB1
  .familyPercent {
    font-size: 31px;
  }

  .familyProgressB1 {
    margin-top: 15px;
  }

  .familyMetaB1 {
    margin-top: 13px;
  }

  .familyMetaB1 > span {
    min-height: 41px;
  }


  /* Mantém três indicadores na mesma linha quando houver espaço */
  .familyMetaB1 {
    grid-template-columns:
      repeat(
        3,
        minmax(0, 1fr)
      );
  }

  .familyMetaCalendarB1 {
    grid-column: auto;
  }

  .familyMetaB1 .b1IconSvg {
    width: 17px;
    height: 17px;

    flex:
      0 0
      17px;
  }


  /* Menu inferior */
  .parentNavB1 button {
    min-height: 61px;

    font-size: 11px;
  }

  .parentNavIconB1 svg {
    width: 22px;
    height: 22px;
  }
}


/* ============================================================
   PARENT_CHECK_COLOR_V928
   OPCAO B - TELA CONFERIR
   ============================================================ */

.parentCheckV928 {
  max-width: 960px;
  margin: 0 auto;
}


/* ------------------------------------------------------------
   HERO
   ------------------------------------------------------------ */

.checkHeroV928 {
  min-height: 190px;

  margin-bottom: 20px;
  padding: 28px 26px;

  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    185px;

  align-items: center;
  gap: 18px;

  overflow: hidden;

  border:
    1px solid
    rgba(69, 122, 229, .22);

  border-radius: 28px;

  background:
    radial-gradient(
      circle at 85% 30%,
      rgba(58, 124, 255, .20),
      transparent 35%
    ),
    linear-gradient(
      145deg,
      rgba(13, 28, 55, .95),
      rgba(7, 19, 38, .96)
    );
}

.checkHeroCopyV928 .eyebrow {
  margin: 0 0 9px;

  color: #7197ff;

  font-size: 13px;
  font-weight: 900;

  letter-spacing: .17em;
}

.checkHeroCopyV928 h1 {
  margin: 0;

  color: #f8faff;

  font-size:
    clamp(
      40px,
      6vw,
      58px
    );

  line-height: .97;

  font-weight: 900;
  letter-spacing: -.055em;
}

.checkHeroCopyV928 h1 span {
  background:
    linear-gradient(
      90deg,
      #4ddae1,
      #58a8ff
    );

  -webkit-background-clip: text;
  background-clip: text;

  color: transparent;
}

.checkHeroCopyV928 > p:last-child {
  max-width: 500px;

  margin: 15px 0 0;

  color: #aebbd4;

  font-size: 16px;
  line-height: 1.45;
}

.checkHeroArtV928 {
  display: grid;
  place-items: center;
}

.checkHeroArtV928 svg {
  width: 100%;
  max-width: 180px;

  filter:
    drop-shadow(
      0 17px 28px
      rgba(0,0,0,.28)
    );
}


/* ------------------------------------------------------------
   STUDENT
   ------------------------------------------------------------ */

.checkStudentPanelV928 {
  margin-bottom: 20px;
  padding: 21px;

  border:
    1px solid
    rgba(94, 132, 205, .27);

  border-radius: 24px;

  background:
    linear-gradient(
      145deg,
      rgba(15, 31, 58, .92),
      rgba(9, 21, 40, .94)
    );
}

.checkStudentHeadV928 {
  display: grid;
  grid-template-columns:
    auto
    minmax(0,1fr)
    auto;

  align-items: center;
  gap: 16px;
}

.checkStudentAvatarV928 {
  --check-student-color:
    #3978ff;

  width: 64px;
  height: 64px;

  display: grid;
  place-items: center;

  border-radius: 20px;

  background:
    linear-gradient(
      145deg,
      color-mix(
        in srgb,
        var(--check-student-color)
        74%,
        white 18%
      ),
      var(--check-student-color)
    );

  color: white;

  box-shadow:
    0 10px 25px
      color-mix(
        in srgb,
        var(--check-student-color)
        27%,
        transparent
      );

  font-size: 25px;
  font-weight: 900;
}

.checkStudentTextV928 {
  min-width: 0;
}

.checkStudentTextV928 .eyebrow {
  margin: 0 0 4px;

  color: #7398ff;

  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.checkStudentTextV928 h2 {
  margin: 0;

  color: #f8faff;

  font-size: 25px;
  line-height: 1.05;

  font-weight: 900;
}

.checkStudentTextV928 > p:last-child {
  margin: 5px 0 0;

  color: #91a5cb;

  font-size: 13px;
}

.checkStudentStatsV928 {
  min-width: 82px;

  padding: 10px 13px;

  border:
    1px solid
    rgba(61, 127, 255, .34);

  border-radius: 17px;

  background:
    rgba(35, 91, 196, .13);

  text-align: center;
}

.checkStudentStatsV928 span {
  display: block;

  color: #72a2ff;

  font-size: 9px;
  font-weight: 900;
  letter-spacing: .11em;
}

.checkStudentStatsV928 strong {
  display: block;

  margin-top: 3px;

  color: white;

  font-size: 27px;
  line-height: 1;

  font-weight: 900;
}

.checkStudentStripV928 {
  margin:
    17px
    0
    0;

  padding:
    15px
    0
    0;

  border-top:
    1px solid
    rgba(101, 132, 190, .17);
}

.checkStudentStripV928
.studentChip {
  min-height: 39px;

  background:
    rgba(7, 18, 36, .56);

  border-color:
    rgba(88, 123, 190, .25);

  color:
    #91a4c8;
}

.checkStudentStripV928
.studentChip.active {
  border-color:
    #3978ff;

  background:
    linear-gradient(
      145deg,
      #3978ff,
      #2759d7
    );

  color: white;

  box-shadow:
    0 8px 20px
      rgba(48, 103, 234, .20);
}


/* ------------------------------------------------------------
   SECTION HEAD
   ------------------------------------------------------------ */

.checkTasksSectionV928 {
  margin-top: 18px;
}

.checkSectionTitleV928 {
  display: flex;
  align-items: center;
  gap: 13px;
}

.checkSectionTitleV928 .eyebrow {
  margin: 0 0 3px;
}

.checkSectionTitleV928 h2 {
  margin: 0;

  color: #f8faff;

  font-size: 23px;
  font-weight: 850;
}

.checkSectionTitleV928
> div
> p:last-child {
  margin:
    5px
    0
    0;

  color:
    #91a4c8;

  font-size: 13px;
}

.checkSectionIconV928 {
  width: 49px;
  height: 49px;

  flex:
    0 0
    49px;
border-radius: 15px;

  /* ESCOLAR_CHECK_OCC_SOURCE_CENTER_V999 */
  display: grid;
  place-items: center;
  line-height: 0;
}

.checkSectionIconV928.blue {
  background:
    linear-gradient(
      145deg,
      #3586ff,
      #315edf
    );

  color: white;

  box-shadow:
    0 9px 22px
      rgba(45, 112, 240, .22);
}

.checkSectionIconV928.purple {
  background:
    linear-gradient(
      145deg,
      #9562f5,
      #6841cc
    );

  color: white;

  box-shadow:
    0 9px 22px
      rgba(120, 72, 221, .23);
}

.checkSectionIconV928 svg {
fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;

  width: 27px;
  height: 27px;
  display: block;
  margin: 0;
  align-self: center;
  justify-self: center;
  transform: none;
  transform-origin: 50% 50%;
}


/* ------------------------------------------------------------
   EXISTING TASK DOM
   ------------------------------------------------------------ */

.parentTasksV928 {
  margin-top: 15px;

  display: grid;
  gap: 12px;
}

.parentTasksV928
> .checkTaskCardV928 {
  position: relative;

  margin: 0;
  padding: 17px 17px 17px 63px;

  overflow: hidden;

  border:
    1px solid
    rgba(89, 125, 192, .24);

  border-radius: 20px;

  background:
    linear-gradient(
      145deg,
      rgba(15, 31, 58, .94),
      rgba(9, 21, 41, .94)
    );

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.025);
}

.parentTasksV928
> .checkTaskCardV928::before {
  content:
    attr(data-check-index);

  position: absolute;
  left: 16px;
  top: 17px;

  width: 34px;
  height: 34px;

  display: grid;
  place-items: center;

  border-radius: 11px;

  background:
    linear-gradient(
      145deg,
      #3a80ff,
      #2e58d5
    );

  color: white;

  font-size: 14px;
  font-weight: 900;
}

.parentTasksV928
> .checkTaskCardV928[
  data-check-state="done"
] {
  border-color:
    rgba(102, 211, 77, .38);

  background:
    linear-gradient(
      145deg,
      rgba(42, 101, 52, .18),
      rgba(8, 26, 31, .90)
    );
}

.parentTasksV928
> .checkTaskCardV928[
  data-check-state="done"
]::before {
  content: "✓";

  background:
    linear-gradient(
      145deg,
      #78d653,
      #409b4c
    );
}

.parentTasksV928
> .checkTaskCardV928[
  data-check-state="ready"
] {
  border-color:
    rgba(51, 137, 255, .40);
}

.parentTasksV928
> .checkTaskCardV928[
  data-check-state="bad"
] {
  border-color:
    rgba(255, 93, 103, .42);

  background:
    linear-gradient(
      145deg,
      rgba(125, 41, 52, .17),
      rgba(34, 13, 25, .90)
    );
}

.parentTasksV928
> .checkTaskCardV928[
  data-check-state="bad"
]::before {
  content: "!";

  background:
    linear-gradient(
      145deg,
      #ff7379,
      #ce3e51
    );
}


/*
 * Estiliza controles internos já existentes sem
 * assumir a estrutura exata criada pelo renderer.
 */

.parentTasksV928
.checkTaskCardV928 button {
  border-radius: 13px;
}

.parentTasksV928
.checkTaskCardV928
.button--primary {
  background:
    linear-gradient(
      145deg,
      #3a81ff,
      #2859d6
    );
}

.parentTasksV928
.checkTaskCardV928 strong {
  color:
    #f7f9ff;
}

.parentTasksV928
.checkTaskCardV928 p,
.parentTasksV928
.checkTaskCardV928 small {
  color:
    #97a9c9;
}


/* estados vazios gerados pelo renderer */

.parentTasksV928
.emptyState,
.parentTasksV928
.empty-state {
  padding: 28px 20px;

  border:
    1px dashed
    rgba(91, 133, 212, .31);

  border-radius: 20px;

  background:
    rgba(15, 30, 55, .55);
}


/* ------------------------------------------------------------
   VIDEO
   ------------------------------------------------------------ */

.parentVideoV928 {
  margin-top: 22px;
  padding: 20px;

  border:
    1px solid
    rgba(130, 86, 229, .33);

  border-radius: 23px;

  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(126, 79, 228, .13),
      transparent 38%
    ),
    linear-gradient(
      145deg,
      rgba(17, 28, 54, .94),
      rgba(12, 20, 40, .96)
    );
}

.parentVideoHeadV928 {
  align-items: center;
}

.parentVideoBadgeV928 {
  flex: 0 0 auto;
}

.parentVideoContentV928 {
  margin-top: 16px;
}

.parentVideoV928
video {
  border-radius: 17px;
}

.parentVideoV928[
  data-video-state="done"
] {
  border-color:
    rgba(97, 204, 78, .38);
}

.parentVideoV928[
  data-video-state="bad"
] {
  border-color:
    rgba(255, 93, 104, .42);
}


/* ------------------------------------------------------------
   CONFIRM BUTTON
   ------------------------------------------------------------ */

.checkStickyV928 {
  margin-top: 20px;
}

.validateAllV928 {
  width: 100%;
  min-height: 62px;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 11px;

  border: 0;
  border-radius: 19px;

  background:
    linear-gradient(
      135deg,
      #357cff,
      #385ee5 55%,
      #694ddd
    );

  color: white;

  box-shadow:
    0 14px 32px
      rgba(48, 92, 226, .28),
    inset 0 1px 0
      rgba(255,255,255,.20);

  font-size: 16px;
  font-weight: 850;
}

.validateIconV928 {
  width: 29px;
  height: 29px;

  display: grid;
  place-items: center;
}

.validateIconV928 svg {
  width: 27px;
  height: 27px;

  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 920px) {

  .parentCheckV928 {
    padding-top: 20px;
  }

  .checkHeroV928 {
    min-height: 174px;

    padding:
      22px
      19px;

    grid-template-columns:
      minmax(0,1fr)
      128px;

    gap: 6px;

    border-radius: 24px;
  }

  .checkHeroCopyV928 h1 {
    font-size: 41px;
  }

  .checkHeroCopyV928 > p:last-child {
    margin-top: 11px;

    font-size: 13.5px;
  }

  .checkHeroArtV928 {
    transform:
      translateY(-3px);
  }

  .checkHeroArtV928 svg {
    max-width: 128px;
  }

  .checkStudentPanelV928 {
    padding: 17px;

    border-radius: 22px;
  }

  .checkStudentHeadV928 {
    gap: 12px;
  }

  .checkStudentAvatarV928 {
    width: 55px;
    height: 55px;

    border-radius: 17px;

    font-size: 22px;
  }

  .checkStudentTextV928 h2 {
    font-size: 21px;
  }

  .checkStudentStatsV928 {
    min-width: 72px;

    padding:
      9px
      10px;
  }

  .checkStudentStatsV928 strong {
    font-size: 24px;
  }

  .checkStudentStripV928 {
    margin-top: 14px;
    padding-top: 13px;
  }

  .checkSectionIconV928 {
    width: 44px;
    height: 44px;

    flex:
      0 0
      44px;

    border-radius: 14px;
  }

  .checkSectionIconV928 svg {
    width: 24px;
    height: 24px;
  }

  .checkSectionTitleV928 h2 {
    font-size: 21px;
  }

  .parentTasksV928
  > .checkTaskCardV928 {
    padding:
      15px
      14px
      15px
      58px;

    border-radius: 18px;
  }

  .parentTasksV928
  > .checkTaskCardV928::before {
    left: 14px;
    top: 15px;

    width: 32px;
    height: 32px;
  }

  .parentVideoV928 {
    padding: 17px;

    border-radius: 21px;
  }

  .parentVideoHeadV928 {
    align-items:
      flex-start;
  }

  .validateAllV928 {
    min-height: 58px;

    border-radius: 17px;

    font-size: 15px;
  }
}


@media (max-width: 430px) {

  .parentCheckV928 {
    padding-top: 16px;
  }

  .checkHeroV928 {
    min-height: 157px;

    padding:
      19px
      17px;

    grid-template-columns:
      minmax(0,1fr)
      103px;
  }

  .checkHeroCopyV928 h1 {
    font-size: 37px;
  }

  .checkHeroCopyV928 > p:last-child {
    font-size: 13px;
  }

  .checkHeroArtV928 svg {
    max-width: 106px;
  }

  .checkStudentPanelV928 {
    padding: 15px;
  }

  .checkStudentAvatarV928 {
    width: 49px;
    height: 49px;

    border-radius: 15px;

    font-size: 20px;
  }

  .checkStudentTextV928 h2 {
    font-size: 19px;
  }

  .checkStudentTextV928
  > p:last-child {
    font-size: 11.5px;
  }

  .checkStudentStatsV928 {
    min-width: 63px;
  }

  .checkStudentStatsV928 strong {
    font-size: 22px;
  }

  .parentVideoHeadV928 {
    display: grid;
    gap: 12px;
  }

  .parentVideoBadgeV928 {
    justify-self:
      start;
  }
}


/* ============================================================
   PARENT_CHECK_FINISH_V9281
   acabamento do Conferir
   ============================================================ */


/* ------------------------------------------------------------
   1. ESTADO VAZIO NAO E UMA TAREFA
   ------------------------------------------------------------ */

.parentTasksV928
> .checkEmptyV9281 {
  position: relative;

  margin: 0;

  min-height: 164px;

  padding:
    28px
    24px;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;

  border:
    1px dashed
    rgba(79, 122, 205, .35);

  border-radius: 21px;

  background:
    radial-gradient(
      circle at 92% 12%,
      rgba(51, 112, 237, .08),
      transparent 35%
    ),
    rgba(11, 25, 47, .72);

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.02);
}


/*
 * Remove qualquer marcador/numeração herdado
 * do card de tarefa v928.
 */
.parentTasksV928
> .checkEmptyV9281::before,
.parentTasksV928
> .checkEmptyV9281::after {
  content: none !important;

  display: none !important;
}


/*
 * O renderer antigo traz um símbolo próprio.
 * Mantemos, mas com aparência de estado concluído.
 */
.parentTasksV928
> .checkEmptyV9281
.emptyGlyph,
.parentTasksV928
> .checkEmptyV9281
.empty-state__icon {
  width: 47px;
  height: 47px;

  margin-bottom: 14px;
border-radius: 15px;

  background:
    linear-gradient(
      145deg,
      #70d454,
      #3c9d4d
    );

  color: white;

  box-shadow:
    0 10px 22px
      rgba(69, 167, 77, .20);
font-weight: 900;

  display: grid;
  place-items: center;
  line-height: 0;
  font-size: 0;
}

.parentTasksV928
> .checkEmptyV9281
.emptyGlyph > svg {
  width: 25px;
  height: 25px;

  display: block;

  margin: 0;

  fill: none;
  stroke: currentColor;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;

  align-self: center;
  justify-self: center;
}



.parentTasksV928
> .checkEmptyV9281 h3,
.parentTasksV928
> .checkEmptyV9281 h2 {
  margin: 0;

  color: #f7f9ff;

  font-size: 24px;
  line-height: 1.15;

  font-weight: 850;
}

.parentTasksV928
> .checkEmptyV9281 p {
  margin:
    12px
    0
    0;

  color: #91a5c9;

  font-size: 15px;
  line-height: 1.45;
}


/* ------------------------------------------------------------
   2. NADA PARA CONFIRMAR
   ------------------------------------------------------------ */

.validateAllV928.nothingToConfirmV9281 {
  opacity: 1 !important;

  cursor: default;

  border:
    1px solid
    rgba(89, 184, 93, .28);

  background:
    linear-gradient(
      135deg,
      rgba(44, 120, 71, .78),
      rgba(45, 113, 91, .72)
    );

  color:
    #c6efc4;

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.10),
    0 10px 26px
      rgba(31, 99, 66, .16);
}

.validateAllV928.nothingToConfirmV9281:disabled {
  opacity: 1 !important;

  -webkit-text-fill-color:
    #c6efc4;
}

.validateAllV928.nothingToConfirmV9281
.validateIconV928 {
  color:
    #a9e79e;
}


/* ------------------------------------------------------------
   3. SAFE AREA / HEADER STICKY NO IOS
   ------------------------------------------------------------ */

#parentScreen .topbar {
  position: sticky;

  top: 0;

  z-index: 100;

  isolation: isolate;
}


/*
 * Fundo extra atrás da safe area enquanto a
 * página rola em modo PWA no iPhone.
 */
#parentScreen .topbar::before {
  content: "";

  position: absolute;

  left: 0;
  right: 0;

  bottom: 100%;

  height:
    env(
      safe-area-inset-top
    );

  background:
    #050e1f;

  pointer-events: none;
}


/*
 * Evita que âncoras/focos sejam posicionados
 * imediatamente abaixo da barra de status.
 */
#parentScreen {
  scroll-padding-top:
    calc(
      82px
      + env(
        safe-area-inset-top
      )
    );
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 920px) {

  .parentTasksV928
  > .checkEmptyV9281 {
    min-height: 145px;

    padding:
      23px
      20px;

    border-radius: 19px;
  }

  .parentTasksV928
  > .checkEmptyV9281 h3,
  .parentTasksV928
  > .checkEmptyV9281 h2 {
    font-size: 21px;
  }

  .parentTasksV928
  > .checkEmptyV9281 p {
    font-size: 14px;
  }
}


@media (max-width: 430px) {

  .parentTasksV928
  > .checkEmptyV9281 {
    min-height: 132px;

    padding:
      20px
      18px;
  }

  .validateAllV928.nothingToConfirmV9281 {
    min-height: 55px;

    font-size: 14px;
  }
}


/* ============================================================
   PARENT_OCCURRENCES_COLOR_V929
   OPCAO B - OCORRENCIAS
   ============================================================ */

.parentOccurrencesV929 {
  max-width: 960px;
  margin: 0 auto;
}


/* ------------------------------------------------------------
   HERO
   ------------------------------------------------------------ */

.occHeroV929 {
  min-height: 190px;

  margin-bottom: 20px;
  padding: 28px 26px;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    185px;

  align-items: center;
  gap: 18px;

  overflow: hidden;

  border:
    1px solid
    rgba(226, 82, 93, .25);

  border-radius: 28px;

  background:
    radial-gradient(
      circle at 84% 28%,
      rgba(239, 79, 87, .16),
      transparent 36%
    ),
    linear-gradient(
      145deg,
      rgba(28, 27, 54, .96),
      rgba(17, 19, 38, .97)
    );
}

.occHeroCopyV929 .eyebrow {
  margin: 0 0 9px;

  color: #ff8586;

  font-size: 13px;
  font-weight: 900;

  letter-spacing: .17em;
}

.occHeroCopyV929 h1 {
  margin: 0;

  color: #f8faff;

  font-size:
    clamp(
      39px,
      6vw,
      56px
    );

  line-height: .98;

  font-weight: 900;
  letter-spacing: -.052em;
}

.occHeroCopyV929 h1 span {
  background:
    linear-gradient(
      90deg,
      #ff765f,
      #ff4f75
    );

  -webkit-background-clip: text;
  background-clip: text;

  color: transparent;
}

.occHeroCopyV929 > p:last-child {
  max-width: 520px;

  margin: 15px 0 0;

  color: #aebbd4;

  font-size: 15px;
  line-height: 1.45;
}

.occHeroArtV929 {
  display: grid;
  place-items: center;
}

.occHeroArtV929 svg {
  width: 100%;
  max-width: 180px;

  filter:
    drop-shadow(
      0 17px 28px
      rgba(0, 0, 0, .28)
    );
}


/* ------------------------------------------------------------
   STUDENT PANEL
   ------------------------------------------------------------ */

.occStudentPanelV929 {
  padding: 21px;

  border:
    1px solid
    rgba(92, 128, 199, .26);

  border-radius: 24px;

  background:
    linear-gradient(
      145deg,
      rgba(15, 31, 58, .92),
      rgba(9, 21, 40, .94)
    );
}

.occStudentHeadV929 {
  display: grid;

  grid-template-columns:
    auto
    minmax(0, 1fr)
    auto;

  align-items: center;
  gap: 16px;
}

.occStudentAvatarV929 {
  --occ-student-color:
    #3978ff;

  width: 64px;
  height: 64px;

  display: grid;
  place-items: center;

  border-radius: 20px;

  background:
    linear-gradient(
      145deg,
      color-mix(
        in srgb,
        var(--occ-student-color)
        74%,
        white 18%
      ),
      var(--occ-student-color)
    );

  color: white;

  box-shadow:
    0 10px 25px
      color-mix(
        in srgb,
        var(--occ-student-color)
        27%,
        transparent
      );

  font-size: 25px;
  font-weight: 900;
}

.occStudentIdentityV929 .eyebrow {
  margin: 0 0 4px;

  color: #7598ff;

  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.occStudentIdentityV929 h2 {
  margin: 0;

  color: #f8faff;

  font-size: 25px;
  line-height: 1.05;

  font-weight: 900;
}

.occStudentIdentityV929
> p:last-child {
  margin: 5px 0 0;

  color: #91a5ca;

  font-size: 13px;
}

.occStatsV929 {
  display: flex;
  gap: 9px;
}

.occStatsV929 > div {
  min-width: 70px;

  padding: 9px 11px;

  border:
    1px solid
    rgba(78, 120, 199, .28);

  border-radius: 16px;

  background:
    rgba(31, 69, 140, .10);

  text-align: center;
}

.occStatsV929 span {
  display: block;

  color: #859ed2;

  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .10em;
}

.occStatsV929 strong {
  display: block;

  margin-top: 3px;

  color: white;

  font-size: 25px;
  line-height: 1;

  font-weight: 900;
}

.occStatsV929
.occNewStatV929 {
  border-color:
    rgba(255, 94, 100, .32);

  background:
    rgba(154, 45, 56, .12);
}

.occNewStatV929 span {
  color: #ff8c8e;
}

.occNewStatV929 strong {
  color: #ff9b9d;
}

.occStudentStripV929 {
  margin: 17px 0 0;
  padding: 15px 0 0;

  border-top:
    1px solid
    rgba(101, 132, 190, .17);
}

.occStudentStripV929
.studentChip {
  min-height: 39px;

  border-color:
    rgba(88, 123, 190, .25);

  background:
    rgba(7, 18, 36, .56);

  color: #91a4c8;
}

.occStudentStripV929
.studentChip.active {
  border-color: #3978ff;

  background:
    linear-gradient(
      145deg,
      #3978ff,
      #2759d7
    );

  color: white;
}


/* ------------------------------------------------------------
   LIST TITLE
   ------------------------------------------------------------ */

.occListSectionV929 {
  margin-top: 23px;
}

.occSectionTitleV929 {
  display: flex;
  align-items: center;
  gap: 13px;
}

.occSectionTitleV929 .eyebrow {
  margin: 0 0 3px;

  color: #ff8586;
}

.occSectionTitleV929 h2 {
  margin: 0;

  color: #f8faff;

  font-size: 23px;
  font-weight: 850;
}

.occSectionIconV929 {
  width: 49px;
  height: 49px;

  flex: 0 0 49px;
border-radius: 15px;

  background:
    linear-gradient(
      145deg,
      #ff725f,
      #db3f58
    );

  color: white;

  box-shadow:
    0 9px 22px
      rgba(210, 60, 74, .22);

  display: grid;
  place-items: center;
  line-height: 0;
}

.occSectionIconV929 svg {
fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;

  width: 27px;
  height: 27px;
  display: block;
  margin: 0;
  align-self: center;
  justify-self: center;
  transform: none;
  transform-origin: 50% 50%;
}


/* ------------------------------------------------------------
   OCCURRENCE CARDS
   ------------------------------------------------------------ */

.occurrencesV929 {
  margin-top: 16px;

  display: grid;
  gap: 13px;
}

.occurrencesV929
> .occurrenceCardV929 {
  position: relative;

  min-height: 118px;

  margin: 0;

  padding:
    18px
    72px
    18px
    76px;

  overflow: hidden;

  border:
    1px solid
    rgba(89, 125, 192, .24);

  border-radius: 21px;

  background:
    linear-gradient(
      145deg,
      rgba(15, 31, 58, .94),
      rgba(9, 21, 41, .94)
    );

  box-shadow:
    inset 0 1px 0
      rgba(255, 255, 255, .025);
}

.occurrenceIconV929 {
  position: absolute;

  left: 17px;
  top: 19px;

  width: 43px;
  height: 43px;
border-radius: 14px;

  background:
    linear-gradient(
      145deg,
      #687b9f,
      #42536f
    );

  color: white;

  display: grid;
  place-items: center;
  line-height: 0;
}

.occurrenceIconV929 svg {
fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;

  width: 25px;
  height: 25px;
  display: block;
  margin: 0;
  align-self: center;
  justify-self: center;
  transform: none;
  transform-origin: 50% 50%;
}


/* MATERIAL */

.occurrenceCardV929[
  data-occurrence-kind="material"
] {
  border-color:
    rgba(255, 180, 50, .37);

  background:
    linear-gradient(
      145deg,
      rgba(104, 70, 22, .18),
      rgba(32, 25, 18, .91)
    );
}

.occurrenceCardV929[
  data-occurrence-kind="material"
]
.occurrenceIconV929 {
  background:
    linear-gradient(
      145deg,
      #ffbe3f,
      #ee842e
    );
}


/* TAREFA INCOMPLETA */

.occurrenceCardV929[
  data-occurrence-kind="incomplete"
] {
  border-color:
    rgba(255, 142, 61, .38);

  background:
    linear-gradient(
      145deg,
      rgba(118, 57, 25, .18),
      rgba(39, 23, 20, .92)
    );
}

.occurrenceCardV929[
  data-occurrence-kind="incomplete"
]
.occurrenceIconV929 {
  background:
    linear-gradient(
      145deg,
      #ff9550,
      #e75d39
    );
}


/* NÃO CUMPRIU */

.occurrenceCardV929[
  data-occurrence-kind="missed"
] {
  border-color:
    rgba(255, 86, 101, .43);

  background:
    linear-gradient(
      145deg,
      rgba(126, 40, 53, .20),
      rgba(42, 17, 28, .93)
    );
}

.occurrenceCardV929[
  data-occurrence-kind="missed"
]
.occurrenceIconV929 {
  background:
    linear-gradient(
      145deg,
      #ff6670,
      #cf374f
    );
}


/* NOVA */

.occurrenceCardV929
.occurrenceNewBadgeV929 {
  position: absolute;

  top: 17px;
  right: 17px;

  padding:
    6px
    10px;

  border:
    1px solid
    rgba(255, 93, 104, .48);

  border-radius: 999px;

  background:
    rgba(176, 42, 55, .18);

  color: #ff8c92;

  font-size: 10px;
  line-height: 1;

  font-weight: 900;
  letter-spacing: .10em;
}

.occurrenceCardV929
strong {
  color: #f8faff;
}

.occurrenceCardV929
p,
.occurrenceCardV929
small {
  color: #98a9c9;
}


/* ------------------------------------------------------------
   EMPTY STATE
   ------------------------------------------------------------ */

.emptyOccurrencesV929 {
  margin-top: 16px;

  min-height: 205px;

  padding: 30px 24px;

  border:
    1px dashed
    rgba(83, 176, 95, .34);

  border-radius: 22px;

  background:
    radial-gradient(
      circle at 50% 0%,
      rgba(83, 180, 90, .08),
      transparent 45%
    ),
    rgba(11, 25, 46, .67);

  text-align: center;
}

.emptyOccurrencesV929
.empty-state__icon {
  width: 58px;
  height: 58px;

  margin: 0 auto 16px;

  display: grid;
  place-items: center;

  border-radius: 18px;

  background:
    linear-gradient(
      145deg,
      #73d653,
      #3f9b4c
    );

  color: white;

  box-shadow:
    0 12px 27px
      rgba(62, 156, 74, .20);

  font-size: 28px;
  font-weight: 900;
}

.emptyOccurrencesV929 h2 {
  margin: 0;

  color: #f7f9ff;

  font-size: 23px;
}

.emptyOccurrencesV929 p {
  margin: 10px 0 0;

  color: #91a5c9;

  font-size: 14px;
}


/* ------------------------------------------------------------
   LEGEND
   ------------------------------------------------------------ */

.occLegendV929 {
  margin-top: 20px;
  padding: 19px;

  border:
    1px solid
    rgba(84, 121, 192, .20);

  border-radius: 20px;

  background:
    rgba(12, 25, 47, .64);
}

.occLegendTitleV929 {
  display: flex;
  align-items: center;
  gap: 11px;
}

.occLegendTitleV929
> span {
  width: 35px;
  height: 35px;

  flex: 0 0 35px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  background:
    rgba(58, 117, 239, .17);

  color: #78a6ff;

  font-size: 17px;
  font-weight: 900;
}

.occLegendTitleV929 strong {
  display: block;

  color: #eef3ff;

  font-size: 14px;
}

.occLegendTitleV929 small {
  display: block;

  margin-top: 2px;

  color: #8498bc;

  font-size: 11.5px;
}

.occLegendItemsV929 {
  margin-top: 15px;

  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.occLegendItemsV929
> span {
  min-height: 34px;

  padding: 0 11px;

  display: inline-flex;
  align-items: center;
  gap: 7px;

  border:
    1px solid
    rgba(95, 127, 185, .19);

  border-radius: 999px;

  color: #aab8d2;

  font-size: 11px;
  font-weight: 700;
}

.occLegendItemsV929 i {
  width: 9px;
  height: 9px;

  border-radius: 50%;
}

.occLegendItemsV929
.material i {
  background: #ffae35;
}

.occLegendItemsV929
.incomplete i {
  background: #ff7c47;
}

.occLegendItemsV929
.missed i {
  background: #ff5869;
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 920px) {

  .parentOccurrencesV929 {
    padding-top: 20px;
  }

  .occHeroV929 {
    min-height: 174px;

    padding:
      22px
      19px;

    grid-template-columns:
      minmax(0, 1fr)
      127px;

    gap: 6px;

    border-radius: 24px;
  }

  .occHeroCopyV929 h1 {
    font-size: 39px;
  }

  .occHeroCopyV929 > p:last-child {
    margin-top: 11px;

    font-size: 13px;
  }

  .occHeroArtV929 svg {
    max-width: 127px;
  }

  .occStudentPanelV929 {
    padding: 17px;

    border-radius: 22px;
  }

  .occStudentHeadV929 {
    gap: 12px;
  }

  .occStudentAvatarV929 {
    width: 55px;
    height: 55px;

    border-radius: 17px;

    font-size: 22px;
  }

  .occStudentIdentityV929 h2 {
    font-size: 21px;
  }

  .occStatsV929 {
    gap: 6px;
  }

  .occStatsV929 > div {
    min-width: 58px;

    padding:
      8px
      8px;
  }

  .occStatsV929 strong {
    font-size: 22px;
  }

  .occStudentStripV929 {
    margin-top: 14px;
    padding-top: 13px;
  }

  .occSectionIconV929 {
    width: 44px;
    height: 44px;

    flex:
      0 0
      44px;

    border-radius: 14px;
  }

  .occSectionIconV929 svg {
    width: 26px;
    height: 26px;
  }

  .occSectionTitleV929 h2 {
    font-size: 21px;
  }

  .occurrencesV929
  > .occurrenceCardV929 {
    min-height: 108px;

    padding:
      16px
      63px
      16px
      66px;

    border-radius: 19px;
  }

  .occurrenceIconV929 {
    left: 14px;
    top: 16px;

    width: 40px;
    height: 40px;

    border-radius: 13px;
  }

  .occurrenceIconV929 svg {
    width: 24px;
    height: 24px;
  }

  .occurrenceCardV929
  .occurrenceNewBadgeV929 {
    top: 14px;
    right: 14px;
  }
}


@media (max-width: 430px) {

  .parentOccurrencesV929 {
    padding-top: 16px;
  }

  .occHeroV929 {
    min-height: 157px;

    padding:
      19px
      17px;

    grid-template-columns:
      minmax(0, 1fr)
      102px;
  }

  .occHeroCopyV929 h1 {
    font-size: 35px;
  }

  .occHeroCopyV929 > p:last-child {
    font-size: 12.5px;
  }

  .occHeroArtV929 svg {
    max-width: 104px;
  }

  .occStudentPanelV929 {
    padding: 15px;
  }

  .occStudentAvatarV929 {
    width: 49px;
    height: 49px;

    border-radius: 15px;

    font-size: 20px;
  }

  .occStudentIdentityV929 h2 {
    font-size: 18px;
  }

  .occStudentIdentityV929
  > p:last-child {
    font-size: 11px;
  }

  .occStatsV929 > div {
    min-width: 51px;

    padding:
      7px
      6px;
  }

  .occStatsV929 span {
    font-size: 7px;
  }

  .occStatsV929 strong {
    font-size: 20px;
  }

  .occurrencesV929
  > .occurrenceCardV929 {
    padding:
      15px
      54px
      15px
      61px;
  }

  .occurrenceCardV929
  .occurrenceNewBadgeV929 {
    padding:
      5px
      8px;

    font-size: 8px;
  }
}


/* FAMILYLINK_LINUX_HELP_V1 */

.familylink-linux-help {
  margin-top: 16px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 16px;
  background: rgba(248, 250, 252, 0.86);
  overflow: hidden;
}

.familylink-linux-help > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  user-select: none;
}

.familylink-linux-help > summary::-webkit-details-marker {
  display: none;
}

.familylink-linux-help > summary span {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.familylink-linux-help > summary strong {
  color: #0f172a;
  font-size: 0.96rem;
}

.familylink-linux-help > summary small {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 600;
}

.familylink-linux-help > summary b {
  color: #64748b;
  font-size: 1.15rem;
  transition: transform 160ms ease;
}

.familylink-linux-help[open] > summary b {
  transform: rotate(180deg);
}

.familylink-linux-help__body {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  padding: 16px 18px 18px;
  display: grid;
  gap: 16px;
}

.familylink-linux-help__warning {
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(245, 158, 11, 0.10);
  border: 1px solid rgba(245, 158, 11, 0.22);
}

.familylink-linux-help__warning strong {
  color: #92400e;
}

.familylink-linux-help__warning span {
  color: #78350f;
  line-height: 1.45;
  font-size: 0.86rem;
}

.familylink-linux-help__steps {
  margin: 0;
  padding-left: 22px;
  display: grid;
  gap: 14px;
}

.familylink-linux-help__steps li {
  padding-left: 3px;
  color: #334155;
  line-height: 1.5;
}

.familylink-linux-help__steps li > strong,
.familylink-linux-help__steps li > span {
  display: block;
}

.familylink-linux-help code {
  display: block;
  margin-top: 6px;
  padding: 9px 11px;
  border-radius: 10px;
  background: #0f172a;
  color: #f8fafc;
  font-size: 0.78rem;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  user-select: all;
}

.familylink-linux-help__readme {
  margin: 0;
  color: #64748b;
  font-size: 0.82rem;
  line-height: 1.45;
}

.familylink-linux-help__readme code {
  margin-top: 7px;
}

@media (max-width: 720px) {
  .familylink-linux-help > summary {
    padding: 14px;
  }

  .familylink-linux-help__body {
    padding: 14px;
  }

  .familylink-linux-help code {
    font-size: 0.72rem;
  }
}


/* FAMILYLINK_LINUX_HELP_COMPACT_V3 */

/*
 * O conteudo interno do Help continua igual.
 * Somente o botao recolhido assume o mesmo visual
 * dos botoes do card Family Link.
 */

.familylink-linux-help {
  margin-top: 14px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: transparent !important;
  overflow: visible !important;
}

.familylink-linux-help > summary {
  box-sizing: border-box !important;

  width: 100% !important;
  min-height: 56px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  gap: 10px !important;

  padding: 0 18px !important;

  border:
    1px solid rgba(98, 125, 189, 0.32) !important;

  border-radius: 16px !important;

  background:
    rgba(10, 24, 48, 0.78) !important;

  color: #f4f7ff !important;

  box-shadow: none !important;

  list-style: none !important;
  cursor: pointer !important;
  user-select: none !important;

  font-size: 0.98rem !important;
  font-weight: 750 !important;
  line-height: 1 !important;
}

.familylink-linux-help > summary::-webkit-details-marker {
  display: none !important;
}

.familylink-linux-help > summary strong {
  display: inline !important;

  color: inherit !important;

  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

.familylink-linux-help > summary > b {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin-left: 2px !important;

  color: #91a4c9 !important;

  font-size: 0.90rem !important;
  font-weight: 700 !important;

  transition:
    transform 160ms ease !important;
}

.familylink-linux-help[open] > summary > b {
  transform: rotate(180deg) !important;
}

.familylink-linux-help[open] > summary {
  border-radius:
    16px 16px 0 0 !important;
}

.familylink-linux-help__body {
  margin: 0 !important;

  border:
    1px solid rgba(98, 125, 189, 0.24) !important;

  border-top: 0 !important;

  border-radius:
    0 0 16px 16px !important;

  padding: 16px !important;

  background:
    rgba(8, 21, 42, 0.94) !important;
}

@media (max-width: 720px) {

  .familylink-linux-help > summary {
    min-height: 56px !important;
    padding: 0 16px !important;
    font-size: 0.96rem !important;
  }

}


/* ESCOLAR_CAMERA_1080P_V930 */
.student-camera-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(109, 146, 255, .18);
  border-radius: 18px;
  background: rgba(3, 7, 18, .42);
}
.student-camera-quality {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.student-camera-quality > div { display: grid; gap: 5px; }
.student-camera-quality strong { color: #f5f8ff; font-size: .92rem; font-weight: 650; }
.camera-state {
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .04em;
}
.camera-state--idle { color: #aebbd2; background: rgba(147, 165, 199, .10); }
.camera-state--loading { color: #b9cbff; background: rgba(109, 146, 255, .13); }
.camera-state--ready { color: #8ff0c7; background: rgba(69, 221, 167, .12); }
.camera-state--fallback { color: #ffd990; background: rgba(255, 201, 107, .12); }
.camera-state--recording,
.camera-state--error { color: #ffb0c1; background: rgba(255, 125, 153, .13); }
.camera-timer {
  min-width: 64px;
  padding: 7px 10px;
  border-radius: 999px;
  text-align: center;
  color: #f5f8ff;
  font-variant-numeric: tabular-nums;
  font-weight: 750;
  background: rgba(255, 125, 153, .14);
}
.student-camera-stage {
  position: relative;
  overflow: hidden;
  min-height: 230px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, .08);
  background: #02040a;
}
.student-camera-live {
  display: block;
  width: 100%;
  max-height: 58vh;
  object-fit: contain;
  background: #000;
}
.student-camera-placeholder {
  min-height: 230px;
  padding: 28px;
  display: grid;
  place-content: center;
  gap: 9px;
  text-align: center;
}
.student-camera-placeholder strong { color: #f5f8ff; font-size: 1rem; }
.student-camera-placeholder span {
  max-width: 54ch;
  color: #93a5c7;
  line-height: 1.5;
  font-size: .84rem;
}
.button--danger {
  border-color: rgba(255, 125, 153, .28);
  color: #ffd9e1;
  background: rgba(255, 125, 153, .12);
}
.button--ghost {
  border-color: rgba(147, 165, 199, .18);
  color: #c6d2e8;
  background: rgba(147, 165, 199, .07);
}
@media (max-width: 680px) {
  .student-camera-panel { padding: 11px; border-radius: 16px; }
  .student-camera-quality { align-items: flex-start; }
  .student-camera-stage,
  .student-camera-placeholder { min-height: 210px; }
  .student-camera-live { max-height: 52vh; }
}


/* ESCOLAR_CAMERA_PAUSE_V940 */
.camera-state--paused {
  color: #ffd990;
  background: rgba(255, 201, 107, .13);
}

.student-video-pause--paused {
  border-color: rgba(255, 201, 107, .34);
  color: #ffe2a8;
  background: rgba(255, 201, 107, .12);
}


/* PROFILE_B1_V950 */

.parentProfileV950 {
  max-width: 960px;
  margin: 0 auto;
}

.profileHeroV950 {
  min-height: 190px;
  margin-bottom: 20px;
  padding: 28px 26px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 185px;
  align-items: center;
  gap: 18px;
  overflow: hidden;
  border: 1px solid rgba(139, 105, 255, .27);
  border-radius: 28px;
  background:
    radial-gradient(circle at 84% 28%, rgba(121, 87, 255, .20), transparent 36%),
    radial-gradient(circle at 72% 86%, rgba(58, 211, 208, .10), transparent 34%),
    linear-gradient(145deg, rgba(26, 25, 58, .96), rgba(12, 19, 40, .97));
}

.profileHeroCopyV950 .eyebrow {
  margin: 0 0 9px;
  color: #a18bff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .17em;
}

.profileHeroCopyV950 h1 {
  margin: 0;
  color: #f8faff;
  font-size: clamp(39px, 6vw, 56px);
  line-height: .98;
  font-weight: 900;
  letter-spacing: -.052em;
}

.profileHeroCopyV950 h1 span {
  background: linear-gradient(90deg, #a986ff, #49d9dc);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.profileHeroCopyV950 > p:last-child {
  max-width: 520px;
  margin: 15px 0 0;
  color: #aebbd4;
  font-size: 15px;
  line-height: 1.45;
}

.profileHeroArtV950 {
  display: grid;
  place-items: center;
}

.profileHeroArtV950 svg {
  width: 100%;
  max-width: 180px;
  filter: drop-shadow(0 17px 28px rgba(0, 0, 0, .28));
}

.profileAccountV950 {
  margin-bottom: 20px;
  padding: 21px;
  border: 1px solid rgba(95, 127, 199, .26);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(15, 31, 58, .92), rgba(9, 21, 40, .94));
}

.profileAccountHeadV950 {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
}

.profileAvatarV950 {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  background: linear-gradient(145deg, #8f6eff, #5d45d7);
  color: #fff;
  box-shadow: 0 10px 25px rgba(99, 72, 220, .30);
  font-size: 25px;
  font-weight: 900;
}

.profileAccountIdentityV950 {
  min-width: 0;
}

.profileAccountIdentityV950 .eyebrow {
  margin: 0 0 4px;
  color: #9b86ff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.profileAccountIdentityV950 h2 {
  margin: 0;
  color: #f8faff;
  font-size: 25px;
  line-height: 1.05;
  font-weight: 900;
}

.profileAccountIdentityV950 > p:last-child {
  margin: 5px 0 0;
  color: #91a5ca;
  font-size: 13px;
}

.profileSecurityBadgeV950 {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 11px;
  border: 1px solid rgba(69, 221, 167, .28);
  border-radius: 999px;
  background: rgba(69, 221, 167, .08);
  color: #69e3b5;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.profileSecurityBadgeV950 i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #45dda7;
  box-shadow: 0 0 0 4px rgba(69, 221, 167, .10);
}

.profileSecurityStripV950 {
  margin-top: 18px;
  padding: 14px 15px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(77, 216, 220, .18);
  border-radius: 18px;
  background: linear-gradient(90deg, rgba(64, 216, 220, .08), rgba(94, 88, 224, .07));
}

.profileSecurityIconV950 {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(64, 216, 220, .10);
  color: #5be1dc;
}

.profileSecurityIconV950 svg,
.profileActionIconV950 svg,
.profileSectionIconV950 svg,
.profileMetaIconV950 svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.profileSecurityIconV950 svg {
  width: 21px;
  height: 21px;
}

.profileSecurityStripV950 strong,
.profileSecurityStripV950 span {
  display: block;
}

.profileSecurityStripV950 strong {
  color: #edf6ff;
  font-size: 13px;
  font-weight: 850;
}

.profileSecurityStripV950 span {
  margin-top: 3px;
  color: #869dc5;
  font-size: 11.5px;
  line-height: 1.4;
}

.profileActionsV950 {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.profileActionV950 {
  min-height: 70px;
  width: 100%;
  padding: 12px 13px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(88, 123, 194, .24);
  border-radius: 18px;
  background: rgba(10, 25, 49, .76);
  color: #f5f8ff;
  text-align: left;
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.profileActionV950:hover {
  transform: translateY(-1px);
  border-color: rgba(111, 150, 230, .40);
  background: rgba(13, 31, 59, .92);
}

.profileActionV950--danger {
  border-color: rgba(255, 100, 128, .18);
}

.profileActionIconV950 {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
}

.profileActionIconV950--blue {
  background: rgba(88, 154, 255, .11);
  color: #6ca8ff;
}

.profileActionIconV950--rose {
  background: rgba(255, 105, 133, .10);
  color: #ff859c;
}

.profileActionIconV950 svg {
  width: 21px;
  height: 21px;
}

.profileActionCopyV950 {
  min-width: 0;
}

.profileActionCopyV950 strong,
.profileActionCopyV950 small {
  display: block;
}

.profileActionCopyV950 strong {
  color: #f5f8ff;
  font-size: 13.5px;
  font-weight: 850;
}

.profileActionCopyV950 small {
  margin-top: 3px;
  color: #8298be;
  font-size: 10.5px;
  line-height: 1.35;
}

.profileActionV950 > b {
  color: #6f85ac;
  font-size: 24px;
  font-weight: 500;
}

.profileFamilyLinkV950 {
  margin-top: 0 !important;
  padding: 21px;
  border: 1px solid rgba(80, 124, 209, .26);
  border-radius: 24px;
  background:
    radial-gradient(circle at 96% 4%, rgba(68, 107, 226, .11), transparent 28%),
    linear-gradient(145deg, rgba(15, 31, 58, .92), rgba(9, 21, 40, .95));
}

.profileSectionTitleV950 {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 14px;
}

.profileSectionIconV950 {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(84, 112, 255, .20), rgba(64, 216, 220, .10));
  color: #86a7ff;
}

.profileSectionIconV950 svg {
  width: 22px;
  height: 22px;
}

.profileSectionTitleV950 .eyebrow {
  margin: 1px 0 4px;
  color: #799bff;
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: .16em;
}

.profileSectionTitleV950 h2 {
  margin: 0;
  color: #f7f9ff;
  font-size: 23px;
  font-weight: 900;
  letter-spacing: -.025em;
}

.profileSectionTitleV950 > div:nth-child(2) > p:last-child {
  margin: 6px 0 0;
  color: #8fa4c9;
  font-size: 12.5px;
  line-height: 1.4;
}

.parentProfileV950 .profileFamilyBadgeV950 {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(133, 157, 209, .28);
  background: rgba(31, 52, 91, .36);
  color: #a7b7d7;
  font-size: 10.5px;
  font-weight: 850;
}

.parentProfileV950 .profileFamilyBadgeV950[data-state="ok"] {
  border-color: rgba(69, 221, 167, .32);
  background: rgba(69, 221, 167, .08);
  color: #69e3b5;
}

.parentProfileV950 .profileFamilyBadgeV950[data-state="bad"] {
  border-color: rgba(255, 104, 131, .34);
  background: rgba(255, 104, 131, .07);
  color: #ff8ca0;
}

.parentProfileV950 .profileFamilyMetaV950 {
  margin: 18px 0 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.parentProfileV950 .profileFamilyMetaV950 > div {
  position: relative;
  min-height: 76px;
  padding: 13px 13px 12px 48px;
  border: 1px solid rgba(83, 119, 190, .20);
  border-radius: 17px;
  background: rgba(9, 23, 46, .68);
}

.profileMetaIconV950 {
  position: absolute;
  left: 13px;
  top: 14px;
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  color: #6e9dff;
}

.profileMetaIconV950 svg {
  width: 18px;
  height: 18px;
}

.parentProfileV950 .profileFamilyMetaV950 span:not(.profileMetaIconV950) {
  margin: 0 0 6px;
  color: #748db9;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.parentProfileV950 .profileFamilyMetaV950 strong {
  color: #edf3ff;
  font-size: 13px;
  font-weight: 850;
}

.profileFamilyStudentsV950 {
  gap: 9px;
  margin-bottom: 14px;
}

.parentProfileV950 .profileFamilyStudentsV950.familylink-students:empty {
  display: none;
}

.parentProfileV950 .familylink-student-row {
  padding: 11px 12px;
  border: 1px solid rgba(81, 119, 190, .19);
  border-radius: 15px;
  background: rgba(10, 24, 47, .58);
}

.profileFamilyActionsV950 {
  gap: 10px;
}

.parentProfileV950 .profileFamilyActionsV950 > button {
  min-height: 48px;
  border-radius: 15px;
  font-size: 12px;
  font-weight: 850;
}

.parentProfileV950 .profileFamilyHelpV950 {
  margin-top: 12px !important;
}

.parentProfileV950 .profileFamilyHelpV950 > summary {
  min-height: 50px !important;
  justify-content: space-between !important;
  padding: 0 15px !important;
  border: 1px solid rgba(82, 118, 189, .22) !important;
  border-radius: 15px !important;
  background: rgba(9, 23, 46, .62) !important;
  color: #dce7fb !important;
  font-size: 12px !important;
  font-weight: 800 !important;
}

.parentProfileV950 .profileFamilyHelpV950 > summary > b {
  color: #7990b8 !important;
}

.parentProfileV950 .profileFamilyRenewV950 {
  margin-top: 14px;
  padding: 15px;
  border: 1px solid rgba(83, 119, 190, .20);
  border-radius: 17px;
  background: rgba(7, 18, 37, .58);
}

.parentProfileV950 .profileFamilyRenewV950.familylink-renew-panel {
  border-top: 0;
}

.parentProfileV950 .profileFamilyRenewV950.familylink-renew-panel.hidden {
  display: none;
}

.parentProfileV950 .familylink-instructions {
  color: #b5c3dc;
  font-size: 12px;
}

.parentProfileV950 .familylink-instructions > strong {
  color: #eff4ff;
  font-size: 13px;
  font-weight: 850;
}

.parentProfileV950 .familylink-instructions ol {
  margin-top: 9px;
  color: #8fa4c9;
}

.parentProfileV950 .familylink-curl-field {
  min-height: 142px;
  border: 1px solid rgba(87, 124, 197, .26);
  border-radius: 15px;
  background: rgba(3, 10, 23, .68);
  color: #dce7fb;
}

.parentProfileV950 .familylink-curl-field:focus {
  outline: none;
  border-color: rgba(116, 149, 255, .58);
  box-shadow: 0 0 0 3px rgba(83, 112, 255, .09);
}

.parentProfileV950 .familylink-session-message {
  min-height: 0;
  margin: 12px 0 0;
  color: #9dafcd;
  font-size: 11.5px;
}

@media (max-width: 720px) {
  .parentProfileV950 {
    width: 100%;
  }

  .profileHeroV950 {
    min-height: 150px;
    margin-bottom: 14px;
    padding: 21px 17px;
    grid-template-columns: minmax(0, 1fr) 112px;
    gap: 8px;
    border-radius: 22px;
  }

  .profileHeroCopyV950 .eyebrow {
    margin-bottom: 7px;
    font-size: 9.5px;
  }

  .profileHeroCopyV950 h1 {
    font-size: clamp(31px, 10.5vw, 42px);
  }

  .profileHeroCopyV950 > p:last-child {
    max-width: 330px;
    margin-top: 10px;
    font-size: 11.5px;
    line-height: 1.35;
  }

  .profileHeroArtV950 svg {
    max-width: 118px;
  }

  .profileAccountV950,
  .profileFamilyLinkV950 {
    padding: 16px;
    border-radius: 21px;
  }

  .profileAccountV950 {
    margin-bottom: 14px;
  }

  .profileAccountHeadV950 {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
  }

  .profileAvatarV950 {
    width: 54px;
    height: 54px;
    border-radius: 17px;
    font-size: 21px;
  }

  .profileAccountIdentityV950 h2 {
    font-size: 21px;
  }

  .profileAccountIdentityV950 > p:last-child {
    font-size: 11px;
  }

  .profileSecurityBadgeV950 {
    grid-column: 1 / -1;
    justify-self: start;
    min-height: 28px;
    margin-top: 1px;
    font-size: 9.5px;
  }

  .profileSecurityStripV950 {
    margin-top: 14px;
    padding: 12px;
    border-radius: 15px;
  }

  .profileSecurityStripV950 strong {
    font-size: 11.5px;
  }

  .profileSecurityStripV950 span {
    font-size: 10px;
  }

  .profileActionsV950 {
    grid-template-columns: 1fr;
  }

  .profileActionV950 {
    min-height: 64px;
    border-radius: 16px;
  }

  .profileSectionTitleV950 {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 11px;
  }

  .profileSectionIconV950 {
    width: 42px;
    height: 42px;
    border-radius: 14px;
  }

  .profileSectionTitleV950 h2 {
    font-size: 20px;
  }

  .profileSectionTitleV950 > div:nth-child(2) > p:last-child {
    font-size: 10.5px;
  }

  .parentProfileV950 .profileFamilyBadgeV950 {
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 1px;
  }

  .parentProfileV950 .profileFamilyMetaV950 {
    grid-template-columns: 1fr;
  }

  .parentProfileV950 .profileFamilyMetaV950 > div {
    min-height: 68px;
  }

  .parentProfileV950 .profileFamilyActionsV950 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .parentProfileV950 .profileFamilyActionsV950 > button {
    width: 100%;
  }

  .parentProfileV950 .profileFamilyHelpV950 > summary {
    min-height: 48px !important;
    font-size: 11px !important;
  }

  .parentProfileV950 .familylink-linux-help__body {
    padding: 13px !important;
  }

  .parentProfileV950 .familylink-linux-help__steps {
    padding-left: 19px;
  }

  .parentProfileV950 .familylink-linux-help code {
    font-size: 9.5px !important;
  }

  .parentProfileV950 .profileFamilyRenewV950 {
    padding: 12px;
  }
}

@media (max-width: 430px) {
  .profileHeroV950 {
    grid-template-columns: minmax(0, 1fr) 94px;
    padding: 19px 14px;
  }

  .profileHeroCopyV950 h1 {
    font-size: 30px;
  }

  .profileHeroCopyV950 > p:last-child {
    max-width: 250px;
  }

  .profileHeroArtV950 svg {
    max-width: 96px;
  }

  .profileAccountV950,
  .profileFamilyLinkV950 {
    padding: 14px;
  }

  .parentProfileV950 .profileFamilyActionsV950 {
    grid-template-columns: 1fr;
  }

  .profileActionCopyV950 small {
    font-size: 9.8px;
  }
}


/* OPTION4_LIGHT_APP_V970
   Tema claro selecionado no mockup Opcao 4.
   Somente camada visual: nao altera estrutura nem comportamento.
*/

:root {
  color: #0b1734;
  background: #f7f9fe;
  color-scheme: light;

  --premium-bg: #f7f9fe;
  --premium-surface: rgba(255, 255, 255, .88);
  --premium-surface-strong: rgba(255, 255, 255, .97);
  --premium-border: rgba(60, 91, 153, .14);
  --premium-border-bright: rgba(61, 112, 255, .30);

  --premium-blue: #3978ff;
  --premium-blue-strong: #245ff2;
  --premium-violet: #8061ef;
  --premium-cyan: #31c9da;
  --premium-green: #27ad7a;
  --premium-amber: #e8a12a;
  --premium-danger: #ea5d68;

  --premium-text: #0b1734;
  --premium-muted: #697a9b;

  --premium-shadow:
    0 14px 38px
    rgba(31, 56, 105, .08);
}

html {
  background: #f7f9fe;
}

body {
  color: #0b1734;

  background:
    radial-gradient(
      circle at 8% -6%,
      rgba(71, 130, 255, .11),
      transparent 28rem
    ),
    radial-gradient(
      circle at 94% 10%,
      rgba(55, 211, 219, .09),
      transparent 28rem
    ),
    radial-gradient(
      circle at 72% 104%,
      rgba(134, 96, 238, .08),
      transparent 30rem
    ),
    linear-gradient(
      155deg,
      #fbfdff 0%,
      #f4f8ff 52%,
      #f8faff 100%
    );

  background-attachment: fixed;
}

body::before {
  opacity: .32;

  background-image:
    linear-gradient(
      rgba(43, 76, 137, .025) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(43, 76, 137, .025) 1px,
      transparent 1px
    );
}

#portalScreen,
#studentScreen,
#parentScreen {
  color: #0b1734;

  background:
    radial-gradient(
      circle at 5% 0%,
      rgba(65, 125, 255, .09),
      transparent 24rem
    ),
    radial-gradient(
      circle at 98% 10%,
      rgba(47, 207, 219, .07),
      transparent 23rem
    ),
    linear-gradient(
      180deg,
      #fbfdff 0%,
      #f5f8ff 62%,
      #f9fbff 100%
    );
}

#portalScreen .topbar,
#studentScreen .topbar,
#parentScreen .topbar {
  border-bottom:
    1px solid
    rgba(68, 98, 157, .13);

  background:
    rgba(255, 255, 255, .88);

  box-shadow:
    0 10px 30px
    rgba(35, 57, 104, .055);

  backdrop-filter:
    blur(22px)
    saturate(145%);
}

#portalScreen .brand strong,
#studentScreen .brand strong,
#parentScreen .brand strong {
  color: #0a1734;
  text-shadow: none;
}

#portalScreen .brand span,
#studentScreen .brand span,
#parentScreen .brand span,
#studentScreen .school-top-context span,
#parentScreen .school-top-context span {
  color: #7182a2;
}

#studentScreen .school-top-context strong,
#parentScreen .school-top-context strong {
  color: #132343;
}

#portalScreen .sync-state,
#studentScreen .sync-state,
#parentScreen .sync-state {
  color: #657899;
}

#portalScreen .button--ghost,
#studentScreen .button--ghost,
#parentScreen .button--ghost {
  border-color:
    rgba(63, 91, 148, .15);

  color: #30466d;

  background:
    rgba(255, 255, 255, .90);

  box-shadow:
    0 5px 16px
    rgba(32, 56, 104, .055);
}

#portalScreen .vault-sidebar,
#portalScreen .vault-panel,
#studentScreen .vault-sidebar,
#studentScreen .vault-panel,
#studentScreen .selectedStudentPanel,
#parentScreen .vault-sidebar,
#parentScreen .vault-panel,
#parentScreen .selectedStudentPanel {
  border-color:
    rgba(62, 91, 148, .13);

  background:
    rgba(255, 255, 255, .88);

  box-shadow:
    0 12px 34px
    rgba(29, 53, 100, .07),
    inset 0 1px 0
    rgba(255, 255, 255, .90);

  backdrop-filter:
    blur(18px)
    saturate(130%);
}

#studentScreen .sidebar-section + .sidebar-section,
#parentScreen .sidebar-section + .sidebar-section {
  border-top-color:
    rgba(62, 91, 148, .11);
}

#studentScreen .sidebar-title,
#parentScreen .sidebar-title {
  color: #7989a7;
}

#studentScreen .sidebar-link,
#parentScreen .sidebar-link {
  color: #596b8d;
}

#studentScreen .sidebar-link:hover,
#parentScreen .sidebar-link:hover {
  color: #1c3f81;

  background:
    rgba(57, 120, 255, .055);
}

#studentScreen .sidebar-link.active,
#parentScreen .sidebar-link.active {
  border-color:
    rgba(57, 120, 255, .20);

  color: #1d5fe9;

  background:
    linear-gradient(
      135deg,
      rgba(57, 120, 255, .11),
      rgba(125, 98, 239, .07)
    );
}

#studentScreen .sidebar-link strong,
#parentScreen .sidebar-link strong {
  color: #7990b9;
}

#studentScreen .sidebar-info,
#parentScreen .sidebar-info {
  color: #7182a2;
}

#studentScreen .sidebar-info strong,
#parentScreen .sidebar-info strong {
  color: #314a73;
}

#portalScreen .eyebrow,
#studentScreen .eyebrow,
#parentScreen .eyebrow {
  color: #3978ff;
  text-shadow: none;
}

#portalScreen h1,
#portalScreen h2,
#portalScreen h3,
#studentScreen h1,
#studentScreen h2,
#studentScreen h3,
#parentScreen h1,
#parentScreen h2,
#parentScreen h3 {
  color: #0b1734;
}

#studentScreen .hero-row--compact h1,
#parentScreen .hero-row--compact h1 {
  color: #0b1734;

  background:
    linear-gradient(
      100deg,
      #0b1734 0%,
      #18376d 64%,
      #3978ff 100%
    );

  background-clip: text;
  -webkit-background-clip: text;
}

#studentScreen .hero-row p:not(.eyebrow),
#parentScreen .hero-row p:not(.eyebrow) {
  color: #7181a0;
}

#studentScreen .dashboard-strip article,
#parentScreen .dashboard-strip article {
  border-color:
    rgba(62, 91, 148, .12);

  background:
    rgba(255, 255, 255, .94);

  box-shadow:
    0 9px 24px
    rgba(34, 57, 103, .055);
}

#studentScreen .dashboard-strip span,
#parentScreen .dashboard-strip span,
#parentScreen .parentMetrics .parentMetricCardB1 > div > span {
  color: #7787a4;
}

#studentScreen .dashboard-strip strong,
#parentScreen .dashboard-strip strong {
  color: #122344;
}

#studentScreen .progress-panel,
#studentScreen .bag-summary,
#parentScreen .progress-panel,
#parentScreen .bag-summary {
  border-color:
    rgba(62, 91, 148, .12);

  background:
    rgba(255, 255, 255, .95);

  box-shadow:
    0 9px 24px
    rgba(34, 57, 103, .055);
}

#studentScreen .progress-panel__head strong,
#parentScreen .progress-panel__head strong {
  color: #526587;
}

#studentScreen .school-progress,
#parentScreen .school-progress {
  background: #e7ecf5;
}

#studentScreen .section-heading h2,
#parentScreen .section-heading h2 {
  color: #142543;
}

#studentScreen .taskCard,
#studentScreen .bagItem,
#studentScreen .agendaItem,
#studentScreen .quick-card,
#parentScreen .taskCard,
#parentScreen .bagItem,
#parentScreen .agendaItem,
#parentScreen .familyCard,
#parentScreen .attentionCard,
#parentScreen .parentTask,
#parentScreen .occurrenceCard,
#parentScreen .quick-card {
  border-color:
    rgba(62, 91, 148, .12);

  color: #142543;

  background:
    radial-gradient(
      circle at 96% 0%,
      rgba(85, 132, 255, .045),
      transparent 12rem
    ),
    rgba(255, 255, 255, .96);

  box-shadow:
    0 10px 28px
    rgba(30, 53, 99, .065),
    inset 0 1px 0
    rgba(255, 255, 255, .95);
}

#studentScreen .taskCard h3,
#studentScreen .quick-card strong,
#studentScreen .bagContent strong,
#studentScreen .agendaItem strong,
#parentScreen .taskCard h3,
#parentScreen .quick-card strong,
#parentScreen .bagContent strong,
#parentScreen .agendaItem strong,
#parentScreen .attentionCard strong,
#parentScreen .occurrenceCard h3 {
  color: #11213f;
}

#studentScreen .taskMeta,
#studentScreen .quick-card small,
#studentScreen .bagContent small,
#studentScreen .agendaItem p,
#parentScreen .taskMeta,
#parentScreen .quick-card small,
#parentScreen .bagContent small,
#parentScreen .agendaItem p,
#parentScreen .attentionCard small,
#parentScreen .occurrenceCard p {
  color: #7182a2;
}

#studentScreen .subjectTag,
#parentScreen .subjectTag {
  border-color:
    rgba(57, 120, 255, .22);

  color: #2d67d9;

  background:
    rgba(57, 120, 255, .075);
}

#studentScreen .stateTag,
#parentScreen .stateTag {
  border-color:
    rgba(72, 92, 130, .18);

  color: #5e6f8c;

  background:
    rgba(91, 111, 151, .055);
}

#studentScreen .doneBtn,
#parentScreen .doneBtn {
  border-color:
    rgba(62, 91, 148, .14);

  color: #375079;

  background:
    #f7f9fd;

  box-shadow: none;
}

#studentScreen .doneBtn.checked,
#studentScreen .state-MARCADA_CRIANCA .doneBtn,
#parentScreen .doneBtn.checked,
#parentScreen .state-MARCADA_CRIANCA .doneBtn {
  border-color:
    rgba(231, 159, 37, .27);

  color: #a86c0c;

  background:
    #fff7e7;
}

#studentScreen .state-VALIDADA_PAIS .doneBtn,
#parentScreen .state-VALIDADA_PAIS .doneBtn {
  border-color:
    rgba(39, 173, 122, .25);

  color: #167a57;

  background:
    #edf9f4;
}

#studentScreen .rejectNotice,
#parentScreen .rejectNotice {
  border-color:
    rgba(226, 83, 105, .19);

  color: #b33d55;

  background: #fff2f4;
}

#studentScreen .bagItem.checked,
#parentScreen .bagItem.checked {
  background:
    linear-gradient(
      145deg,
      #f0faf6,
      #ffffff
    );
}

#studentScreen .bagCheck,
#parentScreen .bagCheck {
  border-color: #9aaccc;
  color: #fff;
  background: #fff;
}

#studentScreen .bagItem.checked .bagCheck,
#parentScreen .bagItem.checked .bagCheck {
  border-color: #167A57;
  background: #2ab17d;
}

#studentScreen .empty-state,
#parentScreen .empty-state {
  border-color:
    rgba(62, 91, 148, .12);

  color: #617394;

  background:
    rgba(255, 255, 255, .74);
}

#studentScreen .empty-state__icon,
#parentScreen .empty-state__icon {
  color: #3978ff;

  background:
    rgba(57, 120, 255, .08);
}

#studentScreen .empty-state h2,
#parentScreen .empty-state h2 {
  color: #172846;
}

#studentScreen .empty-state p,
#parentScreen .empty-state p {
  color: #7586a5;
}

#studentScreen .video-validation-card,
#parentScreen .video-validation-card,
#studentScreen .student-camera-panel {
  border-color:
    rgba(62, 91, 148, .13) !important;

  background:
    rgba(255, 255, 255, .96) !important;

  color: #122344 !important;

  box-shadow:
    0 10px 28px
    rgba(30, 53, 99, .06) !important;
}

#studentScreen .video-validation-card h2,
#studentScreen .video-validation-instructions strong,
#studentScreen .student-camera-quality strong,
#studentScreen .student-camera-placeholder strong,
#parentScreen .video-validation-card h2 {
  color: #122344 !important;
}

#studentScreen .video-validation-card p,
#studentScreen .student-camera-placeholder span,
#parentScreen .video-validation-card p {
  color: #7182a2 !important;
}

#studentScreen .student-camera-stage {
  border-color:
    rgba(62, 91, 148, .14);

  background: #eef3fb;
}

#studentScreen .student-camera-placeholder {
  background:
    linear-gradient(
      145deg,
      #f7faff,
      #edf3fb
    );
}

#studentScreen .video-selected,
#studentScreen .video-sent,
#parentScreen .video-selected,
#parentScreen .video-sent {
  border-color:
    rgba(62, 91, 148, .13);

  color: #30486e;

  background: #f7faff;
}

#studentScreen .settings-panel {
  background:
    rgba(255, 255, 255, .96);
}

#studentScreen .profile-avatar {
  box-shadow:
    0 10px 26px
    rgba(73, 102, 206, .17);
}

#studentScreen .settings-row {
  border-bottom-color:
    rgba(62, 91, 148, .10);

  color: #152746;
}

#studentScreen .settings-row strong {
  color: #142543;
}

#studentScreen .settings-row small {
  color: #7889a7;
}

#parentScreen .familyB1Hero {
  border-color:
    rgba(68, 102, 173, .13);

  background:
    radial-gradient(
      circle at 83% 30%,
      rgba(49, 199, 220, .13),
      transparent 34%
    ),
    radial-gradient(
      circle at 65% 8%,
      rgba(124, 94, 238, .10),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #ffffff,
      #f1f6ff
    );

  box-shadow:
    0 12px 34px
    rgba(31, 56, 105, .065);
}

#parentScreen .familyB1Hero::before {
  opacity: .44;
}

#parentScreen .familyB1HeroCopy .eyebrow {
  color: #3978ff;
}

#parentScreen .familyB1HeroCopy h1 {
  color: #0b1734;
}

#parentScreen .familyB1HeroCopy h1 span {
  background:
    linear-gradient(
      90deg,
      #3978ff,
      #31c9da
    );

  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}

#parentScreen .familyB1HeroCopy > p:last-child {
  color: #6e7f9e;
}

#parentScreen .familyB1HeroArt svg {
  filter:
    drop-shadow(
      0 14px 22px
      rgba(58, 88, 155, .12)
    );
}

#parentScreen .familyCardB1 {
  border-color:
    color-mix(
      in srgb,
      var(--family-color) 27%,
      #dbe5f5
    );

  color: #11213f;

  background:
    linear-gradient(
      145deg,
      color-mix(
        in srgb,
        var(--family-color) 4%,
        white
      ),
      #ffffff 68%
    );

  box-shadow:
    0 11px 30px
    rgba(30, 53, 99, .065);
}

#parentScreen .familyCardB1.active {
  box-shadow:
    0 0 0 1px
    color-mix(
      in srgb,
      var(--family-color) 20%,
      transparent
    ),
    0 13px 34px
    rgba(30, 53, 99, .08);
}

#parentScreen .familyPersonTextB1 strong,
#parentScreen .familyCardB1 .familyPercent {
  color: #11213f;
}

#parentScreen .familyPersonTextB1 small {
  color: #7587a8;
}

#parentScreen .familyProgressB1 {
  background: #e6ebf4;
}

#parentScreen .familyMetaB1 > span {
  border-color:
    rgba(62, 91, 148, .12);

  color: #52688e;

  background:
    rgba(248, 250, 254, .92);
}

#parentScreen .familyMetaB1 > span b {
  color: #16315f;
}

#parentScreen .familyMetaB1 .familyMetaTaskB1 {
  border-color:
    rgba(57, 120, 255, .18);

  color: #2a67d9;

  background: #f1f6ff;
}

#parentScreen .familyMetaB1 .familyMetaBagB1 {
  border-color:
    rgba(74, 174, 85, .18);

  color: #3d924b;

  background: #f1f9f2;
}

#parentScreen .familyMetaB1 .familyMetaCalendarB1 {
  border-color:
    rgba(128, 97, 239, .18);

  color: #7458d6;

  background: #f6f2ff;
}

#parentScreen .selectedStudentB1 {
  border-color:
    rgba(57, 120, 255, .16);

  background:
    radial-gradient(
      circle at 10% 12%,
      rgba(57, 120, 255, .055),
      transparent 34%
    ),
    #ffffff;

  box-shadow:
    0 11px 30px
    rgba(30, 53, 99, .06);
}

#parentScreen .selectedStudentHeadB1 h2,
#parentScreen .parentMetricsB1 strong {
  color: #132343;
}

#parentScreen #parentStudentCourse,
#parentScreen .selectedDateB1 {
  color: #7385a6;
}

#parentScreen .familySelectedStatusB1 {
  border-color:
    rgba(57, 120, 255, .18);

  background: #f1f6ff;
  color: #2d67d9;
}

#parentScreen .parentMetricsB1 > div {
  box-shadow: none;
}

#parentScreen .parentMetricCardB1.taskMetricB1 {
  border-color:
    rgba(57, 120, 255, .16);

  background:
    linear-gradient(
      145deg,
      #f1f6ff,
      #ffffff
    );
}

#parentScreen .parentMetricCardB1.bagMetricB1 {
  border-color:
    rgba(72, 173, 84, .16);

  background:
    linear-gradient(
      145deg,
      #f2faf3,
      #ffffff
    );
}

#parentScreen .checkHeroV928 {
  border-color:
    rgba(68, 102, 173, .13);

  background:
    radial-gradient(
      circle at 84% 28%,
      rgba(49, 201, 218, .12),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #ffffff,
      #f1f6ff
    );

  box-shadow:
    0 12px 34px
    rgba(31, 56, 105, .06);
}

#parentScreen .checkHeroCopyV928 .eyebrow {
  color: #3978ff;
}

#parentScreen .checkHeroCopyV928 h1 {
  color: #0b1734;
}

#parentScreen .checkHeroCopyV928 h1 span {
  background:
    linear-gradient(
      90deg,
      #3978ff,
      #31c9da
    );

  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}

#parentScreen .checkHeroCopyV928 > p:last-child {
  color: #6f809f;
}

#parentScreen .checkStudentPanelV928,
#parentScreen .checkTasksSectionV928,
#parentScreen .parentVideoV928 {
  border-color:
    rgba(62, 91, 148, .13);

  background:
    rgba(255, 255, 255, .96);

  box-shadow:
    0 11px 30px
    rgba(30, 53, 99, .06);
}

#parentScreen .checkStudentTextV928 h2,
#parentScreen .checkStudentStatsV928 strong,
#parentScreen .checkSectionTitleV928 h2,
#parentScreen .parentVideoHeadV928 h2 {
  color: #122344;
}

#parentScreen .checkStudentTextV928 > p:last-child,
#parentScreen .checkStudentStatsV928 span,
#parentScreen .checkSectionTitleV928 p,
#parentScreen .parentVideoHeadV928 p {
  color: #7283a2;
}

#parentScreen .checkStudentStripV928 .studentChip {
  border-color:
    rgba(62, 91, 148, .14);

  color: #52698f;

  background: #f7f9fd;
}

#parentScreen .checkStudentStripV928 .studentChip.active {
  border-color:
    rgba(57, 120, 255, .25);

  color: #1e5fe8;

  background: #edf4ff;
}

#parentScreen .occHeroV929 {
  border-color:
    rgba(226, 87, 106, .13);

  background:
    radial-gradient(
      circle at 86% 22%,
      rgba(240, 91, 110, .08),
      transparent 33%
    ),
    linear-gradient(
      145deg,
      #ffffff,
      #fff7f8
    );

  box-shadow:
    0 12px 34px
    rgba(31, 56, 105, .06);
}

#parentScreen .occHeroCopyV929 .eyebrow {
  color: #d8586b;
}

#parentScreen .occHeroCopyV929 h1 {
  color: #0b1734;
}

#parentScreen .occHeroCopyV929 h1 span {
  color: #df5a68;

  background: none;
  -webkit-text-fill-color: currentColor;
}

#parentScreen .occHeroCopyV929 > p:last-child {
  color: #6f809f;
}

#parentScreen .occStudentPanelV929,
#parentScreen .occLegendV929,
#parentScreen .occListSectionV929 {
  border-color:
    rgba(62, 91, 148, .13);

  background:
    rgba(255, 255, 255, .96);

  box-shadow:
    0 11px 30px
    rgba(30, 53, 99, .06);
}

#parentScreen .occStudentIdentityV929 h2,
#parentScreen .occStatsV929 strong,
#parentScreen .occLegendTitleV929 h2,
#parentScreen .occSectionTitleV929 h2 {
  color: #122344;
}

#parentScreen .occStudentIdentityV929 p,
#parentScreen .occStatsV929 span,
#parentScreen .occLegendTitleV929 p,
#parentScreen .occSectionTitleV929 p {
  color: #7283a2;
}

#parentScreen .occStudentStripV929 .studentChip {
  border-color:
    rgba(62, 91, 148, .14);

  color: #52698f;

  background: #f7f9fd;
}

#parentScreen .occStudentStripV929 .studentChip.active {
  border-color:
    rgba(57, 120, 255, .25);

  color: #1e5fe8;

  background: #edf4ff;
}

#parentScreen .occurrencesV929 .occurrenceCardV929 {
  border-color:
    rgba(62, 91, 148, .12);

  color: #122344;

  background: #ffffff;

  box-shadow:
    0 8px 22px
    rgba(30, 53, 99, .055);
}

#parentScreen .occurrencesV929 .occurrenceCardV929 h3,
#parentScreen .occurrencesV929 .occurrenceCardV929 strong {
  color: #142543;
}

#parentScreen .occurrencesV929 .occurrenceCardV929 p,
#parentScreen .occurrencesV929 .occurrenceCardV929 small {
  color: #7283a2;
}

#parentScreen .profileHeroV950 {
  border-color:
    rgba(114, 92, 222, .14);

  background:
    radial-gradient(
      circle at 84% 28%,
      rgba(124, 93, 239, .11),
      transparent 35%
    ),
    radial-gradient(
      circle at 72% 86%,
      rgba(49, 201, 218, .08),
      transparent 34%
    ),
    linear-gradient(
      145deg,
      #ffffff,
      #f5f3ff
    );

  box-shadow:
    0 12px 34px
    rgba(31, 56, 105, .06);
}

#parentScreen .profileHeroCopyV950 .eyebrow {
  color: #775bd8;
}

#parentScreen .profileHeroCopyV950 h1 {
  color: #0b1734;
}

#parentScreen .profileHeroCopyV950 h1 span {
  background:
    linear-gradient(
      90deg,
      #8061ef,
      #31c9da
    );

  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}

#parentScreen .profileHeroCopyV950 > p:last-child {
  color: #6f809f;
}

#parentScreen .profileAccountV950,
#parentScreen .profileFamilyLinkV950 {
  border-color:
    rgba(62, 91, 148, .13);

  background:
    rgba(255, 255, 255, .96);

  box-shadow:
    0 11px 30px
    rgba(30, 53, 99, .06);
}

#parentScreen .profileAccountIdentityV950 h2,
#parentScreen .profileSecurityStripV950 strong,
#parentScreen .profileActionCopyV950 strong,
#parentScreen .profileSectionTitleV950 h2,
#parentScreen .profileFamilyMetaV950 strong {
  color: #122344;
}

#parentScreen .profileAccountIdentityV950 > p:last-child,
#parentScreen .profileSecurityStripV950 span,
#parentScreen .profileActionCopyV950 small,
#parentScreen .profileSectionTitleV950 > div:nth-child(2) > p:last-child,
#parentScreen .profileFamilyMetaV950 span:not(.profileMetaIconV950),
#parentScreen .familylink-session-message,
#parentScreen .familylink-instructions,
#parentScreen .familylink-instructions ol {
  color: #7182a2;
}

#parentScreen .profileSecurityStripV950 {
  border-color:
    rgba(49, 201, 218, .15);

  background:
    linear-gradient(
      90deg,
      #eefbfb,
      #f5f3ff
    );
}

#parentScreen .profileActionV950,
#parentScreen .profileFamilyMetaV950 > div,
#parentScreen .familylink-student-row,
#parentScreen .profileFamilyHelpV950 > summary,
#parentScreen .profileFamilyRenewV950 {
  border-color:
    rgba(62, 91, 148, .12) !important;

  color: #142543 !important;

  background:
    #f8faff !important;
}

#parentScreen .profileActionV950:hover {
  border-color:
    rgba(57, 120, 255, .20);

  background: #f1f6ff;
}

#parentScreen .familylink-curl-field {
  border-color:
    rgba(62, 91, 148, .15);

  background: #ffffff;
  color: #142543;
}

#portalScreen .role-card,
#portalScreen .studentCard,
#portalScreen .studentPicker {
  border-color:
    rgba(62, 91, 148, .13);

  color: #142543;

  background:
    rgba(255, 255, 255, .96);

  box-shadow:
    0 11px 30px
    rgba(30, 53, 99, .06);
}

#portalScreen .role-card strong,
#portalScreen .studentCard strong {
  color: #132343;
}

#portalScreen .role-card p,
#portalScreen .role-card span,
#portalScreen .studentCard span {
  color: #7182a2;
}

#studentScreen .school-mobile-nav,
#parentScreen .school-mobile-nav,
#parentScreen .parentNavB1 {
  border-top:
    1px solid
    rgba(63, 91, 148, .13) !important;

  border-left:
    1px solid
    rgba(63, 91, 148, .10) !important;

  border-right:
    1px solid
    rgba(63, 91, 148, .10) !important;

  background:
    rgba(255, 255, 255, .94) !important;

  box-shadow:
    0 -9px 28px
    rgba(31, 53, 98, .08) !important;

  backdrop-filter:
    blur(20px)
    saturate(150%);
}

#studentScreen .school-mobile-nav button,
#parentScreen .school-mobile-nav button,
#parentScreen .parentNavB1 button {
  color: #687a9b !important;
  background: transparent !important;
}

#studentScreen .school-mobile-nav button.active,
#parentScreen .school-mobile-nav button.active,
#parentScreen .parentNavB1 button.active {
  border-color:
    transparent !important;

  color: #2464ed !important;

  background:
    linear-gradient(
      180deg,
      rgba(57, 120, 255, .12),
      rgba(57, 120, 255, .045)
    ) !important;

  box-shadow: none !important;
}

.modal-backdrop {
  background:
    rgba(24, 39, 68, .25);

  backdrop-filter: blur(10px);
}

.modal-card {
  border-color:
    rgba(62, 91, 148, .15);

  color: #142543;
  background: #ffffff;

  box-shadow:
    0 26px 70px
    rgba(25, 47, 88, .18);
}

.modal-card h2,
.modal-card strong {
  color: #142543;
}

.modal-card p,
.modal-copy {
  color: #7182a2;
}

.modal-card input {
  border-color:
    rgba(62, 91, 148, .18);

  color: #142543;
  background: #f8faff;
}

.alert--warning {
  border-color:
    rgba(221, 157, 34, .20);

  color: #8b5f11;
  background: #fff8e8;
}

.alert--error {
  border-color:
    rgba(223, 77, 99, .20);

  color: #a33a50;
  background: #fff2f4;
}

@media (max-width: 720px) {

  #portalScreen,
  #studentScreen,
  #parentScreen {
    background:
      linear-gradient(
        180deg,
        #fbfdff,
        #f5f8ff 70%,
        #ffffff
      );
  }

  #studentScreen .vault-content,
  #parentScreen .vault-content {
    padding-top: 18px;
  }

  #studentScreen .topbar,
  #parentScreen .topbar {
    background:
      rgba(255, 255, 255, .94);
  }

  #studentScreen .taskCard,
  #studentScreen .bagItem,
  #studentScreen .agendaItem,
  #studentScreen .quick-card,
  #parentScreen .familyCardB1,
  #parentScreen .selectedStudentB1,
  #parentScreen .checkStudentPanelV928,
  #parentScreen .checkTasksSectionV928,
  #parentScreen .occStudentPanelV929,
  #parentScreen .occLegendV929,
  #parentScreen .occListSectionV929,
  #parentScreen .profileAccountV950,
  #parentScreen .profileFamilyLinkV950 {
    box-shadow:
      0 7px 20px
      rgba(30, 53, 99, .05);
  }
}


/* OPTION4_LIGHT_CONTRAST_V971
   Correcao pontual apos validacao visual em iPhone.
   Nao altera estrutura, dimensoes ou comportamento.
*/

/* ==========================================================
   CONFERIR
   ========================================================== */

#parentScreen #parentCheckView .parentTask {
  color: #11213f !important;
}

#parentScreen #parentCheckView .parentTask strong {
  color: #11213f !important;
  -webkit-text-fill-color: #11213f !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

#parentScreen #parentCheckView .parentTask small {
  color: #64799c !important;
  -webkit-text-fill-color: #64799c !important;
  opacity: 1 !important;
}

#parentScreen #parentCheckView .parentTask .statusBadge {
  border:
    1px solid
    rgba(78, 102, 147, .18) !important;

  color: #596b8a !important;
  -webkit-text-fill-color: #596b8a !important;

  background: #f5f7fb !important;

  opacity: 1 !important;
}

#parentScreen #parentCheckView .parentTask .statusBadge.state-PENDENTE,
#parentScreen #parentCheckView .parentTask .state-PENDENTE,
#parentScreen #parentCheckView .parentTask .statusBadge.state-EM_ANDAMENTO,
#parentScreen #parentCheckView .parentTask .state-EM_ANDAMENTO {
  border-color:
    rgba(86, 109, 151, .20) !important;

  color: #596b8a !important;
  -webkit-text-fill-color: #596b8a !important;

  background: #f4f6fa !important;
}

#parentScreen #parentCheckView .parentTask .statusBadge.state-MARCADA_CRIANCA,
#parentScreen #parentCheckView .parentTask .state-MARCADA_CRIANCA {
  border-color:
    rgba(214, 148, 31, .22) !important;

  color: #9a650c !important;
  -webkit-text-fill-color: #9a650c !important;

  background: #fff7e7 !important;
}

#parentScreen #parentCheckView .parentTask .statusBadge.state-VALIDADA_PAIS,
#parentScreen #parentCheckView .parentTask .state-VALIDADA_PAIS {
  border-color:
    rgba(39, 163, 116, .21) !important;

  color: #167653 !important;
  -webkit-text-fill-color: #167653 !important;

  background: #edf9f4 !important;
}

#parentScreen #parentCheckView .parentTask .statusBadge.state-REPROVADA_PAIS,
#parentScreen #parentCheckView .parentTask .state-REPROVADA_PAIS {
  border-color:
    rgba(215, 73, 97, .20) !important;

  color: #b23e55 !important;
  -webkit-text-fill-color: #b23e55 !important;

  background: #fff1f4 !important;
}


/* ==========================================================
   OCORRENCIAS
   ========================================================== */

#parentScreen #parentOccurrencesView .occurrenceCard {
  color: #11213f !important;
}

#parentScreen #parentOccurrencesView .occurrenceType {
  border:
    1px solid
    rgba(211, 64, 91, .22) !important;

  color: #c53f58 !important;
  -webkit-text-fill-color: #c53f58 !important;

  background: #fff0f3 !important;

  opacity: 1 !important;
}

#parentScreen #parentOccurrencesView .occurrenceDate {
  color: #627696 !important;
  -webkit-text-fill-color: #627696 !important;
  opacity: 1 !important;
}

#parentScreen #parentOccurrencesView .occurrenceCard h3 {
  color: #11213f !important;
  -webkit-text-fill-color: #11213f !important;
  opacity: 1 !important;
}

#parentScreen #parentOccurrencesView .occurrenceCard p {
  color: #65799a !important;
  -webkit-text-fill-color: #65799a !important;
  opacity: 1 !important;
}

#parentScreen #parentOccurrencesView .occurrenceCard p strong {
  color: #142543 !important;
  -webkit-text-fill-color: #142543 !important;
  opacity: 1 !important;
}



/* OPTION4_LIGHT_CONTRAST_FINAL_V972
   Ajuste visual pontual baseado na validacao real em iPhone.
   Sem mudanca estrutural ou funcional.
*/

/* ==========================================================
   1. FAMILIA - ICONES DOS CARDS TAREFAS / MOCHILA
   O fundo desses icones e forte; o desenho precisa ser branco.
   ========================================================== */

#parentScreen .parentMetricCardB1.taskMetricB1 > :first-child,
#parentScreen .parentMetricCardB1.bagMetricB1 > :first-child {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

#parentScreen .parentMetricCardB1.taskMetricB1 > :first-child svg,
#parentScreen .parentMetricCardB1.bagMetricB1 > :first-child svg {
  color: #ffffff !important;
  stroke: #ffffff !important;
  opacity: 1 !important;
}

#parentScreen .parentMetricCardB1.taskMetricB1 > :first-child svg [stroke],
#parentScreen .parentMetricCardB1.bagMetricB1 > :first-child svg [stroke] {
  stroke: #ffffff !important;
  opacity: 1 !important;
}


/* ==========================================================
   2. OCORRENCIAS - LEGENDA "COMO FUNCIONA"
   ========================================================== */

#parentScreen .occLegendV929 .occLegendTitleV929 h2 {
  color: #18305a !important;
  -webkit-text-fill-color: #18305a !important;
  opacity: 1 !important;
}

#parentScreen .occLegendV929 .occLegendTitleV929 p {
  color: #64799c !important;
  -webkit-text-fill-color: #64799c !important;
  opacity: 1 !important;
}

#parentScreen .occLegendV929 strong,
#parentScreen .occLegendV929 small,
#parentScreen .occLegendV929 span {
  -webkit-text-fill-color: currentColor;
  opacity: 1 !important;
}

/* textos dos chips/itens da legenda */
#parentScreen .occLegendV929 :is(
  .occLegendItemsV929,
  .occLegendRowV929,
  .occLegendGridV929,
  .legendGrid,
  .legendItems
) {
  color: #53698f !important;
}

#parentScreen .occLegendV929 :is(
  .occLegendItemsV929,
  .occLegendRowV929,
  .occLegendGridV929,
  .legendGrid,
  .legendItems
) span:not(:empty),
#parentScreen .occLegendV929 :is(
  .occLegendItemsV929,
  .occLegendRowV929,
  .occLegendGridV929,
  .legendGrid,
  .legendItems
) strong:not(:empty) {
  color: #53698f !important;
  -webkit-text-fill-color: #53698f !important;
  opacity: 1 !important;
}

/* fallback seguro para labels textuais dentro da legenda */
#parentScreen .occLegendV929 > div:not(.occLegendTitleV929) {
  color: #53698f !important;
}

#parentScreen .occLegendV929 > div:not(.occLegendTitleV929) * {
  opacity: 1 !important;
}


/* ==========================================================
   3. CONFERIR - BADGE AGUARDANDO + AVISO DO VIDEO
   ========================================================== */

#parentScreen #parentVideoBadge.state-pill--blue {
  border:
    1px solid
    rgba(57, 120, 255, .30) !important;

  color: #245fc9 !important;
  -webkit-text-fill-color: #245fc9 !important;

  background: #eaf2ff !important;

  opacity: 1 !important;
}

#parentScreen #parentVideoBadge.state-pill--blue::before {
  background: #3978ff !important;
  opacity: 1 !important;
}

#parentScreen #parentVideoPanel .video-status-message {
  border:
    1px solid
    rgba(73, 108, 171, .15) !important;

  background: #f3f6fd !important;
  color: #18305a !important;

  opacity: 1 !important;
}

#parentScreen #parentVideoPanel .video-status-message strong {
  color: #18305a !important;
  -webkit-text-fill-color: #18305a !important;
  opacity: 1 !important;
}

#parentScreen #parentVideoPanel .video-status-message span {
  color: #657a9d !important;
  -webkit-text-fill-color: #657a9d !important;
  opacity: 1 !important;
}



/* OPTION4_LIGHT_DARKMODE_RESIDUES_V973
   Neutraliza somente residuos visuais do CSS escuro legado.
   O app Opcao 4 permanece forcado visualmente em tema claro.
*/

/* ==========================================================
   FAMILIA - FUNDO DO CONJUNTO TAREFAS / MOCHILA
   Os cards filhos ja sao claros. O antigo fundo escuro do
   container aparecia apenas nos gaps e nos cantos arredondados.
   ========================================================== */

#parentScreen .parentMetricsB1 {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

#parentScreen .parentMetricsB1::before,
#parentScreen .parentMetricsB1::after {
  content: none !important;
  display: none !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

#parentScreen .parentMetricsB1 > .parentMetricCardB1 {
  position: relative;
  z-index: 1;
}

/* Mantem explicitamente os dois cards claros. */
#parentScreen .parentMetricCardB1.taskMetricB1 {
  background:
    linear-gradient(
      145deg,
      #f1f6ff,
      #ffffff
    ) !important;
}

#parentScreen .parentMetricCardB1.bagMetricB1 {
  background:
    linear-gradient(
      145deg,
      #f2faf3,
      #ffffff
    ) !important;
}


/* ==========================================================
   CONFERIR - ESTADO VAZIO
   Sob preferencia de sistema escura, CSS antigo ainda aplicava
   fundo escuro a .emptyState. Nesta tela ele deve ser claro.
   ========================================================== */

#parentScreen .checkTasksSectionV928 .emptyState {
  border:
    1px solid
    rgba(62, 91, 148, .13) !important;

  border-radius: 24px !important;

  background:
    linear-gradient(
      145deg,
      #ffffff,
      #f7faff
    ) !important;

  color: #122344 !important;

  box-shadow:
    0 8px 22px
    rgba(30, 53, 99, .045) !important;

  opacity: 1 !important;
}

#parentScreen .checkTasksSectionV928 .emptyState h3 {
  color: #122344 !important;
  -webkit-text-fill-color: #122344 !important;
  opacity: 1 !important;
}

#parentScreen .checkTasksSectionV928 .emptyState p {
  color: #7283a2 !important;
  -webkit-text-fill-color: #7283a2 !important;
  opacity: 1 !important;
}

#parentScreen .checkTasksSectionV928 .emptyState .emptyGlyph,
#parentScreen .checkTasksSectionV928 .emptyState > span {
  background:
    linear-gradient(
      145deg,
      #65da63,
      #35b951
    ) !important;

  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;

  box-shadow:
    0 8px 20px
    rgba(53, 185, 81, .16) !important;

  opacity: 1 !important;
}



/* OPTION4_LIGHT_ACCESSIBLE_GREEN_V974
   Verde de sucesso com contraste maior sobre fundo claro.
   Aplica-se a textos, badges e estados positivos.
   Fundos fortes de icones permanecem como estavam.
*/

:root {
  --premium-green-readable: #167A57;
  --premium-green-readable-strong: #116747;
  --premium-green-soft: #EAF8F2;
  --premium-green-border: #A7DDCA;
}


/* ==========================================================
   BADGES / PILLS / ESTADOS DE SUCESSO
   ========================================================== */

#portalScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
),
#studentScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
),
#parentScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
) {
  border-color:
    var(--premium-green-border) !important;

  color:
    var(--premium-green-readable) !important;

  -webkit-text-fill-color:
    var(--premium-green-readable) !important;

  background:
    var(--premium-green-soft) !important;

  opacity: 1 !important;
}


/* ==========================================================
   TEXTOS POSITIVOS
   ========================================================== */

#portalScreen :is(
  .text-success,
  .success-text,
  .successText,
  .ok-text,
  .okText
),
#studentScreen :is(
  .text-success,
  .success-text,
  .successText,
  .ok-text,
  .okText
),
#parentScreen :is(
  .text-success,
  .success-text,
  .successText,
  .ok-text,
  .okText
) {
  color:
    var(--premium-green-readable) !important;

  -webkit-text-fill-color:
    var(--premium-green-readable) !important;

  opacity: 1 !important;
}


/* ==========================================================
   FAMILY LINK - STATUS DE SESSAO
   O card pode ter nomes de classes diferentes conforme o
   estado renderizado; limitamos o reforco ao bloco Family Link.
   ========================================================== */

#parentScreen .profileFamilyLinkV950 :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .successBadge,
  .success-badge,
  .familylink-status--ok,
  .familylink-status-ok,
  .familylink-status--active,
  .familylink-status-active
) {
  border:
    1px solid
    var(--premium-green-border) !important;

  color:
    var(--premium-green-readable) !important;

  -webkit-text-fill-color:
    var(--premium-green-readable) !important;

  background:
    var(--premium-green-soft) !important;

  opacity: 1 !important;
}


/* ==========================================================
   ESTADOS APROVADOS / CONFERIDOS
   ========================================================== */

#studentScreen .state-VALIDADA_PAIS,
#parentScreen .state-VALIDADA_PAIS,
#studentScreen .state-VALIDADA_PAIS .doneBtn,
#parentScreen .state-VALIDADA_PAIS .doneBtn {
  color:
    var(--premium-green-readable) !important;

  -webkit-text-fill-color:
    var(--premium-green-readable) !important;
}


/* ==========================================================
   FAMILIA - ESTADOS POSITIVOS TEXTUAIS
   ========================================================== */

#parentScreen .familyB1Overview :is(
  .familyStateGoodB1,
  .familyStatusGoodB1,
  .familyGoodB1,
  .statusGoodB1
) {
  color:
    var(--premium-green-readable) !important;

  -webkit-text-fill-color:
    var(--premium-green-readable) !important;

  opacity: 1 !important;
}


/* ==========================================================
   VERDE EM ELEMENTOS DE TEXTO QUE USAM A VARIAVEL LEGADA
   ========================================================== */

#portalScreen [style*="color: var(--premium-green)"],
#studentScreen [style*="color: var(--premium-green)"],
#parentScreen [style*="color: var(--premium-green)"] {
  color:
    var(--premium-green-readable) !important;

  -webkit-text-fill-color:
    var(--premium-green-readable) !important;
}



/* OPTION4_LIGHT_GREEN_MOCHILA_PATTERN_V975
   Uniformiza todos os estados verdes no mesmo padrao do chip
   "mochila" da home: verde legivel, suave e com bom contraste.
*/

:root {
  --success-chip-text: #4C9558;
  --success-chip-text-strong: #3D8149;
  --success-chip-bg: #EFF7EF;
  --success-chip-border: #C8DFC9;
  --success-chip-ring: rgba(76, 149, 88, 0.12);
}


/* ==========================================================
   BADGES / CHIPS / PILLS VERDES
   ========================================================== */

#portalScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
),
#studentScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
),
#parentScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
) {
  color: var(--success-chip-text) !important;
  -webkit-text-fill-color: var(--success-chip-text) !important;
  background: var(--success-chip-bg) !important;
  border: 1px solid var(--success-chip-border) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.28) !important;
  opacity: 1 !important;
}

#portalScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
) :is(svg, i, .dot, .status-dot, .pill-dot),
#studentScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
) :is(svg, i, .dot, .status-dot, .pill-dot),
#parentScreen :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .status--success,
  .status-success,
  .successBadge,
  .success-badge
) :is(svg, i, .dot, .status-dot, .pill-dot) {
  color: var(--success-chip-text) !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}


/* ==========================================================
   TEXTOS DE SUCESSO
   ========================================================== */

#portalScreen :is(
  .text-success,
  .success-text,
  .successText,
  .ok-text,
  .okText,
  .status-ok,
  .statusOk
),
#studentScreen :is(
  .text-success,
  .success-text,
  .successText,
  .ok-text,
  .okText,
  .status-ok,
  .statusOk
),
#parentScreen :is(
  .text-success,
  .success-text,
  .successText,
  .ok-text,
  .okText,
  .status-ok,
  .statusOk
) {
  color: var(--success-chip-text-strong) !important;
  -webkit-text-fill-color: var(--success-chip-text-strong) !important;
  opacity: 1 !important;
}


/* ==========================================================
   FAMILY LINK - BADGES E STATUS DE SAUDE DA SESSAO
   ========================================================== */

#parentScreen .profileFamilyLinkV950 :is(
  .state-pill--green,
  .state-pill--success,
  .statusPill--green,
  .statusPill--success,
  .status-pill--green,
  .status-pill--success,
  .badge--success,
  .badge-success,
  .successBadge,
  .success-badge,
  .familylink-status--ok,
  .familylink-status-ok,
  .familylink-status--active,
  .familylink-status-active
) {
  color: var(--success-chip-text) !important;
  -webkit-text-fill-color: var(--success-chip-text) !important;
  background: var(--success-chip-bg) !important;
  border: 1px solid var(--success-chip-border) !important;
  opacity: 1 !important;
}


/* ==========================================================
   OK por aluno, indicadores curtos e estados de lista
   ========================================================== */

#parentScreen .profileFamilyLinkV950 :is(
  .child-sync-ok,
  .sync-ok,
  .okBadge,
  .ok-badge,
  .statusOK,
  .status-ok,
  .statusOk
),
#studentScreen :is(
  .okBadge,
  .ok-badge,
  .statusOK,
  .status-ok,
  .statusOk
) {
  color: var(--success-chip-text) !important;
  -webkit-text-fill-color: var(--success-chip-text) !important;
  opacity: 1 !important;
}


/* ==========================================================
   EM DIA / CONFERIDO / APROVADO
   ========================================================== */

#parentScreen :is(
  .dayComplete,
  .day-complete,
  .statusComplete,
  .status-complete,
  .successInline,
  .success-inline
),
#studentScreen :is(
  .dayComplete,
  .day-complete,
  .statusComplete,
  .status-complete,
  .successInline,
  .success-inline
) {
  color: var(--success-chip-text) !important;
  -webkit-text-fill-color: var(--success-chip-text) !important;
  opacity: 1 !important;
}

#studentScreen .state-VALIDADA_PAIS,
#parentScreen .state-VALIDADA_PAIS,
#studentScreen .state-VALIDADA_PAIS .doneBtn,
#parentScreen .state-VALIDADA_PAIS .doneBtn {
  color: var(--success-chip-text-strong) !important;
  -webkit-text-fill-color: var(--success-chip-text-strong) !important;
}


/* ==========================================================
   BADGE GENERICO COM TEXTO EXATO
   Reforca os estados que aparecem no HTML com nomes curtos.
   ========================================================== */

#portalScreen .state-pill--green,
#portalScreen .state-pill--success,
#studentScreen .state-pill--green,
#studentScreen .state-pill--success,
#parentScreen .state-pill--green,
#parentScreen .state-pill--success {
  font-weight: 700 !important;
  letter-spacing: .01em !important;
}


/* ==========================================================
   DOTS / BULLETS POSITIVOS
   ========================================================== */

#portalScreen :is(.dot, .status-dot, .pill-dot).is-success,
#studentScreen :is(.dot, .status-dot, .pill-dot).is-success,
#parentScreen :is(.dot, .status-dot, .pill-dot).is-success {
  background: var(--success-chip-text) !important;
  box-shadow: 0 0 0 4px var(--success-chip-ring) !important;
}


/* ==========================================================
   ATRIBUTOS INLINE LEGADOS
   ========================================================== */

#portalScreen [style*="color: var(--premium-green)"],
#studentScreen [style*="color: var(--premium-green)"],
#parentScreen [style*="color: var(--premium-green)"] {
  color: var(--success-chip-text) !important;
  -webkit-text-fill-color: var(--success-chip-text) !important;
}


/* ==========================================================
   AREA DOS PAIS - RESUMOS POSITIVOS
   ========================================================== */

#parentScreen .familyB1Overview :is(
  .familyStateGoodB1,
  .familyStatusGoodB1,
  .familyGoodB1,
  .statusGoodB1
) {
  color: var(--success-chip-text) !important;
  -webkit-text-fill-color: var(--success-chip-text) !important;
  opacity: 1 !important;
}



/* OPTION4_LIGHT_PROFILE_GREEN_EXACT_V976
   Correcao dirigida aos seletores reais da tela Perfil.
   Mesmo padrao visual do chip verde "mochila".
*/

:root {
  --profile-success-text: #4C9558;
  --profile-success-text-strong: #3D8149;
  --profile-success-bg: #EFF7EF;
  --profile-success-border: #C8DFC9;
  --profile-success-dot: #4C9558;
  --profile-success-ring: rgba(76,149,88,.12);
}


/* ----------------------------------------------------------
   ACESSO PROTEGIDO
   ---------------------------------------------------------- */

#parentScreen .parentProfileV950 .profileSecurityBadgeV950 {
  border:
    1px solid
    var(--profile-success-border) !important;

  color:
    var(--profile-success-text) !important;

  -webkit-text-fill-color:
    var(--profile-success-text) !important;

  background:
    var(--profile-success-bg) !important;

  box-shadow:
    inset 0 0 0 1px
    rgba(255,255,255,.28) !important;

  opacity: 1 !important;
}

#parentScreen .parentProfileV950 .profileSecurityBadgeV950 i {
  background:
    var(--profile-success-dot) !important;

  box-shadow:
    0 0 0 4px
    var(--profile-success-ring) !important;

  opacity: 1 !important;
}


/* ----------------------------------------------------------
   FAMILY LINK - CONFIGURADA / ATIVA
   ---------------------------------------------------------- */

#parentScreen .parentProfileV950
.profileFamilyBadgeV950[data-state="ok"] {
  border:
    1px solid
    var(--profile-success-border) !important;

  color:
    var(--profile-success-text) !important;

  -webkit-text-fill-color:
    var(--profile-success-text) !important;

  background:
    var(--profile-success-bg) !important;

  box-shadow:
    inset 0 0 0 1px
    rgba(255,255,255,.28) !important;

  opacity: 1 !important;
}


/* O mesmo elemento tambem possui a classe generica antiga. */
#parentScreen .parentProfileV950
.familylink-session-badge[data-state="ok"] {
  border:
    1px solid
    var(--profile-success-border) !important;

  color:
    var(--profile-success-text) !important;

  -webkit-text-fill-color:
    var(--profile-success-text) !important;

  background:
    var(--profile-success-bg) !important;

  opacity: 1 !important;
}


/* ----------------------------------------------------------
   GUILHERME / MANUELA - OK
   ---------------------------------------------------------- */

#parentScreen .parentProfileV950 .familylink-ok {
  color:
    var(--profile-success-text) !important;

  -webkit-text-fill-color:
    var(--profile-success-text) !important;

  font-weight: 800 !important;
  opacity: 1 !important;
}


/* ----------------------------------------------------------
   MENSAGEM "SESSAO VALIDA..."
   ---------------------------------------------------------- */

#parentScreen .parentProfileV950
.familylink-session-message[data-kind="ok"] {
  color:
    var(--profile-success-text-strong) !important;

  -webkit-text-fill-color:
    var(--profile-success-text-strong) !important;

  opacity: 1 !important;
}



/* OPTION4_LIGHT_FINISH_V977
   Acabamento final do tema claro baseado na validacao visual real.
   Nao altera HTML nem logica.
*/


/* ==========================================================
   PERFIL - CENTRALIZAR ICONE PASSKEY
   ========================================================== */

#parentScreen .parentProfileV950 .profileSecurityIconV950 {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 !important;

  text-align: center !important;
}

#parentScreen .parentProfileV950 .profileSecurityIconV950 svg {
  display: block !important;

  width: 22px !important;
  height: 22px !important;

  margin: 0 auto !important;

  position: static !important;
  inset: auto !important;

  transform: none !important;

  flex: 0 0 auto !important;
}


/* ==========================================================
   CONFERIR - REMOVER QUADRADO/PLACA BRANCA EXTERNA
   Mantem titulo da secao e cards internos.
   ========================================================== */

#parentScreen .checkTasksSectionV928 {
  border: 0 !important;
  border-radius: 0 !important;

  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;

  box-shadow: none !important;

  overflow: visible !important;
}

#parentScreen .checkTasksSectionV928::before,
#parentScreen .checkTasksSectionV928::after {
  content: none !important;
  display: none !important;
}

#parentScreen .checkTasksSectionV928 .checkSectionTitleV928 {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}


/* Os cards de tarefa continuam brancos e independentes. */
#parentScreen .checkTasksSectionV928 .parentTask,
#parentScreen .checkTasksSectionV928 .emptyState {
  border:
    1px solid
    rgba(62, 91, 148, .13) !important;

  background:
    linear-gradient(
      145deg,
      #ffffff,
      #f8faff
    ) !important;

  box-shadow:
    0 8px 22px
    rgba(30, 53, 99, .045) !important;
}


/* ==========================================================
   OCORRENCIAS - REMOVER QUADRADO/PLACA BRANCA EXTERNA
   ========================================================== */

#parentScreen .occListSectionV929 {
  border: 0 !important;
  border-radius: 0 !important;

  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;

  box-shadow: none !important;

  overflow: visible !important;
}

#parentScreen .occListSectionV929::before,
#parentScreen .occListSectionV929::after {
  content: none !important;
  display: none !important;
}

#parentScreen .occListSectionV929 .occSectionTitleV929 {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}


/* ==========================================================
   OCORRENCIAS - ESPACAMENTO ENTRE CARDS
   ========================================================== */

#parentScreen #occurrences.occurrencesV929,
#parentScreen #occurrences {
  display: grid !important;

  grid-template-columns:
    minmax(0, 1fr) !important;

  gap: 18px !important;

  align-items: stretch !important;
}

#parentScreen #occurrences .occurrenceCardV929,
#parentScreen #occurrences .occurrenceCard {
  width: 100% !important;

  margin: 0 !important;

  border:
    1px solid
    rgba(62, 91, 148, .13) !important;

  background: #ffffff !important;

  box-shadow:
    0 8px 22px
    rgba(30, 53, 99, .045) !important;
}


/* ==========================================================
   PERFIL - AJUDA CHROME LINUX EM TEMA CLARO
   ========================================================== */

#parentScreen .parentProfileV950 .profileFamilyHelpV950 {
  border:
    1px solid
    rgba(62, 91, 148, .14) !important;

  border-radius: 18px !important;

  background: #f8faff !important;

  color: #142543 !important;

  box-shadow: none !important;

  overflow: hidden !important;
}

#parentScreen .parentProfileV950 .profileFamilyHelpV950 > summary {
  min-height: 52px !important;

  padding:
    0 16px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;

  color: #172846 !important;
  -webkit-text-fill-color: #172846 !important;

  background:
    linear-gradient(
      180deg,
      #ffffff,
      #f7f9fd
    ) !important;

  border: 0 !important;

  cursor: pointer !important;
}

#parentScreen .parentProfileV950 .profileFamilyHelpV950 > summary strong {
  color: #172846 !important;
  -webkit-text-fill-color: #172846 !important;

  font-weight: 800 !important;

  opacity: 1 !important;
}

#parentScreen .parentProfileV950 .profileFamilyHelpV950 > summary b {
  color: #6a7d9d !important;
  -webkit-text-fill-color: #6a7d9d !important;

  opacity: 1 !important;
}

#parentScreen .parentProfileV950
.profileFamilyHelpV950[open] > summary {
  border-bottom:
    1px solid
    rgba(62, 91, 148, .11) !important;
}

#parentScreen .parentProfileV950 .familylink-linux-help__body {
  padding: 18px 16px 20px !important;

  color: #4f6487 !important;

  background:
    linear-gradient(
      180deg,
      #fbfcff,
      #f6f9ff
    ) !important;
}

#parentScreen .parentProfileV950 .familylink-linux-help__warning {
  padding: 14px 15px !important;

  border:
    1px solid
    #efd9a8 !important;

  border-radius: 15px !important;

  color: #835714 !important;

  background: #fff8e9 !important;

  box-shadow: none !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help__warning strong {
  display: block !important;

  margin-bottom: 5px !important;

  color: #8d5d13 !important;
  -webkit-text-fill-color: #8d5d13 !important;

  font-weight: 850 !important;

  opacity: 1 !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help__warning span,
#parentScreen .parentProfileV950
.familylink-linux-help__warning b {
  color: #8a6428 !important;
  -webkit-text-fill-color: #8a6428 !important;

  opacity: 1 !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help__steps {
  margin:
    18px 0 0 !important;

  padding-left: 24px !important;

  color: #5c7092 !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help__steps li {
  margin:
    0 0 17px !important;

  padding-left: 3px !important;

  color: #5c7092 !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help__steps li::marker {
  color: #7185a6 !important;

  font-weight: 800 !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help__steps strong {
  color: #172846 !important;
  -webkit-text-fill-color: #172846 !important;

  font-weight: 800 !important;

  opacity: 1 !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help__steps span,
#parentScreen .parentProfileV950
.familylink-linux-help__steps b {
  color: #5f7395 !important;
  -webkit-text-fill-color: #5f7395 !important;

  opacity: 1 !important;
}

#parentScreen .parentProfileV950
.familylink-linux-help code {
  display: block !important;

  width: 100% !important;

  margin:
    9px 0 5px !important;

  padding:
    12px 13px !important;

  border:
    1px solid
    #d8e2f1 !important;

  border-radius: 12px !important;

  color: #203858 !important;
  -webkit-text-fill-color: #203858 !important;

  background: #edf3fb !important;

  font-size: 10.5px !important;
  line-height: 1.5 !important;

  white-space: pre-wrap !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;

  box-shadow: none !important;

  opacity: 1 !important;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 720px) {

  #parentScreen .checkTasksSectionV928,
  #parentScreen .occListSectionV929 {
    box-shadow: none !important;
  }

  #parentScreen #occurrences.occurrencesV929,
  #parentScreen #occurrences {
    gap: 16px !important;
  }

  #parentScreen .parentProfileV950
  .familylink-linux-help__body {
    padding: 15px 13px 18px !important;
  }

  #parentScreen .parentProfileV950
  .familylink-linux-help__steps {
    padding-left: 21px !important;
  }

  #parentScreen .parentProfileV950
  .familylink-linux-help code {
    font-size: 10px !important;
  }
}



/* OPTION4_LIGHT_LOADING_OCCURRENCES_V978
   Corrige loading ainda escuro e melhora contraste da legenda
   "Como funciona" na tela de Ocorrencias.
*/


/* ==========================================================
   LOADING / BUSY OVERLAY - TEMA CLARO
   ========================================================== */

.busyLayer {
  background: rgba(245, 248, 254, .72) !important;
  backdrop-filter: blur(10px) !important;
}

.busyCard {
  min-width: 240px !important;

  border:
    1px solid
    rgba(62, 91, 148, .16) !important;

  border-radius: 20px !important;

  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,.98),
      rgba(246,249,255,.98)
    ) !important;

  box-shadow:
    0 18px 46px
    rgba(23, 42, 74, .14),
    0 2px 0
    rgba(255,255,255,.8) inset !important;
}

.busyCard strong,
#busyText {
  color: #132544 !important;
  -webkit-text-fill-color: #132544 !important;

  font-weight: 800 !important;

  opacity: 1 !important;

  text-shadow: none !important;
}

.spinner {
  border-color: #d4e1f7 !important;
  border-top-color: #4b7dff !important;

  box-shadow:
    0 0 0 1px
    rgba(75, 125, 255, .05) !important;
}


/* ==========================================================
   OCORRENCIAS - LEGENDA CLARA E LEGIVEL
   ========================================================== */

#parentScreen .occLegendV929 {
  border:
    1px solid
    rgba(62, 91, 148, .14) !important;

  border-radius: 20px !important;

  background:
    linear-gradient(
      145deg,
      #ffffff,
      #f8faff
    ) !important;

  box-shadow:
    0 8px 22px
    rgba(30, 53, 99, .045) !important;
}

#parentScreen .occLegendTitleV929 > span {
  background: #e8f0ff !important;
  color: #5f84d6 !important;
}

#parentScreen .occLegendTitleV929 strong {
  color: #172846 !important;
  -webkit-text-fill-color: #172846 !important;

  font-weight: 800 !important;

  opacity: 1 !important;
}

#parentScreen .occLegendTitleV929 small {
  color: #5e7395 !important;
  -webkit-text-fill-color: #5e7395 !important;

  font-size: 12.5px !important;

  opacity: 1 !important;
}

#parentScreen .occLegendItemsV929 > span {
  border:
    1px solid
    rgba(62, 91, 148, .15) !important;

  background: #ffffff !important;

  color: #4f6486 !important;
  -webkit-text-fill-color: #4f6486 !important;

  box-shadow: none !important;

  opacity: 1 !important;
}

#parentScreen .occLegendItemsV929 > span b,
#parentScreen .occLegendItemsV929 > span strong,
#parentScreen .occLegendItemsV929 > span span {
  color: #4f6486 !important;
  -webkit-text-fill-color: #4f6486 !important;
  opacity: 1 !important;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 720px) {
  .busyCard {
    min-width: min(300px, calc(100vw - 56px)) !important;
    padding: 16px !important;
    gap: 12px !important;
  }

  .busyCard strong,
  #busyText {
    font-size: 16px !important;
    line-height: 1.35 !important;
  }

  #parentScreen .occLegendTitleV929 small {
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }

  #parentScreen .occLegendItemsV929 > span {
    min-height: 36px !important;
    font-size: 11.5px !important;
  }
}



/* WEB_PUSH_SETTINGS_V980 */

.pushSettingsCardV980 {
  width: 100%;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(62, 91, 148, .14);
  border-radius: 22px;
  background: linear-gradient(145deg, #ffffff, #f8faff);
  box-shadow: 0 10px 28px rgba(30, 53, 99, .05);
}

.pushSettingsHeadV980 {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 13px;
  align-items: start;
}

.pushSettingsIconV980 {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #3978ff;
  background: linear-gradient(145deg, #e8f1ff, #eff8ff);
}

.pushSettingsIconV980 svg {
  width: 24px;
  height: 24px;
}

.pushSettingsHeadV980 .eyebrow {
  display: block;
  margin: 0 0 4px;
  color: #3978ff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .16em;
}

.pushSettingsHeadV980 h2 {
  margin: 0;
  color: #11213f;
  font-size: 22px;
  line-height: 1.05;
}

.pushSettingsHeadV980 p {
  margin: 7px 0 0;
  color: #687c9d;
  font-size: 12px;
  line-height: 1.48;
}

.pushSettingsBadgeV980 {
  min-height: 30px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #d5deed;
  border-radius: 999px;
  color: #60728f;
  background: #f5f7fb;
  font-size: 10px;
  font-weight: 850;
  white-space: nowrap;
}

.pushSettingsBadgeV980[data-state="on"] {
  border-color: #c8dfc9;
  color: #4c9558;
  background: #eff7ef;
}

.pushSettingsChipsV980 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
}

.pushSettingsChipsV980 > span {
  min-height: 32px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(62, 91, 148, .14);
  border-radius: 999px;
  color: #50668a;
  background: #ffffff;
  font-size: 10.5px;
  font-weight: 750;
}

.pushSettingsMessageV980 {
  min-height: 18px;
  margin-top: 14px;
  color: #687c9d;
  font-size: 11px;
  line-height: 1.45;
}

.pushSettingsMessageV980[data-kind="ok"] {
  color: #3d8149;
}

.pushSettingsMessageV980[data-kind="warn"] {
  color: #9a650c;
}

.pushSettingsMessageV980[data-kind="error"] {
  color: #b23e55;
}

.pushSettingsActionsV980 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, .46fr);
  gap: 10px;
  margin-top: 14px;
}

.pushSettingsActionsV980 button {
  min-height: 44px;
}

@media (max-width: 720px) {
  .pushSettingsCardV980 {
    margin-top: 14px;
    padding: 16px;
    border-radius: 20px;
  }

  .pushSettingsHeadV980 {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .pushSettingsBadgeV980 {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .pushSettingsActionsV980 {
    grid-template-columns: 1fr;
  }

  .pushSettingsActionsV980 button {
    width: 100%;
  }
}



/* ESCOLAR_VIDEO_VERTICAL_PARENT_V980
   - botao "Precisa refazer" com contraste alto
   - camera/preview/player em retrato 9:16
   - controles nativos preservados para tela cheia
*/


/* ==========================================================
   CONFERIR - BOTAO PRECISA REFAZER
   ========================================================== */

#parentScreen .parentTask .rejectBtn,
#parentScreen .checkTasksSectionV928 .rejectBtn {
  min-height: 44px !important;

  border:
    1px solid
    #efb8c3 !important;

  color: #a92f4b !important;
  -webkit-text-fill-color: #a92f4b !important;

  background:
    linear-gradient(
      145deg,
      #fff5f7,
      #ffecef
    ) !important;

  font-weight: 850 !important;
  opacity: 1 !important;

  box-shadow:
    inset 0 0 0 1px
    rgba(255,255,255,.55) !important;
}

#parentScreen .parentTask .rejectBtn:active,
#parentScreen .checkTasksSectionV928 .rejectBtn:active {
  color: #8f233d !important;
  -webkit-text-fill-color: #8f233d !important;
  background: #ffe5ea !important;
}


/* ==========================================================
   CAMERA DO ALUNO - ENQUADRAMENTO VERTICAL 9:16
   ========================================================== */

#studentScreen .student-camera-stage {
  width:
    min(
      100%,
      390px
    ) !important;

  min-height: 0 !important;
  aspect-ratio: 9 / 16 !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #05070c !important;
}

#studentScreen .student-camera-live {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  aspect-ratio: 9 / 16 !important;
  object-fit: cover !important;
  background: #000 !important;
}

#studentScreen .student-camera-placeholder {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: 9 / 16 !important;
}


/* ==========================================================
   PREVIEW DO ALUNO + VIDEO DOS PAIS - RETRATO 9:16
   ========================================================== */

#studentScreen #studentVideoPreview.validation-video,
#parentScreen .validation-video--parent {
  display: block !important;

  width: auto !important;

  height:
    min(
      68vh,
      720px
    ) !important;

  max-width: 100% !important;
  max-height: 68vh !important;

  aspect-ratio: 9 / 16 !important;
  object-fit: contain !important;

  margin: 16px auto 0 !important;

  border-radius: 18px !important;
  background: #000 !important;
}


/* Fullscreen API. */
#studentScreen #studentVideoPreview.validation-video:fullscreen,
#parentScreen .validation-video--parent:fullscreen {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  border-radius: 0 !important;
  object-fit: contain !important;
  background: #000 !important;
}


/* Compatibilidade WebKit. */
#studentScreen #studentVideoPreview.validation-video:-webkit-full-screen,
#parentScreen .validation-video--parent:-webkit-full-screen {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  border-radius: 0 !important;
  object-fit: contain !important;
  background: #000 !important;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 720px) {

  #studentScreen .student-camera-stage {
    width:
      min(
        100%,
        350px
      ) !important;
  }

  #studentScreen #studentVideoPreview.validation-video,
  #parentScreen .validation-video--parent {
    height:
      min(
        64vh,
        640px
      ) !important;

    max-height: 64vh !important;
  }

  #parentScreen .parentTask .rejectBtn,
  #parentScreen .checkTasksSectionV928 .rejectBtn {
    width: 100% !important;
    min-height: 46px !important;
  }
}


/* ESCOLAR_SAFE_STATUS_NAV_V981
   Correcao estritamente baseada nos seletores reais do Escolar.
   Nao procura elementos por texto e nao modifica o DOM por JavaScript.
*/


/* ==========================================================
   FAMILIA
   Os tres chips permanecem dentro do card.
   O terceiro chip e o status real (familyMetaCalendarB1).
   ========================================================== */

@media (max-width: 720px) {

  #parentScreen
  .familyCardB1
  .familyMetaB1 {
    width: 100% !important;
    min-width: 0 !important;

    display: grid !important;

    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr)
      minmax(0, 1.16fr) !important;

    gap: 6px !important;

    align-items: stretch !important;
  }

  #parentScreen
  .familyCardB1
  .familyMetaB1 > span {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    min-height: 42px !important;

    margin: 0 !important;

    padding:
      6px 5px !important;

    box-sizing:
      border-box !important;

    overflow:
      hidden !important;

    justify-content:
      center !important;

    text-align:
      center !important;

    font-size:
      10.5px !important;

    line-height:
      1.12 !important;
  }

  #parentScreen
  .familyCardB1
  .familyMetaB1
  .familyMetaCalendarB1 {
    min-height: 42px !important;

    padding-left:
      5px !important;

    padding-right:
      5px !important;

    white-space:
      normal !important;

    overflow-wrap:
      normal !important;

    word-break:
      normal !important;

    hyphens:
      none !important;

    font-size:
      9.7px !important;

    line-height:
      1.08 !important;

    text-align:
      center !important;
  }

  #parentScreen
  .familyCardB1
  .familyMetaB1
  .familyMetaCalendarB1 > * {
    min-width:
      0 !important;

    max-width:
      100% !important;

    white-space:
      normal !important;

    overflow-wrap:
      normal !important;

    word-break:
      normal !important;

    hyphens:
      none !important;
  }
}


/* ==========================================================
   CONFERIR
   Reforca somente as dimensoes do estado vazio real.
   Nao altera display, fluxo interno ou tipografia.
   ========================================================== */

#parentScreen
.checkTasksSectionV928
.emptyState {
  width:
    100% !important;

  min-width:
    0 !important;

  max-width:
    none !important;

  box-sizing:
    border-box !important;
}

#parentScreen
.checkTasksSectionV928
.emptyState h3,
#parentScreen
.checkTasksSectionV928
.emptyState p {
  max-width:
    100% !important;

  word-break:
    normal !important;

  overflow-wrap:
    normal !important;

  hyphens:
    none !important;
}


/* ==========================================================
   NAVEGACAO INFERIOR DOS PAIS
   Seleciona exclusivamente o nav real do HTML.
   Sem procura por texto, sem observer, sem JavaScript.
   ========================================================== */

@media (max-width: 900px) {

  #parentScreen
  nav.mobile-action-bar.school-mobile-nav.parent-mobile-nav.parentNavB1 {
    position:
      fixed !important;

    left:
      0 !important;

    right:
      0 !important;

    bottom:
      0 !important;

    top:
      auto !important;

    inset-inline:
      0 !important;

    width:
      100% !important;

    max-width:
      none !important;

    margin:
      0 !important;

    transform:
      none !important;

    z-index:
      160 !important;

    box-sizing:
      border-box !important;

    padding-bottom:
      max(
        10px,
        env(safe-area-inset-bottom)
      ) !important;
  }
}



/* ESCOLAR_HEADERS_FLUSH_V982
   Padroniza Conferir, Ocorrencias e Perfil conforme o cabecalho
   ja aprovado da tela Familia no iPhone:
   - expande 24px para cada lateral do container de conteudo;
   - remove formato de card;
   - preserva todo o conteudo interno e os gradientes existentes.
*/


@media (max-width: 720px) {

  /* ========================================================
     CONFERIR
     ======================================================== */

  #parentScreen
  .parentCheckV928
  .checkHeroV928 {
    width:
      calc(100% + 48px) !important;

    max-width:
      none !important;

    margin-left:
      -24px !important;

    margin-right:
      -24px !important;

    border:
      0 !important;

    border-radius:
      0 !important;

    box-shadow:
      none !important;
  }


  /* ========================================================
     OCORRENCIAS
     ======================================================== */

  #parentScreen
  .parentOccurrencesV929
  .occHeroV929 {
    width:
      calc(100% + 48px) !important;

    max-width:
      none !important;

    margin-left:
      -24px !important;

    margin-right:
      -24px !important;

    border:
      0 !important;

    border-radius:
      0 !important;

    box-shadow:
      none !important;
  }


  /* ========================================================
     PERFIL
     ======================================================== */

  #parentScreen
  .parentProfileV950
  .profileHeroV950 {
    width:
      calc(100% + 48px) !important;

    max-width:
      none !important;

    margin-left:
      -24px !important;

    margin-right:
      -24px !important;

    border:
      0 !important;

    border-radius:
      0 !important;

    box-shadow:
      none !important;
  }


  /* Pseudo-elementos decorativos acompanham o novo formato reto. */
  #parentScreen
  .parentCheckV928
  .checkHeroV928::before,

  #parentScreen
  .parentCheckV928
  .checkHeroV928::after,

  #parentScreen
  .parentOccurrencesV929
  .occHeroV929::before,

  #parentScreen
  .parentOccurrencesV929
  .occHeroV929::after,

  #parentScreen
  .parentProfileV950
  .profileHeroV950::before,

  #parentScreen
  .parentProfileV950
  .profileHeroV950::after {
    border-radius:
      0 !important;
  }
}


/* Em desktop/tablet largo, o layout original continua intacto. */



/* ESCOLAR_HEADERS_RHYTHM_V983
   Ritmo vertical baseado diretamente no cabecalho aprovado
   "Rotina da familia".

   Referencia original:
   - mobile: min-height 194px, margin-bottom 16px;
   - iPhone <=430px: min-height 178px;
   - familyB1Overview nao adiciona padding-top.

   A V982 continua responsavel somente pela geometria horizontal.
*/


@media (max-width: 720px) {

  /* --------------------------------------------------------
     DISTANCIA SUPERIOR
     Familia nao adiciona padding-top ao wrapper.
     -------------------------------------------------------- */

  #parentScreen
  .parentCheckV928,

  #parentScreen
  .parentOccurrencesV929,

  #parentScreen
  .parentProfileV950 {
    padding-top:
      0 !important;
  }


  /* --------------------------------------------------------
     ALTURA + ESPACAMENTO INFERIOR
     Mesmo ritmo da familyB1Hero refinada.
     -------------------------------------------------------- */

  #parentScreen
  .parentCheckV928
  .checkHeroV928,

  #parentScreen
  .parentOccurrencesV929
  .occHeroV929,

  #parentScreen
  .parentProfileV950
  .profileHeroV950 {
    min-height:
      194px !important;

    margin-top:
      0 !important;

    margin-bottom:
      16px !important;

    box-sizing:
      border-box !important;
  }
}


/* iPhone / aparelhos estreitos:
   mesma altura usada pela familyB1Hero. */
@media (max-width: 430px) {

  #parentScreen
  .parentCheckV928
  .checkHeroV928,

  #parentScreen
  .parentOccurrencesV929
  .occHeroV929,

  #parentScreen
  .parentProfileV950
  .profileHeroV950 {
    min-height:
      178px !important;
  }
}


/* ESCOLAR_ICON_CENTER_CONSOLIDATED_V992
   Consolidacao baseada no projeto completo e no DOM real.

   HOLDERS REAIS:
   - Familia/data:      .selectedDateIconB1
   - Conferir/lista:    .checkSectionIconV928.blue
   - Ocorrencias/titulo .occSectionIconV929
   - Ocorrencias/cards: .occurrenceIconV929

   Nenhum seletor :first-child.
   Nenhum JS para centralizacao.
   Nenhum reposicionamento do holder.

   Geometria:
   - calendario: bbox do desenho = x[3,21], y[3,21]
     centro = (12,12), exatamente o centro do viewBox 24x24.
   - lista do dia: bbox do desenho = x[5,19], y[3,21]
     centro = (12,12), exatamente o centro do viewBox 24x24.
   - registros: bbox do desenho = x[2,22], y[3,20]
     centro = (12,11.5). Para coincidir com (12,12),
     desloca somente o SVG +0.5 unidade no viewBox.
     SVG = 27px -> 27/24 * 0.5 = 0.5625px.

   Os tres icones dos cards preservam o ajuste visual aprovado
   na V986, agora diretamente na classe real occurrenceIconV929.
*/


/* ==========================================================
   1. HOLDERS - CENTRO GEOMETRICO DA CAIXA
   Mantem posicao, tamanho, flex-basis e position originais.
   ========================================================== */

#parentScreen
.checkTasksSectionV928
.checkSectionIconV928.blue,

#parentScreen .occSectionIconV929,

#parentScreen
#occurrences
.occurrenceIconV929 {
  display: grid !important;
  place-items: center !important;

  text-align: center !important;

  box-sizing: border-box !important;
}


/* ==========================================================
   2. RESET DO SVG - SEM MARGENS/TRANSFORMS HERDADOS
   ========================================================== */

#parentScreen
.checkTasksSectionV928
.checkSectionIconV928.blue > svg,

#parentScreen .occSectionIconV929 > svg,

#parentScreen
#occurrences
.occurrenceIconV929 > svg {
  display: block !important;

  position: static !important;
  inset: auto !important;

  margin: 0 !important;

  transform-origin: 50% 50% !important;

  align-self: auto !important;
  justify-self: auto !important;
}


/* ==========================================================
   4. CONFERIR - LISTA DO DIA / TAREFAS
   O desenho ja e geometricamente centrado no viewBox.
   ========================================================== */

#parentScreen
.checkTasksSectionV928
.checkSectionIconV928.blue > svg {
  transform: none !important;
}


/* ==========================================================
   5. OCORRENCIAS - REGISTROS / HISTORICO RECENTE

   Holder mobile: 44x44.
   SVG: 27x27.
   Centro do holder = centro do SVG pela grid.
   Centro do desenho no viewBox = y 11.5.
   Centro desejado = y 12.
   Delta = +0.5 / 24 * 27 = +0.5625px.
   Sem deslocamento horizontal.
   ========================================================== */

/* ==========================================================
   6. OCORRENCIAS - CARDS
   Preserva exatamente o resultado visual aprovado na V986,
   mas agora usando a classe REAL do holder.
   ========================================================== */

/* Generico: nao herdar nenhum deslocamento dos tres tipos. */
#parentScreen
#occurrences
.occurrenceCardV929[data-occurrence-kind="generic"]
.occurrenceIconV929 > svg {
  transform: none !important;
}


/* ESCOLAR_REMOVE_FAMILY_PATCHES_V995
   Marco de limpeza.
   V993 e V994 foram removidas integralmente.
   Nenhuma nova regra visual foi adicionada nesta fase.
*/



/* ESCOLAR_STUDENT_ADMIN_PREVIEW_STYLE_V1003
   A interface abaixo da barra continua sendo o studentScreen real. */

.student-admin-preview-bar {
  position: sticky;
  top: 0;
  z-index: 10050;

  width: 100%;

  padding:
    max(8px, env(safe-area-inset-top))
    10px
    8px;

  background: rgba(15, 23, 42, 0.97);
  color: #fff;

  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.24);
}

.student-admin-preview-bar__inner {
  width: min(1120px, 100%);
  margin: 0 auto;

  display: flex;
  align-items: center;
  gap: 12px;
}

.student-admin-preview-bar__title {
  display: flex;
  flex-direction: column;

  min-width: max-content;
}

.student-admin-preview-bar__title strong {
  font-size: 11px;
  line-height: 1.1;
  letter-spacing: 0.08em;
}

.student-admin-preview-bar__title small {
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.1;
  opacity: 0.72;
}

.student-admin-preview-bar__picker {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.student-admin-preview-bar__picker > span {
  font-size: 11px;
  opacity: 0.75;
}

.student-admin-preview-bar select,
.student-admin-preview-bar button {
  min-height: 34px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 10px;
  padding: 6px 10px;
  background: rgba(255,255,255,0.10);
  color: #fff;
  font: inherit;
  font-size: 12px;
}

.student-admin-preview-bar select {
  max-width: 180px;
}

.student-admin-preview-bar__exit {
  margin-left: auto;
  white-space: nowrap;
}

.student-admin-preview-mode #studentSwitchBtn,
.student-admin-preview-mode #studentLogoutBtn {
  pointer-events: none;
  opacity: 0.48;
}

@media (max-width: 640px) {
  .student-admin-preview-bar__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 8px;
  }

  .student-admin-preview-bar__title {
    grid-column: 1;
    grid-row: 1;
  }

  .student-admin-preview-bar__picker {
    grid-column: 2;
    grid-row: 1;
  }

  .student-admin-preview-bar__picker > span {
    display: none;
  }

  .student-admin-preview-bar__exit {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    margin-left: 0;
  }
}


/* ESCOLAR_STUDENT_LIGHT_VISUAL_V1004
   Consolida a area do aluno no mesmo tema claro dos pais. */

#studentScreen { color-scheme: light; }

/* Textos que ainda herdavam cores do antigo tema escuro. */
#studentScreen .bag-summary strong {
  color: #122344 !important;
  -webkit-text-fill-color: #122344 !important;
}

#studentScreen .bag-summary span {
  color: #7182a2 !important;
  -webkit-text-fill-color: #7182a2 !important;
}

#studentScreen .bag-progress-label {
  color: #526587 !important;
  -webkit-text-fill-color: #526587 !important;
}

#studentScreen .quick-card b,
#studentScreen .settings-row b {
  color: #3978ff !important;
  -webkit-text-fill-color: #3978ff !important;
}

#studentScreen .bagItemIndex {
  color: #7b8ca9 !important;
  -webkit-text-fill-color: #7b8ca9 !important;
}

#studentScreen .bagItemType {
  color: #59749f !important;
  -webkit-text-fill-color: #59749f !important;
}

#studentScreen .extraTag {
  border-color: #e7c77e !important;
  color: #936719 !important;
  -webkit-text-fill-color: #936719 !important;
  background: #fff7e7 !important;
}

#studentScreen .state-pill--cyan {
  border-color: #b8e6e8 !important;
  color: #247f86 !important;
  -webkit-text-fill-color: #247f86 !important;
  background: #edf9fa !important;
}

#studentScreen .camera-state--idle {
  color: #677894 !important;
  background: #eef2f8 !important;
}
#studentScreen .camera-state--loading {
  color: #396ed4 !important;
  background: #edf3ff !important;
}
#studentScreen .camera-state--ready {
  color: #3d8149 !important;
  background: #eff7ef !important;
}
#studentScreen .camera-state--fallback,
#studentScreen .camera-state--paused {
  color: #986514 !important;
  background: #fff7e7 !important;
}
#studentScreen .camera-state--recording,
#studentScreen .camera-state--error {
  color: #b13e56 !important;
  background: #fff1f4 !important;
}
#studentScreen .camera-timer {
  color: #b13e56 !important;
  -webkit-text-fill-color: #b13e56 !important;
  background: #fff1f4 !important;
}

/* SVG: mesma linguagem de traco da area dos pais. */
#studentScreen .studentRefreshV1004 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
#studentScreen .studentRefreshV1004 svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen .studentQuickIconV1004 {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(57,120,255,.14);
  border-radius: 15px;
  color: #3978ff;
  background: #edf3ff;
}
#studentScreen .studentQuickIconV1004--agenda {
  border-color: rgba(128,97,239,.16);
  color: #7358d8;
  background: #f3efff;
}
#studentScreen .studentQuickIconV1004 svg {
  width: 27px;
  height: 27px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen .studentEmptyIconV1004 svg,
#studentScreen .studentAgendaIconV1004 svg {
  width: 25px;
  height: 25px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#studentScreen .studentEmptyIconV1004--agenda {
  color: #7358d8;
  background: #f3efff;
}

/* Navegacao inferior com icone + texto, como a area dos pais. */
#studentScreen .studentNavV1004 button {
  display: grid;
  place-items: center;
  gap: 4px;
}
#studentScreen .studentNavIconV1004 {
  height: 27px;
  display: grid;
  place-items: center;
}
#studentScreen .studentNavIconV1004 svg {
  width: 26px;
  height: 26px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Perfil coerente com o tema claro. */
#studentScreen .profile-avatar {
  border-color: rgba(57,120,255,.18) !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: linear-gradient(145deg,#3978ff,#5b63dd) !important;
}
#studentScreen .settings-panel {
  border: 1px solid rgba(62,91,148,.12);
  box-shadow: 0 10px 28px rgba(30,53,99,.055);
}

@media (max-width: 720px) {
  #studentScreen .studentQuickIconV1004 {
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }
  #studentScreen .studentQuickIconV1004 svg {
    width: 24px;
    height: 24px;
  }
  #studentScreen .studentNavIconV1004 { height: 24px; }
  #studentScreen .studentNavIconV1004 svg {
    width: 23px;
    height: 23px;
  }
}

/* ESCOLAR_STUDENT_CONTRAST_V1005 */
#studentScreen #todayLabel,
#studentScreen .hero-row > div > p:not(.eyebrow),
#studentScreen .quick-card small,
#studentScreen .empty-state p,
#studentScreen .video-validation-card p,
#studentScreen .student-camera-placeholder span,
#studentScreen .settings-row small {
  color: #687a98 !important;
  -webkit-text-fill-color: #687a98 !important;
  opacity: 1 !important;
}

#studentScreen .eyebrow {
  color: #3978e8 !important;
  -webkit-text-fill-color: #3978e8 !important;
  opacity: 1 !important;
}

#studentScreen .state-pill--blue {
  border-color: #9db9ef !important;
  color: #2859bd !important;
  -webkit-text-fill-color: #2859bd !important;
  background: #edf3ff !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

#studentScreen #dayBadge {
  font-weight: 850 !important;
  letter-spacing: .06em !important;
}

#studentScreen #dayBadge::before {
  background: #3f74dc !important;
  opacity: 1 !important;
}

#studentScreen .studentMetricCardV1005 {
  display: grid !important;
  grid-template-columns: 52px minmax(0,1fr);
  align-items: center;
  gap: 14px;
}

#studentScreen .studentMetricCopyV1005 > span {
  display: block !important;
  color: #637492 !important;
  -webkit-text-fill-color: #637492 !important;
  opacity: 1 !important;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
}

#studentScreen .studentMetricCopyV1005 > strong {
  display: block;
  margin-top: 7px;
  color: #10254c !important;
  -webkit-text-fill-color: #10254c !important;
  opacity: 1 !important;
}

#studentScreen .studentMetricIconV1005 {
  width: 50px;
  height: 50px;
  display: grid !important;
  place-items: center;
  border-radius: 15px;
  color: #3978e8;
  background: #edf3ff;
}

#studentScreen .studentMetricCardV1005--status .studentMetricIconV1005 {
  color: #b96b22;
  background: #fff2e4;
}

#studentScreen .studentMetricCardV1005--tasks .studentMetricIconV1005 {
  color: #6b51cf;
  background: #f1eeff;
}

#studentScreen .studentMetricIconV1005 svg {
  width: 27px;
  height: 27px;
  display: block !important;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen .studentProgressHeadV1005 {
  display: flex;
  align-items: center;
  gap: 13px;
}

#studentScreen .studentProgressIconV1005 {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #34858f;
  background: #e9f8f8;
}

#studentScreen .studentProgressIconV1005 svg {
  width: 26px;
  height: 26px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen #taskSummaryText {
  color: #4f6486 !important;
  -webkit-text-fill-color: #4f6486 !important;
  opacity: 1 !important;
}

#studentScreen .section-heading h2,
#studentScreen .empty-state h2,
#studentScreen .video-validation-card h2,
#studentScreen .quick-card strong,
#studentScreen .settings-row strong {
  color: #10254c !important;
  -webkit-text-fill-color: #10254c !important;
  opacity: 1 !important;
}

#studentScreen .school-mobile-nav button:not(.active) {
  color: #5f7291 !important;
  -webkit-text-fill-color: #5f7291 !important;
  opacity: 1 !important;
}

#studentScreen .school-mobile-nav button.active {
  color: #2f6fda !important;
  -webkit-text-fill-color: #2f6fda !important;
  opacity: 1 !important;
}

@media (max-width: 720px) {
  #studentScreen .studentMetricCardV1005 {
    grid-template-columns: 48px minmax(0,1fr);
    gap: 12px;
  }
  #studentScreen .studentMetricIconV1005 {
    width: 46px;
    height: 46px;
    border-radius: 14px;
  }
  #studentScreen .studentMetricIconV1005 svg {
    width: 25px;
    height: 25px;
  }
  #studentScreen .studentProgressIconV1005 {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
    border-radius: 14px;
  }
  #studentScreen .studentProgressIconV1005 svg {
    width: 24px;
    height: 24px;
  }
}


/* ESCOLAR_STUDENT_VIDEO_FULLSCREEN_STYLE_V1007
   Gravacao vertical em overlay proprio.
   Nao depende da Fullscreen API do Safari. */

body.student-camera-recording-fullscreen-v1007 {
  overflow: hidden !important;
  overscroll-behavior: none !important;
  background: #000 !important;
}

body.student-camera-recording-fullscreen-v1007
#studentCameraPanel {
  position: fixed !important;
  inset: 0 !important;
  z-index: 30000 !important;

  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;

  background: #000 !important;
  box-shadow: none !important;
}

body.student-camera-recording-fullscreen-v1007
#studentCameraPanel
.student-camera-quality {
  position: absolute !important;
  top:
    calc(
      env(safe-area-inset-top)
      + 10px
    ) !important;
  left: 12px !important;
  right: 12px !important;
  z-index: 30004 !important;

  min-height: 48px !important;

  padding: 8px 11px !important;

  border:
    1px solid
    rgba(255, 255, 255, .18) !important;

  border-radius: 14px !important;

  color: #fff !important;
  background:
    rgba(5, 9, 18, .62) !important;

  -webkit-backdrop-filter:
    blur(12px) !important;
  backdrop-filter:
    blur(12px) !important;
}

body.student-camera-recording-fullscreen-v1007
#studentCameraPanel
.student-camera-quality strong,
body.student-camera-recording-fullscreen-v1007
#studentCameraPanel
.camera-state,
body.student-camera-recording-fullscreen-v1007
#studentCameraPanel
.camera-timer {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

body.student-camera-recording-fullscreen-v1007
#studentCameraPanel
.student-camera-stage {
  position: absolute !important;
  inset: 0 !important;

  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;

  margin: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;

  aspect-ratio: auto !important;
  background: #000 !important;
}

body.student-camera-recording-fullscreen-v1007
#studentCameraPanel
#studentCameraLive {
  position: absolute !important;
  inset: 0 !important;

  width: 100% !important;
  height: 100% !important;

  max-width: none !important;
  max-height: none !important;

  margin: 0 !important;
  border-radius: 0 !important;

  aspect-ratio: auto !important;
  object-fit: cover !important;

  background: #000 !important;
}

body.student-camera-recording-fullscreen-v1007
#studentCameraPlaceholder {
  display: none !important;
}

body.student-camera-recording-fullscreen-v1007
#studentVideoReady
.video-validation-actions {
  position: fixed !important;

  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;

  z-index: 30005 !important;

  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr) !important;

  gap: 10px !important;

  width: 100% !important;
  margin: 0 !important;

  padding:
    12px
    14px
    calc(
      12px
      + env(safe-area-inset-bottom)
    ) !important;

  background:
    linear-gradient(
      to top,
      rgba(0, 0, 0, .88),
      rgba(0, 0, 0, .54),
      transparent
    ) !important;

  pointer-events: none !important;
}

body.student-camera-recording-fullscreen-v1007
#studentVideoReady
.video-validation-actions
button {
  display: none !important;
}

body.student-camera-recording-fullscreen-v1007
#studentVideoReady
.video-validation-actions
#studentVideoPauseBtn:not(.hidden),
body.student-camera-recording-fullscreen-v1007
#studentVideoReady
.video-validation-actions
#studentVideoStopBtn:not(.hidden) {
  display: inline-flex !important;

  align-items: center !important;
  justify-content: center !important;

  min-height: 54px !important;

  padding: 12px 14px !important;

  border-radius: 16px !important;

  font-size: 16px !important;
  font-weight: 800 !important;

  pointer-events: auto !important;
}

body.student-camera-recording-fullscreen-v1007
#studentVideoPauseBtn {
  border:
    1px solid
    rgba(255, 255, 255, .30) !important;

  color: #fff !important;
  -webkit-text-fill-color: #fff !important;

  background:
    rgba(20, 28, 45, .80) !important;

  -webkit-backdrop-filter:
    blur(12px) !important;
  backdrop-filter:
    blur(12px) !important;
}

body.student-camera-recording-fullscreen-v1007
#studentVideoPauseBtn.student-video-pause--paused {
  color: #241700 !important;
  -webkit-text-fill-color: #241700 !important;

  background: #ffd27a !important;
}

body.student-camera-recording-fullscreen-v1007
#studentVideoStopBtn {
  border-color:
    rgba(255, 255, 255, .14) !important;

  color: #fff !important;
  -webkit-text-fill-color: #fff !important;

  background: #d8455f !important;
}

body.student-camera-recording-fullscreen-v1007
#studentScreen
.school-mobile-nav {
  visibility: hidden !important;
}

#studentScreen
#studentVideoPreview.validation-video {
  display: block;

  width: auto !important;
  height:
    min(
      68vh,
      720px
    ) !important;

  max-width: 100% !important;
  max-height: 68vh !important;

  aspect-ratio: 9 / 16 !important;

  margin:
    16px
    auto
    0 !important;

  object-fit: contain !important;

  border-radius: 18px !important;
  background: #000 !important;
}

@media (max-width: 720px) {
  #studentScreen
  #studentVideoPreview.validation-video {
    height:
      min(
        64vh,
        640px
      ) !important;

    max-height: 64vh !important;
  }
}

/* ESCOLAR_STUDENT_NATIVE_CAMERA_ONLY_STYLE_V1008
   Um unico metodo visivel: camera nativa do aparelho. */

#studentScreen .student-camera-panel--native {
  display: block;
  padding: 0;
  overflow: visible;
  background: transparent;
  border: 0;
  box-shadow: none;
}

#studentScreen .student-native-camera-info {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 15px;
  border: 1px solid rgba(19, 50, 96, 0.10);
  border-radius: 16px;
  background: #f7f9fe;
}

#studentScreen .student-native-camera-icon {
  width: 42px;
  height: 42px;
  min-width: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #ffffff;
  color: #173f78;
  box-shadow: 0 4px 14px rgba(16, 42, 82, 0.08);
}

#studentScreen .student-native-camera-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen .student-native-camera-info > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

#studentScreen .student-native-camera-info strong {
  color: #0b1734;
  font-size: 0.96rem;
}

#studentScreen .student-native-camera-info span:not(.student-native-camera-icon) {
  color: #5d6c86;
  font-size: 0.82rem;
  line-height: 1.35;
}

#studentScreen .video-validation-actions--native {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

#studentScreen .student-native-video-button {
  width: 100%;
  min-height: 48px;
}

#studentScreen #studentVideoInput {
  position: fixed !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  left: -9999px !important;
}

body.student-camera-recording-fullscreen-v1007 {
  overflow: auto !important;
  background: initial !important;
}

#studentScreen .validation-video {
  width: min(100%, 420px);
  aspect-ratio: 9 / 16;
  object-fit: contain;
  margin-inline: auto;
  background: #000;
}

/* ESCOLAR_STUDENT_VIDEO_GALLERY_FLOW_STYLE_V1009
   Fluxo unico: gravar no app Camera e inserir no Escolar. */

#studentScreen .student-video-delete-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 14px;
  padding: 14px 15px;
  border: 1px solid rgba(20, 111, 70, 0.18);
  border-radius: 16px;
  background: rgba(235, 249, 241, 0.96);
  box-shadow: 0 5px 18px rgba(17, 71, 45, 0.06);
}

#studentScreen .student-video-delete-notice.hidden {
  display: none !important;
}

#studentScreen .student-video-delete-notice__icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #ffffff;
  color: #176c47;
}

#studentScreen .student-video-delete-notice__icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen .student-video-delete-notice > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

#studentScreen .student-video-delete-notice strong {
  color: #123d2c;
  font-size: 0.94rem;
}

#studentScreen .student-video-delete-notice span:not(.student-video-delete-notice__icon) {
  color: #456a5a;
  font-size: 0.82rem;
  line-height: 1.4;
}


/* CALENDARIO_ESCOLAR_ADMIN_STYLE_V1 */

.calendar-admin-card {
  padding: 18px;
  border: 1px solid
    rgba(112,145,210,.22);
  border-radius: 18px;
  background:
    rgba(13,23,43,.88);
}

.calendar-admin-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.calendar-admin-head h2 {
  margin: 3px 0 5px;
}

.calendar-admin-head p {
  margin-bottom: 0;
}

.calendar-admin-year {
  display: flex;
  align-items: center;
  gap: 10px;
}

.calendar-admin-year button {
  min-width: 38px;
  min-height: 38px;
  border-radius: 12px;
}

.calendar-admin-year strong {
  min-width: 52px;
  text-align: center;
  font-size: 1rem;
}

.calendar-admin-form {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  border: 1px solid
    rgba(112,145,210,.16);
  border-radius: 15px;
  background:
    rgba(5,11,23,.25);
}

.calendar-admin-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.calendar-admin-form label > span {
  font-size: .76rem;
  opacity: .72;
}

.calendar-admin-form input,
.calendar-admin-form select {
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
}

.calendar-admin-motivo {
  grid-column:
    1 / -1;
}

.calendar-admin-form-actions {
  grid-column:
    1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.calendar-admin-message {
  min-height: 20px;
  margin: 12px 2px;
  font-size: .82rem;
}

.calendar-admin-message[
  data-kind="bad"
] {
  color: #f08a91;
}

.calendar-admin-list {
  display: grid;
  gap: 9px;
  margin-top: 10px;
}

.calendar-admin-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 14px;
  border: 1px solid
    rgba(112,145,210,.16);
  border-radius: 14px;
  background:
    rgba(5,11,23,.22);
}

.calendar-admin-row.automatic {
  border-color:
    rgba(117,212,77,.22);
}

.calendar-admin-row-info {
  min-width: 0;
}

.calendar-admin-row-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.calendar-admin-tag,
.calendar-admin-auto {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: .67rem;
  font-weight: 700;
}

.calendar-admin-tag {
  background:
    rgba(57,120,255,.16);
}

.calendar-admin-auto {
  background:
    rgba(117,212,77,.14);
  color: #75d44d;
}

.calendar-admin-reason {
  margin: 6px 0 3px;
  font-size: .9rem;
}

.calendar-admin-row small {
  opacity: .62;
}

.calendar-admin-row-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 7px;
}

.calendar-admin-row-actions
button.danger {
  color: #f08a91;
}

.calendar-admin-empty {
  padding: 18px;
  text-align: center;
  opacity: .65;
}

@media (max-width: 720px) {
  .calendar-admin-head {
    flex-direction: column;
  }

  .calendar-admin-form {
    grid-template-columns: 1fr;
  }

  .calendar-admin-motivo,
  .calendar-admin-form-actions {
    grid-column: 1;
  }

  .calendar-admin-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .calendar-admin-row-actions {
    width: 100%;
  }

  .calendar-admin-row-actions button {
    flex: 1;
  }
}


/* CALENDARIO_ADMIN_NAV_STYLE_V2 */

/*
 * A navegação móvel passou de quatro para
 * cinco itens. Em elementos que já usam grid,
 * distribui os cinco botões igualmente.
 */
.calendar-admin-nav-five {
  grid-template-columns:
    repeat(5, minmax(0, 1fr))
    !important;
}

.calendar-admin-nav-five
[data-parent-view="calendar"] {
  min-width: 0;
}

.calendar-admin-nav-five
[data-parent-view="calendar"]
span {
  overflow: hidden;
  text-overflow: ellipsis;
}



/* ============================================================
   CALENDARIO_APP_THEME_STYLE_V3
   Mesmo padrão visual da área Família / Perfil
   ============================================================ */

#parentCalendarView {
  color: #f7f9ff;
}


/* Card principal */

#parentCalendarView
.calendar-admin-card.calendarAppV3 {
  position: relative;

  padding: 28px;

  overflow: hidden;

  border:
    1px solid
    rgba(78, 126, 211, .38);

  border-radius: 27px;

  background:
    radial-gradient(
      circle at 88% 5%,
      rgba(57, 120, 255, .12),
      transparent 31%
    ),
    linear-gradient(
      145deg,
      #0d1a31,
      #0a1528
    );

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.035);
}


/* Cabeçalho */

#parentCalendarView
.calendar-admin-head {
  align-items: center;

  margin-bottom: 24px;
}

#parentCalendarView
.calendar-admin-head
> div:first-child {
  position: relative;

  min-height: 58px;

  padding-left: 74px;
}

#parentCalendarView
.calendar-admin-head
.eyebrow {
  color: #83a8e9;
}

#parentCalendarView
.calendar-admin-head h2 {
  margin: 2px 0 5px;

  color: #f7f9ff;

  font-size: 1.42rem;
}

#parentCalendarView
.calendar-admin-head
> div:first-child
> p:last-child {
  margin: 0;

  color: #91a4c6;
}


/* Ícone grande */

.calendarAppHeroIconV3 {
  position: absolute;

  top: 0;
  left: 0;

  display: flex;

  width: 56px;
  height: 56px;

  align-items: center;
  justify-content: center;

  border:
    1px solid
    rgba(92, 147, 255, .42);

  border-radius: 17px;

  background:
    linear-gradient(
      145deg,
      #3978ff,
      #6554ed
    );

  box-shadow:
    0 10px 28px
      rgba(38, 91, 220, .22);
}

.calendarAppHeroIconV3 svg {
  width: 29px;
  height: 29px;

  fill: none;
  stroke: #fff;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Ano */

#parentCalendarView
.calendar-admin-year {
  padding: 5px;

  border:
    1px solid
    rgba(103, 145, 221, .22);

  border-radius: 14px;

  background:
    rgba(13, 27, 52, .74);
}

#parentCalendarView
.calendar-admin-year button {
  min-width: 38px;
  min-height: 38px;

  padding: 0;

  border:
    1px solid
    rgba(112, 151, 222, .18);

  border-radius: 10px;

  color: #a9bee5;

  background:
    rgba(27, 47, 82, .55);

  font-size: 1.25rem;
}

#parentCalendarView
.calendar-admin-year strong {
  color: #f5f8ff;
}


/* Formulário */

#parentCalendarView
.calendar-admin-form {
  padding: 20px;

  gap: 16px;

  border:
    1px solid
    rgba(105, 145, 214, .20);

  border-radius: 20px;

  background:
    linear-gradient(
      145deg,
      rgba(17, 31, 57, .88),
      rgba(10, 21, 40, .88)
    );

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.025);
}

#parentCalendarView
.calendar-admin-form
label > span {
  margin-left: 2px;

  color: #8fa7cf;

  font-size: .72rem;

  font-weight: 800;

  letter-spacing: .055em;

  text-transform: uppercase;
}


/* Controle com ícone */

.calendarFieldControlV3 {
  position: relative;

  display: flex;

  align-items: center;
}

.calendarFieldIconV3 {
  position: absolute;

  left: 14px;

  z-index: 2;

  display: flex;

  width: 22px;
  height: 22px;

  align-items: center;
  justify-content: center;

  color: #8faee4;

  pointer-events: none;
}

.calendarFieldIconV3 svg {
  width: 21px;
  height: 21px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.8;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Remove o branco nativo do iOS */

#parentCalendarView
.calendar-admin-form input,
#parentCalendarView
.calendar-admin-form select {
  width: 100%;
  height: 48px;

  padding:
    0 42px
    0 48px;

  border:
    1px solid
    rgba(101, 145, 222, .30);

  border-radius: 14px;

  outline: none;

  color: #f4f7ff;

  background:
    rgba(15, 31, 58, .88);

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.025);

  font-family: inherit;
  font-size: .92rem;

  appearance: none;
  -webkit-appearance: none;
}

#parentCalendarView
.calendar-admin-form
input::placeholder {
  color: #687b9e;

  opacity: 1;
}

#parentCalendarView
.calendar-admin-form
input:focus,
#parentCalendarView
.calendar-admin-form
select:focus {
  border-color:
    rgba(72, 130, 255, .85);

  box-shadow:
    0 0 0 3px
      rgba(57,120,255,.12);
}


/*
 * Mantém indicador de calendário
 * do campo date visível.
 */
#parentCalendarView
input[type="date"] {
  color-scheme: dark;
}

#parentCalendarView
input[type="date"]
::-webkit-calendar-picker-indicator {
  opacity: .68;

  filter:
    invert(80%)
    sepia(12%)
    saturate(900%)
    hue-rotate(180deg);

  cursor: pointer;
}


/* Select: seta padrão */

#parentCalendarView
.calendar-admin-form select {
  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      #92a9cf 50%
    ),
    linear-gradient(
      135deg,
      #92a9cf 50%,
      transparent 50%
    );

  background-position:
    calc(100% - 20px)
      calc(50% - 2px),
    calc(100% - 15px)
      calc(50% - 2px);

  background-size:
    5px 5px,
    5px 5px;

  background-repeat:
    no-repeat;
}


/* Botão adicionar */

#parentCalendarView
.calendar-admin-form-actions {
  margin-top: 2px;
}

#parentCalendarView
.calendarSaveButtonV3 {
  display: inline-flex;

  min-height: 46px;

  align-items: center;
  justify-content: center;

  gap: 9px;

  padding:
    0 20px;

  border-radius: 14px;

  font-weight: 800;
}

.calendarButtonIconV3 {
  display: inline-flex;

  width: 21px;
  height: 21px;
}

.calendarButtonIconV3 svg {
  width: 21px;
  height: 21px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.8;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Lista */

#parentCalendarView
.calendar-admin-list {
  gap: 12px;

  margin-top: 18px;
}

#parentCalendarView
.calendar-admin-row {
  position: relative;

  display: grid;

  grid-template-columns:
    48px
    minmax(0, 1fr)
    auto;

  gap: 14px;

  min-height: 82px;

  padding: 16px;

  align-items: center;

  border:
    1px solid
    rgba(89, 131, 207, .28);

  border-radius: 19px;

  color: #f5f8ff;

  background:
    radial-gradient(
      circle at 94% 0%,
      rgba(67, 116, 229, .08),
      transparent 13rem
    ),
    linear-gradient(
      145deg,
      #101d35,
      #0b172b
    );

  box-shadow:
    inset 0 1px 0
      rgba(255,255,255,.025);
}

#parentCalendarView
.calendar-admin-row.automatic {
  border-color:
    rgba(92, 156, 95, .38);
}


/* Ícone da linha */

.calendarRowDateIconV3 {
  display: flex;

  width: 46px;
  height: 46px;

  align-items: center;
  justify-content: center;

  border:
    1px solid
    rgba(77, 135, 237, .25);

  border-radius: 14px;

  color: #77a4f5;

  background:
    rgba(44, 87, 166, .16);
}

.calendarRowDateIconV3 svg {
  width: 23px;
  height: 23px;

  fill: none;

  stroke: currentColor;

  stroke-width: 1.8;

  stroke-linecap: round;
  stroke-linejoin: round;
}


/* Texto dos registros */

#parentCalendarView
.calendar-admin-row-top strong {
  color: #f7f9ff;

  font-size: 1rem;
}

#parentCalendarView
.calendar-admin-reason {
  margin-top: 7px;

  color: #dce5f7;

  font-size: .92rem;
}

#parentCalendarView
.calendar-admin-row small {
  display: block;

  margin-top: 4px;

  color: #7186aa;

  opacity: 1;
}


/* Etiquetas */

#parentCalendarView
.calendar-admin-tag {
  color: #adc7ff;

  border:
    1px solid
    rgba(70, 118, 219, .20);

  background:
    rgba(47, 91, 180, .26);
}

#parentCalendarView
.calendar-admin-auto {
  color: #86dc65;

  border:
    1px solid
    rgba(105, 195, 76, .15);

  background:
    rgba(73, 133, 54, .25);
}


/* Editar / excluir */

#parentCalendarView
.calendar-admin-row-actions button {
  min-height: 37px;

  padding:
    0 12px;

  border:
    1px solid
    rgba(101, 145, 222, .22);

  border-radius: 11px;

  color: #a7bee7;

  background:
    rgba(20, 39, 70, .78);
}

#parentCalendarView
.calendar-admin-row-actions
button.danger {
  color: #f08a91;

  border-color:
    rgba(225,91,100,.20);

  background:
    rgba(112,38,48,.16);
}


/* Mobile */

@media (max-width: 720px) {

  #parentCalendarView
  .calendar-admin-card.calendarAppV3 {
    padding: 18px;

    border-radius: 23px;
  }

  #parentCalendarView
  .calendar-admin-head {
    gap: 15px;
  }

  #parentCalendarView
  .calendar-admin-head
  > div:first-child {
    min-height: 52px;

    padding-left: 62px;
  }

  .calendarAppHeroIconV3 {
    width: 48px;
    height: 48px;

    border-radius: 15px;
  }

  .calendarAppHeroIconV3 svg {
    width: 25px;
    height: 25px;
  }

  #parentCalendarView
  .calendar-admin-form {
    padding: 15px;

    gap: 14px;

    border-radius: 18px;
  }

  #parentCalendarView
  .calendar-admin-form input,
  #parentCalendarView
  .calendar-admin-form select {
    height: 47px;

    font-size: 16px;
  }

  #parentCalendarView
  .calendarSaveButtonV3 {
    width: 100%;
  }

  #parentCalendarView
  .calendar-admin-row {
    grid-template-columns:
      43px minmax(0,1fr);

    padding: 14px;

    gap: 12px;
  }

  .calendarRowDateIconV3 {
    width: 42px;
    height: 42px;

    border-radius: 13px;
  }

  #parentCalendarView
  .calendar-admin-row-actions {
    grid-column:
      1 / -1;

    width: 100%;
  }
}



/* ============================================================
   CALENDARIO_LIGHT_THEME_V4
   Tema claro alinhado à tela Família
   ============================================================ */

#parentCalendarView {
  color: #102044;
  background: transparent;
}


/* ------------------------------------------------------------
   CONTAINER PRINCIPAL
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-card.calendarAppV3 {
  padding: 0;

  overflow: visible;

  border: 0;

  border-radius: 0;

  background: transparent;

  box-shadow: none;
}


/* ------------------------------------------------------------
   HERO / CABEÇALHO
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-head {
  position: relative;

  display: grid;

  grid-template-columns:
    minmax(0, 1fr)
    auto;

  gap: 24px;

  align-items: center;

  margin: 0 0 26px;

  padding: 28px 30px;

  overflow: hidden;

  border:
    1px solid
    rgba(93, 134, 218, .18);

  border-radius: 27px;

  background:
    radial-gradient(
      circle at 88% 18%,
      rgba(69, 169, 255, .17),
      transparent 31%
    ),
    radial-gradient(
      circle at 72% 82%,
      rgba(128, 78, 240, .09),
      transparent 31%
    ),
    linear-gradient(
      145deg,
      #ffffff,
      #f7faff
    );

  box-shadow:
    0 18px 42px
      rgba(48, 79, 140, .08),
    inset 0 1px 0
      rgba(255,255,255,.9);
}

#parentCalendarView
.calendar-admin-head
> div:first-child {
  min-height: 64px;

  padding-left: 78px;
}

#parentCalendarView
.calendar-admin-head
.eyebrow {
  margin: 0 0 5px;

  color: #3477ef;

  font-size: .77rem;

  font-weight: 900;

  letter-spacing: .18em;
}

#parentCalendarView
.calendar-admin-head h2 {
  margin: 0 0 7px;

  color: #0c1b3e;

  font-size: 1.65rem;

  line-height: 1.05;
}

#parentCalendarView
.calendar-admin-head
> div:first-child
> p:last-child {
  margin: 0;

  color: #6f7f9f;

  font-size: .95rem;
}


/* Ícone principal */

#parentCalendarView
.calendarAppHeroIconV3 {
  width: 58px;
  height: 58px;

  border:
    1px solid
    rgba(72, 119, 242, .20);

  border-radius: 18px;

  background:
    linear-gradient(
      145deg,
      #4385ff,
      #6f54ef
    );

  box-shadow:
    0 14px 28px
      rgba(74, 105, 220, .20);
}

#parentCalendarView
.calendarAppHeroIconV3 svg {
  stroke: #fff;
}


/* ------------------------------------------------------------
   SELETOR DO ANO
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-year {
  padding: 5px;

  border:
    1px solid
    rgba(85, 123, 196, .16);

  border-radius: 15px;

  background:
    rgba(248, 251, 255, .94);

  box-shadow:
    0 8px 20px
      rgba(45, 77, 133, .06);
}

#parentCalendarView
.calendar-admin-year button {
  color: #63789f;

  border:
    1px solid
    rgba(90, 127, 196, .15);

  background: #f5f8fd;
}

#parentCalendarView
.calendar-admin-year strong {
  color: #14264b;

  font-weight: 900;
}


/* ------------------------------------------------------------
   FORMULÁRIO
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-form {
  padding: 24px;

  gap: 18px;

  border:
    1px solid
    rgba(103, 137, 205, .18);

  border-radius: 25px;

  background:
    linear-gradient(
      145deg,
      #ffffff,
      #f9fbff
    );

  box-shadow:
    0 16px 38px
      rgba(51, 78, 131, .07),
    inset 0 1px 0
      rgba(255,255,255,.92);
}

#parentCalendarView
.calendar-admin-form
label > span {
  margin-left: 3px;

  color: #6b7fa5;

  font-size: .72rem;

  font-weight: 900;

  letter-spacing: .08em;

  text-transform: uppercase;
}


/* Ícones dos campos */

#parentCalendarView
.calendarFieldIconV3 {
  color: #5579bf;
}

#parentCalendarView
.calendarFieldIconV3 svg {
  stroke-width: 1.9;
}


/* ------------------------------------------------------------
   INPUTS / SELECTS
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-form input,
#parentCalendarView
.calendar-admin-form select {
  height: 50px;

  padding:
    0 44px
    0 48px;

  border:
    1px solid
    #d9e2f1;

  border-radius: 15px;

  color: #12254a;

  background:
    #f8faff;

  box-shadow:
    inset 0 1px 2px
      rgba(29, 54, 103, .025);

  font-family: inherit;

  font-size: .95rem;

  appearance: none;
  -webkit-appearance: none;
}

#parentCalendarView
.calendar-admin-form
input::placeholder {
  color: #9aa8bf;

  opacity: 1;
}

#parentCalendarView
.calendar-admin-form
input:focus,
#parentCalendarView
.calendar-admin-form
select:focus {
  border-color: #6f96e7;

  background: #fff;

  box-shadow:
    0 0 0 3px
      rgba(63, 123, 246, .10);
}


/* Data no iOS */

#parentCalendarView
input[type="date"] {
  color-scheme: light;
}

#parentCalendarView
input[type="date"]
::-webkit-calendar-picker-indicator {
  opacity: .66;

  filter:
    saturate(.8)
    hue-rotate(178deg);

  cursor: pointer;
}


/* Setas dos selects */

#parentCalendarView
.calendar-admin-form select {
  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      #7186ac 50%
    ),
    linear-gradient(
      135deg,
      #7186ac 50%,
      transparent 50%
    );

  background-position:
    calc(100% - 21px)
      calc(50% - 2px),
    calc(100% - 16px)
      calc(50% - 2px);

  background-size:
    5px 5px,
    5px 5px;

  background-repeat:
    no-repeat;
}


/* ------------------------------------------------------------
   BOTÕES
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-form-actions {
  margin-top: 2px;
}

#parentCalendarView
.calendarSaveButtonV3 {
  min-height: 48px;

  border: 0;

  border-radius: 15px;

  color: #fff;

  background:
    linear-gradient(
      100deg,
      #4385ff,
      #526dff 52%,
      #7955f0
    );

  box-shadow:
    0 12px 24px
      rgba(66, 98, 224, .18);

  font-weight: 900;
}

#parentCalendarView
.calendarSaveButtonV3:active {
  transform: translateY(1px);
}

#parentCalendarView
#calendarAdminCancel {
  color: #526b97;

  border:
    1px solid
    #d9e2f1;

  background: #f7f9fd;
}


/* ------------------------------------------------------------
   LISTA DE FERIADOS / DIAS SEM AULA
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-list {
  gap: 14px;

  margin-top: 26px;
}

#parentCalendarView
.calendar-admin-row {
  display: grid;

  grid-template-columns:
    52px
    minmax(0, 1fr)
    auto;

  gap: 15px;

  min-height: 92px;

  padding: 17px 18px;

  align-items: center;

  border:
    1px solid
    rgba(102, 137, 203, .20);

  border-radius: 22px;

  color: #102044;

  background:
    radial-gradient(
      circle at 92% 0%,
      rgba(75, 133, 255, .065),
      transparent 13rem
    ),
    linear-gradient(
      145deg,
      #ffffff,
      #fafcff
    );

  box-shadow:
    0 12px 30px
      rgba(50, 78, 130, .055),
    inset 0 1px 0
      rgba(255,255,255,.92);
}

#parentCalendarView
.calendar-admin-row.automatic {
  border-color:
    rgba(99, 181, 102, .28);
}


/* Ícone de cada registro */

#parentCalendarView
.calendarRowDateIconV3 {
  width: 48px;
  height: 48px;

  border:
    1px solid
    rgba(75, 122, 220, .18);

  border-radius: 15px;

  color: #4d78cf;

  background:
    linear-gradient(
      145deg,
      #f3f7ff,
      #edf3ff
    );
}

#parentCalendarView
.calendarRowDateIconV3 svg {
  stroke: currentColor;
}


/* Texto */

#parentCalendarView
.calendar-admin-row-top strong {
  color: #0b1c40;

  font-size: 1.02rem;

  font-weight: 900;
}

#parentCalendarView
.calendar-admin-reason {
  margin-top: 7px;

  color: #233a65;

  font-size: .94rem;
}

#parentCalendarView
.calendar-admin-row small {
  margin-top: 4px;

  color: #7b8da9;

  opacity: 1;
}


/* ------------------------------------------------------------
   BADGES
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-tag {
  padding: 4px 9px;

  color: #4268bc;

  border:
    1px solid
    rgba(70, 111, 202, .12);

  background:
    #eef3ff;

  font-weight: 800;
}

#parentCalendarView
.calendar-admin-auto {
  padding: 4px 9px;

  color: #43a338;

  border:
    1px solid
    rgba(89, 178, 77, .16);

  background:
    #eef9eb;

  font-weight: 900;
}


/* ------------------------------------------------------------
   EDITAR / EXCLUIR
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-row-actions button {
  min-height: 38px;

  padding:
    0 13px;

  border:
    1px solid
    #dae3f0;

  border-radius: 11px;

  color: #526d9b;

  background: #f7f9fd;
}

#parentCalendarView
.calendar-admin-row-actions
button.danger {
  color: #cc5964;

  border-color:
    #f0d5d8;

  background:
    #fff7f7;
}


/* ------------------------------------------------------------
   MENSAGENS
   ------------------------------------------------------------ */

#parentCalendarView
.calendar-admin-message {
  color: #647797;
}

#parentCalendarView
.calendar-admin-message[
  data-kind="bad"
] {
  color: #cb5966;
}


/* ------------------------------------------------------------
   MOBILE
   ------------------------------------------------------------ */

@media (max-width: 720px) {

  #parentCalendarView
  .calendar-admin-head {
    grid-template-columns: 1fr;

    gap: 18px;

    padding: 24px 22px;

    border-radius: 24px;
  }

  #parentCalendarView
  .calendar-admin-head
  > div:first-child {
    min-height: 58px;

    padding-left: 68px;
  }

  #parentCalendarView
  .calendarAppHeroIconV3 {
    width: 54px;
    height: 54px;

    border-radius: 17px;
  }

  #parentCalendarView
  .calendar-admin-year {
    width: fit-content;

    margin: 0 auto;
  }

  #parentCalendarView
  .calendar-admin-form {
    padding: 18px;

    gap: 15px;

    border-radius: 22px;
  }

  #parentCalendarView
  .calendar-admin-form input,
  #parentCalendarView
  .calendar-admin-form select {
    height: 49px;

    font-size: 16px;
  }

  #parentCalendarView
  .calendarSaveButtonV3 {
    width: 100%;
  }

  #parentCalendarView
  .calendar-admin-row {
    grid-template-columns:
      46px minmax(0, 1fr);

    padding: 15px;

    gap: 12px;

    border-radius: 20px;
  }

  #parentCalendarView
  .calendarRowDateIconV3 {
    width: 44px;
    height: 44px;

    border-radius: 14px;
  }

  #parentCalendarView
  .calendar-admin-row-actions {
    grid-column:
      1 / -1;

    width: 100%;
  }
}



/* =========================================================
   STUDENT_BAG_VISUAL_V1018
   Mochila infantil - visual claro, colorido e responsivo
   ========================================================= */

#studentScreen #studentBagView {
  --bag-v1018-blue: #3178f6;
  --bag-v1018-cyan: #28cfe0;
  --bag-v1018-purple: #7c59f5;
  --bag-v1018-ink: #10234d;
  --bag-v1018-muted: #6f80a2;
  --bag-v1018-line: rgba(102, 132, 191, .18);
  --bag-v1018-card: rgba(255, 255, 255, .94);
  color: var(--bag-v1018-ink);
}

#studentScreen #studentBagView .studentBagHeroV1018 {
  position: relative;
  min-height: 190px;
  margin: 0 0 18px;
  padding: 28px 190px 28px 28px;
  overflow: hidden;
  border: 1px solid rgba(91, 127, 204, .14);
  border-radius: 30px;
  background:
    radial-gradient(circle at 84% 25%, rgba(111, 86, 246, .19), transparent 30%),
    radial-gradient(circle at 68% 90%, rgba(38, 211, 218, .14), transparent 34%),
    linear-gradient(135deg, #f8fbff 0%, #f4f5ff 52%, #eefcff 100%);
  box-shadow:
    0 16px 42px rgba(45, 72, 134, .10),
    inset 0 1px rgba(255,255,255,.88);
}

#studentScreen #studentBagView .studentBagHeroV1018::before {
  content: "";
  position: absolute;
  width: 210px;
  height: 210px;
  right: -55px;
  top: -90px;
  border-radius: 999px;
  background: rgba(93, 72, 243, .07);
}

#studentScreen #studentBagView .studentBagHeroV1018__copy {
  position: relative;
  z-index: 2;
}

#studentScreen #studentBagView .studentBagHeroV1018 .eyebrow {
  margin-bottom: 8px;
  color: #347bed;
}

#studentScreen #studentBagView .studentBagHeroV1018 h1 {
  margin: 0;
  max-width: 360px;
  color: #10234d;
  font-size: clamp(1.8rem, 6vw, 2.5rem);
  line-height: 1.02;
  letter-spacing: -.045em;
}

#studentScreen #studentBagView #bagDate {
  margin: 9px 0 0;
  color: #6e7fa1;
  font-weight: 700;
}

#studentScreen #studentBagView .studentBagHeroV1018__hint {
  display: flex;
  align-items: center;
  gap: 9px;
  max-width: 390px;
  margin-top: 20px;
  color: #4f68a0;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.35;
}

#studentScreen #studentBagView .studentBagHeroV1018__hintIcon {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #3677ed;
  background: rgba(74, 127, 241, .10);
}

#studentScreen #studentBagView .studentBagHeroV1018__hintIcon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen #studentBagView .studentBagHeroV1018__art {
  position: absolute;
  right: 16px;
  top: 12px;
  width: 170px;
  height: 170px;
  display: grid;
  place-items: center;
  z-index: 1;
}

#studentScreen #studentBagView .studentBagHeroV1018__bag {
  width: 148px;
  filter: drop-shadow(0 13px 16px rgba(73, 55, 187, .22));
}

#studentScreen #studentBagView .studentBagHeroV1018__star {
  position: absolute;
  color: #ffd33f;
  font-size: 20px;
  filter: drop-shadow(0 4px 5px rgba(233, 172, 0, .18));
}

#studentScreen #studentBagView .studentBagHeroV1018__star--a {
  left: 7px;
  top: 41px;
  transform: rotate(-14deg);
}

#studentScreen #studentBagView .studentBagHeroV1018__star--b {
  right: 5px;
  top: 29px;
  font-size: 13px;
}

#studentScreen #studentBagView .bag-summary--v1018 {
  position: relative;
  grid-template-columns: minmax(160px, .72fr) minmax(240px, 1.28fr);
  gap: 24px;
  margin-bottom: 26px;
  padding: 24px;
  border: 1px solid rgba(87, 121, 188, .16);
  border-radius: 28px;
  background:
    radial-gradient(circle at 82% 10%, rgba(117, 88, 246, .09), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,250,255,.96));
  box-shadow: 0 15px 36px rgba(49, 76, 132, .08);
}

#studentScreen #studentBagView .bag-summary__countV1018 {
  display: flex;
  align-items: center;
  gap: 16px;
}

#studentScreen #studentBagView .bag-summary__iconV1018 {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: grid;
  place-items: center;
  border-radius: 19px;
  color: #337bf0;
  background: linear-gradient(145deg, #eef5ff, #e6f0ff);
  box-shadow: inset 0 0 0 1px rgba(71, 123, 228, .08);
}

#studentScreen #studentBagView .bag-summary__iconV1018 svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen #studentBagView .bag-summary--v1018 .eyebrow {
  margin: 0 0 2px;
  color: #337bee;
}

#studentScreen #studentBagView .bag-summary--v1018 #bagSummary {
  color: #10234d;
  font-size: clamp(2.2rem, 8vw, 3.25rem);
  letter-spacing: -.055em;
  line-height: .98;
}

#studentScreen #studentBagView .bag-summary--v1018 #bagSummaryText {
  display: block;
  margin-top: 6px;
  color: #7887a5;
  font-size: .82rem;
}

#studentScreen #studentBagView .bagProgressMessageV1018 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 11px;
}

#studentScreen #studentBagView .bagProgressMessageV1018 .bag-progress-label {
  margin: 0;
  color: #172b56;
  font-size: .9rem;
}

#studentScreen #studentBagView .bagProgressMessageV1018 .state-pill {
  flex: 0 0 auto;
  color: #5c46c8;
  border-color: rgba(108, 80, 225, .16);
  background: #f0ebff;
}

#studentScreen #studentBagView .bag-progress {
  height: 13px;
  overflow: hidden;
  border-radius: 999px;
  background: #e9eef8;
}

#studentScreen #studentBagView .bag-progress > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #357bf5, #5a72f5 46%, #24cfda);
  box-shadow: 0 3px 10px rgba(39, 133, 236, .22);
  transition: width .28s ease;
}

#studentScreen #studentBagView .bagMotivationV1018 {
  margin: 12px 0 0;
  color: #65779b;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.35;
}

#studentScreen #studentBagView .section-heading--bagV1018 {
  align-items: end;
  margin-top: 2px;
  margin-bottom: 14px;
}

#studentScreen #studentBagView .section-heading--bagV1018 h2 {
  margin-top: 4px;
  color: #10234d;
  font-size: 1.55rem;
  letter-spacing: -.035em;
}

#studentScreen #studentBagView .bagOrderV1018 {
  padding: 9px 13px;
  border: 1px solid rgba(81, 111, 172, .16);
  border-radius: 999px;
  color: #5b6f98;
  background: rgba(255,255,255,.74);
  font-size: .7rem;
  font-weight: 800;
  white-space: nowrap;
}

#studentScreen #studentBagView .bagListV1018 {
  gap: 13px;
}

#studentScreen #studentBagView .bagItemV1018 {
  position: relative;
  min-height: 116px;
  grid-template-columns: 50px minmax(0,1fr) 68px;
  gap: 15px;
  padding: 18px 17px;
  overflow: hidden;
  border: 1px solid rgba(90, 119, 178, .15);
  border-radius: 24px;
  color: #10234d;
  background:
    linear-gradient(135deg, rgba(255,255,255,.99), rgba(249,251,255,.97));
  box-shadow: 0 10px 28px rgba(51, 75, 126, .065);
  transition:
    transform .16s ease,
    border-color .16s ease,
    box-shadow .16s ease,
    background .16s ease;
}

#studentScreen #studentBagView .bagItemV1018:active {
  transform: scale(.987);
}

#studentScreen #studentBagView .bagItemV1018.checked {
  border-color: rgba(48, 191, 138, .24);
  background:
    linear-gradient(135deg, rgba(245,255,250,.99), rgba(238,252,247,.98));
}

#studentScreen #studentBagView .bagItemV1018 .bagCheck {
  width: 48px;
  height: 48px;
  border: 2px solid #a6b6d2;
  border-radius: 15px;
  color: transparent;
  background: rgba(255,255,255,.88);
  font-size: 1.15rem;
  box-shadow: none;
}

#studentScreen #studentBagView .bagItemV1018.checked .bagCheck {
  color: #fff;
  border-color: #31bd89;
  background: linear-gradient(145deg, #46d6a4, #27ae7c);
  box-shadow: 0 6px 16px rgba(38, 170, 119, .18);
}

#studentScreen #studentBagView .bagContentV1018 {
  display: block;
}

#studentScreen #studentBagView .bagItemIndex {
  display: inline-block;
  margin-right: 8px;
  color: #8998b5;
  font-size: .74rem;
  font-weight: 800;
  vertical-align: top;
}

#studentScreen #studentBagView .bagItemText {
  display: inline;
}

#studentScreen #studentBagView .bagItemType,
#studentScreen #studentBagView .extraTag {
  display: inline-flex;
  margin-bottom: 4px;
  color: #7a89a8;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .065em;
}

#studentScreen #studentBagView .extraTag {
  padding: 4px 7px;
  border: 0;
  border-radius: 8px;
  color: #936319;
  background: #fff3cd;
}

#studentScreen #studentBagView .bagItemV1018 .bagContent strong {
  margin-top: 3px;
  color: #132650;
  font-size: .97rem;
  line-height: 1.28;
  letter-spacing: -.015em;
}

#studentScreen #studentBagView .bagItemV1018 .bagContent small {
  margin-top: 5px;
  color: #7d8baa;
  font-size: .75rem;
}

#studentScreen #studentBagView .bagCategoryV1018 {
  width: fit-content;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-top: 9px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 800;
}

#studentScreen #studentBagView .bagCategoryV1018 svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen #studentBagView .bagCategoryV1018--book,
#studentScreen #studentBagView .bagCategoryV1018--notebook {
  color: #6b4bd1;
  background: #eee8ff;
}

#studentScreen #studentBagView .bagCategoryV1018--craft,
#studentScreen #studentBagView .bagCategoryV1018--material {
  color: #248553;
  background: #e4f8e9;
}

#studentScreen #studentBagView .bagCategoryV1018--uniform {
  color: #3f6eb8;
  background: #e8f1ff;
}

#studentScreen #studentBagView .bagCategoryV1018--extra {
  color: #946413;
  background: #fff3cc;
}

#studentScreen #studentBagView .bagItemVisualV1018 {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  justify-self: end;
  border-radius: 19px;
}

#studentScreen #studentBagView .bagItemVisualV1018 svg {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen #studentBagView .bagItemVisualV1018--book,
#studentScreen #studentBagView .bagItemVisualV1018--notebook {
  color: #7654dd;
  background: linear-gradient(145deg, #f0ebff, #e8e2ff);
}

#studentScreen #studentBagView .bagItemVisualV1018--craft,
#studentScreen #studentBagView .bagItemVisualV1018--material {
  color: #2ba66d;
  background: linear-gradient(145deg, #eafbf0, #def5e7);
}

#studentScreen #studentBagView .bagItemVisualV1018--uniform {
  color: #477dc9;
  background: linear-gradient(145deg, #edf5ff, #e1edff);
}

#studentScreen #studentBagView .bagItemVisualV1018--extra {
  color: #b47b20;
  background: linear-gradient(145deg, #fff8df, #fff0c3);
}

#studentScreen #studentBagView .bagItemV1018.checked .bagItemVisualV1018 {
  opacity: .48;
}

@media (max-width: 620px) {
  #studentScreen #studentBagView .studentBagHeroV1018 {
    min-height: 168px;
    padding: 24px 138px 23px 20px;
    border-radius: 25px;
  }

  #studentScreen #studentBagView .studentBagHeroV1018__art {
    right: -2px;
    top: 18px;
    width: 140px;
    height: 140px;
  }

  #studentScreen #studentBagView .studentBagHeroV1018__bag {
    width: 122px;
  }

  #studentScreen #studentBagView .studentBagHeroV1018__hint {
    margin-top: 14px;
    font-size: .73rem;
  }

  #studentScreen #studentBagView .studentBagHeroV1018__hintIcon {
    display: none;
  }

  #studentScreen #studentBagView .bag-summary--v1018 {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 20px;
    border-radius: 25px;
  }

  #studentScreen #studentBagView .bag-summary__countV1018 {
    gap: 14px;
  }

  #studentScreen #studentBagView .bag-summary__iconV1018 {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }

  #studentScreen #studentBagView .bagItemV1018 {
    min-height: 110px;
    grid-template-columns: 48px minmax(0,1fr) 50px;
    padding: 16px 14px;
    gap: 11px;
    border-radius: 22px;
  }

  #studentScreen #studentBagView .bagItemVisualV1018 {
    width: 48px;
    height: 48px;
    border-radius: 16px;
  }

  #studentScreen #studentBagView .bagItemVisualV1018 svg {
    width: 27px;
    height: 27px;
  }
}

@media (max-width: 390px) {
  #studentScreen #studentBagView .studentBagHeroV1018 {
    padding-right: 118px;
  }

  #studentScreen #studentBagView .studentBagHeroV1018__art {
    right: -9px;
    width: 125px;
  }

  #studentScreen #studentBagView .studentBagHeroV1018__bag {
    width: 108px;
  }

  #studentScreen #studentBagView .bagOrderV1018 {
    display: none;
  }

  #studentScreen #studentBagView .bagItemV1018 {
    grid-template-columns: 44px minmax(0,1fr);
  }

  #studentScreen #studentBagView .bagItemVisualV1018 {
    display: none;
  }
}



/* STUDENT_BAG_DISCIPLINAS_V1019 */

#studentScreen #studentBagView .bagItemV1019 {
  --subject-main: #536fba;
  --subject-soft: #edf2ff;
  --subject-border: rgba(83,111,186,.16);
}

#studentScreen #studentBagView .bagItemV1019--portuguese {
  --subject-main: #7a56d8;
  --subject-soft: #f0eaff;
}

#studentScreen #studentBagView .bagItemV1019--math {
  --subject-main: #3478dd;
  --subject-soft: #eaf3ff;
}

#studentScreen #studentBagView .bagItemV1019--science {
  --subject-main: #22a874;
  --subject-soft: #e6f8ef;
}

#studentScreen #studentBagView .bagItemV1019--chemistry {
  --subject-main: #22a09e;
  --subject-soft: #e4f8f7;
}

#studentScreen #studentBagView .bagItemV1019--physics {
  --subject-main: #5363d8;
  --subject-soft: #eceeff;
}

#studentScreen #studentBagView .bagItemV1019--history {
  --subject-main: #a66d31;
  --subject-soft: #fff2e3;
}

#studentScreen #studentBagView .bagItemV1019--geography {
  --subject-main: #27945d;
  --subject-soft: #e7f7ee;
}

#studentScreen #studentBagView .bagItemV1019--english {
  --subject-main: #3971c7;
  --subject-soft: #eaf2ff;
}

#studentScreen #studentBagView .bagItemV1019--spanish {
  --subject-main: #d46842;
  --subject-soft: #fff0e9;
}

#studentScreen #studentBagView .bagItemV1019--arts {
  --subject-main: #d15c9b;
  --subject-soft: #ffebf6;
}

#studentScreen #studentBagView .bagItemV1019--physical {
  --subject-main: #e18031;
  --subject-soft: #fff2e4;
}

#studentScreen #studentBagView .bagItemV1019--philosophy {
  --subject-main: #7659bc;
  --subject-soft: #f0ebfb;
}

#studentScreen #studentBagView .bagItemV1019--religion {
  --subject-main: #6281a7;
  --subject-soft: #eef4f9;
}

#studentScreen #studentBagView .bagItemV1019--technology {
  --subject-main: #426fb0;
  --subject-soft: #eaf2fb;
}

#studentScreen #studentBagView .bagItemV1019--music {
  --subject-main: #a353bc;
  --subject-soft: #f6eafa;
}

#studentScreen #studentBagView .bagItemV1019--extra {
  --subject-main: #ba7b21;
  --subject-soft: #fff4d8;
}

#studentScreen #studentBagView .bagItemV1019:not(.checked)::before {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  bottom: 15px;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: var(--subject-main);
  opacity: .72;
}

#studentScreen #studentBagView .bagCategoryV1019 {
  width: fit-content;
  max-width: 100%;
  margin-top: 10px;
  padding: 6px 10px;
  white-space: normal;
  color: var(--subject-main) !important;
  background: var(--subject-soft) !important;
  font-size: .69rem;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: .01em;
  text-transform: none;
}

#studentScreen #studentBagView .bagItemVisualV1019 {
  position: relative;
  color: var(--subject-main) !important;
  background:
    radial-gradient(
      circle at 30% 20%,
      rgba(255,255,255,.95),
      transparent 44%
    ),
    var(--subject-soft) !important;
  box-shadow:
    inset 0 0 0 1px rgba(80,100,150,.10),
    0 7px 16px rgba(42,62,101,.055);
}

#studentScreen #studentBagView .bagItemVisualV1019 svg {
  width: 39px;
  height: 39px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.15;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* O texto do material continua sendo a informação principal */
#studentScreen #studentBagView .bagItemV1019 .bagContent strong {
  color: #132650;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.34;
}

/* A figura permanece secundária em telas pequenas */
@media (max-width: 620px) {
  #studentScreen #studentBagView .bagItemVisualV1019 {
    width: 52px;
    height: 52px;
  }

  #studentScreen #studentBagView .bagItemVisualV1019 svg {
    width: 34px;
    height: 34px;
  }
}

@media (max-width: 390px) {
  #studentScreen #studentBagView .bagItemV1019 {
    grid-template-columns: 44px minmax(0,1fr) 38px;
  }

  #studentScreen #studentBagView .bagItemVisualV1019 {
    display: grid;
    width: 38px;
    height: 38px;
    border-radius: 13px;
  }

  #studentScreen #studentBagView .bagItemVisualV1019 svg {
    width: 25px;
    height: 25px;
  }
}



/* =========================================================
   STUDENT_BAG_COLOR_ART_V1020
   Ilustrações coloridas inspiradas no mockup.
   Texto continua sendo o conteúdo principal.
   ========================================================= */

#studentScreen #studentBagView .bagItemV1020 {
  min-height: 126px;
  grid-template-columns: 50px minmax(0, 1fr) 96px;
  padding-right: 13px;
}

#studentScreen #studentBagView .bagItemVisualV1020 {
  width: 94px;
  height: 88px;
  display: grid;
  place-items: center;
  justify-self: end;
  align-self: center;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1;
}

#studentScreen #studentBagView .bagItemVisualV1020::after {
  display: none !important;
}

#studentScreen #studentBagView .bagItemVisualV1020 .bagArtSvgV1020 {
  width: 94px;
  height: 84px;
  display: block;
  overflow: visible;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter:
    drop-shadow(0 7px 7px rgba(35, 54, 94, .13))
    drop-shadow(0 2px 2px rgba(35, 54, 94, .06));
}

/*
 * Garante que SVG colorido não herde fill:none
 * da antiga arte V1018.
 */
#studentScreen #studentBagView
.bagItemVisualV1020
.bagArtSvgV1020 * {
  vector-effect: non-scaling-stroke;
}

/*
 * Chip da disciplina continua pequeno.
 */
#studentScreen #studentBagView .bagCategoryV1018 svg {
  width: 15px;
  height: 15px;
}

/*
 * Texto ganha um pouco mais de espaço vertical.
 */
#studentScreen #studentBagView .bagItemV1020 .bagContent strong {
  max-width: 100%;
  color: #112751;
  font-size: 1rem;
  font-weight: 820;
  line-height: 1.28;
}

#studentScreen #studentBagView .bagItemV1020 .bagContent small {
  margin-top: 4px;
}

/*
 * Checkbox semelhante ao mockup:
 * grande, simples, sem competir com a ilustração.
 */
#studentScreen #studentBagView .bagItemV1020 .bagCheck {
  width: 48px;
  height: 48px;
  border: 2px solid #9eafd0;
  border-radius: 15px;
  background: #fff;
}

#studentScreen #studentBagView .bagItemV1020.checked .bagCheck {
  border-color: #2fbe88;
  background:
    linear-gradient(145deg, #49d8a6, #25ad7a);
}

/*
 * Ao concluir, não apagamos completamente a figura.
 */
#studentScreen #studentBagView
.bagItemV1020.checked
.bagItemVisualV1020 {
  opacity: .55;
  filter: saturate(.8);
}

/*
 * Cor temática do pequeno chip.
 */
#studentScreen #studentBagView
.bagItemV1020--maker
.bagCategoryV1018 {
  color: #218f58;
  background: #e5f8e9;
}

#studentScreen #studentBagView
.bagItemV1020--math
.bagCategoryV1018 {
  color: #315fc3;
  background: #e9efff;
}

#studentScreen #studentBagView
.bagItemV1020--portuguese
.bagCategoryV1018 {
  color: #7551ce;
  background: #f0e9ff;
}

#studentScreen #studentBagView
.bagItemV1020--english
.bagCategoryV1018 {
  color: #d13b42;
  background: #ffeaec;
}

#studentScreen #studentBagView
.bagItemV1020--science
.bagCategoryV1018 {
  color: #149766;
  background: #e2f8ec;
}

#studentScreen #studentBagView
.bagItemV1020--arts
.bagCategoryV1018 {
  color: #bb4f98;
  background: #ffe8f7;
}

#studentScreen #studentBagView
.bagItemV1020--physical
.bagCategoryV1018 {
  color: #2f67ba;
  background: #e7f0ff;
}

#studentScreen #studentBagView
.bagItemV1020--history
.bagCategoryV1018 {
  color: #9a692c;
  background: #fff0dc;
}

#studentScreen #studentBagView
.bagItemV1020--geography
.bagCategoryV1018 {
  color: #258455;
  background: #e7f6ed;
}

#studentScreen #studentBagView
.bagItemV1020--extra
.bagCategoryV1018 {
  color: #9e6a1f;
  background: #fff2cf;
}

/* tablets/celulares */
@media (max-width: 620px) {
  #studentScreen #studentBagView .bagItemV1020 {
    grid-template-columns: 48px minmax(0, 1fr) 82px;
    min-height: 122px;
    gap: 11px;
  }

  #studentScreen #studentBagView .bagItemVisualV1020 {
    width: 82px;
    height: 80px;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020
  .bagArtSvgV1020 {
    width: 82px;
    height: 76px;
  }
}

/*
 * iPhone estreito:
 * mantém a imagem, pois esse é justamente
 * o elemento visual solicitado.
 */
@media (max-width: 390px) {
  #studentScreen #studentBagView .bagItemV1020 {
    grid-template-columns: 44px minmax(0, 1fr) 68px;
    gap: 9px;
    padding-left: 13px;
    padding-right: 9px;
  }

  #studentScreen #studentBagView .bagItemVisualV1020 {
    display: grid !important;
    width: 68px;
    height: 72px;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020
  .bagArtSvgV1020 {
    width: 68px;
    height: 68px;
  }

  #studentScreen #studentBagView
  .bagItemV1020
  .bagContent strong {
    font-size: .92rem;
  }

  #studentScreen #studentBagView
  .bagCategoryV1018 {
    padding: 5px 8px;
    font-size: .64rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  #studentScreen #studentBagView .bagItemV1020,
  #studentScreen #studentBagView .bag-progress > span {
    transition: none !important;
  }
}


/* =========================================================
   STUDENT_BAG_ASSETS_V1021
   Artes aprovadas das 9 disciplinas.
   A imagem é complementar; texto continua protagonista.
   ========================================================= */

#studentScreen #studentBagView .bagArtImgV1021 {
  width: 96px;
  height: 96px;
  display: block;
  object-fit: contain;
  object-position: center;
  user-select: none;
  pointer-events: none;
  -webkit-user-drag: none;

  filter:
    drop-shadow(0 7px 8px rgba(35, 55, 96, .11))
    drop-shadow(0 2px 2px rgba(35, 55, 96, .05));
}

#studentScreen #studentBagView
.bagItemVisualV1020:has(.bagArtImgV1021) {
  width: 100px;
  height: 100px;
  overflow: visible;
  display: grid;
  place-items: center;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/*
 * Não aplica os estilos herdados dos SVGs antigos
 * às novas imagens PNG.
 */
#studentScreen #studentBagView
.bagItemVisualV1020
.bagArtImgV1021 {
  stroke: none;
  fill: none;
}

/*
 * Espaço confortável para a arte sem comprimir o texto.
 */
#studentScreen #studentBagView
.bagItemV1020:has(.bagArtImgV1021) {
  grid-template-columns: 50px minmax(0, 1fr) 102px;
  min-height: 132px;
}

/*
 * Concluído:
 * mantém a arte visível, apenas reduz levemente a intensidade.
 */
#studentScreen #studentBagView
.bagItemV1020.checked
.bagArtImgV1021 {
  opacity: .58;
  filter:
    saturate(.82)
    drop-shadow(0 5px 6px rgba(35, 55, 96, .08));
}

@media (max-width: 620px) {
  #studentScreen #studentBagView
  .bagItemV1020:has(.bagArtImgV1021) {
    grid-template-columns: 48px minmax(0, 1fr) 88px;
    gap: 10px;
    min-height: 126px;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020:has(.bagArtImgV1021) {
    width: 86px;
    height: 86px;
  }

  #studentScreen #studentBagView .bagArtImgV1021 {
    width: 86px;
    height: 86px;
  }
}

/*
 * iPhone estreito:
 * preservamos a figura aprovada.
 */
@media (max-width: 390px) {
  #studentScreen #studentBagView
  .bagItemV1020:has(.bagArtImgV1021) {
    grid-template-columns: 44px minmax(0, 1fr) 72px;
    gap: 8px;
    padding-left: 13px;
    padding-right: 8px;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020:has(.bagArtImgV1021) {
    display: grid !important;
    width: 70px;
    height: 76px;
  }

  #studentScreen #studentBagView .bagArtImgV1021 {
    width: 70px;
    height: 76px;
  }
}


/* =========================================================
   STUDENT_BAG_19_DISCIPLINAS_V1022
   ========================================================= */

#studentScreen #studentBagView .bagArtImgV1022 {
  width: 100%;
  height: 100%;
  max-width: 98px;
  max-height: 98px;
  object-fit: contain;
  object-position: center;
  border-radius: 18px;
  user-select: none;
  pointer-events: none;
  -webkit-user-drag: none;
}

@media (max-width: 620px) {
  #studentScreen #studentBagView .bagArtImgV1022 {
    max-width: 86px;
    max-height: 86px;
    border-radius: 16px;
  }
}

@media (max-width: 390px) {
  #studentScreen #studentBagView .bagArtImgV1022 {
    max-width: 72px;
    max-height: 76px;
    border-radius: 14px;
  }
}


/* =========================================================
   STUDENT_BAG_TRANSPARENT_ART_V1023
   Apenas a figura 3D, sem fundo/card auxiliar.
   ========================================================= */

#studentScreen #studentBagView .bagArtImgV1022 {
  width: 100px !important;
  height: 100px !important;

  max-width: 100px !important;
  max-height: 100px !important;

  object-fit: contain !important;
  object-position: center !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;

  filter:
    drop-shadow(0 7px 8px rgba(25, 48, 87, .13))
    drop-shadow(0 2px 2px rgba(25, 48, 87, .05));
}

#studentScreen #studentBagView
.bagItemVisualV1020:has(.bagArtImgV1022) {
  width: 104px !important;
  height: 104px !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;

  overflow: visible !important;
  display: grid !important;
  place-items: center !important;
}

#studentScreen #studentBagView
.bagItemV1020:has(.bagArtImgV1022) {
  grid-template-columns:
    50px
    minmax(0, 1fr)
    108px !important;
}

@media (max-width: 620px) {
  #studentScreen #studentBagView .bagArtImgV1022 {
    width: 90px !important;
    height: 90px !important;
    max-width: 90px !important;
    max-height: 90px !important;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020:has(.bagArtImgV1022) {
    width: 94px !important;
    height: 94px !important;
  }

  #studentScreen #studentBagView
  .bagItemV1020:has(.bagArtImgV1022) {
    grid-template-columns:
      48px
      minmax(0, 1fr)
      94px !important;
  }
}

@media (max-width: 390px) {
  #studentScreen #studentBagView .bagArtImgV1022 {
    width: 78px !important;
    height: 78px !important;
    max-width: 78px !important;
    max-height: 78px !important;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020:has(.bagArtImgV1022) {
    width: 80px !important;
    height: 82px !important;
  }

  #studentScreen #studentBagView
  .bagItemV1020:has(.bagArtImgV1022) {
    grid-template-columns:
      44px
      minmax(0, 1fr)
      82px !important;
  }
}


/* =========================================================
   STUDENT_BAG_REFINEMENT_V1024

   - reduz as ilustrações aproximadamente 9%
   - aumenta respiro visual
   - impede primeiro card de ficar colado ao cabeçalho fixo
   ========================================================= */

/* ---------- FIGURAS ---------- */

#studentScreen #studentBagView .bagArtImgV1022 {
  width: 91px !important;
  height: 91px !important;

  max-width: 91px !important;
  max-height: 91px !important;
}

#studentScreen #studentBagView
.bagItemVisualV1020:has(.bagArtImgV1022) {
  width: 96px !important;
  height: 96px !important;
}

#studentScreen #studentBagView
.bagItemV1020:has(.bagArtImgV1022) {
  grid-template-columns:
    50px
    minmax(0, 1fr)
    98px !important;
}

/* ---------- RESPIRO SUPERIOR ---------- */

/*
 * A área da mochila recebe espaço acima do primeiro card.
 * Isso evita que o cabeçalho fixo de "Prévia do aluno"
 * encoste visualmente ou cubra o conteúdo ao rolar.
 */
#studentScreen #studentBagView {
  scroll-padding-top: 150px;
}

#studentScreen #studentBagView .bagListV1018,
#studentScreen #studentBagView .bagList {
  padding-top: 14px;
}

/*
 * Se o primeiro item estiver no topo após atualização/scroll,
 * ainda há uma margem visível entre cabeçalho e card.
 */
#studentScreen #studentBagView .bagItemV1020:first-child {
  margin-top: 4px;
}

/* ---------- MOBILE ---------- */

@media (max-width: 620px) {

  #studentScreen #studentBagView .bagArtImgV1022 {
    width: 82px !important;
    height: 82px !important;

    max-width: 82px !important;
    max-height: 82px !important;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020:has(.bagArtImgV1022) {
    width: 86px !important;
    height: 86px !important;
  }

  #studentScreen #studentBagView
  .bagItemV1020:has(.bagArtImgV1022) {
    grid-template-columns:
      48px
      minmax(0, 1fr)
      88px !important;
  }

  #studentScreen #studentBagView {
    scroll-padding-top: 154px;
  }

  #studentScreen #studentBagView .bagListV1018,
  #studentScreen #studentBagView .bagList {
    padding-top: 16px;
  }
}

@media (max-width: 390px) {

  #studentScreen #studentBagView .bagArtImgV1022 {
    width: 71px !important;
    height: 71px !important;

    max-width: 71px !important;
    max-height: 71px !important;
  }

  #studentScreen #studentBagView
  .bagItemVisualV1020:has(.bagArtImgV1022) {
    width: 74px !important;
    height: 76px !important;
  }

  #studentScreen #studentBagView
  .bagItemV1020:has(.bagArtImgV1022) {
    grid-template-columns:
      44px
      minmax(0, 1fr)
      76px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_COLOR_V1025
   Tela Hoje mais colorida e ilustrada.
   ========================================================= */

#studentTodayView {
  --today-blue: #3478e5;
  --today-blue-dark: #17386e;
  --today-green: #22b875;
  --today-violet: #7653dd;
  --today-orange: #ef9a36;
  --today-red: #ef5a63;
}

/* ---------------------------------------------------------
   CABECALHO DA TELA
   --------------------------------------------------------- */

#studentTodayView #todayTitle {
  color: #102d5e;
  letter-spacing: -.035em;
}

#studentTodayView #todayLabel {
  color: #6e82a6;
}

#studentTodayView #dayBadge {
  border-color: #9ec4ff;
  background:
    linear-gradient(
      135deg,
      rgba(225,239,255,.96),
      rgba(247,251,255,.98)
    );
  color: #286fd3;
  box-shadow:
    0 5px 14px rgba(55,120,215,.08);
}

/* ---------------------------------------------------------
   RESUMO / ESTATISTICAS
   --------------------------------------------------------- */

/*
 * Colore os cartões já existentes sem mudar seu HTML.
 */

#studentTodayView :has(> #taskSummary) {
  background:
    linear-gradient(
      135deg,
      #f1fffb 0%,
      #f9fffd 100%
    );
}

#studentTodayView :has(> #taskCountChip) {
  background:
    linear-gradient(
      135deg,
      #f4f0ff 0%,
      #fbfaff 100%
    );
}

#studentTodayView :has(> #taskHeroText) {
  background:
    linear-gradient(
      135deg,
      #fff7e9 0%,
      #fffaf2 100%
    );
}

#studentTodayView :has(> #taskSummaryText) {
  border-color:
    rgba(95,139,213,.16);
}

/* ---------------------------------------------------------
   LISTA DE TAREFAS
   --------------------------------------------------------- */

#studentTodayView #tasks {
  display: grid;
  gap: 16px;
}

/*
 * Layout:
 *
 * número | figura | conteúdo | botão Fiz
 */

#studentTodayView .todayTaskCardV1025 {
  position: relative;

  display: grid;
  grid-template-columns:
    44px
    70px
    minmax(0, 1fr)
    104px;

  grid-template-areas:
    "numero arte corpo acao";

  gap: 10px;

  align-items: center;

  min-height: 154px;

  padding:
    18px
    16px
    18px
    14px;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.99),
      rgba(249,252,255,.98)
    );

  border:
    1px solid
    rgba(129,158,203,.22);

  border-radius: 24px;

  box-shadow:
    0 10px 28px rgba(46,76,120,.07),
    inset 0 1px 0 rgba(255,255,255,.92);
}

/*
 * Linha colorida discreta na lateral.
 */

#studentTodayView .todayTaskAccentV1025 {
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;

  width: 4px;

  border-radius: 0 8px 8px 0;

  background:
    var(--today-blue);
}

/* ---------------------------------------------------------
   NUMERO
   --------------------------------------------------------- */

#studentTodayView .todayTaskNumberWrapV1025 {
  grid-area: numero;

  align-self: start;

  padding-top: 4px;

  text-align: center;
}

#studentTodayView
.todayTaskNumberWrapV1025
.taskNumber {
  font-size: 14px;
  font-weight: 850;
  color: #7489aa;
}

/* ---------------------------------------------------------
   ARTE DA DISCIPLINA
   --------------------------------------------------------- */

#studentTodayView .todayTaskArtV1025 {
  grid-area: arte;

  width: 66px;
  height: 66px;

  display: grid;
  place-items: center;

  align-self: center;

  background: transparent;

  user-select: none;
  pointer-events: none;
}

#studentTodayView .todayTaskArtV1025 img {
  display: block;

  width: 62px;
  height: 62px;

  object-fit: contain;

  filter:
    drop-shadow(
      0 5px 6px
      rgba(38,58,96,.12)
    );
}

#studentTodayView
.todayTaskArtV1025--fallback {
  border-radius: 18px;

  color: #377ada;
  font-size: 28px;

  background:
    linear-gradient(
      135deg,
      #eaf3ff,
      #f5f9ff
    );
}

/* ---------------------------------------------------------
   CONTEUDO
   --------------------------------------------------------- */

#studentTodayView .todayTaskBodyV1025 {
  grid-area: corpo;

  min-width: 0;
}

#studentTodayView .todayTaskTopV1025 {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;

  margin-bottom: 8px;
}

#studentTodayView
.todayTaskCardV1025
.subjectTag,
#studentTodayView
.todayTaskCardV1025
.stateTag {
  font-size: 12px;
  font-weight: 800;

  line-height: 1;

  padding: 7px 12px;

  border-radius: 999px;
}

#studentTodayView
.todayTaskCardV1025
.stateTag {
  color: #667894;

  background: #f4f6fa;

  border:
    1px solid
    rgba(118,139,173,.22);
}

#studentTodayView
.todayTaskCardV1025 h3 {
  margin:
    0
    0
    9px;

  color: #102e60;

  font-size: clamp(
    17px,
    2vw,
    21px
  );

  line-height: 1.25;

  letter-spacing: -.018em;
}

#studentTodayView .todayTaskMetaV1025 {
  display: flex;
  align-items: center;

  gap: 7px;

  color: #7486a5;

  font-size: 13px;
}

#studentTodayView .todayCalendarV1025 {
  width: 19px;
  height: 19px;

  display: inline-grid;
  place-items: center;

  border: 1.5px solid #7894c0;
  border-radius: 5px;

  color: #7894c0;

  font-size: 9px;
}

/* ---------------------------------------------------------
   BOTAO FIZ
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025 {
  grid-area: acao;

  width: 100%;
  min-width: 0;

  align-self: center;

  padding:
    13px
    11px;

  border-radius: 18px;

  font-size: 17px;
  font-weight: 850;

  color: #174683;

  background:
    linear-gradient(
      135deg,
      #f6faff,
      #edf5ff
    );

  border:
    1px solid
    #cadcf5;

  box-shadow:
    0 4px 12px
    rgba(58,110,181,.05);
}

#studentTodayView
.todayDoneBtnV1025
.checkCircle {
  width: 27px;
  height: 27px;

  border-width: 2px;
}

#studentTodayView
.todayDoneBtnV1025.checked {
  color: #137754;

  background:
    linear-gradient(
      135deg,
      #edfff7,
      #e3fbf0
    );

  border-color:
    #9bddc2;
}

/* ---------------------------------------------------------
   CORES POR DISCIPLINA
   --------------------------------------------------------- */

#studentTodayView
.todayTaskCardV1025--portugues
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--leitura
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--literatura
.todayTaskAccentV1025 {
  background: #3a88f4;
}

#studentTodayView
.todayTaskCardV1025--portugues
.subjectTag,
#studentTodayView
.todayTaskCardV1025--leitura
.subjectTag,
#studentTodayView
.todayTaskCardV1025--literatura
.subjectTag {
  color: #236fd1;
  background: #eaf4ff;
  border-color: #b9d7ff;
}

#studentTodayView
.todayTaskCardV1025--geografia
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--ciencias
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--laboratorio
.todayTaskAccentV1025 {
  background: #24b97b;
}

#studentTodayView
.todayTaskCardV1025--geografia
.subjectTag,
#studentTodayView
.todayTaskCardV1025--ciencias
.subjectTag,
#studentTodayView
.todayTaskCardV1025--laboratorio
.subjectTag {
  color: #12835a;
  background: #e8fbf2;
  border-color: #afe7cf;
}

#studentTodayView
.todayTaskCardV1025--ingles
.todayTaskAccentV1025 {
  background: #f25b66;
}

#studentTodayView
.todayTaskCardV1025--ingles
.subjectTag {
  color: #d93f4d;
  background: #fff0f2;
  border-color: #ffc8ce;
}

#studentTodayView
.todayTaskCardV1025--matematica
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--algebra
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--geometria
.todayTaskAccentV1025 {
  background: #557ce3;
}

#studentTodayView
.todayTaskCardV1025--matematica
.subjectTag,
#studentTodayView
.todayTaskCardV1025--algebra
.subjectTag,
#studentTodayView
.todayTaskCardV1025--geometria
.subjectTag {
  color: #385fc9;
  background: #eef2ff;
  border-color: #c7d3ff;
}

#studentTodayView
.todayTaskCardV1025--redacao
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--redacao1
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--redacao2
.todayTaskAccentV1025 {
  background: #8b63e6;
}

#studentTodayView
.todayTaskCardV1025--redacao
.subjectTag,
#studentTodayView
.todayTaskCardV1025--redacao1
.subjectTag,
#studentTodayView
.todayTaskCardV1025--redacao2
.subjectTag {
  color: #7447ce;
  background: #f3edff;
  border-color: #ddceff;
}

#studentTodayView
.todayTaskCardV1025--historia
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--religioso
.todayTaskAccentV1025 {
  background: #d69a4b;
}

#studentTodayView
.todayTaskCardV1025--historia
.subjectTag,
#studentTodayView
.todayTaskCardV1025--religioso
.subjectTag {
  color: #a66d27;
  background: #fff4e5;
  border-color: #f2d6ae;
}

#studentTodayView
.todayTaskCardV1025--arte
.todayTaskAccentV1025,
#studentTodayView
.todayTaskCardV1025--liv
.todayTaskAccentV1025 {
  background: #dd64a6;
}

#studentTodayView
.todayTaskCardV1025--arte
.subjectTag,
#studentTodayView
.todayTaskCardV1025--liv
.subjectTag {
  color: #b94887;
  background: #fff0f8;
  border-color: #f3c9df;
}

#studentTodayView
.todayTaskCardV1025--maker
.todayTaskAccentV1025 {
  background: #18aeb6;
}

#studentTodayView
.todayTaskCardV1025--maker
.subjectTag {
  color: #087f87;
  background: #e9fbfc;
  border-color: #b6e9ec;
}

#studentTodayView
.todayTaskCardV1025--esporte
.todayTaskAccentV1025 {
  background: #ef8a32;
}

#studentTodayView
.todayTaskCardV1025--esporte
.subjectTag {
  color: #bd681d;
  background: #fff3e8;
  border-color: #f3cfac;
}

/* ---------------------------------------------------------
   CONFERENCIA FINAL / VIDEO
   --------------------------------------------------------- */

#studentTodayView #studentVideoPanel {
  position: relative;

  overflow: hidden;

  border:
    1px solid
    rgba(67,190,121,.28);

  background:
    linear-gradient(
      135deg,
      #f0fff6 0%,
      #f8fffb 55%,
      #effcf5 100%
    );

  box-shadow:
    0 10px 26px
    rgba(32,154,95,.07);
}

#studentTodayView #studentVideoPanel::before {
  content: "🏆";

  float: left;

  width: 62px;
  height: 62px;

  margin:
    2px
    17px
    8px
    0;

  display: grid;
  place-items: center;

  border-radius: 19px;

  font-size: 38px;

  background:
    rgba(213,249,225,.9);
}

#studentTodayView
#studentVideoPanel
.eyebrow {
  color: #15975e;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView #tasks {
    gap: 13px;
  }

  #studentTodayView .todayTaskCardV1025 {
    grid-template-columns:
      31px
      58px
      minmax(0, 1fr)
      82px;

    gap: 7px;

    min-height: 132px;

    padding:
      15px
      10px
      15px
      10px;

    border-radius: 21px;
  }

  #studentTodayView
  .todayTaskNumberWrapV1025
  .taskNumber {
    font-size: 12px;
  }

  #studentTodayView .todayTaskArtV1025 {
    width: 55px;
    height: 55px;
  }

  #studentTodayView
  .todayTaskArtV1025 img {
    width: 51px;
    height: 51px;
  }

  #studentTodayView
  .todayTaskCardV1025 h3 {
    font-size: 15.5px;
    line-height: 1.24;
    margin-bottom: 7px;
  }

  #studentTodayView
  .todayTaskCardV1025
  .subjectTag,
  #studentTodayView
  .todayTaskCardV1025
  .stateTag {
    padding: 6px 9px;
    font-size: 11px;
  }

  #studentTodayView
  .todayTaskMetaV1025 {
    font-size: 11.5px;
  }

  #studentTodayView
  .todayDoneBtnV1025 {
    padding:
      11px
      5px;

    gap: 5px;

    font-size: 15px;

    border-radius: 16px;
  }

  #studentTodayView
  .todayDoneBtnV1025
  .checkCircle {
    width: 23px;
    height: 23px;
  }

  #studentTodayView
  #studentVideoPanel::before {
    width: 52px;
    height: 52px;

    margin-right: 12px;

    font-size: 31px;
  }
}

/*
 * iPhone estreito.
 */

@media (max-width: 390px) {

  #studentTodayView .todayTaskCardV1025 {
    grid-template-columns:
      27px
      49px
      minmax(0, 1fr)
      72px;

    gap: 5px;

    padding-left: 8px;
    padding-right: 8px;
  }

  #studentTodayView .todayTaskArtV1025 {
    width: 47px;
    height: 47px;
  }

  #studentTodayView
  .todayTaskArtV1025 img {
    width: 44px;
    height: 44px;
  }

  #studentTodayView
  .todayTaskCardV1025 h3 {
    font-size: 14px;
  }

  #studentTodayView
  .todayTaskTopV1025 {
    gap: 5px;
  }

  #studentTodayView
  .todayDoneBtnV1025 {
    padding-left: 3px;
    padding-right: 3px;

    font-size: 14px;
  }
}


/* =========================================================
   STUDENT_TODAY_REFINEMENT_V1026

   - arte e botão alinhados ao topo em tarefas longas
   - respiro inferior acima da navegação fixa
   - mantém cards, chips e tamanhos da V1025
   ========================================================= */

/* ---------------------------------------------------------
   ALINHAMENTO EM CARDS ALTOS
   --------------------------------------------------------- */

#studentTodayView .todayTaskArtV1025 {
  align-self: start !important;
  margin-top: 28px;
}

#studentTodayView .todayDoneBtnV1025 {
  align-self: start !important;
  margin-top: 38px;
}

/*
 * Em tarefas curtas continua visualmente equilibrado.
 */
#studentTodayView .todayTaskCardV1025 {
  align-items: start;
}

#studentTodayView .todayTaskBodyV1025 {
  align-self: start;
}

/* ---------------------------------------------------------
   ULTIMA TAREFA + NAVEGACAO FIXA
   --------------------------------------------------------- */

#studentTodayView #tasks {
  padding-bottom: 22px;
}

#studentTodayView {
  padding-bottom:
    calc(
      112px
      + env(safe-area-inset-bottom, 0px)
    );
}

/*
 * Garante que qualquer bloco final da aba Hoje,
 * inclusive conferência/vídeo, possa subir acima da barra.
 */
#studentTodayView > :last-child {
  margin-bottom: 12px;
}

/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayTaskArtV1025 {
    margin-top: 24px;
  }

  #studentTodayView .todayDoneBtnV1025 {
    margin-top: 32px;
  }

  #studentTodayView {
    padding-bottom:
      calc(
        118px
        + env(safe-area-inset-bottom, 0px)
      );
  }
}

@media (max-width: 390px) {

  #studentTodayView .todayTaskArtV1025 {
    margin-top: 22px;
  }

  #studentTodayView .todayDoneBtnV1025 {
    margin-top: 29px;
  }
}


/* =========================================================
   STUDENT_TODAY_LAYOUT_V1027

   Estrutura aprovada:
   - número no topo esquerdo
   - figura no topo
   - chips ao lado da figura
   - texto começa no alinhamento horizontal da figura
   - mesmo alinhamento nos cards 01 / 02 / 03
   - botão FIZ centralizado verticalmente
   - texto nunca invade o botão
   ========================================================= */


/* ---------------------------------------------------------
   CARD
   --------------------------------------------------------- */

#studentTodayView .todayTaskCardV1025 {
  position: relative !important;

  display: grid !important;

  grid-template-columns:
    42px
    70px
    minmax(0, 1fr) !important;

  grid-template-rows:
    auto
    auto
    auto !important;

  column-gap: 10px !important;
  row-gap: 6px !important;

  align-items: start !important;

  min-height: 150px;

  padding:
    20px
    13px
    18px
    17px !important;
}


/* ---------------------------------------------------------
   TASKBODY DEIXA DE CRIAR UMA COLUNA PROPRIA
   --------------------------------------------------------- */

/*
 * Isso é o ponto principal da V1027.
 *
 * Os filhos do taskBody passam a participar diretamente
 * da grade do card.
 *
 * Assim o texto pode começar abaixo da figura, em vez de
 * permanecer preso à antiga coluna de conteúdo.
 */

#studentTodayView .todayTaskBodyV1025 {
  display: contents !important;
}


/* ---------------------------------------------------------
   NUMERO 01 / 02 / 03
   --------------------------------------------------------- */

#studentTodayView .todayTaskNumberWrapV1025 {
  grid-column: 1 !important;
  grid-row: 1 !important;

  align-self: start !important;

  margin: 0 !important;
  padding: 9px 0 0 0 !important;

  text-align: center;
}

#studentTodayView
.todayTaskNumberWrapV1025
.taskNumber {
  display: block;

  margin: 0;

  font-size: 14px;
  font-weight: 850;

  line-height: 1;

  color: #7387a7;
}


/* ---------------------------------------------------------
   FIGURA
   --------------------------------------------------------- */

#studentTodayView .todayTaskArtV1025 {
  grid-column: 2 !important;
  grid-row: 1 !important;

  align-self: start !important;
  justify-self: start !important;

  width: 64px !important;
  height: 64px !important;

  margin: 0 !important;
  padding: 0 !important;
}

#studentTodayView .todayTaskArtV1025 img {
  width: 60px !important;
  height: 60px !important;

  object-fit: contain !important;
}


/* ---------------------------------------------------------
   DISCIPLINA + STATUS
   --------------------------------------------------------- */

#studentTodayView .todayTaskTopV1025 {
  grid-column: 3 !important;
  grid-row: 1 !important;

  align-self: start !important;

  display: flex !important;
  flex-wrap: wrap !important;

  gap: 7px !important;

  /*
   * Pequena reserva somente para não colidir
   * com o botão FIZ no topo.
   */
  padding-right: 103px !important;

  margin:
    5px
    0
    0
    0 !important;

  min-width: 0;
}


/* ---------------------------------------------------------
   TEXTO DA TAREFA
   --------------------------------------------------------- */

/*
 * Começa exatamente na coluna da figura.
 *
 * Portanto Português, Geografia, Inglês e qualquer outra
 * disciplina terão o MESMO início horizontal.
 */

#studentTodayView
.todayTaskCardV1025
h3 {
  grid-column:
    2 / 4 !important;

  grid-row: 2 !important;

  align-self: start !important;

  width: auto !important;
  min-width: 0 !important;

  margin:
    0
    0
    3px
    0 !important;

  /*
   * Reserva apenas a largura física necessária para o FIZ.
   * O restante da largura do card fica disponível ao texto.
   */
  padding-right: 103px !important;

  overflow-wrap: anywhere;
  word-break: normal;
}


/* ---------------------------------------------------------
   PRAZO
   --------------------------------------------------------- */

#studentTodayView .todayTaskMetaV1025 {
  grid-column:
    2 / 4 !important;

  grid-row: 3 !important;

  align-self: start !important;

  margin:
    2px
    0
    0
    0 !important;

  padding-right: 103px !important;
}


/* ---------------------------------------------------------
   AVISO DE REPROVACAO
   --------------------------------------------------------- */

#studentTodayView .rejectNotice {
  grid-column:
    2 / 4 !important;

  width: auto !important;

  padding-right: 103px;
}


/* ---------------------------------------------------------
   BOTAO FIZ
   --------------------------------------------------------- */

/*
 * O botão deixa completamente de participar da grade.
 *
 * Resultado:
 * - não cria coluna vertical vazia;
 * - fica sempre no meio da altura real do card;
 * - card curto ou longo: mesma regra.
 */

#studentTodayView .todayDoneBtnV1025 {
  position: absolute !important;

  top: 50% !important;
  right: 12px !important;

  transform:
    translateY(-50%) !important;

  z-index: 4;

  width: 94px !important;
  min-width: 94px !important;
  max-width: 94px !important;

  min-height: 62px;

  margin: 0 !important;

  padding:
    11px
    8px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  gap: 7px !important;

  border-radius: 20px !important;
}


/* ---------------------------------------------------------
   LINHA COLORIDA LATERAL
   --------------------------------------------------------- */

#studentTodayView .todayTaskAccentV1025 {
  top: 16px !important;
  bottom: 16px !important;
}


/* =========================================================
   MOBILE / IPHONE
   ========================================================= */

@media (max-width: 620px) {

  #studentTodayView .todayTaskCardV1025 {
    grid-template-columns:
      34px
      58px
      minmax(0, 1fr) !important;

    column-gap: 7px !important;
    row-gap: 5px !important;

    padding:
      15px
      9px
      15px
      10px !important;

    min-height: 132px;
  }


  /* número */

  #studentTodayView
  .todayTaskNumberWrapV1025 {
    padding-top: 8px !important;
  }

  #studentTodayView
  .todayTaskNumberWrapV1025
  .taskNumber {
    font-size: 12px;
  }


  /* figura */

  #studentTodayView
  .todayTaskArtV1025 {
    width: 55px !important;
    height: 55px !important;
  }

  #studentTodayView
  .todayTaskArtV1025 img {
    width: 51px !important;
    height: 51px !important;
  }


  /* chips */

  #studentTodayView
  .todayTaskTopV1025 {
    padding-right: 89px !important;

    margin-top: 3px !important;
  }


  /* texto */

  #studentTodayView
  .todayTaskCardV1025
  h3 {
    grid-column:
      2 / 4 !important;

    padding-right: 89px !important;

    font-size: 15.5px;
    line-height: 1.24;
  }


  /* prazo */

  #studentTodayView
  .todayTaskMetaV1025 {
    grid-column:
      2 / 4 !important;

    padding-right: 89px !important;
  }


  #studentTodayView
  .rejectNotice {
    grid-column:
      2 / 4 !important;

    padding-right: 89px !important;
  }


  /* botão */

  #studentTodayView
  .todayDoneBtnV1025 {
    right: 8px !important;

    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;

    min-height: 58px;

    padding:
      9px
      5px !important;

    font-size: 15px !important;

    border-radius: 18px !important;
  }

}


/* =========================================================
   IPHONE MAIS ESTREITO
   ========================================================= */

@media (max-width: 390px) {

  #studentTodayView .todayTaskCardV1025 {
    grid-template-columns:
      30px
      51px
      minmax(0, 1fr) !important;

    column-gap: 5px !important;

    padding-left: 8px !important;
    padding-right: 7px !important;
  }


  #studentTodayView
  .todayTaskArtV1025 {
    width: 48px !important;
    height: 48px !important;
  }

  #studentTodayView
  .todayTaskArtV1025 img {
    width: 45px !important;
    height: 45px !important;
  }


  #studentTodayView
  .todayTaskTopV1025 {
    padding-right: 78px !important;
  }


  #studentTodayView
  .todayTaskCardV1025
  h3 {
    padding-right: 78px !important;

    font-size: 14px;
  }


  #studentTodayView
  .todayTaskMetaV1025,
  #studentTodayView
  .rejectNotice {
    padding-right: 78px !important;
  }


  #studentTodayView
  .todayDoneBtnV1025 {
    right: 6px !important;

    width: 71px !important;
    min-width: 71px !important;
    max-width: 71px !important;

    min-height: 54px;

    font-size: 14px !important;

    gap: 4px !important;
  }

}


/* =========================================================
   STUDENT_TODAY_LAYOUT_V1028

   Layout final aprovado:
   - número / figura / chips no topo
   - descrição alinhada com 01 / 02 / 03
   - prazo no mesmo alinhamento
   - FIZ realmente centralizado verticalmente
   - botão não cria coluna vertical
   ========================================================= */


/* ---------------------------------------------------------
   CARD
   --------------------------------------------------------- */

#studentTodayView .todayTaskCardV1025 {
  position: relative !important;

  display: grid !important;

  grid-template-columns:
    40px
    68px
    minmax(0, 1fr) !important;

  grid-template-rows:
    auto
    auto
    auto !important;

  column-gap: 8px !important;
  row-gap: 7px !important;

  align-items: start !important;

  padding:
    18px
    12px
    17px
    16px !important;
}


/* ---------------------------------------------------------
   TASK BODY
   --------------------------------------------------------- */

#studentTodayView .todayTaskBodyV1025 {
  display: contents !important;
}


/* ---------------------------------------------------------
   NUMERO
   --------------------------------------------------------- */

#studentTodayView .todayTaskNumberWrapV1025 {
  grid-column: 1 !important;
  grid-row: 1 !important;

  justify-self: start !important;
  align-self: start !important;

  width: auto !important;

  margin: 0 !important;
  padding:
    8px
    0
    0
    0 !important;

  text-align: left !important;
}

#studentTodayView
.todayTaskNumberWrapV1025
.taskNumber {
  display: block !important;

  margin: 0 !important;

  line-height: 1 !important;

  text-align: left !important;
}


/* ---------------------------------------------------------
   FIGURA
   --------------------------------------------------------- */

#studentTodayView .todayTaskArtV1025 {
  grid-column: 2 !important;
  grid-row: 1 !important;

  align-self: start !important;
  justify-self: start !important;

  margin: 0 !important;

  width: 62px !important;
  height: 62px !important;
}

#studentTodayView
.todayTaskArtV1025 img {
  width: 58px !important;
  height: 58px !important;

  object-fit: contain !important;
}


/* ---------------------------------------------------------
   DISCIPLINA + STATUS
   --------------------------------------------------------- */

#studentTodayView .todayTaskTopV1025 {
  grid-column: 3 !important;
  grid-row: 1 !important;

  align-self: start !important;

  display: flex !important;
  flex-wrap: wrap !important;

  gap: 7px !important;

  margin:
    5px
    0
    0
    0 !important;

  /*
   * Reserva somente a região real do botão.
   */
  padding-right: 102px !important;

  min-width: 0 !important;
}


/* ---------------------------------------------------------
   DESCRICAO
   --------------------------------------------------------- */

/*
 * O corpo passa a começar na COLUNA 1.
 *
 * É esse ponto que deixa Português, Geografia, Inglês
 * e todas as demais tarefas alinhadas com 01 / 02 / 03.
 */

#studentTodayView
.todayTaskCardV1025
h3 {
  grid-column:
    1 / 4 !important;

  grid-row: 2 !important;

  align-self: start !important;

  width: auto !important;
  min-width: 0 !important;

  margin:
    0
    0
    3px
    0 !important;

  padding:
    0
    102px
    0
    0 !important;

  overflow-wrap: anywhere !important;
  word-break: normal !important;
}


/* ---------------------------------------------------------
   PRAZO
   --------------------------------------------------------- */

#studentTodayView .todayTaskMetaV1025 {
  grid-column:
    1 / 4 !important;

  grid-row: 3 !important;

  align-self: start !important;

  margin:
    2px
    0
    0
    0 !important;

  padding:
    0
    102px
    0
    0 !important;
}


/* ---------------------------------------------------------
   REPROVACAO
   --------------------------------------------------------- */

#studentTodayView .rejectNotice {
  grid-column:
    1 / 4 !important;

  margin-left: 0 !important;

  padding-right: 102px !important;
}


/* ---------------------------------------------------------
   FIZ - CENTRO VERTICAL REAL
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025 {
  position: absolute !important;

  /*
   * Centro geométrico da ALTURA TOTAL do card.
   */
  top: 50% !important;
  right: 11px !important;
  bottom: auto !important;
  left: auto !important;

  transform:
    translateY(-50%) !important;

  margin: 0 !important;

  align-self: auto !important;

  width: 92px !important;
  min-width: 92px !important;
  max-width: 92px !important;

  min-height: 62px !important;

  padding:
    10px
    7px !important;

  display: flex !important;

  align-items: center !important;
  justify-content: center !important;

  gap: 7px !important;

  z-index: 5;
}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayTaskCardV1025 {
    grid-template-columns:
      32px
      56px
      minmax(0, 1fr) !important;

    column-gap: 6px !important;
    row-gap: 6px !important;

    padding:
      14px
      8px
      14px
      10px !important;
  }


  #studentTodayView
  .todayTaskNumberWrapV1025 {
    padding-top: 7px !important;
  }


  #studentTodayView
  .todayTaskArtV1025 {
    width: 53px !important;
    height: 53px !important;
  }

  #studentTodayView
  .todayTaskArtV1025 img {
    width: 49px !important;
    height: 49px !important;
  }


  #studentTodayView
  .todayTaskTopV1025 {
    padding-right: 87px !important;

    margin-top: 3px !important;
  }


  #studentTodayView
  .todayTaskCardV1025
  h3 {
    grid-column:
      1 / 4 !important;

    padding-right: 87px !important;

    font-size: 15.5px !important;
    line-height: 1.25 !important;
  }


  #studentTodayView
  .todayTaskMetaV1025,
  #studentTodayView
  .rejectNotice {
    grid-column:
      1 / 4 !important;

    padding-right: 87px !important;
  }


  #studentTodayView
  .todayDoneBtnV1025 {
    top: 50% !important;
    right: 7px !important;

    transform:
      translateY(-50%) !important;

    margin: 0 !important;

    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;

    min-height: 58px !important;

    font-size: 15px !important;
  }
}


/* ---------------------------------------------------------
   IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayTaskCardV1025 {
    grid-template-columns:
      29px
      49px
      minmax(0, 1fr) !important;

    column-gap: 5px !important;

    padding-left: 8px !important;
    padding-right: 6px !important;
  }


  #studentTodayView
  .todayTaskArtV1025 {
    width: 47px !important;
    height: 47px !important;
  }

  #studentTodayView
  .todayTaskArtV1025 img {
    width: 44px !important;
    height: 44px !important;
  }


  #studentTodayView
  .todayTaskTopV1025 {
    padding-right: 76px !important;
  }


  #studentTodayView
  .todayTaskCardV1025
  h3,
  #studentTodayView
  .todayTaskMetaV1025,
  #studentTodayView
  .rejectNotice {
    padding-right: 76px !important;
  }


  #studentTodayView
  .todayTaskCardV1025
  h3 {
    font-size: 14px !important;
  }


  #studentTodayView
  .todayDoneBtnV1025 {
    top: 50% !important;
    right: 5px !important;

    transform:
      translateY(-50%) !important;

    margin: 0 !important;

    width: 69px !important;
    min-width: 69px !important;
    max-width: 69px !important;

    min-height: 54px !important;

    font-size: 14px !important;

    gap: 4px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_VERTICAL_V1029

   Correção real do eixo vertical do FIZ.

   O botão herdava grid-area: acao da V1025.
   Mesmo absoluto, essa informação de grid continuava
   interferindo no seu bloco de posicionamento.

   V1029 remove toda participação do botão na grid antes
   de posicioná-lo no centro geométrico do CARD inteiro.
   ========================================================= */


/* ---------------------------------------------------------
   FIZ - ZERAR COMPLETAMENTE A GRID
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025 {

  /*
   * CRÍTICO:
   * remove a área "acao" herdada da V1025.
   */
  grid-area: unset !important;
  grid-column: unset !important;
  grid-row: unset !important;

  justify-self: unset !important;
  align-self: unset !important;
  place-self: unset !important;

  /*
   * Agora o containing block é o taskCard inteiro.
   */
  position: absolute !important;

  top: 50% !important;
  right: 11px !important;
  bottom: auto !important;
  left: auto !important;

  transform:
    translateY(-50%) !important;

  margin: 0 !important;

  z-index: 10;
}


/* ---------------------------------------------------------
   TEXTO LONGO JUSTIFICADO
   --------------------------------------------------------- */

#studentTodayView
.todayTaskLongV1029
h3 {
  text-align: justify !important;

  /*
   * Mantém a última linha normal, evitando
   * espaçamento artificial nela.
   */
  text-align-last: left;

  text-justify: inter-word;

  /*
   * Melhor quebra tanto em português como inglês.
   */
  overflow-wrap: break-word !important;
  word-break: normal !important;

  hyphens: auto;
  -webkit-hyphens: auto;
}


/* ---------------------------------------------------------
   DESCRICOES CURTAS
   --------------------------------------------------------- */

#studentTodayView
.todayTaskCardV1025:not(.todayTaskLongV1029)
h3 {
  text-align: left !important;
}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayDoneBtnV1025 {
    grid-area: unset !important;
    grid-column: unset !important;
    grid-row: unset !important;

    top: 50% !important;
    right: 7px !important;
    bottom: auto !important;
    left: auto !important;

    transform:
      translateY(-50%) !important;

    margin: 0 !important;
  }

}


/* ---------------------------------------------------------
   IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayDoneBtnV1025 {
    grid-area: unset !important;
    grid-column: unset !important;
    grid-row: unset !important;

    top: 50% !important;
    right: 5px !important;
    bottom: auto !important;
    left: auto !important;

    transform:
      translateY(-50%) !important;

    margin: 0 !important;
  }

}


/* =========================================================
   STUDENT_TODAY_HYBRID_V1030

   Direção visual:
   - topo mais colorido e motivacional
   - progresso vira destaque principal
   - Feitas / Tarefas / Status compactos e coloridos
   - cards das tarefas permanecem com geometria V1029
   - conferência final ganha destaque verde
   ========================================================= */


/* =========================================================
   PALETA
   ========================================================= */

#studentTodayView {
  --today-navy: #102f63;
  --today-blue: #2879e9;
  --today-cyan: #4bbfe7;
  --today-green: #18b779;
  --today-violet: #7451dd;
  --today-orange: #ec9434;
  --today-red: #ef5867;

  background:
    radial-gradient(
      circle at 86% 6%,
      rgba(76,177,255,.10),
      transparent 24%
    ),
    linear-gradient(
      180deg,
      #fbfdff 0%,
      #f4f8ff 58%,
      #f7faff 100%
    );
}


/* =========================================================
   TITULO DO DIA
   ========================================================= */

#studentTodayView #todayTitle {
  color: var(--today-navy);

  font-weight: 900;

  letter-spacing: -.045em;
}

#studentTodayView #todayLabel {
  color: #7185a8;
}


/*
 * Bloco que contém Tarefas de hoje.
 * Acrescentamos personalidade sem interferir
 * na estrutura HTML atual.
 */

#studentTodayView :has(> #todayTitle) {
  position: relative;

  padding-right: 102px;
}


/*
 * Ilustração decorativa feita somente em CSS/emoji.
 * Não participa da lógica e não cria dependência externa.
 */

#studentTodayView :has(> #todayTitle)::after {
  content: "✓";

  position: absolute;

  right: 10px;
  top: 4px;

  width: 70px;
  height: 70px;

  display: grid;
  place-items: center;

  color: white;

  font-size: 36px;
  font-weight: 950;

  border-radius:
    24px
    24px
    20px
    20px;

  background:
    linear-gradient(
      145deg,
      #ff6d70,
      #ff4e61
    );

  border:
    5px solid
    rgba(255,255,255,.92);

  box-shadow:
    0 13px 25px rgba(220,67,84,.20),
    inset 0 2px 0 rgba(255,255,255,.28);

  transform:
    rotate(-4deg);

  pointer-events: none;
}


/* =========================================================
   BADGE EM ANDAMENTO
   ========================================================= */

#studentTodayView #dayBadge {
  color: #176bd2;

  background:
    linear-gradient(
      135deg,
      #e5f2ff,
      #f5faff
    );

  border:
    1px solid
    #8fc0ff;

  box-shadow:
    0 6px 15px
    rgba(51,122,216,.10);
}


/* =========================================================
   PROGRESSO DO DIA
   ========================================================= */

/*
 * Card que possui o círculo de progresso.
 */

#studentTodayView :has(> #taskRing) {
  position: relative;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.99),
      rgba(246,251,255,.99)
    );

  border:
    1px solid
    rgba(119,158,215,.20);

  border-radius: 24px;

  box-shadow:
    0 10px 28px
    rgba(43,83,143,.07),
    inset 0 1px 0 white;
}


/*
 * Um detalhe motivacional discreto à direita.
 */

#studentTodayView :has(> #taskRing)::after {
  content: "★";

  position: absolute;

  right: 20px;
  top: 16px;

  width: 42px;
  height: 42px;

  display: grid;
  place-items: center;

  color: #f5b51b;

  font-size: 23px;

  border-radius: 15px;

  background:
    linear-gradient(
      145deg,
      #fff9dc,
      #fff4bd
    );

  box-shadow:
    0 6px 15px
    rgba(215,172,39,.13);

  transform:
    rotate(7deg);
}


/* círculo */

#studentTodayView #taskRing {
  filter:
    drop-shadow(
      0 5px 8px
      rgba(65,134,210,.08)
    );
}


/* =========================================================
   TEXTO DO PROGRESSO
   ========================================================= */

#studentTodayView
:has(> #taskSummaryText) {
  position: relative;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #f7fbff,
      #ffffff
    );

  border:
    1px solid
    rgba(113,154,216,.17);

  box-shadow:
    0 8px 22px
    rgba(46,85,145,.05);
}

#studentTodayView #taskSummaryText {
  color: #63799e;

  font-weight: 650;
}


/* =========================================================
   CARDS FEITAS / TAREFAS / STATUS
   ========================================================= */

/*
 * FEITAS
 */

#studentTodayView :has(> #taskSummary) {
  position: relative;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #e9fff8 0%,
      #f7fffc 100%
    ) !important;

  border:
    1px solid
    rgba(45,198,145,.20) !important;

  box-shadow:
    0 8px 22px
    rgba(33,169,117,.07);
}

#studentTodayView :has(> #taskSummary)::after {
  content: "✓";

  position: absolute;

  right: 13px;
  bottom: 11px;

  width: 35px;
  height: 35px;

  display: grid;
  place-items: center;

  border-radius: 13px;

  color: white;

  background:
    linear-gradient(
      145deg,
      #20c98c,
      #10ad72
    );

  font-weight: 950;

  box-shadow:
    0 6px 14px
    rgba(17,167,108,.18);
}


/*
 * TAREFAS
 */

#studentTodayView :has(> #taskCountChip) {
  position: relative;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #f2edff,
      #fbf9ff
    ) !important;

  border:
    1px solid
    rgba(126,92,225,.18) !important;

  box-shadow:
    0 8px 22px
    rgba(106,72,199,.06);
}

#studentTodayView :has(> #taskCountChip)::after {
  content: "▣";

  position: absolute;

  right: 13px;
  bottom: 11px;

  width: 35px;
  height: 35px;

  display: grid;
  place-items: center;

  border-radius: 13px;

  color: white;

  background:
    linear-gradient(
      145deg,
      #8b64e8,
      #7048d3
    );

  font-weight: 900;

  box-shadow:
    0 6px 14px
    rgba(108,73,199,.17);
}


/*
 * STATUS
 */

#studentTodayView :has(> #taskHeroText) {
  position: relative;

  overflow: hidden;

  background:
    linear-gradient(
      135deg,
      #fff4e5,
      #fffaf2
    ) !important;

  border:
    1px solid
    rgba(234,157,65,.21) !important;

  box-shadow:
    0 8px 22px
    rgba(208,130,43,.06);
}

#studentTodayView :has(> #taskHeroText)::after {
  content: "➜";

  position: absolute;

  right: 12px;
  bottom: 11px;

  width: 36px;
  height: 36px;

  display: grid;
  place-items: center;

  border-radius: 13px;

  color: white;

  background:
    linear-gradient(
      145deg,
      #f5a13c,
      #e98524
    );

  font-size: 19px;
  font-weight: 900;

  transform:
    rotate(-15deg);

  box-shadow:
    0 6px 14px
    rgba(220,137,38,.17);
}


/* números */

#studentTodayView #taskSummary,
#studentTodayView #taskCountChip {
  color: var(--today-navy);

  font-weight: 950;
}


/* status */

#studentTodayView #taskHeroText {
  color: var(--today-navy);

  font-weight: 850;
}


/* =========================================================
   MINHA ROTINA
   ========================================================= */

#studentTodayView .section-heading .eyebrow {
  color: #5073a8;

  letter-spacing: .18em;
}

#studentTodayView .section-heading h2 {
  color: var(--today-navy);
}


/* =========================================================
   CARDS DE TAREFA
   ========================================================= */

/*
 * Deliberadamente NÃO redefinimos:
 *
 * .todayTaskCardV1025
 * .todayDoneBtnV1025
 * h3
 * .todayTaskMetaV1025
 * .todayTaskArtV1025
 *
 * A geometria V1029 permanece intacta.
 */

#studentTodayView
.todayTaskCardV1025 {
  box-shadow:
    0 10px 26px
    rgba(44,77,126,.065),
    inset 0 1px 0 white;
}


/* =========================================================
   CONFERENCIA FINAL
   ========================================================= */

#studentTodayView #studentVideoPanel {
  position: relative;

  overflow: hidden;

  border:
    1px solid
    rgba(55,203,120,.29) !important;

  background:
    linear-gradient(
      135deg,
      #ecfff3 0%,
      #f7fffa 48%,
      #eafff3 100%
    ) !important;

  box-shadow:
    0 12px 28px
    rgba(32,164,91,.09) !important;
}


/*
 * Troféu da V1025 mais destacado.
 */

#studentTodayView
#studentVideoPanel::before {
  width: 66px !important;
  height: 66px !important;

  margin-right: 17px !important;

  display: grid !important;
  place-items: center !important;

  font-size: 40px !important;

  border-radius: 20px !important;

  background:
    linear-gradient(
      145deg,
      #d8ffe5,
      #c9f7d8
    ) !important;

  box-shadow:
    0 8px 19px
    rgba(30,168,89,.10);
}


#studentTodayView
#studentVideoPanel
.eyebrow {
  color: #12965c !important;
}


/*
 * Botão/seta visual quando houver conteúdo clicável.
 */

#studentTodayView
#studentVideoPanel::after {
  content: "›";

  position: absolute;

  right: 18px;
  top: 50%;

  transform:
    translateY(-50%);

  width: 43px;
  height: 43px;

  display: grid;
  place-items: center;

  border-radius: 50%;

  color: #10a65f;

  font-size: 37px;
  font-weight: 500;

  line-height: 1;

  background:
    rgba(206,248,222,.90);

  pointer-events: none;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 620px) {

  #studentTodayView
  :has(> #todayTitle) {
    padding-right: 88px;
  }

  #studentTodayView
  :has(> #todayTitle)::after {
    right: 4px;
    top: 4px;

    width: 61px;
    height: 61px;

    border-radius: 20px;

    font-size: 31px;
  }


  #studentTodayView
  :has(> #taskRing)::after {
    right: 14px;
    top: 12px;

    width: 36px;
    height: 36px;

    font-size: 20px;
  }


  #studentTodayView
  #studentVideoPanel::before {
    width: 55px !important;
    height: 55px !important;

    font-size: 33px !important;

    margin-right: 12px !important;
  }


  #studentTodayView
  #studentVideoPanel::after {
    width: 38px;
    height: 38px;

    right: 11px;

    font-size: 31px;
  }
}


/* =========================================================
   IPHONE ESTREITO
   ========================================================= */

@media (max-width: 390px) {

  #studentTodayView
  :has(> #todayTitle)::after {
    width: 54px;
    height: 54px;

    font-size: 28px;
  }

}


/* =========================================================
   STUDENT_TODAY_STRUCTURE_V1032
   ========================================================= */

#studentTodayView :has(> #todayTitle)::after,
#studentTodayView :has(> #taskRing)::after,
#studentTodayView :has(> #taskSummary)::after,
#studentTodayView :has(> #taskCountChip)::after,
#studentTodayView :has(> #taskHeroText)::after {
  display: none !important;
  content: none !important;
}

/* HERO */

#studentTodayView .hero-row--compact {
  position: relative;
  display: block !important;
  min-height: 205px;
  padding: 22px 45% 22px 0 !important;
  overflow: visible;
}

#studentTodayView .hero-row--compact > div {
  position: relative;
  z-index: 2;
}

#studentTodayView .todayHeroArtV1032 {
  position: absolute;
  z-index: 1;
  right: -5px;
  top: 7px;
  width: 46%;
  max-width: 300px;
  height: 185px;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 10px 14px rgba(36,71,123,.09));
}

#studentTodayView #todayTitle {
  margin-top: 3px;
  color: #102e61;
  font-weight: 950;
  letter-spacing: -.05em;
}

#studentTodayView #todayLabel {
  margin-top: 5px;
  color: #7184a5;
}

#studentTodayView #dayBadge {
  position: relative;
  z-index: 3;
  display: inline-flex;
  width: max-content;
  margin-top: 18px;
  color: #176bd4;
  border: 1px solid #99c4fb;
  background: linear-gradient(135deg, #e7f3ff, #f8fbff);
  box-shadow: 0 5px 13px rgba(42,113,206,.07);
}

/* PROGRESSO */

#studentTodayView .todayProgressV1032 {
  position: relative;
  display: grid !important;
  grid-template-columns: 112px minmax(0, 1fr) 132px;
  grid-template-rows: 1fr auto;
  column-gap: 20px;
  align-items: center;
  min-height: 152px;
  margin: 7px 0 12px !important;
  padding: 19px 18px !important;
  overflow: hidden;
  border: 1px solid rgba(121,157,209,.19) !important;
  border-radius: 25px !important;
  background: linear-gradient(135deg, #ffffff, #f8fbff) !important;
  box-shadow: 0 10px 27px rgba(44,77,128,.065) !important;
}

#studentTodayView .todayProgressCircleV1032 {
  grid-column: 1;
  grid-row: 1 / 3;
  position: relative;
  width: 106px;
  height: 106px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background:
    conic-gradient(
      #55c6ea calc(var(--today-progress, 0) * 1%),
      #e6eef9 0
    );
  box-shadow: 0 6px 16px rgba(56,117,195,.07);
}

#studentTodayView .todayProgressCircleV1032::before {
  content: "";
  position: absolute;
  inset: 11px;
  border-radius: 50%;
  background: #fff;
}

#studentTodayView .todayProgressCircleV1032 strong,
#studentTodayView .todayProgressCircleV1032 span {
  position: relative;
  z-index: 2;
}

#studentTodayView .todayProgressCircleV1032 strong {
  color: #102d5d;
  font-size: 27px;
  font-weight: 950;
  line-height: 1;
}

#studentTodayView .todayProgressCircleV1032 span {
  margin-top: 5px;
  color: #7589aa;
  font-size: 12px;
  font-weight: 700;
}

#studentTodayView .todayProgressCopyV1032 {
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  min-width: 0;
}

#studentTodayView .todayProgressCopyV1032 .eyebrow {
  color: #2879e6;
  font-weight: 900;
  letter-spacing: .15em;
}

#studentTodayView .todayProgressCopyV1032 #taskSummaryText {
  display: block;
  margin-top: 9px;
  color: #62799e;
  font-size: 17px;
  font-weight: 700;
}

#studentTodayView .todayMotivationV1032 {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  width: 125px;
  max-height: 76px;
  object-fit: contain;
  pointer-events: none;
}

#studentTodayView .todayProgressV1032 #taskRing {
  grid-column: 2 / 4;
  grid-row: 2;
  width: 100%;
  height: 10px;
  margin: 10px 0 2px !important;
  background: #e6edf8;
}

#studentTodayView .todayProgressV1032 #taskRing > span {
  background: linear-gradient(90deg, #4fc3e8, #4e95ed);
  box-shadow: none;
}

/* FEITAS | TAREFAS | STATUS */

#studentTodayView .todayStatsV1032 {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 9px !important;
  margin: 0 0 22px !important;
}

#studentTodayView .todayStatCardV1032 {
  position: relative;
  display: grid !important;
  grid-template-columns: 50px minmax(0, 1fr);
  align-items: center;
  min-width: 0;
  min-height: 103px;
  padding: 12px 58px 12px 12px !important;
  overflow: hidden;
  border-radius: 21px !important;
  box-shadow: 0 8px 21px rgba(43,75,124,.05) !important;
}

#studentTodayView .todayStatCardV1032--done {
  background: linear-gradient(135deg, #eafff7, #f8fffc) !important;
  border: 1px solid rgba(43,199,143,.19) !important;
}

#studentTodayView .todayStatCardV1032--tasks {
  background: linear-gradient(135deg, #f1edff, #fbfaff) !important;
  border: 1px solid rgba(119,82,220,.18) !important;
}

#studentTodayView .todayStatCardV1032--status {
  background: linear-gradient(135deg, #fff3e3, #fffaf2) !important;
  border: 1px solid rgba(235,151,55,.18) !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
  width: 47px;
  height: 47px;
  margin: 0;
  border-radius: 15px;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
  min-width: 0;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
  color: #6d7f9f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
  display: block;
  margin-top: 5px;
  color: #102d5e !important;
  font-size: 24px;
  font-weight: 950;
  line-height: 1.05;
}

#studentTodayView .todayStatArtV1032 {
  position: absolute;
  right: 4px;
  bottom: 4px;
  width: 62px;
  height: 65px;
  object-fit: contain;
  pointer-events: none;
}

/* MINHA ROTINA */

#studentTodayView .section-heading {
  margin: 12px 0 13px !important;
}

#studentTodayView .section-heading .eyebrow {
  color: #55739f;
  font-weight: 900;
  letter-spacing: .18em;
}

/* CONFERÊNCIA FINAL */

#studentTodayView #studentVideoPanel {
  position: relative;
  min-height: 125px;
  padding-left: 128px !important;
  padding-right: 58px !important;
  overflow: hidden;
  border: 1px solid rgba(51,199,116,.27) !important;
  border-radius: 24px !important;
  background: linear-gradient(135deg, #edfff4, #f8fffa) !important;
  box-shadow: 0 10px 26px rgba(33,161,89,.075) !important;
}

#studentTodayView #studentVideoPanel::before {
  display: none !important;
  content: none !important;
}

#studentTodayView .todayTrophyV1032 {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 104px;
  height: 104px;
  object-fit: contain;
  pointer-events: none;
}

#studentTodayView #studentVideoPanel::after {
  content: "›" !important;
  position: absolute;
  right: 17px;
  top: 50%;
  transform: translateY(-50%);
  width: 43px;
  height: 43px;
  display: grid !important;
  place-items: center;
  color: #0fa660;
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
  border-radius: 50%;
  background: rgba(211,250,225,.92);
  pointer-events: none;
}

/* MOBILE */

@media (max-width: 620px) {

  #studentTodayView .hero-row--compact {
    min-height: 176px;
    padding: 17px 43% 17px 0 !important;
  }

  #studentTodayView .todayHeroArtV1032 {
    right: -2px;
    top: 5px;
    width: 45%;
    height: 158px;
  }

  #studentTodayView .todayProgressV1032 {
    grid-template-columns: 87px minmax(0, 1fr) 96px;
    column-gap: 10px;
    min-height: 127px;
    padding: 14px 12px !important;
    border-radius: 21px !important;
  }

  #studentTodayView .todayProgressCircleV1032 {
    width: 82px;
    height: 82px;
  }

  #studentTodayView .todayProgressCircleV1032::before {
    inset: 9px;
  }

  #studentTodayView .todayProgressCircleV1032 strong {
    font-size: 22px;
  }

  #studentTodayView .todayProgressCircleV1032 span {
    font-size: 10px;
  }

  #studentTodayView .todayProgressCopyV1032 #taskSummaryText {
    font-size: 14px;
  }

  #studentTodayView .todayMotivationV1032 {
    width: 91px;
  }

  #studentTodayView .todayStatsV1032 {
    gap: 6px !important;
  }

  #studentTodayView .todayStatCardV1032 {
    grid-template-columns: 41px minmax(0, 1fr);
    min-height: 88px;
    padding: 9px 44px 9px 8px !important;
    border-radius: 18px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
    width: 39px;
    height: 39px;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
    font-size: 9px;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
    font-size: 18px;
  }

  #studentTodayView .todayStatArtV1032 {
    width: 47px;
    height: 52px;
  }

  #studentTodayView #studentVideoPanel {
    min-height: 108px;
    padding-left: 103px !important;
    padding-right: 49px !important;
  }

  #studentTodayView .todayTrophyV1032 {
    left: 9px;
    width: 84px;
    height: 84px;
  }
}

@media (max-width: 390px) {

  #studentTodayView .todayStatsV1032 {
    gap: 5px !important;
  }

  #studentTodayView .todayStatCardV1032 {
    min-height: 84px;
    padding-right: 37px !important;
  }

  #studentTodayView .todayStatArtV1032 {
    width: 41px;
    height: 46px;
  }
}


/* =========================================================
   STUDENT_TODAY_FIX_V1033

   Corrige interferências herdadas da V1030 nos novos
   componentes V1032 e compacta corretamente os 3 indicadores.
   ========================================================= */


/* ---------------------------------------------------------
   1. REMOVER CAIXAS INTERNAS HERDADAS DA V1030
   --------------------------------------------------------- */

#studentTodayView .todayProgressCopyV1032,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

/* evita qualquer pseudo-elemento antigo nesses blocos */

#studentTodayView .todayProgressCopyV1032::before,
#studentTodayView .todayProgressCopyV1032::after,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::before,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::after {
  display: none !important;
  content: none !important;
}


/* ---------------------------------------------------------
   2. HERO MAIS COMPACTO NO IPHONE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .hero-row--compact {
    min-height: 162px !important;

    padding:
      16px
      36%
      15px
      0 !important;
  }

  #studentTodayView #todayTitle {
    font-size: clamp(2.05rem, 9.4vw, 2.65rem) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
  }

  #studentTodayView #todayLabel {
    font-size: 1rem !important;
    line-height: 1.25 !important;
  }

  #studentTodayView .todayHeroArtV1032 {
    right: -3px !important;
    top: 4px !important;

    width: 39% !important;
    height: 145px !important;
  }

  #studentTodayView #dayBadge {
    margin-top: 13px !important;
  }
}


/* ---------------------------------------------------------
   3. PROGRESSO SEM CAIXA DENTRO DA CAIXA
   --------------------------------------------------------- */

#studentTodayView .todayProgressCopyV1032 .eyebrow,
#studentTodayView .todayProgressCopyV1032 #taskSummaryText {
  width: auto !important;
  max-width: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

@media (max-width: 620px) {

  #studentTodayView .todayProgressV1032 {
    grid-template-columns:
      82px
      minmax(0, 1fr)
      88px !important;

    column-gap: 9px !important;
  }

  #studentTodayView .todayProgressCircleV1032 {
    width: 78px !important;
    height: 78px !important;
  }

  #studentTodayView .todayProgressCopyV1032 .eyebrow {
    font-size: 11px !important;
    white-space: nowrap !important;
  }

  #studentTodayView .todayProgressCopyV1032 #taskSummaryText {
    font-size: 14px !important;
    line-height: 1.18 !important;
  }

  #studentTodayView .todayMotivationV1032 {
    width: 84px !important;
    max-height: 64px !important;
  }
}


/* ---------------------------------------------------------
   4. FEITAS | TAREFAS | STATUS
   --------------------------------------------------------- */

#studentTodayView .todayStatCardV1032 {
  grid-template-columns:
    44px
    minmax(0, 1fr) !important;

  padding:
    10px
    42px
    10px
    9px !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
  position: relative !important;
  z-index: 2 !important;

  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;

  min-width: 0 !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
  display: block !important;

  white-space: nowrap !important;
  overflow: visible !important;

  line-height: 1 !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
  display: block !important;

  width: auto !important;
  max-width: 100% !important;

  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

#studentTodayView .todayStatArtV1032 {
  z-index: 1 !important;
}


/* ---------------------------------------------------------
   5. MOBILE - OS 3 CARDS DEVEM CABER NA MESMA LINHA
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayStatsV1032 {
    grid-template-columns:
      repeat(3, minmax(0, 1fr)) !important;

    gap: 6px !important;
  }

  #studentTodayView .todayStatCardV1032 {
    display: block !important;

    min-height: 94px !important;

    padding:
      9px
      37px
      9px
      9px !important;

    overflow: hidden !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
    position: absolute !important;

    left: 9px !important;
    top: 10px !important;

    width: 34px !important;
    height: 34px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
    display: block !important;

    margin-left: 39px !important;
    padding: 0 !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
    font-size: 8.5px !important;
    letter-spacing: .075em !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
    margin-top: 4px !important;

    color: #102d5e !important;

    font-size: 18px !important;
    line-height: 1.03 !important;
  }

  /*
   * STATUS é o único texto maior.
   * Limite controlado para "Vamos começar" ficar em poucas linhas,
   * nunca letra por letra.
   */

  #studentTodayView .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    font-size: 13px !important;
    line-height: 1.08 !important;

    max-width: 58px !important;

    white-space: normal !important;
  }

  #studentTodayView .todayStatArtV1032 {
    right: 2px !important;
    bottom: 2px !important;

    width: 38px !important;
    height: 42px !important;
  }
}


/* ---------------------------------------------------------
   6. IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayStatsV1032 {
    gap: 5px !important;
  }

  #studentTodayView .todayStatCardV1032 {
    min-height: 90px !important;

    padding:
      8px
      32px
      8px
      7px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
    left: 7px !important;
    top: 9px !important;

    width: 31px !important;
    height: 31px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
    margin-left: 35px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
    font-size: 7.8px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
    font-size: 16px !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    font-size: 11.5px !important;
    max-width: 51px !important;
  }

  #studentTodayView .todayStatArtV1032 {
    width: 34px !important;
    height: 38px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_INDICATORS_V1034

   Objetivo:
   - remover resíduos visuais dos 3 indicadores
   - usar somente uma figura limpa por card
   - compactar altura
   - manter Feitas | Tarefas | Status na mesma linha
   ========================================================= */

#studentTodayView .todayStatsV1032 {
  gap: 7px !important;
  margin-bottom: 20px !important;
}

#studentTodayView .todayStatCardV1032 {
  min-height: 82px !important;
  height: 82px !important;

  padding:
    9px
    43px
    9px
    8px !important;

  overflow: hidden !important;

  border-radius: 18px !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
  position: absolute !important;

  left: 8px !important;
  top: 10px !important;

  width: 32px !important;
  height: 32px !important;

  margin: 0 !important;

  z-index: 3 !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
  position: absolute !important;

  left: 47px !important;
  top: 12px !important;
  right: 36px !important;

  margin: 0 !important;
  padding: 0 !important;

  z-index: 3 !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
  display: block !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #6d7f9f !important;

  font-size: 8.5px !important;
  font-weight: 900 !important;
  line-height: 1 !important;

  letter-spacing: .075em !important;

  white-space: nowrap !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
  display: block !important;

  margin: 5px 0 0 !important;
  padding: 0 !important;

  color: #102d5e !important;

  font-size: 17px !important;
  font-weight: 950 !important;
  line-height: 1.02 !important;

  white-space: normal !important;

  overflow-wrap: normal !important;
  word-break: normal !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#studentTodayView .todayStatCardV1032--status
.studentMetricCopyV1005 {
  right: 42px !important;
}

#studentTodayView .todayStatCardV1032--status
.studentMetricCopyV1005 > strong {
  font-size: 11.5px !important;
  line-height: 1.08 !important;

  max-width: 58px !important;
}

/*
 * Figura limpa: agora fica inteira dentro do card.
 */

#studentTodayView .todayStatArtV1032 {
  position: absolute !important;

  right: 3px !important;
  bottom: 4px !important;

  width: 39px !important;
  height: 44px !important;

  object-fit: contain !important;

  z-index: 2 !important;

  pointer-events: none !important;
}


/*
 * Nenhum pseudo-elemento ou conteúdo antigo pode reaparecer.
 */

#studentTodayView .todayStatCardV1032::before,
#studentTodayView .todayStatCardV1032::after,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::before,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::after {
  content: none !important;
  display: none !important;
}


/* iPhone estreito */

@media (max-width: 390px) {

  #studentTodayView .todayStatsV1032 {
    gap: 5px !important;
  }

  #studentTodayView .todayStatCardV1032 {
    min-height: 80px !important;
    height: 80px !important;

    padding: 8px 38px 8px 7px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
    left: 7px !important;
    top: 9px !important;

    width: 29px !important;
    height: 29px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
    left: 41px !important;
    top: 11px !important;
    right: 32px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
    font-size: 7.5px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
    font-size: 15px !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    font-size: 10.5px !important;
    max-width: 50px !important;
  }

  #studentTodayView .todayStatArtV1032 {
    width: 34px !important;
    height: 39px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_INDICATORS_V1035
   Acabamento final dos 3 indicadores.
   Não altera hero, progresso, rotina ou tarefas.
   ========================================================= */

#studentTodayView .todayStatsV1032 {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  align-items: stretch !important;
  margin-top: 10px !important;
  margin-bottom: 22px !important;
}

/* CARD */

#studentTodayView .todayStatCardV1032 {
  position: relative !important;

  min-width: 0 !important;
  min-height: 98px !important;
  height: 98px !important;

  padding: 0 !important;

  overflow: hidden !important;

  border-radius: 19px !important;
}

/*
 * Ícone funcional: canto superior esquerdo.
 */

#studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
  position: absolute !important;

  left: 10px !important;
  top: 15px !important;

  width: 36px !important;
  height: 36px !important;

  margin: 0 !important;
  padding: 8px !important;

  z-index: 3 !important;
}

/*
 * Texto.
 * Há uma faixa exclusiva à direita para a figura 3D.
 */

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
  position: absolute !important;

  left: 53px !important;
  top: 15px !important;
  right: 47px !important;

  margin: 0 !important;
  padding: 0 !important;

  z-index: 4 !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
  display: block !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #687b9d !important;

  font-size: 9px !important;
  font-weight: 900 !important;
  line-height: 1 !important;

  letter-spacing: .08em !important;

  white-space: nowrap !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
  display: block !important;

  margin: 7px 0 0 !important;
  padding: 0 !important;

  color: #102d5e !important;

  font-size: 20px !important;
  font-weight: 950 !important;
  line-height: 1 !important;

  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/*
 * STATUS precisa de um pouco mais de largura textual.
 */

#studentTodayView .todayStatCardV1032--status
.studentMetricCopyV1005 {
  left: 52px !important;
  right: 40px !important;
}

#studentTodayView .todayStatCardV1032--status
.studentMetricCopyV1005 > strong {
  margin-top: 6px !important;

  max-width: 70px !important;

  font-size: 12.5px !important;
  line-height: 1.08 !important;
}

/*
 * Figuras 3D maiores.
 */

#studentTodayView .todayStatArtV1032 {
  position: absolute !important;

  right: 4px !important;
  bottom: 5px !important;

  width: 49px !important;
  height: 54px !important;

  object-fit: contain !important;

  z-index: 2 !important;

  pointer-events: none !important;
}

/*
 * Livros e prancheta podem ocupar um pouco mais.
 */

#studentTodayView .todayStatCardV1032--done
.todayStatArtV1032,
#studentTodayView .todayStatCardV1032--tasks
.todayStatArtV1032 {
  width: 52px !important;
  height: 57px !important;
}

/*
 * Foguete inclinado visualmente pede um pouco mais de espaço.
 */

#studentTodayView .todayStatCardV1032--status
.todayStatArtV1032 {
  right: 2px !important;
  bottom: 3px !important;

  width: 51px !important;
  height: 58px !important;
}

/* Segurança contra resíduos herdados */

#studentTodayView .todayStatCardV1032::before,
#studentTodayView .todayStatCardV1032::after,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::before,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::after {
  content: none !important;
  display: none !important;
}


/* =========================================================
   IPHONE ESTREITO
   ========================================================= */

@media (max-width: 390px) {

  #studentTodayView .todayStatsV1032 {
    gap: 6px !important;
  }

  #studentTodayView .todayStatCardV1032 {
    min-height: 96px !important;
    height: 96px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
    left: 8px !important;
    top: 14px !important;

    width: 33px !important;
    height: 33px !important;

    padding: 7px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
    left: 46px !important;
    top: 14px !important;
    right: 42px !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span {
    font-size: 8px !important;
    letter-spacing: .06em !important;
  }

  #studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
    margin-top: 6px !important;
    font-size: 18px !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .studentMetricCopyV1005 {
    left: 45px !important;
    right: 35px !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    max-width: 61px !important;
    font-size: 11.5px !important;
    line-height: 1.08 !important;
  }

  #studentTodayView .todayStatArtV1032 {
    right: 2px !important;
    bottom: 4px !important;

    width: 45px !important;
    height: 51px !important;
  }

  #studentTodayView .todayStatCardV1032--done
  .todayStatArtV1032,
  #studentTodayView .todayStatCardV1032--tasks
  .todayStatArtV1032 {
    width: 48px !important;
    height: 54px !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .todayStatArtV1032 {
    right: 1px !important;
    bottom: 2px !important;

    width: 47px !important;
    height: 55px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_INDICATORS_V1036

   Ajustes finais:
   - remove TODAS as bordas/caixas internas do texto
   - reposiciona livros, prancheta e foguete
   - protege STATUS contra sobreposição
   - mantém os 3 cards lado a lado
   ========================================================= */


/* ---------------------------------------------------------
   1. LIMPEZA TOTAL DOS BLOCOS INTERNOS
   --------------------------------------------------------- */

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  border-width: 0 !important;
  border-color: transparent !important;

  outline: 0 !important;
  outline-offset: 0 !important;

  box-shadow: none !important;

  border-radius: 0 !important;

  text-decoration: none !important;

  filter: none !important;
}


/* Remove pseudo-elementos que possam desenhar molduras */

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::before,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005::after,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span::before,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > span::after,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong::before,
#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 > strong::after {
  content: none !important;
  display: none !important;
}


/* ---------------------------------------------------------
   2. FEITAS
   --------------------------------------------------------- */

#studentTodayView .todayStatCardV1032--done
.todayStatArtV1032 {
  right: 7px !important;
  bottom: 7px !important;

  width: 48px !important;
  height: 52px !important;

  object-fit: contain !important;
}


/* ---------------------------------------------------------
   3. TAREFAS
   --------------------------------------------------------- */

#studentTodayView .todayStatCardV1032--tasks
.todayStatArtV1032 {
  right: 6px !important;
  bottom: 6px !important;

  width: 47px !important;
  height: 53px !important;

  object-fit: contain !important;
}


/* ---------------------------------------------------------
   4. STATUS
   --------------------------------------------------------- */

/*
 * Mais espaço para o texto e foguete deslocado para a
 * extremidade inferior direita.
 */

#studentTodayView .todayStatCardV1032--status
.studentMetricCopyV1005 {
  left: 52px !important;
  top: 15px !important;
  right: 48px !important;
}

#studentTodayView .todayStatCardV1032--status
.studentMetricCopyV1005 > strong {
  margin-top: 6px !important;

  max-width: 66px !important;

  font-size: 11.5px !important;
  line-height: 1.06 !important;

  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

#studentTodayView .todayStatCardV1032--status
.todayStatArtV1032 {
  right: -1px !important;
  bottom: 1px !important;

  width: 47px !important;
  height: 54px !important;

  object-fit: contain !important;
}


/* ---------------------------------------------------------
   5. AJUSTE DE ESPAÇO VISUAL DOS 3 CARDS
   --------------------------------------------------------- */

#studentTodayView .todayStatCardV1032 {
  padding: 0 !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricIconV1005 {
  z-index: 4 !important;
}

#studentTodayView .todayStatCardV1032 .studentMetricCopyV1005 {
  z-index: 4 !important;
}

#studentTodayView .todayStatCardV1032 .todayStatArtV1032 {
  z-index: 2 !important;
}


/* ---------------------------------------------------------
   6. IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayStatCardV1032--done
  .todayStatArtV1032 {
    right: 4px !important;
    bottom: 6px !important;

    width: 44px !important;
    height: 49px !important;
  }

  #studentTodayView .todayStatCardV1032--tasks
  .todayStatArtV1032 {
    right: 4px !important;
    bottom: 5px !important;

    width: 43px !important;
    height: 49px !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .studentMetricCopyV1005 {
    left: 45px !important;
    right: 41px !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    max-width: 57px !important;

    font-size: 10.5px !important;
    line-height: 1.05 !important;
  }

  #studentTodayView .todayStatCardV1032--status
  .todayStatArtV1032 {
    right: -2px !important;
    bottom: 1px !important;

    width: 43px !important;
    height: 50px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_HAS_FIX_V1037

   CAUSA CONFIRMADA:
   Regras V1030 usando :has(> #ID) possuem especificidade
   superior às correções V1033-V1036.

   Este bloco neutraliza DIRETAMENTE os mesmos seletores,
   com a mesma especificidade e aparecendo depois na cascata.
   ========================================================= */


/* ---------------------------------------------------------
   PROGRESSO DO DIA
   --------------------------------------------------------- */

#studentTodayView :has(> #taskSummaryText) {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;

  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 0 !important;

  overflow: visible !important;
}

#studentTodayView :has(> #taskSummaryText)::before,
#studentTodayView :has(> #taskSummaryText)::after {
  content: none !important;
  display: none !important;
}


/* ---------------------------------------------------------
   FEITAS
   --------------------------------------------------------- */

#studentTodayView :has(> #taskSummary) {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;

  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 0 !important;

  overflow: visible !important;
}

#studentTodayView :has(> #taskSummary)::before,
#studentTodayView :has(> #taskSummary)::after {
  content: none !important;
  display: none !important;
}


/* ---------------------------------------------------------
   TAREFAS
   --------------------------------------------------------- */

#studentTodayView :has(> #taskCountChip) {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;

  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 0 !important;

  overflow: visible !important;
}

#studentTodayView :has(> #taskCountChip)::before,
#studentTodayView :has(> #taskCountChip)::after {
  content: none !important;
  display: none !important;
}


/* ---------------------------------------------------------
   STATUS
   --------------------------------------------------------- */

#studentTodayView :has(> #taskHeroText) {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;

  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 0 !important;

  overflow: visible !important;
}

#studentTodayView :has(> #taskHeroText)::before,
#studentTodayView :has(> #taskHeroText)::after {
  content: none !important;
  display: none !important;
}


/* ---------------------------------------------------------
   IDS INTERNOS - GARANTIA EXTRA
   --------------------------------------------------------- */

#studentTodayView #taskSummary,
#studentTodayView #taskCountChip,
#studentTodayView #taskHeroText,
#studentTodayView #taskSummaryText {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 0 !important;

  filter: none !important;
}


/* ---------------------------------------------------------
   POSICAO FINAL DAS 3 FIGURAS
   --------------------------------------------------------- */

/* livros */
#studentTodayView
.todayStatCardV1032--done
.todayStatArtV1032 {
  right: 5px !important;
  bottom: 5px !important;

  width: 46px !important;
  height: 50px !important;
}

/* prancheta */
#studentTodayView
.todayStatCardV1032--tasks
.todayStatArtV1032 {
  right: 5px !important;
  bottom: 5px !important;

  width: 45px !important;
  height: 50px !important;
}

/* foguete */
#studentTodayView
.todayStatCardV1032--status
.todayStatArtV1032 {
  right: -2px !important;
  bottom: 0 !important;

  width: 45px !important;
  height: 51px !important;
}


/* ---------------------------------------------------------
   STATUS - RESERVA REAL PARA O FOGUETE
   --------------------------------------------------------- */

#studentTodayView
.todayStatCardV1032--status
.studentMetricCopyV1005 {
  left: 52px !important;
  right: 45px !important;
}

#studentTodayView
.todayStatCardV1032--status
.studentMetricCopyV1005 > strong {
  max-width: 62px !important;

  font-size: 11px !important;
  line-height: 1.06 !important;
}


/* ---------------------------------------------------------
   IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView
  .todayStatCardV1032--done
  .todayStatArtV1032 {
    width: 42px !important;
    height: 47px !important;
  }

  #studentTodayView
  .todayStatCardV1032--tasks
  .todayStatArtV1032 {
    width: 41px !important;
    height: 47px !important;
  }

  #studentTodayView
  .todayStatCardV1032--status
  .todayStatArtV1032 {
    right: -3px !important;

    width: 41px !important;
    height: 48px !important;
  }

  #studentTodayView
  .todayStatCardV1032--status
  .studentMetricCopyV1005 {
    right: 40px !important;
  }

  #studentTodayView
  .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    max-width: 56px !important;

    font-size: 10.2px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_HERO_V1038
   Compactação do hero conforme referência aprovada.
   Não altera progresso, indicadores ou cards de tarefas.
   ========================================================= */

#studentTodayView .hero-row--compact {
  position: relative !important;

  min-height: 142px !important;

  padding:
    16px
    40%
    14px
    0 !important;

  overflow: hidden !important;
}


/* remove a linha horizontal/resíduo visual no topo direito */

#studentTodayView .hero-row--compact::before,
#studentTodayView .hero-row--compact::after,
#studentTodayView .hero-row--compact > div::before,
#studentTodayView .hero-row--compact > div::after {
  content: none !important;
  display: none !important;
}


/* bloco textual */

#studentTodayView .hero-row--compact > div {
  position: relative !important;
  z-index: 3 !important;

  min-width: 0 !important;
}


/* HOJE */

#studentTodayView .hero-row--compact .eyebrow {
  margin: 0 0 6px !important;

  font-size: 12px !important;
  line-height: 1 !important;

  letter-spacing: .18em !important;
}


/* Tarefas de hoje em uma linha */

#studentTodayView #todayTitle {
  margin: 0 !important;

  max-width: none !important;

  color: #102d5e !important;

  font-size: clamp(2rem, 7.8vw, 2.55rem) !important;
  line-height: .98 !important;

  font-weight: 950 !important;
  letter-spacing: -.055em !important;

  white-space: nowrap !important;
}


/* data */

#studentTodayView #todayLabel {
  margin: 7px 0 0 !important;

  color: #7184a5 !important;

  font-size: 15px !important;
  line-height: 1.12 !important;

  white-space: nowrap !important;
}


/* badge */

#studentTodayView #dayBadge {
  margin-top: 12px !important;

  min-height: 31px !important;

  padding:
    4px
    12px !important;

  font-size: 11px !important;
  line-height: 1 !important;
}


/* figura Foco Hoje */

#studentTodayView .todayHeroArtV1032 {
  position: absolute !important;

  z-index: 2 !important;

  right: -1px !important;
  top: 1px !important;

  width: 39% !important;
  max-width: 240px !important;

  height: 137px !important;

  object-fit: contain !important;
  object-position: center right !important;

  margin: 0 !important;

  pointer-events: none !important;
  user-select: none !important;

  filter:
    drop-shadow(
      0 8px 12px
      rgba(43,76,129,.08)
    ) !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 620px) {

  #studentTodayView .hero-row--compact {
    min-height: 137px !important;

    padding:
      14px
      39%
      13px
      0 !important;
  }

  #studentTodayView #todayTitle {
    font-size: clamp(1.95rem, 7.7vw, 2.42rem) !important;
  }

  #studentTodayView #todayLabel {
    font-size: 14px !important;
  }

  #studentTodayView .todayHeroArtV1032 {
    right: -2px !important;
    top: 0 !important;

    width: 38% !important;
    height: 132px !important;
  }

  #studentTodayView #dayBadge {
    margin-top: 10px !important;
  }
}


/* iPhone estreito */

@media (max-width: 390px) {

  #studentTodayView .hero-row--compact {
    min-height: 132px !important;

    padding-right: 37% !important;
  }

  #studentTodayView #todayTitle {
    font-size: clamp(1.82rem, 7.55vw, 2.26rem) !important;
  }

  #studentTodayView #todayLabel {
    font-size: 13px !important;
  }

  #studentTodayView .todayHeroArtV1032 {
    width: 36% !important;
    height: 126px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_HERO_ASSET_V1039

   O asset hero-foco-hoje.png foi limpo na origem:
   - linha horizontal removida
   - pequeno fragmento isolado à esquerda removido

   Geometria V1038 preservada.
   ========================================================= */



/* =========================================================
   STUDENT_TODAY_VERTICAL_COMPACT_V1040

   Objetivo:
   - preservar integralmente o hero V1039
   - compactar somente a área abaixo do hero
   - aproximar a rotina da referência aprovada
   - reduzir altura do progresso
   - reduzir altura dos três indicadores
   - reduzir vazios verticais
   - manter os três indicadores na mesma linha
   - não alterar lógica, tarefas, FIZ, vídeo ou backend
   ========================================================= */


/* ---------------------------------------------------------
   1. HERO
   ---------------------------------------------------------
   Deliberadamente NÃO alterado.
   A geometria V1038 + asset V1039 permanece soberana.
   --------------------------------------------------------- */


/* ---------------------------------------------------------
   2. PROGRESSO DO DIA
   --------------------------------------------------------- */

#studentTodayView .todayProgressV1032 {
  min-height: 118px !important;

  margin-top: 8px !important;
  margin-bottom: 10px !important;

  padding:
    13px
    17px !important;

  grid-template-columns:
    88px
    minmax(0, 1fr)
    94px !important;

  column-gap: 12px !important;

  border-radius: 20px !important;
}


/* círculo mais compacto */

#studentTodayView .todayProgressCircleV1032 {
  width: 84px !important;
  height: 84px !important;

  min-width: 84px !important;
  min-height: 84px !important;
}


/*
 * Reforça visualmente o arco de progresso.
 * Mantém a variável/valor dinâmico já utilizado pela aplicação.
 */

#studentTodayView .todayProgressCircleV1032::before {
  inset: 0 !important;
}


/* porcentagem */

#studentTodayView .todayProgressCircleV1032 strong {
  font-size: 25px !important;
  line-height: 1 !important;
}


/* "0 de 3" */

#studentTodayView .todayProgressCircleV1032 span {
  margin-top: 5px !important;

  font-size: 11px !important;
  line-height: 1 !important;
}


/* bloco central */

#studentTodayView .todayProgressCopyV1032 {
  min-width: 0 !important;

  align-self: center !important;
}


#studentTodayView .todayProgressCopyV1032 .eyebrow {
  margin: 0 0 7px !important;

  font-size: 11px !important;
  line-height: 1 !important;
}


#studentTodayView .todayProgressCopyV1032 #taskSummaryText {
  margin: 0 !important;

  font-size: 15px !important;
  line-height: 1.12 !important;
}


/* barra */

#studentTodayView .todayProgressCopyV1032 .school-progress,
#studentTodayView .todayProgressV1032 .school-progress {
  height: 9px !important;

  margin-top: 11px !important;

  border-radius: 999px !important;
}


/* motivação */

#studentTodayView .todayMotivationV1032 {
  width: 90px !important;
  max-width: 90px !important;

  max-height: 66px !important;

  object-fit: contain !important;

  align-self: center !important;
}


/* ---------------------------------------------------------
   3. INDICADORES
   --------------------------------------------------------- */

#studentTodayView .todayStatsV1032 {
  grid-template-columns:
    repeat(3, minmax(0, 1fr)) !important;

  gap: 7px !important;

  margin-top: 0 !important;
  margin-bottom: 15px !important;
}


/* card menor */

#studentTodayView .todayStatCardV1032 {
  min-height: 82px !important;
  height: 82px !important;

  border-radius: 18px !important;
}


/* ícone funcional */

#studentTodayView
.todayStatCardV1032
.studentMetricIconV1005 {
  left: 8px !important;
  top: 11px !important;

  width: 32px !important;
  height: 32px !important;

  padding: 7px !important;
}


/* texto */

#studentTodayView
.todayStatCardV1032
.studentMetricCopyV1005 {
  left: 45px !important;
  top: 11px !important;
  right: 42px !important;
}


#studentTodayView
.todayStatCardV1032
.studentMetricCopyV1005 > span {
  font-size: 8px !important;
  line-height: 1 !important;

  letter-spacing: .07em !important;
}


#studentTodayView
.todayStatCardV1032
.studentMetricCopyV1005 > strong {
  margin-top: 5px !important;

  font-size: 17px !important;
  line-height: 1 !important;
}


/* STATUS */

#studentTodayView
.todayStatCardV1032--status
.studentMetricCopyV1005 {
  left: 45px !important;
  top: 11px !important;
  right: 39px !important;
}


#studentTodayView
.todayStatCardV1032--status
.studentMetricCopyV1005 > strong {
  max-width: 60px !important;

  margin-top: 5px !important;

  font-size: 10.5px !important;
  line-height: 1.04 !important;

  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}


/* figuras 3D */

#studentTodayView
.todayStatCardV1032--done
.todayStatArtV1032 {
  right: 4px !important;
  bottom: 3px !important;

  width: 43px !important;
  height: 47px !important;
}


#studentTodayView
.todayStatCardV1032--tasks
.todayStatArtV1032 {
  right: 4px !important;
  bottom: 3px !important;

  width: 42px !important;
  height: 47px !important;
}


#studentTodayView
.todayStatCardV1032--status
.todayStatArtV1032 {
  right: -2px !important;
  bottom: 0 !important;

  width: 42px !important;
  height: 48px !important;
}


/* ---------------------------------------------------------
   4. CABEÇALHO "MINHA ROTINA"
   --------------------------------------------------------- */

#studentTodayView .section-heading {
  margin-top: 0 !important;
  margin-bottom: 9px !important;
}


#studentTodayView .section-heading .eyebrow {
  margin-bottom: 5px !important;
}


#studentTodayView .section-heading h2 {
  margin-top: 0 !important;
  margin-bottom: 0 !important;

  line-height: 1.04 !important;
}


/* ---------------------------------------------------------
   5. LISTA DE TAREFAS
   ---------------------------------------------------------
   Somente remove espaço externo excessivo.
   Não altera estrutura interna dos cards.
   --------------------------------------------------------- */

#studentTodayView #studentTaskList,
#studentTodayView .studentTaskList,
#studentTodayView .todayTaskListV1025 {
  margin-top: 6px !important;
}


/* ---------------------------------------------------------
   6. MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayProgressV1032 {
    min-height: 108px !important;

    margin-top: 7px !important;
    margin-bottom: 8px !important;

    padding:
      11px
      13px !important;

    grid-template-columns:
      78px
      minmax(0, 1fr)
      82px !important;

    column-gap: 9px !important;
  }


  #studentTodayView .todayProgressCircleV1032 {
    width: 76px !important;
    height: 76px !important;

    min-width: 76px !important;
    min-height: 76px !important;
  }


  #studentTodayView .todayProgressCircleV1032 strong {
    font-size: 23px !important;
  }


  #studentTodayView .todayProgressCircleV1032 span {
    font-size: 10px !important;
  }


  #studentTodayView
  .todayProgressCopyV1032
  .eyebrow {
    margin-bottom: 6px !important;

    font-size: 10px !important;
  }


  #studentTodayView
  .todayProgressCopyV1032
  #taskSummaryText {
    font-size: 13.5px !important;
    line-height: 1.1 !important;
  }


  #studentTodayView .todayMotivationV1032 {
    width: 80px !important;
    max-width: 80px !important;

    max-height: 59px !important;
  }


  #studentTodayView .todayStatsV1032 {
    gap: 6px !important;

    margin-bottom: 13px !important;
  }


  #studentTodayView .todayStatCardV1032 {
    min-height: 78px !important;
    height: 78px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricIconV1005 {
    left: 7px !important;
    top: 10px !important;

    width: 30px !important;
    height: 30px !important;

    padding: 6px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricCopyV1005 {
    left: 42px !important;
    top: 10px !important;
    right: 38px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricCopyV1005 > span {
    font-size: 7.5px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricCopyV1005 > strong {
    font-size: 16px !important;
  }


  #studentTodayView
  .todayStatCardV1032--status
  .studentMetricCopyV1005 {
    left: 42px !important;
    right: 35px !important;
  }


  #studentTodayView
  .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    max-width: 55px !important;

    font-size: 10px !important;
  }


  #studentTodayView
  .todayStatCardV1032--done
  .todayStatArtV1032 {
    width: 40px !important;
    height: 44px !important;
  }


  #studentTodayView
  .todayStatCardV1032--tasks
  .todayStatArtV1032 {
    width: 39px !important;
    height: 44px !important;
  }


  #studentTodayView
  .todayStatCardV1032--status
  .todayStatArtV1032 {
    width: 39px !important;
    height: 45px !important;
  }
}


/* ---------------------------------------------------------
   7. IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayProgressV1032 {
    grid-template-columns:
      73px
      minmax(0, 1fr)
      72px !important;

    column-gap: 7px !important;

    padding:
      10px
      10px !important;
  }


  #studentTodayView .todayProgressCircleV1032 {
    width: 71px !important;
    height: 71px !important;

    min-width: 71px !important;
    min-height: 71px !important;
  }


  #studentTodayView
  .todayProgressCopyV1032
  .eyebrow {
    font-size: 9px !important;
  }


  #studentTodayView
  .todayProgressCopyV1032
  #taskSummaryText {
    font-size: 12.5px !important;
  }


  #studentTodayView .todayMotivationV1032 {
    width: 70px !important;
    max-width: 70px !important;
  }


  #studentTodayView .todayStatsV1032 {
    gap: 5px !important;
  }


  #studentTodayView .todayStatCardV1032 {
    min-height: 76px !important;
    height: 76px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricIconV1005 {
    left: 6px !important;

    width: 28px !important;
    height: 28px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricCopyV1005 {
    left: 38px !important;
    right: 34px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricCopyV1005 > span {
    font-size: 7px !important;
  }


  #studentTodayView
  .todayStatCardV1032
  .studentMetricCopyV1005 > strong {
    font-size: 15px !important;
  }


  #studentTodayView
  .todayStatCardV1032--status
  .studentMetricCopyV1005 {
    left: 38px !important;
    right: 31px !important;
  }


  #studentTodayView
  .todayStatCardV1032--status
  .studentMetricCopyV1005 > strong {
    max-width: 50px !important;

    font-size: 9.2px !important;
  }


  #studentTodayView
  .todayStatCardV1032--done
  .todayStatArtV1032,
  #studentTodayView
  .todayStatCardV1032--tasks
  .todayStatArtV1032 {
    width: 36px !important;
    height: 41px !important;
  }


  #studentTodayView
  .todayStatCardV1032--status
  .todayStatArtV1032 {
    width: 36px !important;
    height: 42px !important;
  }
}


/* =========================================================
   FIM STUDENT_TODAY_VERTICAL_COMPACT_V1040
   ========================================================= */


/* =========================================================
   STUDENT_TODAY_ROUTINE_V1041
   Compacta exclusivamente a rotina abaixo dos indicadores.
   ========================================================= */

#studentTodayView .section-heading {
  display:flex !important;
  align-items:flex-end !important;
  justify-content:space-between !important;
  gap:12px !important;
  margin:14px 0 9px !important;
}

#studentTodayView .section-heading .eyebrow {
  margin-bottom:5px !important;
}

#studentTodayView .section-heading h2 {
  margin:0 !important;
  line-height:1.04 !important;
}

/* cards */
#studentTodayView .todayTaskCardV1025 {
  position:relative !important;
  min-height:124px !important;
  margin-bottom:9px !important;
  padding-top:11px !important;
  padding-bottom:11px !important;
  border-radius:21px !important;
  overflow:hidden !important;
}

/* figura/número permanecem na coluna esquerda */
#studentTodayView .todayTaskCardV1025 .todayTaskArtV1025,
#studentTodayView .todayTaskCardV1025 .todayTaskImageV1025 {
  max-width:84px !important;
  max-height:84px !important;
  object-fit:contain !important;
}

/* texto mais compacto */
#studentTodayView .todayTaskCardV1025 .todayTaskTitleV1025,
#studentTodayView .todayTaskCardV1025 .todayTaskDescriptionV1025 {
  margin-top:5px !important;
  margin-bottom:0 !important;
  font-size:15px !important;
  line-height:1.13 !important;
  letter-spacing:-.018em !important;
}

#studentTodayView .todayTaskCardV1025 .todayTaskDeadlineV1025,
#studentTodayView .todayTaskCardV1025 .todayTaskMetaV1025 {
  margin-top:7px !important;
  font-size:12px !important;
  line-height:1.15 !important;
}

/* botão não deve empurrar o conteúdo verticalmente */
#studentTodayView .todayDoneBtnV1025 {
  width:88px !important;
  min-width:88px !important;
  max-width:88px !important;
  min-height:52px !important;
}

/* sobrescreve a geometria antiga do card no mobile */
@media (max-width:620px) {
  #studentTodayView .todayTaskCardV1025 {
    min-height:122px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }

  /*
   * O layout existente posiciona a mídia antes do conteúdo.
   * Reduzimos a reserva lateral para aproximar o texto da figura.
   */
  #studentTodayView .todayTaskCardV1025 {
    padding-left:15px !important;
  }

  #studentTodayView .todayTaskCardV1025 .todayTaskTitleV1025,
  #studentTodayView .todayTaskCardV1025 .todayTaskDescriptionV1025 {
    font-size:15px !important;
    line-height:1.12 !important;
  }
}

@media (max-width:390px) {
  #studentTodayView .todayTaskCardV1025 {
    min-height:116px !important;
    margin-bottom:8px !important;
  }

  #studentTodayView .todayTaskCardV1025 .todayTaskArtV1025,
  #studentTodayView .todayTaskCardV1025 .todayTaskImageV1025 {
    max-width:72px !important;
    max-height:72px !important;
  }

  #studentTodayView .todayTaskCardV1025 .todayTaskTitleV1025,
  #studentTodayView .todayTaskCardV1025 .todayTaskDescriptionV1025 {
    font-size:14px !important;
  }

  #studentTodayView .todayDoneBtnV1025 {
    width:76px !important;
    min-width:76px !important;
    max-width:76px !important;
  }
}

/* =========================================================
   STUDENT_TODAY_QUICK_CARDS_V1042
   Mochila + Agenda no padrão visual aprovado.
   ========================================================= */

#studentTodayView .quick-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  margin-top: 14px !important;
}

#studentTodayView .quick-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 104px minmax(0, 1fr) 52px !important;
  align-items: center !important;
  gap: 16px !important;

  width: 100% !important;
  min-height: 150px !important;
  padding: 16px 18px !important;

  text-align: left !important;
  border-radius: 22px !important;
  overflow: hidden !important;

  box-shadow:
    0 10px 28px rgba(40,72,126,.06),
    inset 0 1px 0 rgba(255,255,255,.82) !important;
}

#studentTodayView .quick-card--bag {
  border: 1px solid rgba(75,143,255,.20) !important;
  background:
    radial-gradient(circle at 12% 50%, rgba(91,151,255,.11), transparent 105px),
    linear-gradient(135deg, #fff 0%, #f3f8ff 100%) !important;
}

#studentTodayView .quick-card--agenda {
  border: 1px solid rgba(133,91,255,.18) !important;
  background:
    radial-gradient(circle at 12% 50%, rgba(134,92,255,.10), transparent 105px),
    linear-gradient(135deg, #fff 0%, #faf6ff 100%) !important;
}

#studentTodayView .quick-card::before,
#studentTodayView .quick-card::after {
  content: none !important;
  display: none !important;
}

#studentTodayView .studentQuickArtV1042 {
  display: grid !important;
  place-items: center !important;
  width: 104px !important;
  height: 104px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#studentTodayView .studentQuickArtV1042 img {
  display: block !important;
  width: 98px !important;
  height: 98px !important;
  object-fit: contain !important;
  user-select: none !important;
  pointer-events: none !important;
  -webkit-user-drag: none !important;
  filter: drop-shadow(0 8px 10px rgba(38,67,120,.10)) !important;
}

#studentTodayView .quick-card > div {
  min-width: 0 !important;
}

#studentTodayView .quick-card .eyebrow {
  margin: 0 0 6px !important;
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: .18em !important;
}

#studentTodayView .quick-card--bag .eyebrow {
  color: #2877e7 !important;
}

#studentTodayView .quick-card--agenda .eyebrow {
  color: #6c42e6 !important;
}

#studentTodayView .quick-card strong {
  display: block !important;
  margin: 0 !important;
  color: #102d5e !important;
  font-size: 19px !important;
  line-height: 1.08 !important;
  font-weight: 900 !important;
}

#studentTodayView .quick-card small {
  display: block !important;
  margin-top: 7px !important;
  color: #7383a1 !important;
  font-size: 14px !important;
  line-height: 1.22 !important;
}

#studentTodayView .quick-card > b {
  display: grid !important;
  place-items: center !important;
  justify-self: end !important;

  width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  border-radius: 50% !important;

  font-size: 0 !important;
  line-height: 1 !important;
  transform: none !important;
}

#studentTodayView .quick-card > b::before {
  content: "›" !important;
  display: block !important;
  font-size: 34px !important;
  line-height: .8 !important;
  font-weight: 700 !important;
}

#studentTodayView .quick-card--bag > b {
  color: #0f69ed !important;
  background: #e9f2ff !important;
}

#studentTodayView .quick-card--agenda > b {
  color: #7042e8 !important;
  background: #f0eaff !important;
}

@media (max-width: 620px) {

  #studentTodayView .quick-grid {
    gap: 10px !important;
    margin-top: 12px !important;
  }

  #studentTodayView .quick-card {
    grid-template-columns: 88px minmax(0,1fr) 44px !important;
    gap: 13px !important;
    min-height: 128px !important;
    padding: 13px 14px !important;
    border-radius: 20px !important;
  }

  #studentTodayView .studentQuickArtV1042 {
    width: 88px !important;
    height: 88px !important;
  }

  #studentTodayView .studentQuickArtV1042 img {
    width: 84px !important;
    height: 84px !important;
  }

  #studentTodayView .quick-card strong {
    font-size: 17px !important;
  }

  #studentTodayView .quick-card small {
    margin-top: 5px !important;
    font-size: 13px !important;
    line-height: 1.18 !important;
  }

  #studentTodayView .quick-card > b {
    width: 42px !important;
    height: 42px !important;
  }

  #studentTodayView .quick-card > b::before {
    font-size: 31px !important;
  }
}

@media (max-width: 390px) {

  #studentTodayView .quick-card {
    grid-template-columns: 76px minmax(0,1fr) 38px !important;
    gap: 10px !important;
    min-height: 116px !important;
    padding: 11px !important;
  }

  #studentTodayView .studentQuickArtV1042 {
    width: 76px !important;
    height: 76px !important;
  }

  #studentTodayView .studentQuickArtV1042 img {
    width: 72px !important;
    height: 72px !important;
  }

  #studentTodayView .quick-card .eyebrow {
    font-size: 9px !important;
  }

  #studentTodayView .quick-card strong {
    font-size: 15px !important;
  }

  #studentTodayView .quick-card small {
    font-size: 12px !important;
  }

  #studentTodayView .quick-card > b {
    width: 36px !important;
    height: 36px !important;
  }

  #studentTodayView .quick-card > b::before {
    font-size: 28px !important;
  }
}

/* =========================================================
   STUDENT_TODAY_QUICK_ASSETS_V1043
   Apenas substituição dos dois assets da V1042.
   Layout, textos e navegação permanecem inalterados.
   ========================================================= */


/* =========================================================
   STUDENT_TODAY_QUICK_ASSETS_V1044
   Assets vetoriais limpos, sem qualquer texto/resíduo.
   ========================================================= */

#studentTodayView .studentQuickArtV1042 img {
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

/* ligeiro aumento para preencher melhor a coluna visual */
#studentTodayView .quick-card--bag .studentQuickArtV1042 img {
  width: 94px !important;
  height: 94px !important;
}

#studentTodayView .quick-card--agenda .studentQuickArtV1042 img {
  width: 90px !important;
  height: 90px !important;
}

@media (max-width: 620px) {
  #studentTodayView .quick-card--bag .studentQuickArtV1042 img {
    width: 82px !important;
    height: 82px !important;
  }

  #studentTodayView .quick-card--agenda .studentQuickArtV1042 img {
    width: 78px !important;
    height: 78px !important;
  }
}

@media (max-width: 390px) {
  #studentTodayView .quick-card--bag .studentQuickArtV1042 img {
    width: 70px !important;
    height: 70px !important;
  }

  #studentTodayView .quick-card--agenda .studentQuickArtV1042 img {
    width: 67px !important;
    height: 67px !important;
  }
}

/* =========================================================
   STUDENT_TODAY_QUICK_LITERAL_FIX_V1045
   Correção de HTML: removido texto literal "\n" dos dois
   containers de arte. Nenhuma geometria foi alterada.
   ========================================================= */


/* =========================================================
   STUDENT_TODAY_REMOVE_METRICS_V1046

   Remove visualmente:
   - FEITAS
   - TAREFAS
   - STATUS

   Os elementos permanecem no DOM para preservar os IDs
   utilizados pelo JavaScript.
   ========================================================= */


/* ---------------------------------------------------------
   1. ESCONDER O BLOCO COMPLETO DOS 3 INDICADORES
   --------------------------------------------------------- */

#studentTodayView .studentMetricsV1005,
#studentTodayView .todayStatsV1032 {
  display: none !important;
}


/* ---------------------------------------------------------
   2. APROXIMAR "MINHA ROTINA" DO PROGRESSO
   --------------------------------------------------------- */

#studentTodayView .todayProgressV1032 {
  margin-bottom: 14px !important;
}

#studentTodayView .section-heading {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}


/* ---------------------------------------------------------
   3. EVITAR RESÍDUOS DE ESPAÇO
   --------------------------------------------------------- */

#studentTodayView .studentMetricsV1005 + .section-heading,
#studentTodayView .todayStatsV1032 + .section-heading {
  margin-top: 0 !important;
}


/* ---------------------------------------------------------
   4. MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayProgressV1032 {
    margin-bottom: 12px !important;
  }

  #studentTodayView .section-heading {
    margin-top: 0 !important;
    margin-bottom: 9px !important;
  }
}


/* ---------------------------------------------------------
   5. IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayProgressV1032 {
    margin-bottom: 10px !important;
  }

  #studentTodayView .section-heading {
    margin-bottom: 8px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_EQUAL_ACTION_CARDS_V1047

   Objetivo:
   - Conferência Final com a MESMA altura de Mochila e Agenda
   - mesmo espaçamento vertical entre os 3 cards
   - compactar internamente Conferência Final
   - aproximar Conferência Final do último card de tarefa
   ========================================================= */


/* ---------------------------------------------------------
   1. GAP GERAL ENTRE OS 3 CARDS
   --------------------------------------------------------- */

#studentTodayView #studentVideoPanel {
  margin-top: 10px !important;
  margin-bottom: 10px !important;
}

#studentTodayView #studentVideoPanel + .quick-grid {
  margin-top: 0 !important;
}

#studentTodayView .quick-grid {
  gap: 10px !important;
}


/* ---------------------------------------------------------
   2. MESMA ALTURA
   Mochila e Agenda já estão em 128px no mobile.
   Conferência Final passa a seguir exatamente essa referência.
   --------------------------------------------------------- */

#studentTodayView #studentVideoPanel,
#studentTodayView .quick-card {
  min-height: 128px !important;
  height: 128px !important;
}


/* ---------------------------------------------------------
   3. CONFERÊNCIA FINAL - GRID HORIZONTAL
   --------------------------------------------------------- */

#studentTodayView #studentVideoPanel {
  position: relative !important;

  display: grid !important;
  grid-template-columns: 108px minmax(0, 1fr) 50px !important;
  align-items: center !important;
  column-gap: 14px !important;

  padding: 12px 14px !important;

  overflow: hidden !important;
  border-radius: 20px !important;
}


/* Troféu */
#studentTodayView .todayTrophyV1032 {
  position: static !important;
  transform: none !important;

  grid-column: 1 !important;
  grid-row: 1 !important;

  width: 92px !important;
  height: 92px !important;

  margin: 0 auto !important;

  align-self: center !important;
  justify-self: center !important;

  object-fit: contain !important;
}


/* Cabeçalho/cópia */
#studentTodayView #studentVideoPanel .video-validation-card__head {
  grid-column: 2 !important;
  grid-row: 1 !important;

  display: block !important;

  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* bloco interno de texto */
#studentTodayView #studentVideoPanel .video-validation-card__head > div {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* Eyebrow */
#studentTodayView #studentVideoPanel .eyebrow {
  margin: 0 0 5px !important;

  font-size: 10px !important;
  line-height: 1 !important;

  letter-spacing: .16em !important;
}


/* Título */
#studentTodayView #studentVideoPanel h2 {
  margin: 0 !important;

  color: #102d5e !important;

  font-size: 19px !important;
  line-height: 1.05 !important;

  font-weight: 900 !important;
}


/* descrição */
#studentTodayView #studentVideoText {
  margin: 6px 0 0 !important;

  color: #7383a1 !important;

  font-size: 13px !important;
  line-height: 1.16 !important;

  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;

  overflow: hidden !important;
}


/* Badge */
#studentTodayView #studentVideoBadge {
  margin-top: 8px !important;

  min-height: 28px !important;

  padding: 3px 10px !important;

  font-size: 10px !important;
  line-height: 1 !important;
}


/* ---------------------------------------------------------
   4. SETA DA CONFERÊNCIA FINAL
   --------------------------------------------------------- */

#studentTodayView #studentVideoPanel::after {
  content: "›" !important;

  position: absolute !important;

  right: 14px !important;
  top: 50% !important;

  transform: translateY(-50%) !important;

  display: grid !important;
  place-items: center !important;

  width: 44px !important;
  height: 44px !important;

  border-radius: 50% !important;

  color: #17a768 !important;
  background: #dff8ea !important;

  font-size: 34px !important;
  line-height: .8 !important;
  font-weight: 700 !important;

  pointer-events: none !important;
}


/* reserva real para seta */
#studentTodayView #studentVideoPanel .video-validation-card__head {
  padding-right: 48px !important;
}


/* ---------------------------------------------------------
   5. CONTEÚDOS EXPANDIDOS DA CONFERÊNCIA
   ---------------------------------------------------------
   Quando o vídeo for liberado/enviado/aprovado, o card precisa
   voltar a altura automática para não cortar controles.
   --------------------------------------------------------- */

#studentTodayView #studentVideoPanel:has(
  #studentVideoReady:not(.hidden)
),
#studentTodayView #studentVideoPanel:has(
  #studentVideoSent:not(.hidden)
) {
  height: auto !important;
  min-height: 128px !important;

  grid-template-columns: 108px minmax(0,1fr) 50px !important;
}


/* controles extras ocupam largura total abaixo do cabeçalho */
#studentTodayView #studentVideoReady:not(.hidden),
#studentTodayView #studentVideoSent:not(.hidden) {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;

  margin-top: 12px !important;
}


/* ---------------------------------------------------------
   6. MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView #studentVideoPanel,
  #studentTodayView .quick-card {
    min-height: 128px !important;
    height: 128px !important;
  }

  #studentTodayView #studentVideoPanel {
    grid-template-columns: 96px minmax(0,1fr) 46px !important;
    column-gap: 11px !important;

    padding: 11px 12px !important;
  }

  #studentTodayView .todayTrophyV1032 {
    width: 84px !important;
    height: 84px !important;
  }

  #studentTodayView #studentVideoPanel h2 {
    font-size: 17px !important;
  }

  #studentTodayView #studentVideoText {
    font-size: 12.5px !important;
  }

  #studentTodayView #studentVideoPanel::after {
    right: 11px !important;

    width: 42px !important;
    height: 42px !important;
  }
}


/* ---------------------------------------------------------
   7. IPHONE ESTREITO
   Mochila/Agenda passam a 116px; Conferência acompanha.
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView #studentVideoPanel,
  #studentTodayView .quick-card {
    min-height: 116px !important;
    height: 116px !important;
  }

  #studentTodayView #studentVideoPanel {
    grid-template-columns: 82px minmax(0,1fr) 40px !important;
    column-gap: 9px !important;

    padding: 9px 10px !important;
  }

  #studentTodayView .todayTrophyV1032 {
    width: 72px !important;
    height: 72px !important;
  }

  #studentTodayView #studentVideoPanel .eyebrow {
    font-size: 9px !important;
  }

  #studentTodayView #studentVideoPanel h2 {
    font-size: 15px !important;
  }

  #studentTodayView #studentVideoText {
    margin-top: 5px !important;

    font-size: 11.5px !important;
    line-height: 1.12 !important;
  }

  #studentTodayView #studentVideoBadge {
    margin-top: 6px !important;

    min-height: 25px !important;

    padding: 2px 8px !important;

    font-size: 9px !important;
  }

  #studentTodayView #studentVideoPanel::after {
    right: 9px !important;

    width: 36px !important;
    height: 36px !important;

    font-size: 28px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_CONFIRMED_V1048

   Tela REAL do aluno:
   - "Conferida" menor que "Fiz"
   - centralização vertical preservada
   - coluna direita protegida
   - textos longos não entram na área do botão
   - estados Fiz/Refiz permanecem inalterados
   ========================================================= */


/* ---------------------------------------------------------
   1. BOTÃO FINAL "CONFERIDA"
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025:disabled,
#studentTodayView .doneBtn:disabled {
  width: 82px !important;
  min-width: 82px !important;
  max-width: 82px !important;

  min-height: 48px !important;
  height: 48px !important;

  padding: 0 9px !important;

  right: 10px !important;
  top: 50% !important;

  transform: translateY(-50%) !important;

  gap: 5px !important;

  font-size: 12px !important;
  line-height: 1 !important;

  white-space: nowrap !important;

  border-radius: 16px !important;
}


/* círculo/check menor no estado final */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle,
#studentTodayView .doneBtn:disabled .checkCircle {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;

  font-size: 12px !important;
}


/* ---------------------------------------------------------
   2. RESERVA REAL PARA O BOTÃO
   Apenas nos cards cujo botão está disabled = Conferida.
   --------------------------------------------------------- */

#studentTodayView .taskCard:has(.todayDoneBtnV1025:disabled) .taskBody,
#studentTodayView .taskCard:has(.doneBtn:disabled) .taskBody {
  padding-right: 92px !important;
  box-sizing: border-box !important;
}


/* descrição nunca invade a coluna direita */
#studentTodayView .taskCard:has(.todayDoneBtnV1025:disabled) h3,
#studentTodayView .taskCard:has(.doneBtn:disabled) h3 {
  max-width: 100% !important;
  padding-right: 0 !important;

  overflow-wrap: break-word !important;
}


/* prazo também permanece fora da área do botão */
#studentTodayView .taskCard:has(.todayDoneBtnV1025:disabled) .taskMeta,
#studentTodayView .taskCard:has(.doneBtn:disabled) .taskMeta {
  max-width: 100% !important;
}


/* ---------------------------------------------------------
   3. MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayDoneBtnV1025:disabled,
  #studentTodayView .doneBtn:disabled {
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;

    height: 46px !important;
    min-height: 46px !important;

    right: 9px !important;

    padding: 0 7px !important;

    font-size: 11px !important;

    border-radius: 15px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle,
  #studentTodayView .doneBtn:disabled .checkCircle {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;

    font-size: 11px !important;
  }

  #studentTodayView .taskCard:has(.todayDoneBtnV1025:disabled) .taskBody,
  #studentTodayView .taskCard:has(.doneBtn:disabled) .taskBody {
    padding-right: 84px !important;
  }
}


/* ---------------------------------------------------------
   4. IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayDoneBtnV1025:disabled,
  #studentTodayView .doneBtn:disabled {
    width: 70px !important;
    min-width: 70px !important;
    max-width: 70px !important;

    height: 44px !important;
    min-height: 44px !important;

    right: 8px !important;

    padding: 0 6px !important;

    font-size: 10.5px !important;
  }

  #studentTodayView .taskCard:has(.todayDoneBtnV1025:disabled) .taskBody,
  #studentTodayView .taskCard:has(.doneBtn:disabled) .taskBody {
    padding-right: 77px !important;
  }
}



/* =========================================================
   STUDENT_TODAY_TASK_ACTION_V1049

   Controle FIZ / CONFERIDA:
   - canto superior direito
   - antes da área principal da atividade
   - não ocupa mais uma coluna vertical
   - descrição recupera a largura do card
   ========================================================= */

#studentScreen #studentTodayView .taskItem,
#studentScreen #studentTodayView .task-card,
#studentScreen #studentTodayView .studentTaskCard,
#studentScreen #studentTodayView [data-task-id] {
  position: relative;
}


/*
 * Os cards da tela Hoje tiveram diferentes estruturas ao longo
 * das versões. Os seletores abaixo cobrem os controles reais
 * existentes sem alterar IDs, data-attributes ou eventos.
 */

#studentScreen #studentTodayView .taskCheck,
#studentScreen #studentTodayView .taskAction,
#studentScreen #studentTodayView .taskDone,
#studentScreen #studentTodayView .taskDoneBtn,
#studentScreen #studentTodayView .studentTaskAction,
#studentScreen #studentTodayView button[data-task-check],
#studentScreen #studentTodayView button[data-task-id] {
  align-self: start;
}


/*
 * V1048 utiliza o controle de tarefa como último elemento
 * direto do card. Posicionamos esse elemento no topo direito.
 *
 * :has(button) evita capturar elementos puramente decorativos.
 */

#studentScreen #studentTodayView
:is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
> :last-child:has(button),

#studentScreen #studentTodayView
:is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
> button:last-child {
  position: absolute !important;

  top: 20px !important;
  right: 14px !important;

  width: auto !important;
  min-width: 112px !important;
  max-width: 132px !important;

  margin: 0 !important;
  z-index: 4;
}


/*
 * Caso o próprio botão seja o controle que já recebe
 * posicionamento/layout pelas versões anteriores.
 */

#studentScreen #studentTodayView
:is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
button:is(
  .taskCheck,
  .taskAction,
  .taskDone,
  .taskDoneBtn,
  .studentTaskAction
) {
  position: absolute !important;

  top: 20px !important;
  right: 14px !important;

  width: auto !important;
  min-width: 112px !important;
  max-width: 132px !important;

  margin: 0 !important;
  z-index: 4;
}


/*
 * O texto da atividade volta a aproveitar a largura.
 *
 * A reserva de espaço existe SOMENTE na parte superior,
 * onde ficam disciplina/status e o controle.
 *
 * A descrição abaixo deles pode ocupar a largura disponível.
 */

#studentScreen #studentTodayView
:is(.taskItem, .task-card, .studentTaskCard, [data-task-id]) {
  grid-template-columns: minmax(0, 1fr) !important;
}


/*
 * Elementos textuais não ficam presos à antiga coluna
 * reservada para o botão lateral.
 */

#studentScreen #studentTodayView
:is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
:is(
  .taskContent,
  .taskBody,
  .taskText,
  .studentTaskContent
) {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
}


/*
 * Descrição da atividade:
 * largura integral.
 */

#studentScreen #studentTodayView
:is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
:is(
  .taskDescription,
  .task-description,
  .taskText,
  .taskBody
) {
  max-width: none !important;
}


/* ---------- MOBILE ---------- */

@media (max-width: 620px) {

  #studentScreen #studentTodayView
  :is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
  > :last-child:has(button),

  #studentScreen #studentTodayView
  :is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
  > button:last-child,

  #studentScreen #studentTodayView
  :is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
  button:is(
    .taskCheck,
    .taskAction,
    .taskDone,
    .taskDoneBtn,
    .studentTaskAction
  ) {
    top: 17px !important;
    right: 12px !important;

    min-width: 102px !important;
    max-width: 118px !important;
  }
}


/*
 * iPhone estreito.
 * Mantemos o controle compacto para não invadir
 * disciplina/status.
 */

@media (max-width: 390px) {

  #studentScreen #studentTodayView
  :is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
  > :last-child:has(button),

  #studentScreen #studentTodayView
  :is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
  > button:last-child,

  #studentScreen #studentTodayView
  :is(.taskItem, .task-card, .studentTaskCard, [data-task-id])
  button:is(
    .taskCheck,
    .taskAction,
    .taskDone,
    .taskDoneBtn,
    .studentTaskAction
  ) {
    top: 15px !important;
    right: 10px !important;

    min-width: 96px !important;
    max-width: 108px !important;
  }
}


/* =========================================================
   FIM STUDENT_TODAY_TASK_ACTION_V1049
   ========================================================= */


/* =========================================================
   STUDENT_TODAY_REAL_ACTION_V1050

   Correção baseada nos seletores REAIS:
   - card:   .todayTaskCardV1025
   - botão:  .todayDoneBtnV1025

   Objetivo:
   - FIZ / CONFERIDA no topo direito
   - antes da descrição da atividade
   - descrição usa toda a largura abaixo do cabeçalho
   ========================================================= */


/* ---------------------------------------------------------
   1. CARD REAL COMO REFERÊNCIA
   --------------------------------------------------------- */

#studentTodayView .todayTaskCardV1025 {
  position: relative !important;
}


/* ---------------------------------------------------------
   2. BOTÃO REAL NO TOPO DIREITO
   Neutraliza diretamente V1029 e V1048.
   --------------------------------------------------------- */

#studentTodayView .todayTaskCardV1025 > .todayDoneBtnV1025,
#studentTodayView .todayDoneBtnV1025 {
  grid-area: unset !important;
  grid-column: unset !important;
  grid-row: unset !important;

  position: absolute !important;

  top: 14px !important;
  right: 12px !important;
  bottom: auto !important;
  left: auto !important;

  transform: none !important;

  margin: 0 !important;

  z-index: 20 !important;
}


/* ---------------------------------------------------------
   3. PENDENTE / FIZ / REFIZ
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025:not(:disabled) {
  width: 92px !important;
  min-width: 92px !important;
  max-width: 92px !important;

  min-height: 48px !important;
  height: 48px !important;

  padding: 0 10px !important;

  border-radius: 16px !important;
}


/* ---------------------------------------------------------
   4. CONFERIDA
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025:disabled {
  width: 88px !important;
  min-width: 88px !important;
  max-width: 88px !important;

  min-height: 44px !important;
  height: 44px !important;

  padding: 0 8px !important;

  gap: 5px !important;

  font-size: 11px !important;
  line-height: 1 !important;

  white-space: nowrap !important;

  border-radius: 15px !important;
}


/* check menor e limpo */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;

  font-size: 11px !important;
}


/* ---------------------------------------------------------
   5. REMOVER A ANTIGA RESERVA LATERAL DA V1048
   O botão agora está ACIMA da atividade.
   --------------------------------------------------------- */

#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:disabled)
.taskBody,

#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:not(:disabled))
.taskBody {
  padding-right: 0 !important;

  width: 100% !important;
  max-width: none !important;

  box-sizing: border-box !important;
}


/* ---------------------------------------------------------
   6. DESCRIÇÃO - LARGURA TOTAL ABAIXO DO CABEÇALHO
   --------------------------------------------------------- */

#studentTodayView .todayTaskCardV1025 h3,
#studentTodayView .todayTaskCardV1025 .todayTaskTitleV1025,
#studentTodayView .todayTaskCardV1025 .todayTaskDescriptionV1025 {
  width: 100% !important;
  max-width: none !important;

  padding-right: 0 !important;

  box-sizing: border-box !important;
}


/*
 * Mantém uma faixa superior livre suficiente para:
 * número + figura + disciplina/status + botão.
 *
 * A descrição começa depois dessa faixa e não disputa
 * espaço horizontal com o botão.
 */

#studentTodayView .todayTaskCardV1025 h3 {
  margin-top: 12px !important;
}


/* ---------------------------------------------------------
   7. PRAZO
   --------------------------------------------------------- */

#studentTodayView .todayTaskCardV1025 .todayTaskMetaV1025,
#studentTodayView .todayTaskCardV1025 .taskMeta {
  width: 100% !important;
  max-width: none !important;

  padding-right: 0 !important;
}


/* ---------------------------------------------------------
   8. MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayTaskCardV1025 > .todayDoneBtnV1025,
  #studentTodayView .todayDoneBtnV1025 {
    top: 12px !important;
    right: 10px !important;

    transform: none !important;
  }

  #studentTodayView .todayDoneBtnV1025:not(:disabled) {
    width: 84px !important;
    min-width: 84px !important;
    max-width: 84px !important;

    height: 44px !important;
    min-height: 44px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled {
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;

    height: 42px !important;
    min-height: 42px !important;

    font-size: 10.5px !important;
  }
}


/* ---------------------------------------------------------
   9. IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayTaskCardV1025 > .todayDoneBtnV1025,
  #studentTodayView .todayDoneBtnV1025 {
    top: 10px !important;
    right: 8px !important;
  }

  #studentTodayView .todayDoneBtnV1025:not(:disabled) {
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;

    height: 42px !important;
    min-height: 42px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled {
    width: 74px !important;
    min-width: 74px !important;
    max-width: 74px !important;

    height: 40px !important;
    min-height: 40px !important;

    font-size: 10px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 17px !important;
    height: 17px !important;
    min-width: 17px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_FINAL_CHECK_V1051

   Estado final:
   - chip "Conferida" continua no cabeçalho
   - controle da direita vira SOMENTE check verde
   - check alinhado verticalmente à linha disciplina/status
   - descrição preserva largura integral
   ========================================================= */


/* ---------------------------------------------------------
   1. BOTÃO FINAL VIRA CÍRCULO
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025:disabled {
  top: 13px !important;
  right: 13px !important;

  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;

  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;

  padding: 0 !important;
  margin: 0 !important;

  display: grid !important;
  place-items: center !important;

  gap: 0 !important;

  border-radius: 50% !important;

  /* esconde apenas o texto "Conferida" do botão */
  font-size: 0 !important;
  line-height: 0 !important;

  transform: none !important;
}


/* ---------------------------------------------------------
   2. CHECK INTERNO
   --------------------------------------------------------- */

#studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
  display: grid !important;
  place-items: center !important;

  width: 26px !important;
  min-width: 26px !important;
  height: 26px !important;

  margin: 0 !important;
  padding: 0 !important;

  border-radius: 50% !important;

  font-size: 17px !important;
  line-height: 1 !important;
}


/* ---------------------------------------------------------
   3. GARANTIR QUE O TEXTO ABAIXO USE TODA A LARGURA
   --------------------------------------------------------- */

#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:disabled)
.taskBody {
  padding-right: 0 !important;

  width: 100% !important;
  max-width: none !important;
}

#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:disabled)
h3 {
  width: 100% !important;
  max-width: none !important;

  padding-right: 0 !important;
}


/* ---------------------------------------------------------
   4. MOBILE
   --------------------------------------------------------- */

@media (max-width: 620px) {

  #studentTodayView .todayDoneBtnV1025:disabled {
    top: 12px !important;
    right: 11px !important;

    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 25px !important;
    min-width: 25px !important;
    height: 25px !important;

    font-size: 16px !important;
  }
}


/* ---------------------------------------------------------
   5. IPHONE ESTREITO
   --------------------------------------------------------- */

@media (max-width: 390px) {

  #studentTodayView .todayDoneBtnV1025:disabled {
    top: 11px !important;
    right: 9px !important;

    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;

    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 23px !important;
    min-width: 23px !important;
    height: 23px !important;

    font-size: 15px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_SINGLE_CHECK_V1052

   Estado CONFERIDA:
   - remove círculo externo do botão
   - mantém somente UM círculo verde com check
   - preserva posição/alinhamento V1051
   ========================================================= */

#studentTodayView .todayDoneBtnV1025:disabled {
  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;

  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;

  padding: 0 !important;

  border-radius: 0 !important;
}


/* círculo ÚNICO */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
  display: grid !important;
  place-items: center !important;

  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;

  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  outline: 0 !important;

  border-radius: 50% !important;

  color: #ffffff !important;
  background: #24b86f !important;

  box-shadow:
    0 4px 10px rgba(36,184,111,.18) !important;

  font-size: 18px !important;
  line-height: 1 !important;
}


/* elimina qualquer decoração herdada */
#studentTodayView .todayDoneBtnV1025:disabled::before,
#studentTodayView .todayDoneBtnV1025:disabled::after,
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before,
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::after {
  box-shadow: none !important;
}


/* MOBILE */
@media (max-width: 620px) {

  #studentTodayView .todayDoneBtnV1025:disabled {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;

    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;

    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;

    font-size: 17px !important;
  }
}


/* IPHONE ESTREITO */
@media (max-width: 390px) {

  #studentTodayView .todayDoneBtnV1025:disabled {
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;

    height: 32px !important;
    min-height: 32px !important;
    max-height: 32px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;

    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;

    font-size: 16px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_REFERENCE_CHECK_V1053

   Check final igual à referência aprovada:
   - círculo verde sólido
   - ✓ branco
   - sem anel externo
   - sem borda
   - mesma posição superior direita
   ========================================================= */


/* botão vira apenas suporte invisível */
#studentTodayView .todayDoneBtnV1025:disabled {
  top: 12px !important;
  right: 12px !important;

  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;

  height: 42px !important;
  min-height: 42px !important;
  max-height: 42px !important;

  padding: 0 !important;
  margin: 0 !important;

  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  border-radius: 0 !important;

  display: grid !important;
  place-items: center !important;

  font-size: 0 !important;
  line-height: 0 !important;

  transform: none !important;
}


/* círculo verde sólido */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
  position: relative !important;

  display: grid !important;
  place-items: center !important;

  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;

  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;

  margin: 0 !important;
  padding: 0 !important;

  color: transparent !important;

  background: #18ad5f !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  border-radius: 50% !important;

  overflow: hidden !important;
}


/*
 * Esconde qualquer desenho/check herdado e cria
 * um único ✓ branco controlado por esta versão.
 */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle > * {
  display: none !important;
}

#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before {
  content: "✓" !important;

  position: absolute !important;
  inset: 0 !important;

  display: grid !important;
  place-items: center !important;

  color: #ffffff !important;

  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Arial,
    sans-serif !important;

  font-size: 25px !important;
  font-weight: 900 !important;
  line-height: 1 !important;

  transform: translateY(-1px) !important;
}

#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::after {
  content: none !important;
  display: none !important;
}


/* MOBILE */
@media (max-width: 620px) {

  #studentTodayView .todayDoneBtnV1025:disabled {
    top: 11px !important;
    right: 11px !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before {
    font-size: 24px !important;
  }
}


/* IPHONE ESTREITO */
@media (max-width: 390px) {

  #studentTodayView .todayDoneBtnV1025:disabled {
    top: 10px !important;
    right: 9px !important;

    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;

    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before {
    font-size: 22px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_REFERENCE_V1054
   Referência aprovada em 05/09/2026.

   Objetivo:
   - reproduzir o visual aprovado na tela REAL
   - hero compacto
   - progresso clean
   - cards de tarefa compactos
   - check verde sólido com ✓ branco
   - texto ocupando toda a largura abaixo do cabeçalho
   ========================================================= */


/* =========================================================
   1. HERO
   ========================================================= */

#studentTodayView .hero-row--compact {
  min-height: 145px !important;
  padding: 16px 39% 14px 0 !important;
  overflow: hidden !important;
}

#studentTodayView #todayTitle {
  margin: 0 !important;

  color: #102d5e !important;

  font-size: clamp(2rem, 7.5vw, 2.52rem) !important;
  line-height: .98 !important;

  font-weight: 950 !important;
  letter-spacing: -.052em !important;

  white-space: nowrap !important;
}

#studentTodayView #todayLabel {
  margin-top: 7px !important;

  color: #7184a5 !important;

  font-size: 15px !important;
  line-height: 1.1 !important;
}

#studentTodayView #dayBadge {
  margin-top: 12px !important;
}


/* =========================================================
   2. PROGRESSO
   ========================================================= */

#studentTodayView .todayProgressV1032 {
  min-height: 118px !important;

  margin-top: 8px !important;
  margin-bottom: 14px !important;

  padding: 13px 15px !important;

  grid-template-columns:
    88px
    minmax(0, 1fr)
    88px !important;

  column-gap: 12px !important;

  border-radius: 20px !important;
}

#studentTodayView .todayProgressCircleV1032 {
  width: 82px !important;
  height: 82px !important;
}

#studentTodayView .todayProgressCopyV1032 .eyebrow {
  margin-bottom: 7px !important;

  font-size: 11px !important;
  letter-spacing: .16em !important;
}

#studentTodayView .todayProgressCopyV1032 #taskSummaryText {
  font-size: 14px !important;
  line-height: 1.15 !important;
}

#studentTodayView .todayMotivationV1032 {
  width: 82px !important;
  height: auto !important;
}


/* =========================================================
   3. MINHA ROTINA
   ========================================================= */

#studentTodayView .section-heading {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}

#studentTodayView .section-heading .eyebrow {
  margin-bottom: 5px !important;
}

#studentTodayView .section-heading h2 {
  margin: 0 !important;

  color: #102d5e !important;

  font-size: 1.45rem !important;
  line-height: 1.04 !important;
}


/* =========================================================
   4. CARDS DE TAREFA
   ========================================================= */

#studentTodayView .todayTaskCardV1025 {
  position: relative !important;

  min-height: 0 !important;
  height: auto !important;

  margin-bottom: 10px !important;

  padding:
    13px
    14px
    12px
    14px !important;

  border-radius: 20px !important;

  overflow: hidden !important;
}


/*
 * Cabeçalho visual:
 * número + figura + disciplina + estado + check.
 */

#studentTodayView .todayTaskCardV1025 .todayTaskArtV1025,
#studentTodayView .todayTaskCardV1025 .todayTaskImageV1025 {
  max-width: 68px !important;
  max-height: 68px !important;

  object-fit: contain !important;
}


/*
 * Descrição usa a largura total abaixo do cabeçalho.
 */

#studentTodayView .todayTaskCardV1025 h3,
#studentTodayView .todayTaskCardV1025 .todayTaskTitleV1025,
#studentTodayView .todayTaskCardV1025 .todayTaskDescriptionV1025 {
  width: 100% !important;
  max-width: none !important;

  margin-top: 9px !important;
  margin-bottom: 0 !important;

  padding-right: 0 !important;

  color: #32874c !important;

  font-size: 15px !important;
  line-height: 1.20 !important;

  font-weight: 850 !important;
  letter-spacing: -.014em !important;

  overflow-wrap: break-word !important;
  word-break: normal !important;
}


/*
 * Texto longo permanece justificado, como já aprovado.
 */

#studentTodayView .todayTaskLongV1029 h3 {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
}


/* Prazo */
#studentTodayView .todayTaskCardV1025 .todayTaskMetaV1025,
#studentTodayView .todayTaskCardV1025 .taskMeta {
  width: 100% !important;
  max-width: none !important;

  margin-top: 9px !important;

  padding-right: 0 !important;

  font-size: 12px !important;
  line-height: 1.15 !important;
}


/* =========================================================
   5. CHECK FINAL IGUAL À REFERÊNCIA
   ========================================================= */

/*
 * O botão disabled vira somente suporte invisível.
 */

#studentTodayView .todayDoneBtnV1025:disabled {
  position: absolute !important;

  top: 12px !important;
  right: 12px !important;

  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;

  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;

  padding: 0 !important;
  margin: 0 !important;

  display: grid !important;
  place-items: center !important;

  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  border-radius: 0 !important;

  font-size: 0 !important;
  line-height: 0 !important;

  transform: none !important;

  z-index: 20 !important;
}


/*
 * ÚNICO círculo verde.
 */

#studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
  position: relative !important;

  display: grid !important;
  place-items: center !important;

  width: 38px !important;
  min-width: 38px !important;
  max-width: 38px !important;

  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;

  padding: 0 !important;
  margin: 0 !important;

  color: transparent !important;

  background: #16ad5f !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  border-radius: 50% !important;

  overflow: hidden !important;
}


/*
 * Remove qualquer check herdado e desenha somente
 * o ✓ branco da referência.
 */

#studentTodayView .todayDoneBtnV1025:disabled .checkCircle > * {
  display: none !important;
}

#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before {
  content: "✓" !important;

  position: absolute !important;
  inset: 0 !important;

  display: grid !important;
  place-items: center !important;

  color: #ffffff !important;

  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Arial,
    sans-serif !important;

  font-size: 24px !important;
  font-weight: 900 !important;
  line-height: 1 !important;

  transform: translateY(-1px) !important;
}

#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::after {
  content: none !important;
  display: none !important;
}


/*
 * O chip "Conferida" permanece no cabeçalho.
 * Nenhuma reserva lateral é necessária abaixo dele.
 */

#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:disabled)
.taskBody {
  width: 100% !important;
  max-width: none !important;

  padding-right: 0 !important;
}


/* =========================================================
   6. FIZ / REFIZ QUANDO ATIVO
   ========================================================= */

#studentTodayView .todayDoneBtnV1025:not(:disabled) {
  position: absolute !important;

  top: 12px !important;
  right: 12px !important;

  width: 82px !important;
  min-width: 82px !important;
  max-width: 82px !important;

  height: 42px !important;
  min-height: 42px !important;

  margin: 0 !important;

  transform: none !important;

  border-radius: 15px !important;
}


/* =========================================================
   7. CONFERÊNCIA FINAL
   ========================================================= */

#studentTodayView #studentVideoPanel {
  margin-top: 10px !important;
}


/* =========================================================
   8. MOBILE
   ========================================================= */

@media (max-width: 620px) {

  #studentTodayView .hero-row--compact {
    min-height: 138px !important;
    padding-right: 38% !important;
  }

  #studentTodayView .todayProgressV1032 {
    min-height: 112px !important;

    grid-template-columns:
      80px
      minmax(0, 1fr)
      80px !important;

    padding: 12px 13px !important;
  }

  #studentTodayView .todayProgressCircleV1032 {
    width: 76px !important;
    height: 76px !important;
  }

  #studentTodayView .todayTaskCardV1025 {
    padding:
      12px
      12px
      11px
      12px !important;
  }

  #studentTodayView .todayTaskCardV1025 .todayTaskArtV1025,
  #studentTodayView .todayTaskCardV1025 .todayTaskImageV1025 {
    max-width: 64px !important;
    max-height: 64px !important;
  }

  #studentTodayView .todayTaskCardV1025 h3,
  #studentTodayView .todayTaskCardV1025 .todayTaskTitleV1025,
  #studentTodayView .todayTaskCardV1025 .todayTaskDescriptionV1025 {
    font-size: 14.5px !important;
    line-height: 1.18 !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled {
    top: 11px !important;
    right: 11px !important;

    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;

    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before {
    font-size: 22px !important;
  }
}


/* =========================================================
   9. IPHONE ESTREITO
   ========================================================= */

@media (max-width: 390px) {

  #studentTodayView #todayTitle {
    font-size: clamp(1.82rem, 7.45vw, 2.25rem) !important;
  }

  #studentTodayView .todayTaskCardV1025 {
    margin-bottom: 9px !important;

    padding:
      11px
      10px
      10px
      10px !important;
  }

  #studentTodayView .todayTaskCardV1025 .todayTaskArtV1025,
  #studentTodayView .todayTaskCardV1025 .todayTaskImageV1025 {
    max-width: 58px !important;
    max-height: 58px !important;
  }

  #studentTodayView .todayTaskCardV1025 h3,
  #studentTodayView .todayTaskCardV1025 .todayTaskTitleV1025,
  #studentTodayView .todayTaskCardV1025 .todayTaskDescriptionV1025 {
    font-size: 14px !important;
    line-height: 1.17 !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled {
    top: 10px !important;
    right: 9px !important;

    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;

    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;

    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }

  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before {
    font-size: 21px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_WHITE_CHECK_V1055

   Diagnóstico confirmou que o check REAL não é SVG:
   é o caractere literal "✓" dentro de .checkCircle.

   Portanto:
   - usamos o próprio caractere real
   - fundo verde sólido
   - check branco
   - removemos pseudo-check das V1053/V1054
   ========================================================= */

#studentTodayView .todayDoneBtnV1025:disabled {
  opacity: 1 !important;

  background: transparent !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}


/* O próprio caractere ✓ existente no HTML fica branco. */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;

  background: #16ad5f !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  border-radius: 50% !important;

  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Arial,
    sans-serif !important;

  font-weight: 900 !important;
  line-height: 1 !important;

  text-shadow: none !important;
  opacity: 1 !important;
}


/*
 * Desliga os checks artificiais das V1053/V1054.
 * O check agora é SOMENTE o "✓" real gerado pelo app.js.
 */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::before,
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle::after {
  content: none !important;
  display: none !important;
}


/* tamanho aprovado */
#studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
  width: 38px !important;
  min-width: 38px !important;
  max-width: 38px !important;

  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;

  display: grid !important;
  place-items: center !important;

  padding: 0 !important;
  margin: 0 !important;

  font-size: 24px !important;
}


/* MOBILE */
@media (max-width: 620px) {
  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;

    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;

    font-size: 22px !important;
  }
}


/* IPHONE ESTREITO */
@media (max-width: 390px) {
  #studentTodayView .todayDoneBtnV1025:disabled .checkCircle {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;

    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;

    font-size: 21px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_STATES_V1056

   Regra visual aprovada:
   1. PENDENTE
      - texto normal azul/preto
      - botão FIZ azul

   2. FEITA / AGUARDANDO CONFERÊNCIA
      - texto CONTINUA normal azul/preto
      - botão FEITA verde
      - ainda NÃO pinta a atividade de verde

   3. CONFERIDA PELOS RESPONSÁVEIS
      - descrição e prazo ficam verdes
      - check final verde sólido com ✓ branco
   ========================================================= */


/* =========================================================
   1. COR NORMAL ANTES DA APROVAÇÃO
   ========================================================= */

/*
 * Qualquer tarefa cujo botão ainda NÃO esteja disabled
 * ainda não foi validada pelos responsáveis.
 *
 * Inclui:
 * - Pendente / Fiz
 * - Feita / Aguardando conferência
 * - Refiz
 */
#studentTodayView
.todayTaskCardV1025:not(:has(.todayDoneBtnV1025:disabled))
h3 {
  color: #102d5e !important;
}


/*
 * Prazo também permanece na cor normal antes da aprovação.
 */
#studentTodayView
.todayTaskCardV1025:not(:has(.todayDoneBtnV1025:disabled))
.todayTaskMetaV1025,

#studentTodayView
.todayTaskCardV1025:not(:has(.todayDoneBtnV1025:disabled))
.taskMeta {
  color: #7184a5 !important;
}


/* =========================================================
   2. FEITA / AGUARDANDO CONFERÊNCIA
   ========================================================= */

/*
 * checked + não disabled = criança marcou como feita,
 * mas os responsáveis ainda não aprovaram.
 */
#studentTodayView
.todayDoneBtnV1025.checked:not(:disabled) {
  top: 12px !important;
  right: 12px !important;

  width: auto !important;
  min-width: 96px !important;
  max-width: 112px !important;

  height: 46px !important;
  min-height: 46px !important;

  padding: 0 12px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;

  color: #168a50 !important;

  background: #effcf5 !important;
  background-image: none !important;

  border: 1px solid rgba(26,174,101,.32) !important;
  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 16px !important;

  font-size: 14px !important;
  font-weight: 850 !important;
  line-height: 1 !important;

  transform: none !important;
}


/*
 * Check da tarefa FEITA:
 * círculo verde sólido + ✓ branco.
 */
#studentTodayView
.todayDoneBtnV1025.checked:not(:disabled)
.checkCircle {
  width: 26px !important;
  min-width: 26px !important;
  max-width: 26px !important;

  height: 26px !important;
  min-height: 26px !important;
  max-height: 26px !important;

  display: grid !important;
  place-items: center !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;

  background: #16ad5f !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  border-radius: 50% !important;

  font-size: 17px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}


/* =========================================================
   3. PENDENTE / FIZ
   ========================================================= */

#studentTodayView
.todayDoneBtnV1025:not(.checked):not(:disabled) {
  color: #123d73 !important;

  background: #f8fbff !important;
  background-image: none !important;

  border: 1px solid rgba(77,137,212,.24) !important;

  box-shadow: none !important;
}


/*
 * Círculo vazio do FIZ.
 */
#studentTodayView
.todayDoneBtnV1025:not(.checked):not(:disabled)
.checkCircle {
  background: transparent !important;

  border: 2px solid #123d73 !important;

  color: transparent !important;

  box-shadow: none !important;
}


/* =========================================================
   4. SOMENTE APÓS APROVAÇÃO: TEXTO VERDE
   ========================================================= */

/*
 * disabled é exatamente o estado em que actionText vira
 * "Conferida" no app.js atual.
 */
#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:disabled)
h3 {
  color: #32874c !important;
}


/*
 * Prazo também assume verde suave somente após conferência.
 */
#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:disabled)
.todayTaskMetaV1025,

#studentTodayView
.todayTaskCardV1025:has(.todayDoneBtnV1025:disabled)
.taskMeta {
  color: #4f8f62 !important;
}


/* =========================================================
   5. CHECK FINAL CONFERIDA
   ========================================================= */

/*
 * Mantém exatamente a referência:
 * fundo verde sólido + ✓ branco.
 */
#studentTodayView
.todayDoneBtnV1025:disabled
.checkCircle {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;

  background: #16ad5f !important;
  background-image: none !important;

  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;

  text-shadow: none !important;
  opacity: 1 !important;
}


/*
 * O ✓ real vem do app.js:
 * <span class="checkCircle">✓</span>
 *
 * Desliga qualquer pseudo-check de versões anteriores.
 */
#studentTodayView
.todayDoneBtnV1025:disabled
.checkCircle::before,

#studentTodayView
.todayDoneBtnV1025:disabled
.checkCircle::after {
  content: none !important;
  display: none !important;
}


/* =========================================================
   6. MOBILE
   ========================================================= */

@media (max-width: 620px) {

  #studentTodayView
  .todayDoneBtnV1025.checked:not(:disabled) {
    top: 11px !important;
    right: 10px !important;

    min-width: 90px !important;
    max-width: 104px !important;

    height: 44px !important;
    min-height: 44px !important;

    padding: 0 10px !important;

    font-size: 13px !important;
  }

  #studentTodayView
  .todayDoneBtnV1025.checked:not(:disabled)
  .checkCircle {
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;

    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;

    font-size: 16px !important;
  }
}


/* =========================================================
   7. IPHONE ESTREITO
   ========================================================= */

@media (max-width: 390px) {

  #studentTodayView
  .todayDoneBtnV1025.checked:not(:disabled) {
    top: 10px !important;
    right: 8px !important;

    min-width: 84px !important;
    max-width: 98px !important;

    height: 42px !important;
    min-height: 42px !important;

    padding: 0 9px !important;

    font-size: 12.5px !important;
  }

  #studentTodayView
  .todayDoneBtnV1025.checked:not(:disabled)
  .checkCircle {
    width: 23px !important;
    min-width: 23px !important;
    max-width: 23px !important;

    height: 23px !important;
    min-height: 23px !important;
    max-height: 23px !important;

    font-size: 15px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_VIDEO_REFINEMENT_V1057
   ========================================================= */

#studentTodayView #studentVideoText {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  -webkit-box-orient: initial !important;
  color: #6f82a2 !important;
  line-height: 1.28 !important;
}

#studentTodayView #studentVideoPanel .video-validation-card__head {
  min-height: 0 !important;
  height: auto !important;
  overflow: visible !important;
}

#studentTodayView #studentVideoPanel .video-sent,
#studentTodayView #studentVideoPanel .video-validation-ready,
#studentTodayView #studentVideoPanel [class*="video-validation"] {
  opacity: 1 !important;
}

#studentTodayView #studentVideoPanel .video-sent strong,
#studentTodayView #studentVideoPanel .video-validation-ready strong,
#studentTodayView #studentVideoPanel [class*="video-validation"] strong {
  color: #17834d !important;
  -webkit-text-fill-color: #17834d !important;
  opacity: 1 !important;
}

#studentTodayView #studentVideoPanel .video-sent p,
#studentTodayView #studentVideoPanel .video-validation-ready p,
#studentTodayView #studentVideoPanel [class*="video-validation"] p {
  color: #667b9d !important;
  -webkit-text-fill-color: #667b9d !important;
  opacity: 1 !important;
}

#studentTodayView .todayDoneBtnV1025.checked:not(:disabled) {
  cursor: pointer !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  filter: none !important;
}

@media (max-width: 620px) {
  #studentTodayView #studentVideoText {
    font-size: 14px !important;
    line-height: 1.26 !important;
  }
}


/* =========================================================
   STUDENT_TODAY_VIDEO_LOCK_V1058B
   Feita + Aguardando conferência:
   mantém visual Feita, mas bloqueia desmarcação.
   ========================================================= */

#studentTodayView
.todayDoneBtnV1025.checked.lockedAfterVideoV1058B {
  pointer-events: none !important;
  cursor: default !important;
  opacity: 1 !important;
  filter: none !important;
  user-select: none !important;
  -webkit-user-select: none !important;

  color: #168a50 !important;
  background: #effcf5 !important;
  background-image: none !important;
  border: 1px solid rgba(26,174,101,.32) !important;
  box-shadow: none !important;
}

#studentTodayView
.todayDoneBtnV1025.checked.lockedAfterVideoV1058B
.checkCircle {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: #16ad5f !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

#studentTodayView
.todayDoneBtnV1025.checked.lockedAfterVideoV1058B,
#studentTodayView
.todayDoneBtnV1025.checked.lockedAfterVideoV1058B * {
  opacity: 1 !important;
}


/* =========================================================
   STUDENT_TODAY_REDO_RESET_V1059

   REPROVADA_PAIS / Precisa refazer:
   - botão volta ao estado inicial
   - círculo vazio
   - sem ✓
   - texto "Refiz"
   - clicável
   - texto da atividade permanece normal
   ========================================================= */


/*
 * Como o app.js V1059 remove .checked nesse estado,
 * esta regra serve como garantia visual final.
 */
#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled) {
  pointer-events: auto !important;
  cursor: pointer !important;

  opacity: 1 !important;
  filter: none !important;

  color: #123d73 !important;

  background: #f8fbff !important;
  background-image: none !important;

  border: 1px solid rgba(77,137,212,.24) !important;
  box-shadow: none !important;
}


/* círculo vazio */
#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled)
.checkCircle {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;

  background: transparent !important;
  background-image: none !important;

  border: 2px solid #123d73 !important;
  outline: 0 !important;
  box-shadow: none !important;

  border-radius: 50% !important;
}


/* nenhum pseudo-check pode reaparecer */
#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled)
.checkCircle::before,

#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled)
.checkCircle::after {
  content: none !important;
  display: none !important;
}


/* texto da tarefa NÃO fica verde enquanto precisa refazer */
#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
h3 {
  color: #102d5e !important;
}

#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayTaskMetaV1025,

#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.taskMeta {
  color: #7184a5 !important;
}


/* =========================================================
   STUDENT_TODAY_REDO_BUTTON_V1061

   Estado PRECISA REFAZER:
   - mesmo padrão visual do FIZ
   - círculo perfeitamente redondo e vazio
   - texto REFIZ alinhado
   - sem "0" / oval no lugar do círculo
   ========================================================= */

#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled) {
  position: absolute !important;

  top: 12px !important;
  right: 12px !important;

  width: auto !important;
  min-width: 96px !important;
  max-width: 112px !important;

  height: 46px !important;
  min-height: 46px !important;
  max-height: 46px !important;

  padding: 0 12px !important;
  margin: 0 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  gap: 8px !important;

  color: #123d73 !important;

  background: #f8fbff !important;
  background-image: none !important;

  border: 1px solid rgba(77,137,212,.24) !important;
  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 16px !important;

  font-size: 14px !important;
  font-weight: 850 !important;
  line-height: 1 !important;

  transform: none !important;

  cursor: pointer !important;
  opacity: 1 !important;
}


/*
 * Círculo vazio REAL.
 * flex-basis explícito evita que regras antigas estiquem
 * o elemento e o transformem naquele "0" oval.
 */
#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled)
.checkCircle {
  display: block !important;

  flex: 0 0 24px !important;

  width: 24px !important;
  min-width: 24px !important;
  max-width: 24px !important;

  height: 24px !important;
  min-height: 24px !important;
  max-height: 24px !important;

  aspect-ratio: 1 / 1 !important;

  margin: 0 !important;
  padding: 0 !important;

  color: transparent !important;
  -webkit-text-fill-color: transparent !important;

  font-size: 0 !important;
  line-height: 0 !important;

  background: transparent !important;
  background-image: none !important;

  border: 2px solid #123d73 !important;
  outline: 0 !important;

  box-shadow: none !important;

  border-radius: 999px !important;

  overflow: hidden !important;
}


/* nenhum pseudo-elemento/check herdado */
#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled)
.checkCircle::before,

#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled)
.checkCircle::after {
  content: none !important;
  display: none !important;
}


/* texto Refiz */
#studentTodayView
.todayTaskCardV1025:has(.rejectNotice)
.todayDoneBtnV1025:not(.checked):not(:disabled)
> span:last-child {
  display: inline-block !important;

  width: auto !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #123d73 !important;
  -webkit-text-fill-color: #123d73 !important;

  font-size: 14px !important;
  font-weight: 850 !important;
  line-height: 1 !important;

  white-space: nowrap !important;
}


/* MOBILE */
@media (max-width: 620px) {

  #studentTodayView
  .todayTaskCardV1025:has(.rejectNotice)
  .todayDoneBtnV1025:not(.checked):not(:disabled) {
    top: 11px !important;
    right: 10px !important;

    min-width: 90px !important;
    max-width: 104px !important;

    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;

    padding: 0 10px !important;

    gap: 7px !important;

    font-size: 13px !important;
  }

  #studentTodayView
  .todayTaskCardV1025:has(.rejectNotice)
  .todayDoneBtnV1025:not(.checked):not(:disabled)
  .checkCircle {
    flex-basis: 23px !important;

    width: 23px !important;
    min-width: 23px !important;
    max-width: 23px !important;

    height: 23px !important;
    min-height: 23px !important;
    max-height: 23px !important;
  }

  #studentTodayView
  .todayTaskCardV1025:has(.rejectNotice)
  .todayDoneBtnV1025:not(.checked):not(:disabled)
  > span:last-child {
    font-size: 13px !important;
  }
}


/* IPHONE ESTREITO */
@media (max-width: 390px) {

  #studentTodayView
  .todayTaskCardV1025:has(.rejectNotice)
  .todayDoneBtnV1025:not(.checked):not(:disabled) {
    top: 10px !important;
    right: 8px !important;

    min-width: 84px !important;
    max-width: 98px !important;

    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;

    padding: 0 9px !important;
  }

  #studentTodayView
  .todayTaskCardV1025:has(.rejectNotice)
  .todayDoneBtnV1025:not(.checked):not(:disabled)
  .checkCircle {
    flex-basis: 22px !important;

    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;

    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
  }
}


/* =========================================================
   STUDENT_TODAY_CONSOLIDATED_V1062
   ========================================================= */

#studentTodayView .todayTaskCardV1025 .taskTop,
#studentTodayView .todayTaskCardV1025 .taskBody > :first-child:not(h3) {
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  padding-right: 122px !important;

  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;

  column-gap: 6px !important;
  row-gap: 6px !important;
}

#studentTodayView .todayTaskCardV1025 .taskTop .subjectTag,
#studentTodayView .todayTaskCardV1025 .taskTop .stateTag,
#studentTodayView .todayTaskCardV1025 .taskBody > :first-child:not(h3) .subjectTag,
#studentTodayView .todayTaskCardV1025 .taskBody > :first-child:not(h3) .stateTag {
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  line-height: 1.15 !important;
}

#studentTodayView .todayDoneBtnV1025.checked:not(:disabled) > span:last-child {
  white-space: nowrap !important;
}

#studentTodayView .todayDoneBtnV1025.checked.lockedAfterVideoV1062 {
  pointer-events: none !important;
  cursor: default !important;
  opacity: 1 !important;
  filter: none !important;

  color: #168a50 !important;
  background: #effcf5 !important;
  background-image: none !important;
  border: 1px solid rgba(26,174,101,.32) !important;
  box-shadow: none !important;
}

#studentTodayView
.todayDoneBtnV1025.checked.lockedAfterVideoV1062
.checkCircle {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: #16ad5f !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

#studentTodayView
.todayDoneBtnV1025.lockedAfterVideoV1058B:not(.lockedAfterVideoV1062) {
  pointer-events: auto !important;
  cursor: pointer !important;
}

@media (max-width: 620px) {
  #studentTodayView .todayTaskCardV1025 .taskTop,
  #studentTodayView .todayTaskCardV1025 .taskBody > :first-child:not(h3) {
    padding-right: 108px !important;
  }
}

@media (max-width: 390px) {
  #studentTodayView .todayTaskCardV1025 .taskTop,
  #studentTodayView .todayTaskCardV1025 .taskBody > :first-child:not(h3) {
    padding-right: 100px !important;
    column-gap: 5px !important;
    row-gap: 5px !important;
  }

  #studentTodayView .todayTaskCardV1025 .taskTop .subjectTag,
  #studentTodayView .todayTaskCardV1025 .taskTop .stateTag,
  #studentTodayView .todayTaskCardV1025 .taskBody > :first-child:not(h3) .subjectTag,
  #studentTodayView .todayTaskCardV1025 .taskBody > :first-child:not(h3) .stateTag {
    font-size: .64rem !important;
  }
}


/* =========================================================
   STUDENT_TODAY_REDO_LOCK_V1063B
   ========================================================= */

#studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) {
  position:absolute !important;
  top:12px !important;
  right:12px !important;
  width:auto !important;
  min-width:96px !important;
  max-width:112px !important;
  height:46px !important;
  min-height:46px !important;
  max-height:46px !important;
  padding:0 12px !important;
  margin:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  color:#123d73 !important;
  background:#f8fbff !important;
  border:1px solid rgba(77,137,212,.24) !important;
  border-radius:16px !important;
  box-shadow:none !important;
  transform:none !important;
  cursor:pointer !important;
  opacity:1 !important;
}

#studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) .checkCircle {
  display:block !important;
  flex:0 0 24px !important;
  width:24px !important;
  min-width:24px !important;
  max-width:24px !important;
  height:24px !important;
  min-height:24px !important;
  max-height:24px !important;
  aspect-ratio:1/1 !important;
  margin:0 !important;
  padding:0 !important;
  color:transparent !important;
  -webkit-text-fill-color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  background:transparent !important;
  border:2px solid #123d73 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:hidden !important;
}

#studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) .checkCircle::before,
#studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) .checkCircle::after {
  content:none !important;
  display:none !important;
}

#studentTodayView .todayDoneBtnV1025.redoFlowV1063B > span:last-child {
  white-space:nowrap !important;
}

#studentTodayView .todayDoneBtnV1025.checked.lockedAfterVideoV1062 {
  pointer-events:none !important;
  cursor:default !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}

@media (max-width:620px) {
  #studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) {
    top:11px !important;
    right:10px !important;
    min-width:90px !important;
    max-width:104px !important;
    height:44px !important;
    min-height:44px !important;
    max-height:44px !important;
    padding:0 10px !important;
    gap:7px !important;
  }
  #studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) .checkCircle {
    flex-basis:23px !important;
    width:23px !important;
    min-width:23px !important;
    max-width:23px !important;
    height:23px !important;
    min-height:23px !important;
    max-height:23px !important;
  }
}

@media (max-width:390px) {
  #studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) {
    top:10px !important;
    right:8px !important;
    min-width:84px !important;
    max-width:98px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    padding:0 9px !important;
  }
  #studentTodayView .todayDoneBtnV1025.redoFlowV1063B:not(.checked):not(:disabled) .checkCircle {
    flex-basis:22px !important;
    width:22px !important;
    min-width:22px !important;
    max-width:22px !important;
    height:22px !important;
    min-height:22px !important;
    max-height:22px !important;
  }
}

/* =========================================================
   STUDENT_TODAY_CONFERENCE_CARD_HEIGHT_V1064

   O card de Conferência Final é expansível e contém o vídeo.
   Portanto não ganha altura fixa: apenas uma altura mínima maior.
   Ao expandir, continua crescendo normalmente.
   ========================================================= */

#studentTodayView #studentVideoPanel {
  height: auto !important;
  min-height: 188px !important;
}

/* caso o componente visual seja um filho interno */
#studentTodayView #studentVideoPanel > .video-validation-card,
#studentTodayView #studentVideoPanel .video-validation-card:first-child {
  height: auto !important;
  min-height: 188px !important;
}

@media (max-width: 620px) {
  #studentTodayView #studentVideoPanel,
  #studentTodayView #studentVideoPanel > .video-validation-card,
  #studentTodayView #studentVideoPanel .video-validation-card:first-child {
    height: auto !important;
    min-height: 184px !important;
  }
}


/* =========================================================
   STUDENT_VIDEO_HEADER_ONLY_FIX

   Ajuste cirúrgico:
   - NÃO altera o grid principal do card
   - NÃO altera o troféu
   - NÃO altera a seta
   - NÃO altera a área expansível/vídeo
   - apenas faz o cabeçalho usar também a coluna reservada
     à direita, mantendo o padding que protege a seta
   ========================================================= */

#studentTodayView
#studentVideoPanel
.video-validation-card__head {
  grid-column: 2 / -1 !important;
  padding-right: 48px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

#studentTodayView
#studentVideoPanel
.video-validation-card__head > div {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
}

#studentTodayView #studentVideoPanel h2 {
  width: 100% !important;
  max-width: none !important;
  white-space: nowrap !important;
}

#studentTodayView #studentVideoText {
  width: 100% !important;
  max-width: none !important;
}


/* =========================================================
   PWA_STUDENT_TOPBAR_FIXED_V1
   Somente PWA instalada no iOS.
   ========================================================= */

@media (display-mode: standalone) {
  #studentScreen .school-shell {
    padding-top: calc(68px + env(safe-area-inset-top)) !important;
  }

  #studentScreen .topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 10050 !important;
    min-height: calc(68px + env(safe-area-inset-top)) !important;
    padding-top: calc(12px + env(safe-area-inset-top)) !important;
    box-sizing: border-box !important;
  }
}

/* =========================================================
   STUDENT_VIDEO_ARROW_HEADER_V1
   Move somente a seta verde da Conferência Final.
   Ela deixa de acompanhar a altura total do card expandido
   e passa a ficar ancorada no cabeçalho.
   ========================================================= */

/* Remove a seta antiga que era posicionada pelo card inteiro. */
#studentTodayView #studentVideoPanel::after {
  content: none !important;
}

/* O cabeçalho vira a referência da nova seta. */
#studentTodayView #studentVideoPanel .video-validation-card__head {
  position: relative !important;
}

/* Recria a mesma seta no canto direito do cabeçalho. */
#studentTodayView #studentVideoPanel .video-validation-card__head::after {
  content: "›" !important;

  position: absolute !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;

  display: grid !important;
  place-items: center !important;

  color: #17a768 !important;
  -webkit-text-fill-color: #17a768 !important;
  background: #dff8ea !important;

  font-size: 34px !important;
  font-weight: 800 !important;
  line-height: 1 !important;

  pointer-events: none !important;
  z-index: 5 !important;
}

@media (max-width: 620px) {
  #studentTodayView #studentVideoPanel .video-validation-card__head::after {
    width: 42px !important;
    height: 42px !important;
    font-size: 32px !important;
  }
}

@media (max-width: 390px) {
  #studentTodayView #studentVideoPanel .video-validation-card__head::after {
    width: 36px !important;
    height: 36px !important;
    font-size: 28px !important;
  }
}

/* =========================================================
   STUDENT_TASK_TEXT_NEUTRAL_V1
   Remove a cor verde condicional dos textos da tarefa.
   A confirmação continua visível pelos chips, checks e status.
   ========================================================= */

#studentTodayView .todayTaskCardV1025 .taskBody h3,
#studentTodayView .todayTaskCardV1025 h3 {
  color: #0f2f63 !important;
  -webkit-text-fill-color: #0f2f63 !important;
}

#studentTodayView .todayTaskCardV1025 .taskMeta,
#studentTodayView .todayTaskCardV1025 .todayTaskMetaV1025 {
  color: #7183a3 !important;
  -webkit-text-fill-color: #7183a3 !important;
}

/* Mantém o aviso de reprovação com sua cor própria. */
#studentTodayView .todayTaskCardV1025 .rejectNotice {
  -webkit-text-fill-color: initial;
}


/* =========================================================
   STUDENT_BAG_40_PERCENT_V1
   Seletores REAIS da Mochila do aluno.
   Alvo visual: aproximadamente 40% da altura inicial.
   ========================================================= */

@media (max-width: 620px) {
  #studentScreen #studentBagView .bagListV1018,
  #studentScreen #studentBagView .bagList {
    gap: 10px !important;
  }

  #studentScreen #studentBagView .bagItemV1018,
  #studentScreen #studentBagView .bagItemV1019,
  #studentScreen #studentBagView .bagItemV1020,
  #studentScreen #studentBagView .bagItemV1020:has(.bagArtImgV1021),
  #studentScreen #studentBagView .bagItemV1020:has(.bagArtImgV1022) {
    min-height: 100px !important;
    height: auto !important;
    padding: 9px 12px !important;
  }

  #studentScreen #studentBagView .bagCheck,
  #studentScreen #studentBagView .bagItemV1020 .bagCheck {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }

  #studentScreen #studentBagView .bagItemIndex {
    font-size: 13px !important;
  }

  #studentScreen #studentBagView .bagItemType,
  #studentScreen #studentBagView .extraTag {
    font-size: 10px !important;
    line-height: 1.05 !important;
  }

  #studentScreen #studentBagView .bagItemV1020 .bagContent strong {
    font-size: 16px !important;
    line-height: 1.12 !important;
  }

  #studentScreen #studentBagView .bagItemV1020 .bagContent small {
    font-size: 12px !important;
    line-height: 1.12 !important;
  }

  #studentScreen #studentBagView .bagCategoryV1018,
  #studentScreen #studentBagView .bagCategoryV1019 {
    min-height: 28px !important;
    padding: 4px 10px !important;
    font-size: 11px !important;
  }

  #studentScreen #studentBagView .bagItemVisualV1018,
  #studentScreen #studentBagView .bagItemVisualV1019,
  #studentScreen #studentBagView .bagItemVisualV1020,
  #studentScreen #studentBagView .bagItemVisualV1020:has(.bagArtImgV1021),
  #studentScreen #studentBagView .bagItemVisualV1020:has(.bagArtImgV1022) {
    width: 72px !important;
    min-width: 72px !important;
    height: 72px !important;
  }

  #studentScreen #studentBagView .bagArtImgV1021,
  #studentScreen #studentBagView .bagArtImgV1022 {
    max-width: 68px !important;
    max-height: 68px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
  }
}

@media (max-width: 390px) {
  #studentScreen #studentBagView .bagItemV1018,
  #studentScreen #studentBagView .bagItemV1019,
  #studentScreen #studentBagView .bagItemV1020,
  #studentScreen #studentBagView .bagItemV1020:has(.bagArtImgV1021),
  #studentScreen #studentBagView .bagItemV1020:has(.bagArtImgV1022) {
    min-height: 94px !important;
    padding: 8px 10px !important;
  }

  #studentScreen #studentBagView .bagItemVisualV1018,
  #studentScreen #studentBagView .bagItemVisualV1019,
  #studentScreen #studentBagView .bagItemVisualV1020,
  #studentScreen #studentBagView .bagItemVisualV1020:has(.bagArtImgV1021),
  #studentScreen #studentBagView .bagItemVisualV1020:has(.bagArtImgV1022) {
    width: 64px !important;
    min-width: 64px !important;
    height: 64px !important;
  }

  #studentScreen #studentBagView .bagArtImgV1021,
  #studentScreen #studentBagView .bagArtImgV1022 {
    max-width: 60px !important;
    max-height: 60px !important;
  }
}

/* =========================================================
   STUDENT_BAG_CHECK_VIBRANT_GREEN_V1
   Ajuste visual somente do check concluído da Mochila.
   ========================================================= */

#studentScreen #studentBagView .bagItemV1018.checked .bagCheck,
#studentScreen #studentBagView .bagItemV1019.checked .bagCheck,
#studentScreen #studentBagView .bagItemV1020.checked .bagCheck {
  background: #18b964 !important;
  border-color: #18b964 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    0 7px 18px rgba(24,185,100,.24) !important;
}

/* APP_ZOOM_LOCK_V1
   Evita double-tap para ampliar em navegadores compatíveis.
   A rolagem vertical normal permanece habilitada. */
html,
body,
button,
a,
input,
select,
textarea,
label {
  touch-action: manipulation;
}

/* =========================================================
   STUDENT_BOTTOM_NAV_IOS_FIXED_V1
   Corrige deslocamento intermitente da barra inferior no
   Safari/WebKit/PWA do iOS.
   - ancora explicitamente a barra ao viewport
   - neutraliza transformações
   - evita o backdrop-filter no próprio elemento fixed, que
     pode provocar glitches de composição no WebKit
   ========================================================= */

@media (max-width: 900px) {
  #studentScreen
  nav.mobile-action-bar.school-mobile-nav.studentNavV1004 {
    position: fixed !important;

    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    z-index: 10040 !important;

    transform: none !important;
    -webkit-transform: none !important;

    contain: none !important;

    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;

    box-sizing: border-box !important;
  }
}

/* No modo instalado, respeita a área segura inferior do iPhone. */
@media (display-mode: standalone) and (max-width: 900px) {
  #studentScreen
  nav.mobile-action-bar.school-mobile-nav.studentNavV1004 {
    padding-bottom:
      calc(10px + env(safe-area-inset-bottom)) !important;
  }
}

/* ============================================================
   FAMILYLINK_APPS_MANAGER_STYLE_V1
   ============================================================ */

.familylinkAppsManagerV1 {
  margin-top: 14px;
  overflow: hidden;
  border: 1px solid rgba(62, 91, 148, .12);
  border-radius: 16px;
  background: #f8faff;
}

.familylinkAppsManagerV1 > summary {
  min-height: 58px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 15px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.familylinkAppsManagerV1 > summary::-webkit-details-marker { display: none; }
.familylinkAppsManagerV1 > summary > span:nth-child(2) { min-width: 0; flex: 1; display: grid; gap: 2px; }
.familylinkAppsManagerV1 > summary strong { color: #172846; font-size: 13px; font-weight: 850; }
.familylinkAppsManagerV1 > summary small { color: #7182a2; font-size: 11px; font-weight: 650; }
.familylinkAppsManagerV1 > summary > b { color: #7182a2; transition: transform 160ms ease; }
.familylinkAppsManagerV1[open] > summary > b { transform: rotate(180deg); }

.familylinkAppsSummaryIconV1 {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  color: #315bd8;
  background: #edf3ff;
}

.familylinkAppsSummaryIconV1 svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.familylinkAppsBodyV1 { display: grid; gap: 14px; padding: 15px; border-top: 1px solid rgba(62, 91, 148, .10); }

.familylinkAppsToolbarV1 {
  display: grid;
  grid-template-columns: minmax(150px, .65fr) minmax(200px, 1.35fr) auto;
  gap: 10px;
  align-items: end;
}

.familylinkAppsToolbarV1 label,
.familylinkAppPolicyV1,
.familylinkAppGoogleV1 { min-width: 0; display: grid; gap: 6px; }

.familylinkAppsToolbarV1 label > span,
.familylinkAppPolicyV1 > span,
.familylinkAppGoogleV1 > span {
  color: #7182a2;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.familylinkAppsToolbarV1 select,
.familylinkAppsToolbarV1 input,
.familylinkAppPolicyV1 select {
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
  border: 1px solid rgba(62, 91, 148, .16);
  border-radius: 12px;
  padding: 0 11px;
  color: #172846;
  background: #fff;
  font: inherit;
}

.familylinkAppsStatsV1 { color: #556987; font-size: 11.5px; font-weight: 700; }
.familylinkAppsTableV1 { display: grid; gap: 8px; }

.familylinkAppRowV1 {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) minmax(105px, .55fr) minmax(220px, .85fr);
  gap: 12px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid rgba(62, 91, 148, .10);
  border-radius: 14px;
  background: #fff;
}

.familylinkAppIdentityV1 { min-width: 0; display: flex; align-items: center; gap: 10px; }

.familylinkAppGlyphV1 {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  color: #315bd8;
  background: #edf3ff;
  font-size: 13px;
  font-weight: 900;
}

.familylinkAppCopyV1 { min-width: 0; display: grid; gap: 2px; }
.familylinkAppCopyV1 strong { overflow: hidden; color: #172846; font-size: 12px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.familylinkAppCopyV1 small { overflow: hidden; color: #7a8ba8; font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }

.familylinkAppGoogleV1 strong {
  width: fit-content;
  padding: 5px 8px;
  border-radius: 999px;
  color: #596b87;
  background: #edf1f7;
  font-size: 10px;
  font-weight: 850;
}

.familylinkAppGoogleV1 strong[data-mode="unlimited"] { color: #2250b8; background: #e8efff; }
.familylinkAppPolicyV1 select { min-height: 38px; font-size: 10.5px; font-weight: 700; }

.familylinkAppsEmptyV1 {
  padding: 22px 14px;
  border: 1px dashed rgba(62, 91, 148, .16);
  border-radius: 14px;
  color: #7182a2;
  background: #fff;
  text-align: center;
  font-size: 11px;
}

.familylinkAppsMessageV1 { min-height: 17px; margin: 0; color: #7182a2; font-size: 11px; }
.familylinkAppsMessageV1[data-kind="ok"] { color: #23795c; }
.familylinkAppsMessageV1[data-kind="bad"] { color: #b24952; }

.familylinkAppsSafetyV1 {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  color: #6d7f9c;
  background: #f0f4fa;
  font-size: 10px;
  line-height: 1.45;
}

@media (max-width: 820px) {
  .familylinkAppsToolbarV1 { grid-template-columns: 1fr 1fr; }
  .familylinkAppsToolbarV1 #familyLinkAppsRefreshBtn { grid-column: 1 / -1; }
  .familylinkAppRowV1 { grid-template-columns: minmax(0, 1fr) minmax(100px, .38fr); }
  .familylinkAppPolicyV1 { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .familylinkAppsToolbarV1 { grid-template-columns: 1fr; }
  .familylinkAppsToolbarV1 #familyLinkAppsRefreshBtn { grid-column: auto; width: 100%; }
  .familylinkAppRowV1 { grid-template-columns: 1fr; gap: 10px; }
  .familylinkAppGoogleV1, .familylinkAppPolicyV1 { grid-column: auto; }
  .familylinkAppCopyV1 small { white-space: normal; overflow-wrap: anywhere; }
}

/* ============================================================
   FAMILYLINK_APPS_MANAGER_STYLE_V2
   ============================================================ */

.familylinkAppsManagerV1 {
  border-radius: 20px;
  background: linear-gradient(180deg, #fbfcff 0%, #f6f8fd 100%);
  box-shadow: 0 8px 30px rgba(44, 72, 124, .04);
}

.familylinkAppsManagerV1 > summary {
  min-height: 64px;
  padding: 0 16px;
}

.familylinkAppsManagerV1 > summary strong {
  font-size: 13.5px;
}

.familylinkAppsBodyV1 {
  gap: 12px;
  padding: 14px;
}

.familylinkAppsToolbarV1 {
  grid-template-columns: minmax(180px, .8fr) minmax(220px, 1.2fr) auto;
  gap: 8px;
}

.familylinkAppsToolbarV1 select,
.familylinkAppsToolbarV1 input {
  min-height: 44px;
  border-radius: 14px;
  box-shadow: 0 1px 0 rgba(20, 42, 88, .02);
}

.familylinkAppsToolbarV1 #familyLinkAppsRefreshBtn {
  min-height: 44px;
  border-radius: 14px;
  padding-inline: 18px;
  white-space: nowrap;
}

.familylinkAppsStatsV1 {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  color: #526784;
  font-size: 10.5px;
}

.familylinkAppsStatsV1 > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 27px;
  padding: 0 9px;
  border: 1px solid rgba(57, 88, 148, .09);
  border-radius: 999px;
  background: rgba(255, 255, 255, .86);
  font-weight: 700;
}

.familylinkAppsStatsV1 > span b {
  color: #234db3;
  font-size: 11px;
  font-weight: 900;
}

.familylinkAppsStatsV1 > span.is-managed {
  border-color: rgba(49, 91, 216, .16);
  background: #edf3ff;
}

.familylinkAppsFiltersV2 {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 1px 0 3px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.familylinkAppsFiltersV2::-webkit-scrollbar {
  display: none;
}

.familylinkAppsFiltersV2 button {
  flex: 0 0 auto;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(57, 88, 148, .11);
  border-radius: 999px;
  padding: 0 11px;
  color: #60718e;
  background: #fff;
  font: inherit;
  font-size: 10.5px;
  font-weight: 800;
  cursor: pointer;
}

.familylinkAppsFiltersV2 button b {
  min-width: 19px;
  height: 19px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #6b7d98;
  background: #eef2f8;
  font-size: 9px;
  font-weight: 900;
}

.familylinkAppsFiltersV2 button.is-active {
  color: #2452bf;
  border-color: rgba(49, 91, 216, .22);
  background: #edf3ff;
}

.familylinkAppsFiltersV2 button.is-active b {
  color: #fff;
  background: #315bd8;
}

.familylinkAppsSyncStripV2 {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid rgba(39, 145, 101, .10);
  border-radius: 13px;
  color: #60718e;
  background: #f4faf7;
}

.familylinkAppsSyncStripV2 > span:last-child {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.familylinkAppsSyncStripV2 strong {
  color: #297759;
  font-size: 10.5px;
  font-weight: 850;
}

.familylinkAppsSyncStripV2 small {
  color: #7182a2;
  font-size: 9.5px;
  font-weight: 650;
}

.familylinkAppsSyncStripV2 small b {
  color: #536987;
  font-weight: 850;
}

.familylinkAppsSyncDotV2 {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 999px;
  background: #35a775;
  box-shadow: 0 0 0 4px rgba(53, 167, 117, .11);
}

.familylinkAppsTableV1 {
  gap: 7px;
}

.familylinkAppRowV2 {
  position: relative;
  display: grid;
  gap: 9px;
  padding: 10px 11px;
  border: 1px solid rgba(62, 91, 148, .09);
  border-radius: 15px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 2px 10px rgba(41, 67, 113, .025);
}

.familylinkAppRowV2.is-managed {
  border-color: rgba(49, 91, 216, .17);
  box-shadow:
    inset 3px 0 0 #315bd8,
    0 2px 10px rgba(41, 67, 113, .025);
}

.familylinkAppTopV2 {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.familylinkAppTopV2 .familylinkAppIdentityV1 {
  flex: 1;
}

.familylinkAppGlyphV1 {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
  border-radius: 12px;
}

.familylinkAppCopyV2 {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.familylinkAppCopyV2 strong {
  overflow: hidden;
  color: #172846;
  font-size: 11.5px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.familylinkAppCopyV2 small {
  overflow: hidden;
  color: #7b8ca7;
  font-size: 9.25px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.familylinkAppModeV2 {
  flex: 0 0 auto;
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  padding: 0 9px;
  border-radius: 999px;
  color: #60718e;
  background: #eef2f7;
  font-size: 9.75px;
  font-weight: 850;
}

.familylinkAppModeV2[data-mode="unlimited"] {
  color: #2250b8;
  background: #e8efff;
}

.familylinkAppModeV2[data-mode="other"] {
  color: #9a672b;
  background: #fff4e5;
}

.familylinkAppPolicyLineV2 {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding-left: 48px;
}

.familylinkAppPolicyLineV2 select {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  box-sizing: border-box;
  border: 1px solid rgba(62, 91, 148, .14);
  border-radius: 11px;
  padding: 0 10px;
  color: #172846;
  background: #fff;
  font: inherit;
  font-size: 10px;
  font-weight: 750;
}

.familylinkAppPolicyLineV2 select:disabled {
  opacity: .62;
}

.familylinkAppSyncStateV2 {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 9px;
  border-radius: 999px;
  color: #72819a;
  background: #f0f3f7;
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}

.familylinkAppSyncStateV2[data-kind="ok"] {
  color: #257458;
  background: #eaf7f1;
}

.familylinkAppSyncStateV2[data-kind="pending"] {
  color: #866522;
  background: #fff5d9;
}

.familylinkAppSyncStateV2[data-kind="reward"] {
  color: #445f9e;
  background: #edf2ff;
}

.familylinkAppSyncStateV2[data-kind="protected"] {
  color: #9b6131;
  background: #fff0e5;
}

.familylinkAppsMessageV1 {
  min-height: 0;
  padding: 0 2px;
  font-size: 10px;
  font-weight: 650;
}

.familylinkAppsSafetyV1 {
  padding: 10px 11px;
  border: 1px solid rgba(62, 91, 148, .07);
  border-radius: 13px;
  font-size: 9.5px;
  line-height: 1.45;
}

.familylinkAppsLoadingV2 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
}

.familylinkAppsLoadingV2 > span {
  width: 13px;
  height: 13px;
  border: 2px solid #d7dfec;
  border-top-color: #315bd8;
  border-radius: 999px;
  animation: familylinkAppsSpinV2 .75s linear infinite;
}

@keyframes familylinkAppsSpinV2 {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 820px) {
  .familylinkAppsToolbarV1 {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "student refresh"
      "search search";
    align-items: end;
  }

  .familylinkAppsToolbarV1 label:first-child {
    grid-area: student;
  }

  .familylinkAppsToolbarV1 label:nth-child(2) {
    grid-area: search;
  }

  .familylinkAppsToolbarV1 #familyLinkAppsRefreshBtn {
    grid-area: refresh;
    grid-column: auto;
    width: auto;
    min-width: 96px;
  }
}

@media (max-width: 560px) {
  .familylinkAppsManagerV1 {
    border-radius: 18px;
  }

  .familylinkAppsManagerV1 > summary {
    min-height: 60px;
    padding: 0 13px;
  }

  .familylinkAppsBodyV1 {
    gap: 10px;
    padding: 12px;
  }

  .familylinkAppsToolbarV1 {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "student refresh"
      "search search";
    gap: 7px;
  }

  .familylinkAppsToolbarV1 label > span {
    font-size: 8.75px;
  }

  .familylinkAppsToolbarV1 select,
  .familylinkAppsToolbarV1 input {
    min-height: 42px;
    border-radius: 13px;
    padding-inline: 10px;
    font-size: 11px;
  }

  .familylinkAppsToolbarV1 #familyLinkAppsRefreshBtn {
    min-width: 88px;
    min-height: 42px;
    padding-inline: 12px;
    font-size: 10px;
  }

  .familylinkAppsStatsV1 {
    gap: 5px;
  }

  .familylinkAppsStatsV1 > span {
    min-height: 25px;
    padding-inline: 8px;
    font-size: 9.5px;
  }

  .familylinkAppsFiltersV2 {
    margin-inline: -1px;
    gap: 6px;
  }

  .familylinkAppsFiltersV2 button {
    min-height: 32px;
    padding-inline: 10px;
    font-size: 9.75px;
  }

  .familylinkAppsSyncStripV2 {
    min-height: 39px;
    padding: 7px 10px;
  }

  .familylinkAppRowV2 {
    gap: 8px;
    padding: 9px 10px;
    border-radius: 14px;
  }

  .familylinkAppGlyphV1 {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    border-radius: 11px;
  }

  .familylinkAppCopyV2 strong {
    font-size: 11px;
  }

  .familylinkAppCopyV2 small {
    font-size: 8.75px;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.2;
  }

  .familylinkAppModeV2 {
    min-height: 25px;
    padding-inline: 8px;
    font-size: 9px;
  }

  .familylinkAppPolicyLineV2 {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
    padding-left: 46px;
  }

  .familylinkAppPolicyLineV2 select {
    min-height: 34px;
    padding-inline: 8px;
    font-size: 9.5px;
  }

  .familylinkAppSyncStateV2 {
    min-height: 25px;
    max-width: 132px;
    padding-inline: 8px;
    overflow: hidden;
    font-size: 8.5px;
    text-overflow: ellipsis;
  }
}

@media (max-width: 390px) {
  .familylinkAppPolicyLineV2 {
    grid-template-columns: 1fr;
  }

  .familylinkAppSyncStateV2 {
    justify-self: start;
    max-width: none;
  }
}

/* ============================================================
   ESCOLAR_PARENT_VIDEO_FULL_BUFFER_STYLE_V1
   ============================================================ */

#parentVideoContent .parentVideoBufferingV1 {
  display: none !important;
}

.parentVideoFullBufferPanelV1 {
  display: grid;
  gap: 9px;
  margin: 10px 0 12px;
  padding: 13px 14px;
  border: 1px solid rgba(56, 89, 151, .11);
  border-radius: 16px;
  background:
    linear-gradient(
      180deg,
      rgba(248, 250, 255, .98),
      rgba(243, 247, 255, .98)
    );
  box-shadow:
    0 5px 18px rgba(38, 65, 118, .045);
}

.parentVideoFullBufferHeadV1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.parentVideoFullBufferHeadV1 > span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.parentVideoFullBufferHeadV1 strong {
  color: #1d3153;
  font-size: 12px;
  font-weight: 850;
}

.parentVideoFullBufferHeadV1 > b {
  flex: 0 0 auto;
  color: #315bd8;
  font-size: 12px;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.parentVideoFullBufferIconV1 {
  width: 27px;
  height: 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: #315bd8;
  background: #eaf0ff;
  font-size: 15px;
  font-weight: 900;
}

.parentVideoFullBufferTrackV1 {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5eaf3;
}

.parentVideoFullBufferTrackV1 > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #315bd8;
  transition: width .12s linear;
}

.parentVideoFullBufferMetaV1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #73839e;
  font-size: 9.5px;
  font-weight: 650;
}

.parentVideoFullBufferMetaV1 > span:last-child {
  text-align: right;
}

.parentVideoFullBufferPanelV1[data-state="ready"] {
  border-color: rgba(47, 149, 103, .14);
  background:
    linear-gradient(
      180deg,
      rgba(245, 252, 248, .98),
      rgba(239, 249, 244, .98)
    );
}

.parentVideoFullBufferPanelV1[data-state="ready"]
.parentVideoFullBufferIconV1 {
  color: #267c59;
  background: #e3f5eb;
}

.parentVideoFullBufferPanelV1[data-state="ready"]
.parentVideoFullBufferHeadV1 > b {
  color: #267c59;
}

.parentVideoFullBufferPanelV1[data-state="ready"]
.parentVideoFullBufferTrackV1 > span {
  background: #35a775;
}

.parentVideoFullBufferPanelV1[data-state="error"] {
  border-color: rgba(188, 74, 74, .15);
  background: #fff7f7;
}

.parentVideoFullBufferPanelV1[data-state="error"]
.parentVideoFullBufferHeadV1 > b {
  color: #a74343;
}

.parentVideoFullBufferRetryV1 {
  justify-self: start;
  min-height: 34px;
  border: 1px solid rgba(49, 91, 216, .18);
  border-radius: 11px;
  padding: 0 13px;
  color: #2450b8;
  background: #edf3ff;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 560px) {
  .parentVideoFullBufferPanelV1 {
    gap: 8px;
    margin: 8px 0 10px;
    padding: 11px 12px;
    border-radius: 14px;
  }

  .parentVideoFullBufferHeadV1 strong,
  .parentVideoFullBufferHeadV1 > b {
    font-size: 11px;
  }

  .parentVideoFullBufferMetaV1 {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
    font-size: 9px;
  }

  .parentVideoFullBufferMetaV1 > span:last-child {
    text-align: left;
  }
}

/* ============================================================
   ESCOLAR_PARENT_VIDEO_CACHE_STORAGE_STYLE_V1
   ============================================================ */

#parentVideoContent .parentVideoDiskLoadingV1 {
  display: none !important;
}

.parentVideoDiskPanelV1 {
  display: grid;
  gap: 9px;
  margin: 10px 0 12px;
  padding: 13px 14px;
  border: 1px solid rgba(56, 89, 151, .11);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(248,250,255,.99), rgba(243,247,255,.99));
  box-shadow: 0 5px 18px rgba(38, 65, 118, .045);
}

.parentVideoDiskHeadV1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.parentVideoDiskHeadV1 > span {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.parentVideoDiskHeadV1 strong,
.parentVideoDiskHeadV1 > b {
  font-size: 12px;
  font-weight: 900;
}

.parentVideoDiskHeadV1 strong {
  color: #1d3153;
}

.parentVideoDiskHeadV1 > b {
  color: #315bd8;
  font-variant-numeric: tabular-nums;
}

.parentVideoDiskIconV1 {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: #315bd8;
  background: #eaf0ff;
  font-size: 15px;
  font-weight: 900;
}

.parentVideoDiskTrackV1 {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5eaf3;
}

.parentVideoDiskTrackV1 > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #315bd8;
  transition: width .1s linear;
}

.parentVideoDiskMetaV1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #73839e;
  font-size: 9.5px;
  font-weight: 650;
}

.parentVideoDiskMetaV1 > span:last-child {
  text-align: right;
}

.parentVideoDiskNoteV1 {
  color: #8190a8;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.35;
}

.parentVideoDiskPanelV1[data-state="ready"] {
  border-color: rgba(47,149,103,.14);
  background: linear-gradient(180deg, rgba(245,252,248,.99), rgba(239,249,244,.99));
}

.parentVideoDiskPanelV1[data-state="ready"] .parentVideoDiskIconV1 {
  color: #267c59;
  background: #e3f5eb;
}

.parentVideoDiskPanelV1[data-state="ready"] .parentVideoDiskHeadV1 > b {
  color: #267c59;
}

.parentVideoDiskPanelV1[data-state="ready"] .parentVideoDiskTrackV1 > span {
  background: #35a775;
}

.parentVideoDiskPanelV1[data-state="error"] {
  border-color: rgba(188,74,74,.15);
  background: #fff7f7;
}

.parentVideoDiskRetryV1 {
  justify-self: start;
  min-height: 34px;
  border: 1px solid rgba(49,91,216,.18);
  border-radius: 11px;
  padding: 0 13px;
  color: #2450b8;
  background: #edf3ff;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

@media (max-width: 560px) {
  .parentVideoDiskPanelV1 {
    gap: 8px;
    margin: 8px 0 10px;
    padding: 11px 12px;
    border-radius: 14px;
  }

  .parentVideoDiskHeadV1 strong,
  .parentVideoDiskHeadV1 > b {
    font-size: 11px;
  }

  .parentVideoDiskMetaV1 {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
    font-size: 9px;
  }

  .parentVideoDiskMetaV1 > span:last-child {
    text-align: left;
  }
}

/* ============================================================
   STUDENT_APPS_V022 / V1083
   Modulo aditivo. Nao altera tarefas, mochila ou agenda.
   ============================================================ */

#studentScreen #studentAppsView.studentAppsV1083 {
  --apps-blue: #3978ff;
  --apps-ink: #0b1734;
  --apps-muted: #687a98;
  display: grid;
  gap: 18px;
}

#studentScreen #studentAppsView.studentAppsV1083.hidden {
  display: none !important;
}

#studentScreen .studentAppsHeroV1083 {
  position: relative;
  min-height: 188px;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 190px;
  align-items: center;
  gap: 18px;
  padding: 28px 30px;
  border: 1px solid rgba(62, 91, 148, .12);
  border-radius: 26px;
  background:
    radial-gradient(circle at 88% 20%, rgba(139, 112, 255, .23), transparent 13rem),
    linear-gradient(135deg, #ffffff 0%, #f5f7ff 58%, #eef6ff 100%);
  box-shadow: 0 12px 34px rgba(30, 53, 99, .07);
}

#studentScreen .studentAppsHeroV1083::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  right: -58px;
  bottom: -94px;
  border-radius: 50%;
  background: rgba(73, 133, 255, .08);
}

#studentScreen .studentAppsHeroV1083__copy,
#studentScreen .studentAppsHeroV1083__art {
  position: relative;
  z-index: 2;
}

#studentScreen .studentAppsHeroV1083 h1 {
  margin: 3px 0 8px;
  color: var(--apps-ink);
  font-size: clamp(34px, 5vw, 52px);
  line-height: .98;
  letter-spacing: -.045em;
}

#studentScreen .studentAppsHeroV1083__copy > p:not(.eyebrow) {
  max-width: 570px;
  margin: 0;
  color: var(--apps-muted);
  font-size: 15px;
  line-height: 1.55;
}

#studentScreen .studentAppsHeroV1083__art {
  display: grid;
  place-items: center;
}

#studentScreen .studentAppsHeroV1083__art svg {
  width: min(100%, 170px);
  height: auto;
  filter: drop-shadow(0 14px 24px rgba(76, 91, 222, .20));
}

#studentScreen .studentAppsSummaryV1083 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 22px 24px;
  border: 1px solid rgba(62, 91, 148, .12);
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 28px rgba(30, 53, 99, .055);
}

#studentScreen .studentAppsSummaryV1083__metric {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 16px;
}

#studentScreen .studentAppsSummaryV1083__icon {
  flex: 0 0 auto;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(57, 120, 255, .18);
  border-radius: 17px;
  color: #3978ff;
  background: #eef4ff;
}

#studentScreen .studentAppsSummaryV1083__icon svg,
#studentScreen .studentAppsFutureV1083__icon svg,
#studentScreen .studentAppsEmptyIconV1083 svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#studentScreen .studentAppsSummaryV1083__icon svg {
  width: 29px;
  height: 29px;
}

#studentScreen .studentAppsSummaryV1083__metric strong {
  display: block;
  margin-top: 1px;
  color: var(--apps-ink);
  font-size: clamp(28px, 4vw, 40px);
  line-height: 1;
  letter-spacing: -.035em;
}

#studentScreen .studentAppsSummaryV1083__metric > div > span {
  display: block;
  margin-top: 6px;
  color: var(--apps-muted);
  font-size: 13px;
}

#studentScreen .studentAppsSummaryV1083__status {
  display: grid;
  justify-items: end;
  gap: 8px;
}

#studentScreen .studentAppsSummaryV1083__status small {
  color: #7182a2;
  font-size: 12px;
  font-weight: 700;
}

#studentScreen .studentAppsFutureV1083 {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid rgba(239, 178, 47, .25);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 249, 229, .95), rgba(255, 253, 244, .98));
}

#studentScreen .studentAppsFutureV1083__icon {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #cb8d13;
  background: #fff2be;
}

#studentScreen .studentAppsFutureV1083__icon svg {
  width: 24px;
  height: 24px;
}

#studentScreen .studentAppsFutureV1083 strong {
  display: block;
  color: #5b470f;
  font-size: 14px;
}

#studentScreen .studentAppsFutureV1083 p {
  margin: 4px 0 0;
  color: #7f6c35;
  font-size: 12px;
  line-height: 1.45;
}

#studentScreen .studentAppsHeadingV1083 {
  margin-top: 2px;
  margin-bottom: 0;
}

#studentScreen .studentAppsHeadingV1083 .button {
  min-width: 104px;
}

#studentScreen .studentAppsListV1083 {
  display: grid;
  gap: 10px;
}

#studentScreen .studentAppRowV1083 {
  min-height: 76px;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border: 1px solid rgba(62, 91, 148, .12);
  border-radius: 19px;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 8px 22px rgba(30, 53, 99, .045);
}

#studentScreen .studentAppIconV1083 {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  text-transform: uppercase;
  box-shadow: 0 8px 18px rgba(39, 67, 125, .13);
}

#studentScreen .studentAppIconV1083--1 { background: linear-gradient(145deg, #3978ff, #5a62e8); }
#studentScreen .studentAppIconV1083--2 { background: linear-gradient(145deg, #765df0, #9a6cf2); }
#studentScreen .studentAppIconV1083--3 { background: linear-gradient(145deg, #18b978, #45c9a1); }
#studentScreen .studentAppIconV1083--4 { background: linear-gradient(145deg, #f39b3f, #f3b546); }
#studentScreen .studentAppIconV1083--5 { background: linear-gradient(145deg, #ef5f79, #e46ba3); }

#studentScreen .studentAppCopyV1083 {
  min-width: 0;
  display: grid;
  gap: 4px;
}

#studentScreen .studentAppCopyV1083 strong {
  overflow: hidden;
  color: #142543;
  font-size: 14px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#studentScreen .studentAppCopyV1083 small {
  overflow: hidden;
  color: #7a89a5;
  font-size: 11px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#studentScreen .studentAppTimeV1083 {
  min-width: 72px;
  display: grid;
  justify-items: end;
  gap: 2px;
}

#studentScreen .studentAppTimeV1083 strong {
  color: #17315f;
  font-size: 14px;
  font-weight: 900;
}

#studentScreen .studentAppTimeV1083 span {
  color: #8390aa;
  font-size: 10px;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .08em;
}

#studentScreen .studentAppsEmptyIconV1083 {
  color: #3978ff;
  background: #eef4ff;
}

#studentScreen .studentAppsEmptyIconV1083 svg {
  width: 25px;
  height: 25px;
}

@media (max-width: 900px) {
  #studentScreen nav.mobile-action-bar.school-mobile-nav.studentNavV1004 {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 4px !important;
  }

  #studentScreen .studentNavV1004 button {
    min-width: 0;
    padding-left: 3px !important;
    padding-right: 3px !important;
    font-size: 11px;
  }
}

@media (max-width: 720px) {
  #studentScreen .studentAppsV1083 {
    gap: 14px;
  }

  #studentScreen .studentAppsHeroV1083 {
    min-height: 156px;
    grid-template-columns: minmax(0, 1fr) 108px;
    gap: 6px;
    padding: 22px 18px;
    border-radius: 22px;
  }

  #studentScreen .studentAppsHeroV1083 h1 {
    font-size: 34px;
  }

  #studentScreen .studentAppsHeroV1083__copy > p:not(.eyebrow) {
    font-size: 13px;
  }

  #studentScreen .studentAppsHeroV1083__art svg {
    width: 108px;
  }

  #studentScreen .studentAppsSummaryV1083 {
    grid-template-columns: 1fr;
    gap: 15px;
    padding: 18px;
  }

  #studentScreen .studentAppsSummaryV1083__status {
    justify-items: start;
  }

  #studentScreen .studentAppsSummaryV1083__metric strong {
    font-size: 31px;
  }

  #studentScreen .studentAppRowV1083 {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 11px;
    min-height: 70px;
    padding: 11px 13px;
    border-radius: 17px;
  }

  #studentScreen .studentAppIconV1083 {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    font-size: 18px;
  }

  #studentScreen .studentAppTimeV1083 {
    min-width: 62px;
  }
}

@media (max-width: 390px) {
  #studentScreen .studentNavV1004 button {
    font-size: 10px;
  }

  #studentScreen .studentNavIconV1004 {
    height: 22px;
  }

  #studentScreen .studentNavIconV1004 svg {
    width: 21px;
    height: 21px;
  }

  #studentScreen .studentAppsHeroV1083 {
    grid-template-columns: minmax(0, 1fr) 88px;
  }

  #studentScreen .studentAppsHeroV1083__art svg {
    width: 88px;
  }

  #studentScreen .studentAppCopyV1083 small {
    max-width: 145px;
  }
}

/* STUDENT_APPS_BOTTOM_SPACE_V1084 */
@media (max-width: 900px) {
  #studentScreen #studentAppsView.studentAppsV1083 {
    padding-bottom:
      calc(
        118px
        + env(safe-area-inset-bottom)
      );
  }
}

/* STUDENT_APPS_REAL_ICONS_V1086 */
#studentScreen .studentAppIconV1083 {
  position: relative;
  overflow: hidden;
}

#studentScreen .studentAppIconImageV1086 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border-radius: inherit;
  background: #fff;
}

#studentScreen .studentAppIconFallbackV1086 {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
}

#studentScreen .studentAppIconFallbackV1086.hidden,
#studentScreen .studentAppIconImageV1086.hidden {
  display: none !important;
}

/* STUDENT_APPS_HIDE_PACKAGE_V1087 */
/* A segunda linha do card de Apps era o package_name técnico. */
#studentScreen #studentAppsView .studentAppCopyV1083 > small {
  display: none !important;
}

/* SCREEN_POLICY_REWARD_MODAL_V1088 */
.screenRewardDecisionCardV1088 {
  width: min(92vw, 480px);
}

.screenRewardSummaryV1088 {
  display: grid;
  gap: 6px;
  margin: 16px 0 6px;
  padding: 14px 15px;
  border-radius: 16px;
  background: rgba(255, 255, 255, .06);
}

.screenRewardSummaryV1088 strong {
  font-size: .95rem;
}

.screenRewardSummaryV1088 span {
  line-height: 1.45;
  opacity: .82;
}

.screenRewardActionsV1088 {
  display: grid;
  gap: 10px;
}

.screenRewardActionsV1088 .button {
  width: 100%;
}

/* ============================================================
   NEXO_SCREEN_POLICY_ADMIN_STYLE_V1090
   Limite diario + bonus manual + essencial sistema/admin
   ============================================================ */

.nexoScreenPolicyAdminV1090 {
  display: grid;
  gap: 12px;
  padding: 13px;
  border: 1px solid rgba(49, 91, 216, .12);
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
}

.nexoScreenPolicyHeadV1090,
.nexoManualBonusTitleV1090 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.nexoScreenPolicyHeadV1090 > span:first-child,
.nexoManualBonusTitleV1090 > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.nexoScreenPolicyHeadV1090 strong,
.nexoManualBonusTitleV1090 strong {
  color: #172846;
  font-size: 12.5px;
  font-weight: 850;
}

.nexoScreenPolicyHeadV1090 small,
.nexoManualBonusTitleV1090 small,
.nexoScreenPolicyActionsV1090 small {
  color: #7182a2;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.45;
}

.nexoScreenPolicyStateV1090,
#nexoManualBonusActiveBadgeV1090 {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid rgba(57, 88, 148, .12);
  border-radius: 999px;
  color: #60718e;
  background: #f0f4fa;
  font-size: 9.5px;
  font-weight: 850;
  white-space: nowrap;
}

.nexoScreenPolicyStateV1090[data-kind="ok"] {
  color: #23795c;
  border-color: rgba(35, 121, 92, .18);
  background: #eaf8f2;
}

.nexoScreenPolicyStateV1090[data-kind="manual"],
#nexoManualBonusActiveBadgeV1090[data-active="1"] {
  color: #7a4b0e;
  border-color: rgba(203, 139, 34, .22);
  background: #fff6df;
}

.nexoScreenPolicyStateV1090[data-kind="closed"] {
  color: #a0424d;
  border-color: rgba(178, 73, 82, .18);
  background: #fff0f2;
}

.nexoScreenPolicyGridV1090 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.nexoScreenPolicyGridV1090 label,
.nexoManualBonusFormV1090 label {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.nexoScreenPolicyGridV1090 label > span,
.nexoManualBonusFormV1090 label > span {
  color: #7182a2;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.nexoScreenPolicyGridV1090 input,
.nexoManualBonusFormV1090 input,
.nexoManualBonusFormV1090 select,
.nexoScreenPolicyInputUnitV1090 {
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
  border: 1px solid rgba(62, 91, 148, .16);
  border-radius: 12px;
  color: #172846;
  background: #fff;
  font: inherit;
}

.nexoScreenPolicyGridV1090 input,
.nexoManualBonusFormV1090 input,
.nexoManualBonusFormV1090 select {
  padding: 0 10px;
}

.nexoScreenPolicyInputUnitV1090 {
  display: flex;
  align-items: center;
  overflow: hidden;
}

.nexoScreenPolicyInputUnitV1090 input {
  min-width: 0;
  min-height: 40px;
  border: 0;
  border-radius: 0;
  outline: 0;
}

.nexoScreenPolicyInputUnitV1090 b {
  padding-right: 10px;
  color: #7a8ba8;
  font-size: 9.5px;
  font-weight: 850;
}

.nexoScreenPolicyActionsV1090 {
  display: flex;
  align-items: center;
  gap: 12px;
}

.nexoScreenPolicyActionsV1090 small {
  flex: 1;
}

.nexoManualBonusCardV1090 {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(203, 139, 34, .15);
  border-radius: 14px;
  background: #fffdf7;
}

.nexoManualBonusFormV1090 {
  display: grid;
  grid-template-columns: minmax(110px, .45fr) minmax(180px, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.nexoManualBonusFormV1090 .button {
  min-height: 42px;
  white-space: nowrap;
}

.nexoManualBonusListV1090 {
  display: grid;
  gap: 7px;
}

.nexoManualBonusItemV1090 {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid rgba(62, 91, 148, .10);
  border-radius: 12px;
  background: #fff;
}

.nexoManualBonusItemV1090[data-active="1"] {
  border-color: rgba(35, 121, 92, .16);
  background: #f4fbf8;
}

.nexoManualBonusItemV1090 > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.nexoManualBonusItemV1090 strong {
  color: #172846;
  font-size: 11px;
  font-weight: 850;
}

.nexoManualBonusItemV1090 small,
.nexoManualBonusItemV1090 em,
.nexoManualBonusEmptyV1090 {
  color: #7182a2;
  font-size: 9.5px;
  line-height: 1.4;
}

.nexoManualBonusItemV1090 em {
  overflow: hidden;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nexoManualBonusEmptyV1090 {
  padding: 8px 0 1px;
}

.familylinkAppSyncStateV2[data-kind="protected"] {
  color: #5e4aa3;
  background: #f1edff;
}

.familylinkAppModeV2[data-mode="essential"] {
  color: #5e4aa3;
  background: #f1edff;
}

.familylinkAppPolicyLineV2 select:disabled {
  color: #5e4aa3;
  background: #f4f1ff;
  cursor: not-allowed;
  opacity: 1;
}

@media (max-width: 760px) {
  .nexoScreenPolicyGridV1090 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nexoManualBonusFormV1090 {
    grid-template-columns: minmax(105px, .55fr) minmax(0, 1fr);
  }

  .nexoManualBonusFormV1090 .nexoManualBonusReasonV1090 {
    grid-column: 2;
  }

  .nexoManualBonusFormV1090 .button {
    grid-column: 1 / -1;
  }
}

@media (max-width: 520px) {
  .nexoScreenPolicyAdminV1090 {
    padding: 11px;
    border-radius: 14px;
  }

  .nexoScreenPolicyHeadV1090,
  .nexoManualBonusTitleV1090 {
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
  }

  .nexoScreenPolicyStateV1090,
  #nexoManualBonusActiveBadgeV1090 {
    width: fit-content;
  }

  .nexoScreenPolicyGridV1090 {
    grid-template-columns: 1fr 1fr;
  }

  .nexoScreenPolicyActionsV1090 {
    align-items: stretch;
    flex-direction: column;
  }

  .nexoScreenPolicyActionsV1090 .button {
    width: 100%;
  }

  .nexoManualBonusFormV1090 {
    grid-template-columns: 1fr;
  }

  .nexoManualBonusFormV1090 .nexoManualBonusReasonV1090,
  .nexoManualBonusFormV1090 .button {
    grid-column: 1;
  }

  .nexoManualBonusItemV1090 {
    align-items: flex-start;
  }
}

/* ============================================================
   NEXO_SCREEN_POLICY_ADMIN_STYLE_V1092
   ============================================================ */
.familylinkAppsManagerV1[open] > summary {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.familylinkAppsBodyV1 {
  display: grid;
  gap: 16px;
}

.familylinkAppsToolbarV1 {
  position: sticky;
  top: 0;
  z-index: 6;
  padding: 12px;
  border-radius: 16px;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  box-shadow: 0 6px 22px rgba(15,23,42,.08);
}

.nexoAppFiltersV1092 {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: thin;
}

.nexoAppFiltersV1092 button {
  white-space: nowrap;
}

.nexoAppGuideV1092 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
  padding: 12px 14px;
  border: 1px solid rgba(148,163,184,.28);
  border-radius: 14px;
  background: rgba(248,250,252,.82);
  font-size: 12px;
  line-height: 1.45;
}

.nexoAppGuideV1092 > strong {
  grid-column: 1 / -1;
  font-size: 13px;
}

.familylinkAppsStatsV1 {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.familylinkAppsStatsV1 > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(148,163,184,.12);
}

.familylinkAppsTableV1 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px !important;
}

.nexoAppCardV1092 {
  display: grid !important;
  gap: 12px;
  min-width: 0;
  padding: 14px !important;
  border: 1px solid rgba(148,163,184,.28) !important;
  border-radius: 18px !important;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15,23,42,.055);
}

.nexoAppCardV1092[data-policy="disabled"],
.nexoAppCardV1092[data-policy="unmanaged"] {
  background: rgba(248,250,252,.92);
}

.nexoAppMainV1092 {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) auto;
  gap: 11px;
  align-items: center;
  min-width: 0;
}

.nexoAppIconShellV1092 {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 13px;
  background: rgba(148,163,184,.14);
  box-shadow: inset 0 0 0 1px rgba(148,163,184,.16);
}

.nexoAppRealIconV1092 {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.nexoAppIconFallbackV1092 {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -.03em;
}

.nexoAppIdentityV1092 {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.nexoAppIdentityV1092 strong,
.nexoAppIdentityV1092 small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nexoAppIdentityV1092 strong {
  font-size: 14px;
}

.nexoAppIdentityV1092 small {
  opacity: .62;
  font-size: 10px;
}

.nexoAppStatusV1092 {
  align-self: start;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
  background: rgba(148,163,184,.14);
}

.nexoAppStatusV1092[data-kind="disabled"],
.nexoAppStatusV1092[data-kind="closed"] {
  background: rgba(239,68,68,.10);
  color: #991b1b;
}

.nexoAppStatusV1092[data-kind="normal"] {
  background: rgba(37,99,235,.10);
  color: #1d4ed8;
}

.nexoAppStatusV1092[data-kind="ok"] {
  background: rgba(16,185,129,.11);
  color: #047857;
}

.nexoAppStatusV1092[data-kind="reward"] {
  background: rgba(245,158,11,.13);
  color: #92400e;
}

.nexoAppStatusV1092[data-kind="protected"] {
  background: rgba(124,58,237,.10);
  color: #6d28d9;
}

.nexoAppRuleV1092 {
  display: grid;
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid rgba(148,163,184,.18);
}

.nexoAppRuleV1092 label {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 10px;
  align-items: center;
}

.nexoAppRuleV1092 label > span {
  font-size: 11px;
  font-weight: 800;
}

.nexoAppRuleV1092 select {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  border-radius: 11px;
  font-weight: 700;
}

.nexoAppPolicyHelpV1092 {
  padding-left: 46px;
  opacity: .7;
  line-height: 1.35;
}

@media (max-width: 980px) {
  .familylinkAppsTableV1 {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .familylinkAppsToolbarV1 {
    position: static;
  }

  .nexoAppGuideV1092 {
    grid-template-columns: 1fr;
  }

  .nexoAppGuideV1092 > strong {
    grid-column: auto;
  }

  .nexoAppMainV1092 {
    grid-template-columns: 44px minmax(0,1fr);
  }

  .nexoAppIconShellV1092 {
    width: 44px;
    height: 44px;
  }

  .nexoAppStatusV1092 {
    grid-column: 2;
    justify-self: start;
  }

  .nexoAppRuleV1092 label {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .nexoAppPolicyHelpV1092 {
    padding-left: 0;
  }
}



/* ============================================================
   NEXO_FAMILIA_ADMIN_PROFILE_V1093
   ============================================================ */

.nexoLegacyFamilyLinkHiddenV1093 {
  display: none !important;
}

.nexoScreenAppsPageV1093 {
  width: 100%;
}

.nexoScreenAppsPageHeadV1093 {
  display: grid;
  gap: 14px;
  margin: 0 0 18px;
}

.nexoScreenAppsPageHeadV1093 h1 {
  margin: 2px 0 4px;
}

.nexoScreenAppsPageHeadV1093 p {
  margin: 0;
}

.nexoScreenAppsBackV1093 {
  width: max-content;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(76, 120, 230, 0.18);
  border-radius: 14px;
  background: rgba(236, 244, 255, 0.92);
  color: #2868d8;
  font: inherit;
  font-weight: 800;
  padding: 9px 14px;
  cursor: pointer;
}

.nexoScreenAppsBackV1093 span:first-child {
  font-size: 20px;
  line-height: 1;
}

.nexoScreenAppsContentV1093 {
  width: 100%;
}

.nexoScreenAppsManagerV1093 {
  display: block;
  width: 100%;
  margin: 0;
  border: 0;
  background: transparent;
}

.nexoScreenAppsManagerV1093 > summary {
  display: none !important;
}

.nexoScreenAppsManagerV1093 > .familylinkAppsBodyV1 {
  display: block !important;
  padding-top: 0;
}

.nexoScreenAppsProfileActionV1093 {
  text-align: left;
}

.nexoScreenAppsActionIconV1093 svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

@media (max-width: 760px) {
  .nexoScreenAppsPageHeadV1093 {
    margin-top: 2px;
    margin-bottom: 14px;
  }

  .nexoScreenAppsBackV1093 {
    min-height: 40px;
    border-radius: 13px;
  }

  .nexoScreenAppsManagerV1093 > .familylinkAppsBodyV1 {
    padding-left: 0;
    padding-right: 0;
  }
}

/* NEXO_FAMILIA_ADMIN_PROFILE_V1093_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_SCREEN_APPS_V1094
   Visual fiel ao mockup aprovado
   ============================================================ */

#parentScreenAppsView {
  padding-bottom: 118px;
}

#parentScreenAppsView .nexoScreenAppsPageHeadV1093 {
  gap: 12px;
  margin-bottom: 20px;
}

#parentScreenAppsView .nexoScreenAppsPageHeadV1093 > div {
  display: grid;
  gap: 4px;
}

#parentScreenAppsView .nexoScreenAppsPageHeadV1093 .eyebrow {
  color: #2e74f3;
  letter-spacing: .18em;
  font-weight: 900;
  font-size: 12px;
}

#parentScreenAppsView .nexoScreenAppsPageHeadV1093 h1 {
  color: #0d1f4a;
  font-size: clamp(28px, 6vw, 42px);
  line-height: 1.02;
  letter-spacing: -.035em;
  margin: 0;
}

#parentScreenAppsView .nexoScreenAppsPageHeadV1093 p:not(.eyebrow) {
  color: #66789f;
  font-size: 16px;
  line-height: 1.35;
}

#parentScreenAppsView .nexoScreenAppsBackV1093 {
  border: 1px solid rgba(71, 127, 232, .22);
  background: linear-gradient(180deg, #eef6ff 0%, #e8f1ff 100%);
  color: #176be9;
  box-shadow: 0 8px 22px rgba(53, 105, 204, .08);
}

#familyLinkAppsManager.nexoScreenAppsManagerV1093 {
  background: transparent !important;
}

#familyLinkAppsManager .familylinkAppsBodyV1 {
  display: grid !important;
  gap: 14px;
}

.nexoToolbarLegacyHiddenV1094,
.nexoFilterChipsLegacyHiddenV1094,
.nexoAuxHiddenV1094,
.nexoSearchNativeLabelV1094,
.nexoRefreshLegacyHiddenV1094 {
  display: none !important;
}

/* Aluno */
.nexoStudentCardV1094 {
  position: relative;
  display: grid;
  grid-template-columns: auto 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 92px;
  padding: 14px 18px;
  border: 1px solid #dce6f7;
  border-radius: 22px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 10px 30px rgba(45, 74, 125, .055);
  overflow: hidden;
}

.nexoStudentLabelV1094 {
  color: #5f7197;
  font-size: 14px;
  font-weight: 800;
  padding-right: 14px;
  border-right: 1px solid #e4ebf6;
}

.nexoStudentAvatarV1094 {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 30px;
  line-height: 1;
  background: linear-gradient(145deg, #ffe9ed, #fff6d9);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.8);
}

.nexoStudentCopyV1094 {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nexoStudentCopyV1094 strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #10214c;
  font-size: 17px;
  line-height: 1.18;
}

.nexoStudentCopyV1094 small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #667aa5;
  font-size: 14px;
}

.nexoStudentChevronV1094 {
  color: #071c51;
  font-size: 24px;
  font-weight: 900;
  transform: translateY(-2px);
}

.nexoStudentNativeSelectV1094 {
  position: absolute !important;
  inset: 0;
  margin: 0 !important;
  opacity: 0;
  cursor: pointer;
  z-index: 3;
}

.nexoStudentNativeSelectV1094 > span {
  display: none !important;
}

.nexoStudentNativeSelectV1094 select {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  cursor: pointer;
}

/* Política / bônus recolhidos */
.nexoScreenPolicyAdminV1090 {
  display: grid !important;
  gap: 12px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.nexoCompactAccordionV1094 {
  overflow: hidden;
  border: 1px solid #dce6f7;
  border-radius: 22px;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 10px 30px rgba(45, 74, 125, .05);
}

.nexoCompactAccordionSummaryV1094 {
  width: 100%;
  min-height: 96px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
}

.nexoCompactAccordionIconV1094 {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  font-size: 29px;
  font-weight: 800;
}

.nexoPolicyIconV1094 {
  color: #1269eb;
  background: linear-gradient(145deg, #edf5ff, #e5efff);
}

.nexoBonusIconV1094 {
  color: #6e37e5;
  background: linear-gradient(145deg, #f1eaff, #f7f1ff);
}

.nexoCompactAccordionCopyV1094 {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nexoCompactAccordionCopyV1094 strong {
  color: #10214c;
  font-size: 17px;
  line-height: 1.15;
}

.nexoCompactAccordionCopyV1094 small {
  color: #667aa5;
  font-size: 14px;
  line-height: 1.25;
}

.nexoCompactAccordionHintV1094 {
  padding: 8px 13px;
  border-radius: 999px;
  background: #ebf3ff;
  color: #176be9;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.nexoCompactAccordionChevronV1094 {
  color: #071c51;
  font-size: 23px;
  font-weight: 900;
  transition: transform .18s ease;
}

.nexoCompactAccordionV1094.is-open .nexoCompactAccordionChevronV1094 {
  transform: rotate(180deg);
}

.nexoCompactAccordionBodyV1094 {
  padding: 0 18px 18px;
}

.nexoCompactAccordionBodyV1094[hidden] {
  display: none !important;
}

.nexoCompactAccordionBodyV1094 .nexoScreenPolicyHeadV1090 {
  margin-top: 2px;
}

.nexoCompactAccordionBodyV1094 .nexoManualBonusCardV1090 {
  margin: 0;
  border-radius: 18px;
}

/* Estatísticas */
#familyLinkAppsStats.familylinkAppsStatsV1 {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
  margin: 2px 0 0;
  padding: 0;
  background: transparent;
  border: 0;
}

#familyLinkAppsStats .nexoStatCardV1094 {
  grid-column: span 2;
  min-height: 76px;
  display: grid;
  grid-template-columns: 40px auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 10px;
  padding: 12px 14px;
  border: 1px solid #dce6f7;
  border-radius: 19px;
  background: #f6f9ff;
  color: #53668f;
}

#familyLinkAppsStats .nexoStatCardV1094:nth-child(4),
#familyLinkAppsStats .nexoStatCardV1094:nth-child(5) {
  grid-column: span 3;
}

#familyLinkAppsStats .nexoStatIconV1094 {
  grid-row: 1 / 3;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  font-style: normal;
  font-size: 24px;
  font-weight: 900;
}

#familyLinkAppsStats .nexoStatCardV1094 b {
  align-self: end;
  color: #176be9;
  font-size: 23px;
  line-height: 1;
}

#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="installed"] {
  background: linear-gradient(145deg, #eef7ff, #edf4ff);
  color: #456898;
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="installed"] .nexoStatIconV1094 {
  background: #e4f2ff;
  color: #1269eb;
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="disabled"] {
  background: linear-gradient(145deg, #fff4f6, #fff0f1);
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="disabled"] .nexoStatIconV1094,
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="disabled"] b {
  color: #e31838;
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="normal"] {
  background: linear-gradient(145deg, #f1f6ff, #eaf2ff);
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="unlimited"] {
  background: linear-gradient(145deg, #f7f0ff, #f2ebff);
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="unlimited"] .nexoStatIconV1094,
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="unlimited"] b {
  color: #6e37e5;
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="essential"] {
  background: linear-gradient(145deg, #effcf6, #e9f9f1);
}
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="essential"] .nexoStatIconV1094,
#familyLinkAppsStats .nexoStatCardV1094[data-nexo-stat="essential"] b {
  color: #0aa66a;
}

/* Busca + filtro */
.nexoSearchFilterV1094 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 138px;
  gap: 10px;
  align-items: center;
}

.nexoSearchShellV1094 {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  min-height: 54px;
  padding: 0 14px;
  border: 1px solid #dce6f7;
  border-radius: 17px;
  background: #f7f9fd;
}

.nexoSearchIconV1094 {
  color: #5a70a0;
  font-size: 27px;
  line-height: 1;
}

#familyLinkAppsSearch {
  width: 100% !important;
  min-width: 0;
  height: 50px !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  color: #13234c;
  font-size: 16px;
  box-shadow: none !important;
}

#familyLinkAppsSearch::placeholder {
  color: #8c9ab8;
}

.nexoAppFilterSelectV1094 {
  width: 100%;
  min-height: 54px;
  padding: 0 42px 0 16px;
  border: 1px solid #dce6f7;
  border-radius: 17px;
  background: #fff;
  color: #10214c;
  font: inherit;
  font-size: 15px;
  font-weight: 800;
}

/* Lista compacta de apps */
#familyLinkAppsTable.familylinkAppsTableV1 {
  display: grid;
  gap: 8px;
}

#familyLinkAppsTable .nexoAppCardV1092 {
  overflow: hidden;
  padding: 0 !important;
  border: 1px solid #dce6f7 !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 8px 22px rgba(45, 74, 125, .035) !important;
}

#familyLinkAppsTable .nexoAppMainV1092 {
  grid-template-columns: 56px minmax(0, 1fr) auto 34px !important;
  gap: 12px !important;
  min-height: 78px;
  padding: 10px 12px !important;
  cursor: pointer;
}

#familyLinkAppsTable .nexoAppIconShellV1092 {
  width: 52px !important;
  height: 52px !important;
  border-radius: 15px !important;
}

#familyLinkAppsTable .nexoAppIdentityV1092 {
  min-width: 0;
  align-self: center;
}

#familyLinkAppsTable .nexoAppIdentityV1092 strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #0e1f49;
  font-size: 16px;
  line-height: 1.2;
}

#familyLinkAppsTable .nexoAppIdentityV1092 small {
  display: block;
  margin-top: 3px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #7080a1;
  font-size: 12.5px;
}

#familyLinkAppsTable .nexoAppStatusV1092 {
  align-self: center;
  justify-self: end;
  margin: 0 !important;
  padding: 8px 13px !important;
  border-radius: 999px !important;
  white-space: nowrap;
  font-size: 12.5px !important;
  font-weight: 900 !important;
}

.nexoAppChevronV1094 {
  width: 34px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: #071c51;
  font-size: 31px;
  line-height: 1;
  cursor: pointer;
}

#familyLinkAppsTable .nexoAppRuleV1092 {
  display: none !important;
  padding: 0 14px 15px !important;
  border-top: 1px solid #edf1f7;
}

#familyLinkAppsTable .nexoAppCardV1092.is-expanded .nexoAppRuleV1092 {
  display: grid !important;
  gap: 8px;
  padding-top: 12px !important;
}

#familyLinkAppsTable .nexoAppRuleV1092 label > span {
  color: #13234c;
  font-size: 13px;
  font-weight: 900;
}

#familyLinkAppsTable .nexoAppRuleV1092 select {
  min-height: 48px;
  margin-top: 6px;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 800;
}

#familyLinkAppsMessage.familylinkAppsMessageV1 {
  margin: 0;
  min-height: 0;
  font-size: 12px;
}

@media (max-width: 640px) {
  #parentScreenAppsView {
    padding-left: 0;
    padding-right: 0;
  }

  #familyLinkAppsManager .familylinkAppsBodyV1 {
    gap: 12px;
  }

  .nexoStudentCardV1094 {
    grid-template-columns: auto 48px minmax(0, 1fr) auto;
    gap: 11px;
    min-height: 84px;
    padding: 12px 14px;
    border-radius: 20px;
  }

  .nexoStudentAvatarV1094 {
    width: 48px;
    height: 48px;
    font-size: 27px;
  }

  .nexoCompactAccordionSummaryV1094 {
    grid-template-columns: 48px minmax(0, 1fr) auto auto;
    min-height: 86px;
    gap: 10px;
    padding: 12px 14px;
  }

  .nexoCompactAccordionIconV1094 {
    width: 48px;
    height: 48px;
    border-radius: 15px;
    font-size: 25px;
  }

  .nexoCompactAccordionHintV1094 {
    padding: 7px 10px;
    font-size: 12px;
  }

  #familyLinkAppsStats.familylinkAppsStatsV1 {
    gap: 8px;
  }

  #familyLinkAppsStats .nexoStatCardV1094 {
    min-height: 70px;
    grid-template-columns: 34px auto;
    column-gap: 8px;
    padding: 10px;
    border-radius: 17px;
    font-size: 12px;
  }

  #familyLinkAppsStats .nexoStatIconV1094 {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    font-size: 20px;
  }

  #familyLinkAppsStats .nexoStatCardV1094 b {
    font-size: 21px;
  }

  .nexoSearchFilterV1094 {
    grid-template-columns: minmax(0, 1fr) 112px;
    gap: 8px;
  }

  .nexoAppFilterSelectV1094 {
    padding-left: 12px;
    font-size: 14px;
  }

  #familyLinkAppsTable .nexoAppMainV1092 {
    grid-template-columns: 48px minmax(0, 1fr) auto 28px !important;
    gap: 9px !important;
    min-height: 72px;
    padding: 9px 10px !important;
  }

  #familyLinkAppsTable .nexoAppIconShellV1092 {
    width: 46px !important;
    height: 46px !important;
    border-radius: 13px !important;
  }

  #familyLinkAppsTable .nexoAppIdentityV1092 strong {
    font-size: 14.5px;
  }

  #familyLinkAppsTable .nexoAppIdentityV1092 small {
    font-size: 11.5px;
  }

  #familyLinkAppsTable .nexoAppStatusV1092 {
    padding: 7px 10px !important;
    font-size: 11.5px !important;
  }

  .nexoAppChevronV1094 {
    width: 28px;
    font-size: 27px;
  }
}

@media (max-width: 430px) {
  .nexoStudentLabelV1094 {
    display: none;
  }

  .nexoStudentCardV1094 {
    grid-template-columns: 48px minmax(0, 1fr) auto;
  }

  .nexoCompactAccordionSummaryV1094 {
    grid-template-columns: 46px minmax(0, 1fr) auto;
  }

  .nexoCompactAccordionHintV1094 {
    display: none;
  }

  #familyLinkAppsTable .nexoAppMainV1092 {
    grid-template-columns: 46px minmax(0, 1fr) auto 24px !important;
  }

  #familyLinkAppsTable .nexoAppStatusV1092 {
    max-width: 112px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* NEXO_FAMILIA_ADMIN_SCREEN_APPS_V1094_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_SCREEN_APPS_V1095
   Acabamento visual - mockup aprovado
   ============================================================ */

#parentScreenAppsView .nexoScreenAppsPageHeadV1093 {
  margin-bottom: 16px;
}

.nexoStudentCardV1094 {
  min-height: 82px;
  padding-top: 11px;
  padding-bottom: 11px;
}

.nexoStudentCopyV1094 strong {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  font-size: 16px;
  line-height: 1.12;
}

.nexoStudentCopyV1094 small {
  font-size: 13px;
}

.nexoCompactAccordionSummaryV1094 {
  min-height: 82px;
  grid-template-columns: 48px minmax(0, 1fr) auto auto;
  gap: 10px;
  padding: 11px 15px;
}

.nexoCompactAccordionIconV1094 {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  font-size: 0;
}

.nexoCompactAccordionIconV1094 svg,
.nexoStatIconV1094 svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nexoCompactAccordionCopyV1094 strong {
  font-size: 15.5px;
  line-height: 1.1;
}

.nexoCompactAccordionCopyV1094 small {
  font-size: 12.5px;
}

.nexoCompactAccordionHintV1094 {
  padding: 7px 10px;
  font-size: 11.5px;
}

#familyLinkAppsStats.familylinkAppsStatsV1 {
  gap: 8px;
}

#familyLinkAppsStats .nexoStatCardV1094 {
  min-height: 66px;
  grid-template-columns: 34px auto;
  column-gap: 8px;
  padding: 9px 11px;
  border-radius: 17px;
}

#familyLinkAppsStats .nexoStatIconV1094 {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  font-size: 0;
}

#familyLinkAppsStats .nexoStatIconV1094 svg {
  width: 19px;
  height: 19px;
}

#familyLinkAppsStats .nexoStatCardV1094 b {
  font-size: 20px;
}

#familyLinkAppsStats .nexoStatCardV1094 {
  font-size: 12px;
  line-height: 1.15;
}

.nexoSearchFilterV1094 {
  margin-top: 2px;
  margin-bottom: 4px;
}

#familyLinkAppsTable.familylinkAppsTableV1 {
  padding-bottom: 22px;
}

@media (max-width: 760px) {
  .nexoCompactAccordionSummaryV1094 {
    grid-template-columns: 44px minmax(0, 1fr) auto;
  }

  .nexoCompactAccordionHintV1094 {
    display: none;
  }

  .nexoCompactAccordionIconV1094 {
    width: 44px;
    height: 44px;
  }

  .nexoCompactAccordionCopyV1094 strong {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  #familyLinkAppsStats .nexoStatCardV1094 {
    min-height: 62px;
  }
}

@media (max-width: 430px) {
  #parentScreenAppsView .nexoScreenAppsPageHeadV1093 h1 {
    font-size: 30px;
  }

  .nexoStudentCardV1094 {
    min-height: 76px;
  }

  .nexoStudentCopyV1094 strong {
    font-size: 15px;
  }

  .nexoCompactAccordionSummaryV1094 {
    min-height: 76px;
    padding: 10px 12px;
  }

  .nexoCompactAccordionCopyV1094 strong {
    font-size: 14.5px;
  }

  #familyLinkAppsStats .nexoStatCardV1094 {
    padding: 8px 9px;
  }
}

/* NEXO_FAMILIA_ADMIN_SCREEN_APPS_V1095_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_SCREEN_APPS_V1096
   Fidelidade da lista ao mockup aprovado.
   ============================================================ */

/* Busca em largura total; filtro em segunda linha, alinhado à direita. */
.nexoSearchFilterV1094 {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px !important;
  margin-top: 4px !important;
  margin-bottom: 8px !important;
}

.nexoSearchShellV1094 {
  width: 100% !important;
}

.nexoAppFilterSelectV1094 {
  width: 128px !important;
  min-width: 128px !important;
  justify-self: end !important;
}

/* Card como no mockup: identidade e classificacao empilhadas. */
#familyLinkAppsTable.familylinkAppsTableV1 {
  gap: 8px !important;
}

#familyLinkAppsTable .nexoAppCardV1092 {
  border-radius: 18px !important;
  overflow: hidden;
}

#familyLinkAppsTable .nexoAppMainV1092 {
  display: grid !important;
  grid-template-columns: 54px minmax(0, 1fr) 30px !important;
  grid-template-rows: auto auto !important;
  column-gap: 12px !important;
  row-gap: 7px !important;
  min-height: 92px !important;
  padding: 12px 14px !important;
  align-items: center !important;
}

#familyLinkAppsTable .nexoAppIconShellV1092 {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  width: 52px !important;
  height: 52px !important;
  align-self: center !important;
  border-radius: 14px !important;
}

#familyLinkAppsTable .nexoAppIdentityV1092 {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  align-self: end !important;
}

#familyLinkAppsTable .nexoAppIdentityV1092 strong {
  font-size: 16px !important;
  line-height: 1.15 !important;
  font-weight: 850 !important;
}

#familyLinkAppsTable .nexoAppIdentityV1092 small {
  margin-top: 3px !important;
  font-size: 12.5px !important;
  line-height: 1.2 !important;
}

#familyLinkAppsTable .nexoAppStatusV1092 {
  grid-column: 2 !important;
  grid-row: 2 !important;
  justify-self: start !important;
  align-self: start !important;
  max-width: min(100%, 190px) !important;
  margin: 0 !important;
  padding: 6px 11px !important;
  font-size: 12px !important;
  line-height: 1.1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

#familyLinkAppsTable .nexoAppChevronV1094 {
  grid-column: 3 !important;
  grid-row: 1 / 3 !important;
  width: 30px !important;
  height: 100% !important;
  align-self: stretch !important;
  justify-self: end !important;
  font-size: 29px !important;
}

#familyLinkAppsTable .nexoAppRuleV1092 {
  padding-left: 14px !important;
  padding-right: 14px !important;
}

@media (max-width: 430px) {
  #familyLinkAppsTable .nexoAppMainV1092 {
    grid-template-columns: 50px minmax(0, 1fr) 26px !important;
    column-gap: 10px !important;
    min-height: 88px !important;
    padding: 11px 12px !important;
  }

  #familyLinkAppsTable .nexoAppIconShellV1092 {
    width: 48px !important;
    height: 48px !important;
  }

  #familyLinkAppsTable .nexoAppIdentityV1092 strong {
    font-size: 15px !important;
  }

  #familyLinkAppsTable .nexoAppIdentityV1092 small {
    font-size: 11.5px !important;
  }

  #familyLinkAppsTable .nexoAppStatusV1092 {
    max-width: 170px !important;
    padding: 6px 10px !important;
    font-size: 11.5px !important;
  }

  .nexoAppFilterSelectV1094 {
    width: 122px !important;
    min-width: 122px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_SCREEN_APPS_V1096_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_CENTER_V1097
   Apenas a area central aprovada.
   ============================================================ */

/* Quatro cards, 2 x 2. */
#familyLinkAppsStats.familylinkAppsStatsV1 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#familyLinkAppsStats .nexoStatCardV1094 {
  grid-column: auto !important;
  min-height: 104px !important;
  grid-template-columns: 66px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  column-gap: 10px !important;
  padding: 13px 14px !important;
  border-radius: 20px !important;
}

#familyLinkAppsStats .nexoStatIconV1094 {
  grid-row: 1 / 3 !important;
  width: 64px !important;
  height: 64px !important;
  display: grid !important;
  place-items: center !important;
  border: 0 !important;
  background: transparent !important;
}

#familyLinkAppsStats .nexoStatImageV1097 {
  width: 62px !important;
  height: 62px !important;
  display: block !important;
  object-fit: contain !important;
  filter: drop-shadow(0 7px 9px rgba(44, 63, 104, .14));
}

#familyLinkAppsStats .nexoStatCardV1094 b {
  align-self: end !important;
  font-size: 26px !important;
  line-height: 1 !important;
}

/* Só o campo de busca; nenhum dropdown/chip/filtro adicional. */
.nexoSearchFilterV1094.nexoSearchOnlyV1097 {
  display: block !important;
  margin-top: 2px !important;
  margin-bottom: 8px !important;
}

.nexoSearchOnlyV1097 .nexoSearchShellV1094 {
  width: 100% !important;
}

#nexoAppFilterSelectV1094,
#familyLinkAppsFilters {
  display: none !important;
}

@media (max-width: 430px) {
  #familyLinkAppsStats.familylinkAppsStatsV1 {
    gap: 9px !important;
  }

  #familyLinkAppsStats .nexoStatCardV1094 {
    min-height: 96px !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    padding: 11px 12px !important;
    column-gap: 8px !important;
  }

  #familyLinkAppsStats .nexoStatIconV1094 {
    width: 54px !important;
    height: 54px !important;
  }

  #familyLinkAppsStats .nexoStatImageV1097 {
    width: 53px !important;
    height: 53px !important;
  }

  #familyLinkAppsStats .nexoStatCardV1094 b {
    font-size: 24px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_CENTER_V1097_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_CENTER_V1098
   SVG compacto + cards como filtros.
   ============================================================ */

#familyLinkAppsStats .nexoStatCardV1094 {
  min-height: 92px !important;
  grid-template-columns: 48px minmax(0, 1fr) !important;
  column-gap: 10px !important;
  padding: 11px 13px !important;
  cursor: pointer !important;
  user-select: none;
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    border-color .15s ease;
}

#familyLinkAppsStats .nexoStatCardV1094:active {
  transform: scale(.985);
}

#familyLinkAppsStats .nexoStatIconV1094 {
  width: 46px !important;
  height: 46px !important;
}

#familyLinkAppsStats .nexoStatSvgV1098 {
  width: 44px !important;
  height: 44px !important;
  display: block !important;
  object-fit: contain !important;
  filter: none !important;
}

#familyLinkAppsStats .nexoStatCardV1094 b {
  font-size: 24px !important;
}

#familyLinkAppsStats .nexoStatCardV1094.is-filter-active-v1098 {
  border-color: rgba(37, 99, 235, .42) !important;
  box-shadow:
    0 0 0 2px rgba(59, 130, 246, .09),
    0 10px 28px rgba(44, 91, 180, .09) !important;
}

#familyLinkAppsStats .nexoStatCardV1094.is-filter-active-v1098::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 12px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #2563eb;
  box-shadow: 0 0 0 4px rgba(37, 99, 235, .10);
}

#familyLinkAppsStats .nexoStatCardV1094 {
  position: relative;
}

@media (max-width: 430px) {
  #familyLinkAppsStats .nexoStatCardV1094 {
    min-height: 86px !important;
    grid-template-columns: 42px minmax(0, 1fr) !important;
    padding: 10px 11px !important;
    column-gap: 8px !important;
  }

  #familyLinkAppsStats .nexoStatIconV1094 {
    width: 40px !important;
    height: 40px !important;
  }

  #familyLinkAppsStats .nexoStatSvgV1098 {
    width: 39px !important;
    height: 39px !important;
  }

  #familyLinkAppsStats .nexoStatCardV1094 b {
    font-size: 22px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_CENTER_V1098_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_CENTER_V1099
   Ajuste aprovado: somente 15% menos altura nos 4 cards-filtro.
   Largura, SVGs, contadores, filtros e restante da tela intactos.
   ============================================================ */

#familyLinkAppsStats .nexoStatCardV1094 {
  min-height: 78px !important; /* 92px -> 78px (-15,2%) */
  padding-top: 7px !important;
  padding-bottom: 7px !important;
}

@media (max-width: 430px) {
  #familyLinkAppsStats .nexoStatCardV1094 {
    min-height: 73px !important; /* 86px -> 73px (-15,1%) */
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_CENTER_V1099_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_CENTER_V1100_REV2
   - 4 cards: mais 20% menores somente na altura
   - SVGs compactos e sem recorte
   - remove "Família" central do header dos pais
   ============================================================ */

#parentScreen .school-top-context {
  display: none !important;
}

/* Mantém largura/colunas; reduz somente a altura. */
#familyLinkAppsStats .nexoStatCardV1094 {
  min-height: 62px !important; /* 78px -> 62px (-20,5%) */
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

#familyLinkAppsStats .nexoStatIconV1094 {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  overflow: visible !important;
}

#familyLinkAppsStats .nexoStatSvgV1098 {
  width: 34px !important;
  height: 34px !important;
  display: block !important;
  object-fit: contain !important;
  overflow: visible !important;
}

#familyLinkAppsStats .nexoStatCardV1094 b {
  font-size: 21px !important;
}

@media (max-width: 430px) {
  #familyLinkAppsStats .nexoStatCardV1094 {
    min-height: 58px !important; /* 73px -> 58px (-20,5%) */
    padding-top: 3px !important;
    padding-bottom: 3px !important;
  }

  #familyLinkAppsStats .nexoStatIconV1094 {
    width: 33px !important;
    height: 33px !important;
    min-width: 33px !important;
  }

  #familyLinkAppsStats .nexoStatSvgV1098 {
    width: 31px !important;
    height: 31px !important;
  }

  #familyLinkAppsStats .nexoStatCardV1094 b {
    font-size: 20px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_CENTER_V1100_REV2_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_CENTER_V1103_FINAL
   Acabamento das imagens escolhidas.
   Altura e largura dos cards permanecem as da V1100 REV2.
   ============================================================ */

#familyLinkAppsStats .nexoStatCardV1103 {
  cursor: pointer !important;
  user-select: none !important;
}

#familyLinkAppsStats .nexoStatIconV1103 {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  display: grid !important;
  place-items: center !important;
  overflow: visible !important;
}

#familyLinkAppsStats .nexoStatImageV1103 {
  width: 36px !important;
  height: 36px !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center !important;
  overflow: visible !important;
  filter: none !important;
  pointer-events: none !important;
}

#familyLinkAppsStats .nexoStatTextV1103 {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  line-height: 1.04 !important;
}

#familyLinkAppsStats .nexoStatTextV1103 > span {
  display: block !important;
}

@media (max-width: 430px) {
  #familyLinkAppsStats .nexoStatIconV1103 {
    width: 33px !important;
    height: 33px !important;
    min-width: 33px !important;
  }

  #familyLinkAppsStats .nexoStatImageV1103 {
    width: 33px !important;
    height: 33px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_CENTER_V1103_FINAL_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_CENTER_V1104
   Ajustes visuais sobre a tela real:
   - imagens +20%
   - números centralizados
   - labels com primeira letra maiúscula
   - altura/largura dos cards preservadas
   ============================================================ */

/* Ícones: 36px -> 43px (+19,4%), mobile 33px -> 40px (+21,2%). */
#familyLinkAppsStats .nexoStatIconV1103 {
  width: 43px !important;
  height: 43px !important;
  min-width: 43px !important;
}

#familyLinkAppsStats .nexoStatImageV1103 {
  width: 43px !important;
  height: 43px !important;
}

/*
 * O bloco texto ocupa o espaço restante do card.
 * Número e descrição ficam centralizados dentro desse bloco,
 * sem alterar a posição do ícone nem a altura dos cards.
 */
#familyLinkAppsStats .nexoStatTextV1103 {
  flex: 1 1 auto !important;
  align-items: center !important;
  text-align: center !important;
}

#familyLinkAppsStats .nexoStatTextV1103 > b,
#familyLinkAppsStats .nexoStatTextV1103 > span {
  width: 100% !important;
  text-align: center !important;
}

@media (max-width: 430px) {
  #familyLinkAppsStats .nexoStatIconV1103 {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
  }

  #familyLinkAppsStats .nexoStatImageV1103 {
    width: 40px !important;
    height: 40px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_CENTER_V1104_END */

/* NEXO_FAMILIA_ADMIN_CENTER_V1105 */
#familyLinkAppsStats .nexoStatCardV1103 {
  position: relative !important;
}
#familyLinkAppsStats .nexoStatTextV1103 {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  pointer-events: none !important;
}
#familyLinkAppsStats .nexoStatTextV1103 > b {
  position: absolute !important;
  left: 50% !important;
  top: 7px !important;
  width: auto !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
  text-align: center !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
#familyLinkAppsStats .nexoStatTextV1103 > span {
  position: absolute !important;
  left: 50% !important;
  bottom: 7px !important;
  width: max-content !important;
  max-width: 70% !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
  text-align: center !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
}
#familyLinkAppsStats .nexoStatIconV1103 {
  position: relative !important;
  z-index: 2 !important;
  flex: 0 0 auto !important;
}
@media (max-width: 430px) {
  #familyLinkAppsStats .nexoStatTextV1103 > b {
    top: 6px !important;
  }
  #familyLinkAppsStats .nexoStatTextV1103 > span {
    bottom: 6px !important;
  }
}
/* NEXO_FAMILIA_ADMIN_CENTER_V1105_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_V1106
   ACABAMENTO DA MENSAGEM + FORMULARIO DE POLITICA
   ============================================================ */

/* Mensagem de sincronização sempre visível e fora de qualquer sobreposição. */
#familyLinkAppsMessage.familylinkAppsMessageV1 {
  position: relative !important;
  z-index: 4 !important;
  display: block !important;
  min-height: 22px !important;
  margin: 10px 4px 16px !important;
  padding: 0 2px !important;
  line-height: 1.35 !important;
  overflow: visible !important;
}

#familyLinkAppsMessage.familylinkAppsMessageV1[data-kind="ok"] {
  color: #23795c !important;
  font-weight: 800 !important;
}

/* Política: espaçamento e hierarquia visual mais limpos. */
.nexoScreenPolicyAdminV1090 {
  gap: 16px !important;
  padding: 16px !important;
}

.nexoScreenPolicyHeadV1090 {
  gap: 10px !important;
}

.nexoScreenPolicyHeadV1090 strong {
  font-size: 13.5px !important;
}

.nexoScreenPolicyHeadV1090 small {
  margin-top: 2px !important;
  font-size: 10.5px !important;
}

/* Campos bem separados e de tamanho consistente. */
.nexoScreenPolicyGridV1090 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px 14px !important;
}

.nexoScreenPolicyGridV1090 label {
  gap: 7px !important;
}

.nexoScreenPolicyGridV1090 label > span {
  min-height: 14px !important;
  font-size: 9.5px !important;
  line-height: 1.2 !important;
}

.nexoScreenPolicyGridV1090 input,
.nexoScreenPolicyInputUnitV1090 {
  min-height: 48px !important;
  border-radius: 14px !important;
  border-color: rgba(62, 91, 148, .18) !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(31, 56, 105, .035) !important;
}

.nexoScreenPolicyInputUnitV1090 input {
  min-height: 46px !important;
  font-size: 16px !important;
}

.nexoScreenPolicyGridV1090 input[type="time"] {
  padding-inline: 12px !important;
  text-align: center !important;
  font-size: 16px !important;
}

/* Botão principal independente e nota em caixa discreta. */
.nexoScreenPolicyActionsV1090 {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  align-items: stretch !important;
}

#nexoScreenSavePolicy {
  width: 100% !important;
  min-height: 50px !important;
  margin: 0 !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  font-weight: 850 !important;
}

.nexoScreenPolicyActionsV1090 small {
  display: block !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  color: #6d7f9c !important;
  background: #f3f6fb !important;
  line-height: 1.45 !important;
}

/* Bônus manual também acompanha o mesmo acabamento quando aberto. */
.nexoManualBonusCardV1090 {
  gap: 14px !important;
  padding: 14px !important;
  border-radius: 14px !important;
}

.nexoManualBonusFormV1090 {
  gap: 10px !important;
}

.nexoManualBonusFormV1090 input,
.nexoManualBonusFormV1090 select,
.nexoManualBonusFormV1090 .button {
  min-height: 46px !important;
  border-radius: 13px !important;
}

@media (max-width: 430px) {
  #familyLinkAppsMessage.familylinkAppsMessageV1 {
    margin: 10px 6px 16px !important;
    min-height: 24px !important;
    font-size: 10.5px !important;
  }

  .nexoScreenPolicyAdminV1090 {
    gap: 15px !important;
    padding: 16px 15px !important;
  }

  .nexoScreenPolicyHeadV1090 {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
  }

  .nexoScreenPolicyStateV1090 {
    width: fit-content !important;
    min-height: 27px !important;
  }

  .nexoScreenPolicyGridV1090 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 13px 12px !important;
  }

  .nexoScreenPolicyGridV1090 input,
  .nexoScreenPolicyInputUnitV1090 {
    min-height: 48px !important;
  }

  .nexoScreenPolicyInputUnitV1090 input {
    min-height: 46px !important;
  }

  #nexoScreenSavePolicy {
    min-height: 50px !important;
  }

  .nexoManualBonusFormV1090 {
    grid-template-columns: 1fr !important;
  }

  .nexoManualBonusFormV1090 .button {
    width: 100% !important;
  }
}

/* NEXO_FAMILIA_ADMIN_V1106_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_V1107R2
   Revisão estrutural do accordion + cards compactos
   ============================================================ */

/* 1) O contêiner externo guarda apenas os dois accordions.
      Remove o padding reintroduzido pela V1106. */
#familyLinkAppsManager .nexoScreenPolicyAdminV1090 {
  padding: 0 !important;
  gap: 14px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* 2) Espaçamento passa para o corpo REAL que abre/fecha. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 {
  padding: 0 16px 16px !important;
  box-sizing: border-box !important;
  min-width: 0 !important;
  overflow: visible !important;
}

#familyLinkAppsManager .nexoCompactAccordionBodyV1094[hidden] {
  display: none !important;
}

/* 3) Grade interna real: 2x2, sem larguras mínimas escondidas. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyGridV1090 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 13px 14px !important;
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyGridV1090 > label {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyGridV1090 input,
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyInputUnitV1090 {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* 4) Horários com a mesma geometria dos campos 60/30. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyGridV1090 input[type="time"] {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 10px !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
  text-align: center !important;
  overflow: hidden !important;
}

/* 5) Ações também pertencem ao corpo aberto. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyActionsV1090 {
  width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  margin-top: 2px !important;
}

/* 6) Mensagem agora está no DOM antes do aluno; CSS fica simples. */
#familyLinkAppsMessage.familylinkAppsMessageV1 {
  position: static !important;
  z-index: auto !important;
  display: block !important;
  min-height: 20px !important;
  margin: 2px 4px 8px !important;
  padding: 0 !important;
  line-height: 1.3 !important;
  overflow: visible !important;
}

/* 7) Cards de resumo compactos, sem reduzir largura/imagens. */
#familyLinkAppsStats .nexoStatCardV1094,
#familyLinkAppsStats .nexoStatCardV1103 {
  min-height: 49px !important;
  height: 49px !important;
  padding-top: 2px !important;
  padding-bottom: 2px !important;
}

#familyLinkAppsStats .nexoStatTextV1103 > b {
  top: 4px !important;
}

#familyLinkAppsStats .nexoStatTextV1103 > span {
  bottom: 4px !important;
}

@media (max-width: 430px) {
  #familyLinkAppsManager .nexoCompactAccordionBodyV1094 {
    padding: 0 14px 14px !important;
  }

  #familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyGridV1090 {
    gap: 12px 12px !important;
  }

  #familyLinkAppsMessage.familylinkAppsMessageV1 {
    margin: 2px 6px 9px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_V1107R2_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_V1108
   Remove definitivamente a geometria nativa do input time do Safari.
   ============================================================ */

#familyLinkAppsManager #nexoScreenAllowedFrom,
#familyLinkAppsManager #nexoScreenAllowedUntil {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: block !important;
  inline-size: 100% !important;
  width: 100% !important;
  min-inline-size: 0 !important;
  min-width: 0 !important;
  max-inline-size: 100% !important;
  max-width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  box-sizing: border-box !important;
  border: 1px solid rgba(62, 91, 148, .18) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(31, 56, 105, .035) !important;
  text-align: center !important;
  font: inherit !important;
  font-size: 16px !important;
  color: #14213d !important;
  line-height: 48px !important;
  overflow: hidden !important;
}

#familyLinkAppsManager .nexoScreenPolicyGridV1090 > label:nth-of-type(3),
#familyLinkAppsManager .nexoScreenPolicyGridV1090 > label:nth-of-type(4) {
  min-width: 0 !important;
  width: 100% !important;
  overflow: hidden !important;
  contain: layout paint !important;
  box-sizing: border-box !important;
}

@media (max-width: 430px) {
  #familyLinkAppsManager #nexoScreenAllowedFrom,
  #familyLinkAppsManager #nexoScreenAllowedUntil {
    height: 48px !important;
    min-height: 48px !important;
    line-height: 48px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_V1108_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_V1109
   4 campos da política com a MESMA altura, 25% menores.
   Base anterior: 48px -> nova altura: 36px.
   ============================================================ */

/* Limite diário e bônus escolar: wrapper + input interno. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyInputUnitV1090 {
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  border-radius: 11px !important;
  box-sizing: border-box !important;
}

#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyInputUnitV1090 input {
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 34px !important;
  box-sizing: border-box !important;
}

/* Horários: exatamente a mesma altura externa de 36px. */
#familyLinkAppsManager #nexoScreenAllowedFrom,
#familyLinkAppsManager #nexoScreenAllowedUntil {
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  line-height: 36px !important;
  border-radius: 11px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
}

/* Qualquer input direto do grid não pode forçar altura antiga. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyGridV1090 > label > input {
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  box-sizing: border-box !important;
}

/* Mantém as quatro células visualmente alinhadas. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyGridV1090 > label {
  align-self: start !important;
}

/* NEXO_FAMILIA_ADMIN_V1109_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_V1110
   Badge verde/amarelo acima do título interno da política
   ============================================================ */

#familyLinkAppsManager .nexoPolicyStateRowV1110 {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

#familyLinkAppsManager .nexoPolicyStateRowV1110 .nexoScreenPolicyStateV1090 {
  margin: 0 !important;
  width: fit-content !important;
  max-width: 100% !important;
}

/* Título/subtítulo começam logo abaixo do badge. */
#familyLinkAppsManager .nexoCompactAccordionBodyV1094 .nexoScreenPolicyHeadV1090 {
  margin-top: 0 !important;
}

/* NEXO_FAMILIA_ADMIN_V1110_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_V1112
   Fidelidade ao mockup aprovado, sobre a base REAL V1110.
   ============================================================ */

/* STATUS GLOBAL: centrado verticalmente entre a linha e o card do aluno. */
#familyLinkAppsMessage.nexoStatusMessageV1112 {
  min-height: 46px !important;
  width: 100% !important;
  margin: 12px 0 14px !important;
  padding: 0 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 9px !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
  background: linear-gradient(
    90deg,
    rgba(22, 158, 106, .08),
    rgba(22, 158, 106, .03)
  ) !important;
  color: #23795c !important;
  line-height: 1.2 !important;
  font-weight: 850 !important;
}

#familyLinkAppsMessage.nexoStatusMessageV1112[data-kind="ok"]::before {
  content: "✓" !important;
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 24px !important;
  display: inline-grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  color: #fff !important;
  background: #159566 !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

/* CARD DE POLÍTICA */
#familyLinkAppsManager .nexoPolicyAccordionV1094 {
  overflow: hidden !important;
  border-radius: 20px !important;
}

#familyLinkAppsManager
.nexoPolicyAccordionV1094
.nexoCompactAccordionSummaryV1094 {
  min-height: 78px !important;
  padding: 15px 16px !important;
}

#familyLinkAppsManager
.nexoPolicyAccordionV1094
.nexoCompactAccordionBodyV1094 {
  padding: 0 16px 16px !important;
}

/* Badge já movido pela V1110; só refinamos o acabamento. */
#familyLinkAppsManager .nexoPolicyStateRowV1110 {
  margin: 2px 0 12px !important;
}

#familyLinkAppsManager
.nexoPolicyStateRowV1110
.nexoScreenPolicyStateV1090 {
  min-height: 31px !important;
  padding: 0 13px !important;
  width: fit-content !important;
  border-radius: 999px !important;
}

#familyLinkAppsManager
.nexoPolicyStateRowV1110
.nexoScreenPolicyStateV1090::before {
  content: "" !important;
  width: 8px !important;
  height: 8px !important;
  margin-right: 7px !important;
  display: inline-block !important;
  border-radius: 50% !important;
  background: currentColor !important;
  vertical-align: middle !important;
}

/* Remove o título interno repetido; mantém apenas a descrição. */
#familyLinkAppsManager .nexoPolicyDuplicateTitleV1112 {
  display: none !important;
}

#familyLinkAppsManager .nexoPolicyInnerHeadV1112 {
  display: block !important;
  margin: 0 0 13px !important;
  padding: 0 !important;
}

#familyLinkAppsManager .nexoPolicyInnerHeadV1112 small {
  display: block !important;
  color: #657998 !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.3 !important;
}

/* GRID DOS EDITS */
#familyLinkAppsManager
.nexoCompactAccordionBodyV1094
.nexoScreenPolicyGridV1090 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 15px 14px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

#familyLinkAppsManager
.nexoCompactAccordionBodyV1094
.nexoScreenPolicyGridV1090 label {
  min-width: 0 !important;
  gap: 7px !important;
}

/* Mantém todos os 4 campos com 36px. */
#familyLinkAppsManager
.nexoCompactAccordionBodyV1094
.nexoScreenPolicyInputUnitV1090,
#familyLinkAppsManager #nexoScreenAllowedFrom,
#familyLinkAppsManager #nexoScreenAllowedUntil,
#familyLinkAppsManager
.nexoCompactAccordionBodyV1094
.nexoScreenPolicyGridV1090 > label > input {
  height: 36px !important;
  min-height: 36px !important;
  max-height: 36px !important;
  border-radius: 11px !important;
  box-sizing: border-box !important;
}

/* Unidade min em uma pequena área visual à direita. */
#familyLinkAppsManager .nexoScreenPolicyInputUnitV1090 {
  position: relative !important;
  overflow: hidden !important;
}

#familyLinkAppsManager .nexoScreenPolicyInputUnitV1090 > span {
  min-width: 46px !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 8px !important;
  background: #f6f8fc !important;
  border-left: 1px solid rgba(62, 91, 148, .10) !important;
}

/* Relógio nos horários */
#familyLinkAppsManager #nexoScreenAllowedFrom,
#familyLinkAppsManager #nexoScreenAllowedUntil {
  padding-left: 12px !important;
  padding-right: 38px !important;
  background-color: #fff !important;
  background-repeat: no-repeat !important;
  background-position: right 11px center !important;
  background-size: 17px 17px !important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23677b9e' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") !important;
}

/* SALVAR: separado dos edits por respiro + linha. */
#familyLinkAppsManager
.nexoCompactAccordionBodyV1094
.nexoScreenPolicyActionsV1090 {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  margin-top: 18px !important;
  padding-top: 18px !important;
  border-top: 1px solid rgba(74, 98, 145, .12) !important;
}

#familyLinkAppsManager #nexoScreenSavePolicy {
  width: 100% !important;
  min-height: 48px !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 18px rgba(71, 88, 230, .16) !important;
}

#familyLinkAppsManager .nexoSaveIconV1112 {
  width: 19px !important;
  height: 19px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linejoin: round !important;
}

/* Nota explicativa */
#familyLinkAppsManager .nexoPolicyNoteV1112 {
  position: relative !important;
  min-height: 56px !important;
  margin-top: 0 !important;
  padding: 10px 12px 10px 42px !important;
  display: flex !important;
  align-items: center !important;
  border-radius: 14px !important;
  background: #f4f7fc !important;
}

#familyLinkAppsManager .nexoPolicyNoteV1112::before {
  content: "i" !important;
  position: absolute !important;
  left: 13px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 20px !important;
  height: 20px !important;
  display: grid !important;
  place-items: center !important;
  border: 2px solid #2776f6 !important;
  border-radius: 50% !important;
  color: #2776f6 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

/* Bônus manual */
#familyLinkAppsManager .nexoBonusAccordionV1094 {
  border-radius: 20px !important;
}

#familyLinkAppsManager
.nexoBonusAccordionV1094
.nexoCompactAccordionSummaryV1094 {
  min-height: 74px !important;
  padding: 14px 16px !important;
}

#familyLinkAppsManager
.nexoBonusAccordionV1094
.nexoCompactAccordionIconV1094 svg {
  width: 25px !important;
  height: 25px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

@media (max-width: 430px) {
  #familyLinkAppsMessage.nexoStatusMessageV1112 {
    min-height: 44px !important;
    margin: 11px 0 13px !important;
    padding: 0 8px !important;
  }

  #familyLinkAppsManager
  .nexoPolicyAccordionV1094
  .nexoCompactAccordionSummaryV1094 {
    min-height: 74px !important;
    padding: 14px 14px !important;
  }

  #familyLinkAppsManager
  .nexoPolicyAccordionV1094
  .nexoCompactAccordionBodyV1094 {
    padding: 0 14px 14px !important;
  }

  #familyLinkAppsManager
  .nexoCompactAccordionBodyV1094
  .nexoScreenPolicyGridV1090 {
    gap: 14px 12px !important;
  }

  #familyLinkAppsManager
  .nexoCompactAccordionBodyV1094
  .nexoScreenPolicyActionsV1090 {
    margin-top: 16px !important;
    padding-top: 16px !important;
    gap: 11px !important;
  }

  #familyLinkAppsManager #nexoScreenSavePolicy {
    min-height: 46px !important;
  }

  #familyLinkAppsManager
  .nexoBonusAccordionV1094
  .nexoCompactAccordionSummaryV1094 {
    min-height: 70px !important;
    padding: 13px 14px !important;
  }
}

/* NEXO_FAMILIA_ADMIN_V1112_END */


/* ============================================================
   NEXO_FAMILIA_ADMIN_V1113_REV3
   Centraliza Limite diario e Bonus escolar sobre seus edits.
   ============================================================ */

#familyLinkAppsManager
.nexoCompactAccordionBodyV1094
.nexoScreenPolicyGridV1090 > label:nth-of-type(1) > span,
#familyLinkAppsManager
.nexoCompactAccordionBodyV1094
.nexoScreenPolicyGridV1090 > label:nth-of-type(2) > span {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}

/* NEXO_FAMILIA_ADMIN_V1113_REV3_END */


/* ============================================================
   NEXO_POLICY_DURATION_MODAL_V1115
   ============================================================ */

#familyLinkAppsManager .nexoScreenPolicyStateV1090[data-kind="temporary"] {
  color: #8a5a00 !important;
  background: #fff5d8 !important;
  border-color: rgba(225, 167, 35, .24) !important;
}

.nexoPolicyDurationBackdropV1115 {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: end center;
  padding: 18px 14px max(18px, env(safe-area-inset-bottom));
  background: rgba(18, 28, 49, .42);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}

.nexoPolicyDurationModalV1115 {
  width: min(100%, 430px);
  max-height: calc(100dvh - 36px);
  overflow: auto;
  padding: 18px;
  border: 1px solid rgba(87, 105, 146, .13);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 22px 70px rgba(16, 29, 57, .26);
}

.nexoPolicyDurationHeadV1115 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.nexoPolicyDurationHeadV1115 small {
  display: block;
  margin-bottom: 4px;
  color: #7586a3;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
}

.nexoPolicyDurationHeadV1115 h3 {
  margin: 0;
  color: #1b3155;
  font-size: 21px;
  line-height: 1.15;
}

.nexoPolicyDurationCloseV1115 {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 11px;
  background: #f1f4fa;
  color: #53698c;
  font-size: 24px;
  line-height: 1;
}

.nexoPolicyDurationIntroV1115 {
  margin: 12px 0 14px;
  color: #5d708f;
  font-size: 13px;
  line-height: 1.45;
}

.nexoPolicyDurationChoicesV1115 { display: grid; gap: 10px; }

.nexoPolicyDurationChoiceV1115 {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 11px;
  min-height: 66px;
  padding: 11px 12px;
  border: 1px solid #e1e6f0;
  border-radius: 15px;
  background: #fbfcff;
  cursor: pointer;
}

.nexoPolicyDurationChoiceV1115.is-selected {
  border-color: #5d6cf0;
  background: #f5f5ff;
  box-shadow: inset 0 0 0 1px rgba(93, 108, 240, .15);
}

.nexoPolicyDurationChoiceV1115 input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.nexoPolicyDurationChoiceIconV1115 {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #e9edff;
  color: #5665df;
  font-size: 15px;
  font-weight: 900;
}

.nexoPolicyDurationChoiceV1115 strong,
.nexoPolicyDurationChoiceV1115 small { display: block; }
.nexoPolicyDurationChoiceV1115 strong { color: #203757; font-size: 13px; font-weight: 850; }
.nexoPolicyDurationChoiceV1115 small { margin-top: 3px; color: #71819c; font-size: 11px; line-height: 1.35; }

.nexoPolicyDaysWrapV1115 {
  grid-template-columns: 38px 1fr auto 38px;
  align-items: center;
  gap: 7px;
  padding: 3px 11px 3px 50px;
}
.nexoPolicyDaysWrapV1115:not([hidden]) { display: grid; }

.nexoPolicyDaysWrapV1115 button,
.nexoPolicyDaysWrapV1115 input {
  height: 38px;
  border: 1px solid #dfe5ef;
  border-radius: 11px;
  background: #fff;
  color: #273e61;
  box-sizing: border-box;
}
.nexoPolicyDaysWrapV1115 button { font-size: 20px; font-weight: 700; }
.nexoPolicyDaysWrapV1115 input { width: 100%; min-width: 0; text-align: center; font-size: 15px; font-weight: 800; }
.nexoPolicyDaysWrapV1115 span { color: #657897; font-size: 12px; font-weight: 750; }

.nexoPolicyDurationActionsV1115 {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(75, 99, 145, .11);
}
.nexoPolicyDurationActionsV1115 .button { min-height: 46px; border-radius: 13px; }

@media (min-width: 640px) {
  .nexoPolicyDurationBackdropV1115 { place-items: center; }
}

/* NEXO_POLICY_DURATION_MODAL_V1115_END */

#studentScreenPolicyV1117{background:white;border:1px solid #e2e8f4;border-radius:22px;padding:20px;margin:16px 0;color:#142448;box-shadow:0 8px 24px #18386608}
.nexoStudentBalanceV1117{background:linear-gradient(125deg,#eef4ff,#eeebff);border-radius:16px;padding:18px;margin-bottom:16px}
.nexoStudentBalanceV1117>span{display:block;font-size:11px;letter-spacing:1.5px;color:#4269de;font-weight:700}
.nexoStudentBalanceV1117>strong{display:block;font-size:36px;line-height:1.3;margin-top:5px}
#studentScreenPolicyV1117 p{font-size:13px;line-height:1.5;margin:8px 0}
.nexoStudentMetricsV1117{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nexoStudentMetricsV1117>div{background:#f7f9fd;border-radius:12px;padding:12px}
.nexoStudentMetricsV1117 span{display:block;font-size:12px;color:#61708d}
.nexoStudentMetricsV1117 b{display:block;font-size:18px;margin-top:4px}
#studentScreenPolicyV1117 .nexoStudentNoteV1117{color:#64748b;font-size:12px}
.nexoStudentExtraV1117{background:#edf9ef;color:#256438;padding:10px;border-radius:10px}
.nexoStudentRuleV1117{display:block;margin-top:5px;font-size:11px;line-height:1.45;color:#59708e;overflow-wrap:anywhere}
.nexoStudentRuleV1117[data-blocked=true]{color:#9a5620}
#studentAppsView .studentAppCopyV1083{min-width:0;flex:1}
#studentAppsView .studentAppTimeV1083{flex-shrink:0}

/* ============================================================
   NEXO_AUTO_UPDATES_ADMIN_V1093_REV4
   ============================================================ */
.nexoAutoUpdatesCardV1093 {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid var(--line, rgba(127, 127, 127, 0.24));
  border-radius: 16px;
  background: var(--surface-soft, rgba(127, 127, 127, 0.06));
}

.nexoAutoUpdatesSwitchV1093 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
}

.nexoAutoUpdatesCopyV1093 {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.nexoAutoUpdatesCopyV1093 strong {
  font-size: 0.96rem;
}

.nexoAutoUpdatesCopyV1093 small,
.nexoAutoUpdatesStateV1093 {
  color: var(--muted, #68717d);
  line-height: 1.4;
}

.nexoAutoUpdatesControlV1093 {
  position: relative;
  flex: 0 0 auto;
  width: 50px;
  height: 30px;
}

.nexoAutoUpdatesControlV1093 input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.nexoAutoUpdatesControlV1093 > span {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #b9c0c8;
  transition: background 160ms ease;
}

.nexoAutoUpdatesControlV1093 > span::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 24px;
  top: 3px;
  left: 3px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .28);
  transition: transform 160ms ease;
}

.nexoAutoUpdatesControlV1093 input:checked + span {
  background: #2e7d32;
}

.nexoAutoUpdatesControlV1093 input:checked + span::after {
  transform: translateX(20px);
}

.nexoAutoUpdatesControlV1093 input:focus-visible + span {
  outline: 3px solid rgba(46, 125, 50, .28);
  outline-offset: 2px;
}

.nexoAutoUpdatesStateV1093[data-enabled="1"] {
  color: #2e7d32;
  font-weight: 700;
}

@media (max-width: 560px) {
  .nexoAutoUpdatesSwitchV1093 {
    align-items: flex-start;
  }
}

/* NEXO_HOME_BRANDING_V1130_START */
.nexoBrandMarkV1130 {
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  flex: 0 0 52px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 15px !important;
  overflow: hidden !important;
  background: transparent !important;
  box-shadow: none !important;
}
.nexoBrandMarkV1130 img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  border-radius: inherit !important;
  background: transparent !important;
}
.familyB1HeroArt {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  overflow: visible !important;
}
.familyB1HeroArt .nexoFamilyHeroMarkV1130 {
  display: block !important;
  width: min(42vw, 200px) !important;
  max-width: 200px !important;
  height: auto !important;
  object-fit: contain !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  filter: drop-shadow(0 12px 20px rgba(24,105,230,.18));
}
@media (max-width: 480px) {
  .nexoBrandMarkV1130 {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    flex-basis: 48px !important;
    border-radius: 14px !important;
  }
  .familyB1HeroArt .nexoFamilyHeroMarkV1130 {
    width: min(39vw, 170px) !important;
    max-width: 170px !important;
  }
}
/* NEXO_HOME_BRANDING_V1130_END */

/* NEXO_ALIGN_UPDATE_V1131_START */

.topbar.school-topbar,
header.topbar {
  width: 100%;
}

.topbar__actions.school-top-actions {
  margin-left: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  flex: 0 0 auto !important;
}

.topbar__actions.school-top-actions .button {
  margin-left: 0 !important;
}

.school-top-context {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

@media (max-width: 900px) {
  .topbar {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }

  .brand.brand--compact {
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }

  .school-top-context {
    display: none !important;
  }

  .topbar__actions.school-top-actions {
    margin-left: auto !important;
    width: auto !important;
    flex-wrap: nowrap !important;
  }

  .topbar__actions.school-top-actions #studentRefreshBtn {
    margin-left: auto !important;
  }
}

/* NEXO_ALIGN_UPDATE_V1131_END */


/* NEXO_HOME_OCCURRENCES_CSS_V1132 */
.nexoOccurrenceTabsV1132 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  max-width: 360px;
  margin: -2px 0 20px;
  padding: 5px;
  border: 1px solid rgba(93, 117, 170, .18);
  border-radius: 16px;
  background: rgba(241, 245, 255, .82);
}

.nexoOccurrenceTabsV1132 button {
  min-height: 42px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #60708f;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.nexoOccurrenceTabsV1132 button.active {
  background: #fff;
  color: #3159df;
  box-shadow: 0 5px 16px rgba(39, 74, 146, .12);
}

.nexoHomeOccurrencesPanelV1132 {
  display: grid;
  gap: 18px;
}

.nexoHomeOccurrencesPanelV1132[hidden] {
  display: none !important;
}

.nexoHomeRuleV1132,
.nexoHomeCardV1132 {
  border: 1px solid rgba(93, 117, 170, .16);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(52, 80, 138, .08);
}

.nexoHomeRuleV1132 {
  padding: 20px;
}

.nexoHomeRuleV1132 > div:first-child {
  display: grid;
  gap: 5px;
}

.nexoHomeRuleV1132 span,
.nexoHomeCardHeadV1132 span {
  color: #7b88a4;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .09em;
}

.nexoHomeRuleV1132 strong {
  color: #3159df;
  font-size: 28px;
  line-height: 1;
}

.nexoHomeRuleV1132 small {
  color: #64728f;
  line-height: 1.45;
}

.nexoHomeProgressTrackV1132 {
  height: 9px;
  margin-top: 15px;
  overflow: hidden;
  border-radius: 99px;
  background: #e8edf8;
}

.nexoHomeProgressTrackV1132 i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #5a8dff, #3159df);
  transition: width .2s ease;
}

.nexoHomeGridV1132 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
}

.nexoHomeCardV1132 {
  padding: 20px;
}

.nexoHomeCardHeadV1132 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.nexoHomeCardHeadV1132 h2 {
  margin: 3px 0 0;
  color: #26395f;
  font-size: 19px;
}

.nexoHomeCardHeadV1132 > strong {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 99px;
  background: #fff0f0;
  color: #d64855;
  font-size: 12px;
}

.nexoHomeFieldV1132 {
  display: grid;
  gap: 7px;
  margin-bottom: 12px;
}

.nexoHomeFieldV1132 > span {
  color: #65738e;
  font-size: 12px;
  font-weight: 800;
}

.nexoHomeFieldV1132 select,
.nexoHomeFieldV1132 textarea,
.nexoHomeTypeCreateV1132 input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #dce4f3;
  border-radius: 13px;
  background: #f9fbff;
  color: #26395f;
  font: inherit;
}

.nexoHomeFieldV1132 select,
.nexoHomeTypeCreateV1132 input {
  min-height: 44px;
  padding: 0 12px;
}

.nexoHomeFieldV1132 textarea {
  min-height: 82px;
  padding: 11px 12px;
  resize: vertical;
}

.nexoHomeTypeCreateV1132 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-bottom: 12px;
}

.nexoHomeTypesV1132,
.nexoHomePenaltiesV1132,
.nexoHomeHistoryV1132 {
  display: grid;
  gap: 9px;
}

.nexoHomeTypeItemV1132,
.nexoHomePenaltyItemV1132,
.nexoHomeOccurrenceItemV1132 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 13px;
  border: 1px solid #e5eaf4;
  border-radius: 14px;
  background: #fbfcff;
}

.nexoHomeTypeItemV1132 span,
.nexoHomePenaltyItemV1132 strong,
.nexoHomeOccurrenceItemV1132 strong {
  color: #2a3d63;
  font-weight: 800;
}

.nexoHomePenaltyItemV1132 > div,
.nexoHomeOccurrenceItemV1132 > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nexoHomePenaltyItemV1132 span,
.nexoHomeOccurrenceItemV1132 span {
  color: #7a87a1;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.nexoHomePenaltyItemV1132 small,
.nexoHomeOccurrenceItemV1132 small {
  color: #67758e;
  line-height: 1.4;
}

.nexoHomeTypeItemV1132 button,
.nexoHomePenaltyItemV1132 button,
.nexoHomeOccurrenceItemV1132 button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 10px;
  padding: 8px 10px;
  background: #fff0f0;
  color: #c94552;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.nexoHomePenaltyItemV1132[data-status="ACTIVE"] {
  border-color: rgba(231, 67, 89, .30);
  background: #fff8f8;
}

.nexoHomePenaltyItemV1132[data-status="SCHEDULED"] {
  border-color: rgba(255, 178, 55, .35);
  background: #fffaf1;
}

.nexoHomeEmptyV1132 {
  padding: 18px 12px;
  border: 1px dashed #dbe3f0;
  border-radius: 14px;
  color: #7a87a1;
  text-align: center;
}

@media (max-width: 720px) {
  .nexoOccurrenceTabsV1132 {
    max-width: none;
  }

  .nexoHomeGridV1132 {
    grid-template-columns: 1fr;
  }

  .nexoHomeCardV1132,
  .nexoHomeRuleV1132 {
    padding: 16px;
    border-radius: 18px;
  }

  .nexoHomeCardHeadV1132 {
    align-items: center;
  }

  .nexoHomeTypeCreateV1132 {
    grid-template-columns: 1fr;
  }

  .nexoHomeTypeCreateV1132 .button {
    width: 100%;
  }
}


/* NEXO_HOME_OCCURRENCES_UI_CSS_V1136 */

.nexoOccurrenceStudentV1136 {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: -2px 0 18px;
  padding: 13px 16px;
  border: 1px solid rgba(77, 111, 178, .15);
  border-radius: 18px;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.96),
      rgba(241,246,255,.96)
    );
  box-shadow:
    0 8px 24px rgba(54, 80, 134, .07);
}

.nexoOccurrenceStudentAvatarV1136 {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: #fff;
  background:
    var(
      --occ-student-color,
      #3978ff
    );
  font-weight: 900;
  font-size: 20px;
  box-shadow:
    0 8px 18px rgba(51, 105, 225, .22);
}

.nexoOccurrenceStudentV1136 > div {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.nexoOccurrenceStudentV1136 small {
  color: #7a89a5;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .11em;
}

.nexoOccurrenceStudentV1136 strong {
  color: #14264b;
  font-size: 17px;
  line-height: 1.2;
}

.nexoOccurrenceStudentV1136 div > span {
  color: #74829d;
  font-size: 12px;
}

.nexoHomeTypeCardV1136 {
  transition:
    padding .18s ease,
    min-height .18s ease;
}

.nexoHomeTypeCardV1136.is-collapsed
> :not(.nexoHomeCardHeadV1132) {
  display: none !important;
}

.nexoHomeTypeCardV1136.is-collapsed
.nexoHomeCardHeadV1132 {
  margin-bottom: 0;
}

.nexoHomeCollapseButtonV1136 svg {
  transition:
    transform .18s ease;
}

.nexoHomeCollapseButtonV1136.is-collapsed svg {
  transform:
    rotate(-90deg);
}

.nexoHomeRowActionsV1136 {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}

.nexoHomeIconButtonV1136 {
  width: 34px;
  height: 34px;
  min-width: 34px;
  padding: 0 !important;
  display: inline-grid;
  place-items: center;
  border: 1px solid #dce5f4 !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: #46638f !important;
  box-shadow: none !important;
  cursor: pointer;
}

.nexoHomeIconButtonV1136:hover {
  background: #f2f6ff !important;
  border-color: #c9d7ef !important;
}

.nexoHomeIconButtonV1136.danger {
  color: #d04d5a !important;
  border-color: #f0d7db !important;
  background: #fff9fa !important;
}

.nexoHomeIconButtonV1136 svg,
.nexoHomePageButtonV1136 svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.nexoHomeTypeItemV1136 {
  min-height: 45px;
}

.nexoHomeOccurrenceItemV1136 {
  display: grid !important;
  grid-template-columns:
    42px
    minmax(0, 1fr)
    auto;
  align-items: center;
  gap: 12px;
}

.nexoHomeAppliedAvatarV1136 {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background:
    linear-gradient(
      145deg,
      #3159df,
      #5e86f3
    );
  color: #fff;
  font-size: 17px;
  font-weight: 900;
  box-shadow:
    0 7px 16px rgba(49, 89, 223, .20);
}

.nexoHomeOccurrenceCopyV1136 {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nexoHomeOccurrenceCopyV1136 em {
  color: #73809a;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.nexoHomePaginationV1136 {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e8edf6;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.nexoHomePaginationV1136 > span {
  color: #74819b;
  font-size: 12px;
  text-align: center;
}

.nexoHomePaginationV1136 strong {
  color: #28446f;
}

.nexoHomePageButtonV1136 {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid #dce5f3;
  border-radius: 11px;
  background: #fff;
  color: #41618f;
  cursor: pointer;
}

.nexoHomePageButtonV1136:disabled {
  opacity: .35;
  cursor: default;
}

.nexoHomeModalBackdropV1136 {
  position: fixed;
  inset: 0;
  z-index: 10050;
  padding: 18px;
  display: grid;
  place-items: center;
  background:
    rgba(14, 28, 55, .42);
  backdrop-filter:
    blur(5px);
}

.nexoHomeModalBackdropV1136.hidden {
  display: none !important;
}

.nexoHomeModalV1136 {
  width: min(520px, 100%);
  max-height: min(720px, 90vh);
  overflow: auto;
  padding: 22px;
  border-radius: 22px;
  background: #fff;
  box-shadow:
    0 26px 70px rgba(17, 36, 76, .28);
}

.nexoHomeModalHeadV1136 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 18px;
}

.nexoHomeModalHeadV1136 small {
  color: #7f8ca5;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .11em;
}

.nexoHomeModalHeadV1136 h2 {
  margin: 3px 0 0;
  color: #15284f;
  font-size: 21px;
}

.nexoHomeModalCloseV1136 {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 11px;
  background: #f0f4fb;
  color: #61708b;
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}

.nexoHomeModalActionsV1136 {
  margin-top: 18px;
  display: flex;
  justify-content: flex-end;
  gap: 9px;
}

.nexoHomeEditInputV1136,
#nexoHomeEditOccurrenceTypeV1136,
#nexoHomeEditOccurrenceNotesV1136 {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #dce4f3;
  border-radius: 13px;
  background: #f9fbff;
  color: #26395f;
  font: inherit;
}

.nexoHomeEditInputV1136,
#nexoHomeEditOccurrenceTypeV1136 {
  min-height: 44px;
  padding: 0 12px;
}

#nexoHomeEditOccurrenceNotesV1136 {
  min-height: 95px;
  padding: 11px 12px;
  resize: vertical;
}

.nexoHomeEditAuditNoteV1136 {
  margin: 8px 0 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f5f7fb;
  color: #707e98;
  font-size: 11px;
  line-height: 1.45;
}

@media (max-width: 560px) {
  .nexoHomeOccurrenceItemV1136 {
    grid-template-columns:
      38px
      minmax(0, 1fr)
      auto;
    gap: 9px;
  }

  .nexoHomeAppliedAvatarV1136 {
    width: 36px;
    height: 36px;
    border-radius: 12px;
  }

  .nexoHomeIconButtonV1136 {
    width: 32px;
    height: 32px;
    min-width: 32px;
  }

  .nexoHomeRowActionsV1136 {
    gap: 4px;
  }

  .nexoHomePaginationV1136 {
    gap: 8px;
  }

  .nexoHomeModalV1136 {
    padding: 18px;
    border-radius: 18px;
  }
}


/* NEXO_HOME_OCCURRENCES_REFINO_CSS_V1137 */

/*
 * CASA:
 * reutiliza o card escuro "ACOMPANHANDO" das ocorrências escolares,
 * porém sem turma/ano, sem RECENTES/NOVAS e sem seletor inferior.
 */
.parentOccurrencesV929.nexoHomeModeV1137
.occStudentPanelV929 {
  display: block !important;
  padding: 17px 19px !important;
  margin-bottom: 18px;
}

.parentOccurrencesV929.nexoHomeModeV1137
.occStudentHeadV929 {
  grid-template-columns:
    auto
    minmax(0, 1fr) !important;
  gap: 14px !important;
}

.parentOccurrencesV929.nexoHomeModeV1137
#parentOccurrenceStudentCourse,
.parentOccurrencesV929.nexoHomeModeV1137
.occStatsV929,
.parentOccurrencesV929.nexoHomeModeV1137
.occStudentStripV929 {
  display: none !important;
}

.parentOccurrencesV929.nexoHomeModeV1137
.occStudentAvatarV929 {
  width: 52px !important;
  height: 52px !important;
  border-radius: 17px !important;
  font-size: 20px !important;
}

.parentOccurrencesV929.nexoHomeModeV1137
.occStudentIdentityV929 h2 {
  font-size: 22px !important;
}

.parentOccurrencesV929.nexoHomeModeV1137
.occStudentIdentityV929 .eyebrow {
  margin-bottom: 3px !important;
}


/*
 * A identificação clara criada na V1136 não deve aparecer mais.
 * Mantemos esta regra de segurança caso um cache antigo ainda injete o nó.
 */
#nexoOccurrenceStudentV1136 {
  display: none !important;
}


/*
 * Histórico:
 * remove a bolha com a inicial do responsável.
 * O texto "Aplicada por Ezon/Josinete" permanece.
 */
.nexoHomeOccurrenceItemV1136
.nexoHomeAppliedAvatarV1136 {
  display: none !important;
}

.nexoHomeOccurrenceItemV1136 {
  grid-template-columns:
    minmax(0, 1fr)
    auto !important;
  gap: 12px !important;
}

.nexoHomeOccurrenceCopyV1136 em {
  display: block;
  margin-top: 2px;
  color: #74819a;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}


/*
 * Em telas pequenas mantém ações compactas sem poluir o histórico.
 */
@media (max-width: 560px) {
  .parentOccurrencesV929.nexoHomeModeV1137
  .occStudentPanelV929 {
    padding: 15px 16px !important;
  }

  .parentOccurrencesV929.nexoHomeModeV1137
  .occStudentAvatarV929 {
    width: 46px !important;
    height: 46px !important;
    border-radius: 15px !important;
  }

  .parentOccurrencesV929.nexoHomeModeV1137
  .occStudentIdentityV929 h2 {
    font-size: 20px !important;
  }

  .nexoHomeOccurrenceItemV1136 {
    grid-template-columns:
      minmax(0, 1fr)
      auto !important;
    gap: 8px !important;
  }
}


/* NEXO_HOME_OCCURRENCES_TRACKING_CSS_V1138 */

/*
 * V1137 escondia o seletor inferior para simplificar.
 * V1138 volta a mostrar SOMENTE o seletor Guilherme/Manuela,
 * exatamente o mesmo usado na ocorrência escolar.
 */
.parentOccurrencesV929.nexoHomeModeV1138
.occStudentStripV929 {
  display: block !important;
  margin-top: 13px !important;
  padding-top: 12px !important;
}


/*
 * Mantém a simplificação solicitada para Casa:
 * - sem turma/ano;
 * - sem RECENTES/NOVAS.
 */
.parentOccurrencesV929.nexoHomeModeV1138
#parentOccurrenceStudentCourse,
.parentOccurrencesV929.nexoHomeModeV1138
.occStatsV929 {
  display: none !important;
}


/*
 * Painel ACOMPANHANDO fica compacto e acima da penalização.
 */
.parentOccurrencesV929.nexoHomeModeV1138
.occStudentPanelV929 {
  display: block !important;
  margin:
    0
    0
    18px !important;
  padding:
    17px
    19px !important;
}


/*
 * Cabeçalho simples: avatar + primeiro nome.
 */
.parentOccurrencesV929.nexoHomeModeV1138
.occStudentHeadV929 {
  grid-template-columns:
    auto
    minmax(0, 1fr) !important;
  gap: 14px !important;
}


/*
 * Mantém o seletor com a mesma aparência e os mesmos botões
 * da tela escolar, sem criar um segundo componente.
 */
.parentOccurrencesV929.nexoHomeModeV1138
.occStudentStripV929
.parentChipMirror {
  margin: 0 !important;
}


/*
 * Garante que a regra anterior da V1137 não continue escondendo o strip.
 */
.parentOccurrencesV929.nexoHomeModeV1137.nexoHomeModeV1138
.occStudentStripV929 {
  display: block !important;
}


@media (max-width: 560px) {
  .parentOccurrencesV929.nexoHomeModeV1138
  .occStudentPanelV929 {
    padding:
      15px
      16px !important;
  }

  .parentOccurrencesV929.nexoHomeModeV1138
  .occStudentStripV929 {
    margin-top: 11px !important;
    padding-top: 10px !important;
  }
}


/* NEXO_NO_TASKS_REWARD_STYLE_V1140 */
.nexoNoTasksBonusV1140 {
  margin-top: 16px;
  display: grid;
  gap: 10px;
  width: min(100%, 520px);
  margin-left: auto;
  margin-right: auto;
}

.nexoNoTasksBonusV1140 > strong {
  font-size: 1rem;
}

.nexoNoTasksBonusV1140 > p,
.nexoNoTasksBonusV1140 > small {
  margin: 0;
}

.nexoNoTasksBonusV1140 > small {
  opacity: .78;
  line-height: 1.45;
}

.nexoNoTasksRewardCardV1140 {
  width: min(92vw, 520px);
}

.nexoNoTasksRewardSummaryV1140 {
  display: grid;
  gap: 8px;
  margin: 14px 0 18px;
}

.nexoNoTasksRewardSummaryV1140 strong {
  font-size: 1.08rem;
}

.nexoNoTasksRewardSummaryV1140 span {
  line-height: 1.5;
}

.nexoNoTasksRewardActionsV1140 {
  display: grid;
  gap: 10px;
}

.nexoNoTasksRewardActionsV1140 .button {
  width: 100%;
}
