.s5-home {
  --s5-ink: #101a34;
  --s5-line: #c8d5e2;
  --s5-canvas: #f7f9fc;
}
html body.s5-home:has(> .s5-top) { background: linear-gradient(#f2f6fc, #fff 670px); color: var(--s5-ink); }
.s5-home .s5-top { min-height: 54px; padding-inline: clamp(12px, 1.6vw, 26px); gap: 0 20px; background: #f9fbfe; }
.s5-home .s5-top .s5-brand { font-size: clamp(17px, 1.9vw, 24px); letter-spacing: -.04em; }
.s5-home .s5-top nav > a, .s5-home .s5-top nav > details > summary { min-height: 52px; padding-inline: clamp(8px, 1.2vw, 18px); font-size: clamp(14px, 1.55vw, 20px); }
.s5-home .s5-top nav > a[aria-current] { position: relative; box-shadow: none; color: var(--s5-ink); }
.s5-home .s5-top nav > a[aria-current]::after { content: ''; position: absolute; inset: auto 10px 0; height: 6px; background: #0864ee; border-radius: 6px 6px 0 0; }
.s5-home-context { display: flex; align-items: center; gap: 14px; margin-inline-start: auto; color: var(--s5-ink); font-size: clamp(13px, 1.45vw, 19px); font-weight: 700; }
.s5-home-context time:not(:empty) { border-inline: 1px solid #94a6bc; padding-inline: 14px; }
.s5-home .s5-home-account > summary { min-height: 44px; width: 44px; justify-content: center; padding: 0; }
.s5-home .s5-home-account > summary::after { display: none; }
.s5-home-account summary img { box-sizing: border-box; width: 42px; height: 42px; border: 2px solid #369959; border-radius: 50%; padding: 2px; object-fit: contain; background: #fffef5; }
.s5-home .s5-home-account .student-home-identity-bar { position: absolute; right: 12px; top: 100%; width: min(360px, calc(100% - 24px)); display: grid; gap: 12px; padding: 14px; box-sizing: border-box; border: 1px solid var(--s5-line); border-radius: 10px; background: #fff; box-shadow: 0 6px 22px #18385b22; }
.s5-home-account .student-home-identity { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.s5-home-account .student-home-identity small, .s5-home-account .student-session-context { display: none; }
.s5-home-account .student-home-token-status { display: flex; gap: 8px; }
.s5-home-account .student-home-token-status a { gap: 5px; }
.s5-home-account .student-home-token-status img, .s5-home-account #studentEconomicRankImage { width: 22px; height: 22px; object-fit: contain; }
.s5-home-account .student-home-identity-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.s5-home-account .student-home-identity-actions button { min-height: 44px; }
.s5-home-account .economy-dashboard-level-menu summary { justify-content: start; }
.s5-home-account .economy-dashboard-level-popover { position: static; width: auto; }
.s5-home #studentHomeTeacherMode { display: none; }

html body.s5-home .economy-dashboard-stage { padding: 15px clamp(16px, 2.65vw, 40px) 30px; max-width: 1400px; }
html body.s5-home .student-home-redesign { gap: 0; }
.s5-home .s5-shortcuts h1 { display: flex; align-items: center; gap: 16px; margin: 0 0 20px; font-size: clamp(28px, 3.1vw, 42px); line-height: 1.25; font-weight: 850; }
.s5-home .s5-shortcuts h1::before { content: ''; width: .67em; height: .73em; border-radius: 4px; background: #d4c3fa; transform: rotate(-10deg); }
.s5-home :is(.s5-shortcuts h2, .student-home-summary-card header h2) { display: flex; flex: 1; align-items: center; gap: 12px; margin: 0; font-size: clamp(19px, 2.08vw, 28px); line-height: 1.2; white-space: nowrap; }
.s5-home :is(.s5-shortcuts h2, .student-home-summary-card header h2)::after { content: ''; flex: 1; height: 1.5px; background: var(--section-rule, var(--s5-line)); }
.s5-home .s5-shortcuts > div { grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 15px; gap: 12px; }
.s5-home .s5-shortcuts .s5-shortcut:not([hidden]) { position: relative; display: grid; grid-template-columns: auto 1fr auto; justify-content: start; gap: clamp(6px, 1.4vw, 18px); min-height: clamp(54px, 6.35vw, 84px); padding: 6px clamp(9px, 1.8vw, 24px); overflow: hidden; border: 0; border-radius: 10px; font-size: clamp(14px, 2.05vw, 25px); line-height: 1.2; font-weight: 800; }
.s5-home .s5-shortcut::before { content: ''; position: absolute; inset: 0 auto 0 -5px; width: 15px; background: var(--shortcut-accent); transform: skewX(-12deg); }
.s5-home .s5-shortcut i { font-size: 1.36em; }
.s5-home .s5-shortcut--blue { --shortcut-accent: #339df5; --shortcut-bg: #d9edfc; }
.s5-home .s5-shortcut--green { --shortcut-accent: #52be72; --shortcut-bg: #e0f5e5; }
.s5-home .s5-shortcut--violet { --shortcut-accent: #9873df; --shortcut-bg: #eee4fc; }
.s5-home .s5-shortcut--amber { --shortcut-accent: #f9b742; --shortcut-bg: #fcf2e3; }
html body.s5-home #studentRecommendedTools[hidden] { display: none; }
html body.s5-home #studentRecommendedTools { display: flex; align-items: center; gap: 16px; border: 0; border-block: 1px solid var(--s5-line); border-radius: 0; margin-top: 12px; padding: 4px 10px; background: none; }
.s5-home #studentRecommendedTools header { min-height: 0; }
.s5-home #studentRecommendedTools header h2 { padding: 4px 9px; background: #e5daf8; border-radius: 8px; font-size: 15px; white-space: nowrap; }
.s5-home #studentRecommendedTools header :is(i, small, strong), .s5-home #studentRecommendedToolGrid a small { display: none; }
.s5-home #studentRecommendedToolGrid { display: flex; flex-wrap: wrap; flex: 1; }
html body.s5-home #studentRecommendedToolGrid a.student-home-tool-card { display: flex; align-items: center; gap: 9px; flex: 1; min-height: 44px; padding: 0 0 0 8px; border: 0; background: none; text-align: left; box-shadow: none; font-size: 17px; }

html body.s5-home .student-home-summary-grid { position: relative; margin-top: 22px; grid-template-areas: none; gap: 36px; grid-template-columns: minmax(0, 1.32fr) minmax(0, 1fr); }
.s5-home .student-home-summary-grid::before { content: ''; position: absolute; left: calc((100% - 36px) * 1.32 / 2.32 + 18px); inset-block: 0; width: 1px; background: var(--s5-line); pointer-events: none; }
html body.s5-home .student-home-summary-card { display: block; padding: 8px 0 0; border: 0; border-radius: 0; background: transparent; }
html body.s5-home .student-home-summary-card header { display: flex; align-items: center; flex-wrap: nowrap; gap: 12px; margin-bottom: 12px; }
.s5-home .student-home-summary-card--tasks, .s5-home .student-home-summary-card--meal { --section-rule: #12aeca; }
.s5-home .student-home-summary-card--notice { --section-rule: #f27783; }
.s5-home .student-home-summary-card--schedule { --section-rule: #9c70f5; }
html body.s5-home #studentTaskSummary { font-size: clamp(13px, 1.65vw, 20px); color: var(--s5-ink); font-weight: 650; white-space: nowrap; }
html body.s5-home .student-home-summary-card > a { display: flex; width: max-content; max-width: 100%; padding: 4px; margin-inline-start: auto; border: 0; background: none; font-size: 13px; }
html body.s5-home .student-home-summary-card > div { overflow: visible; }
html body.s5-home :is(#studentTodayTasks, #studentNoticeSummary, #studentScheduleSummary) { display: block; }
html body.s5-home .student-home-summary-card button:is([data-student-href], .economy-wallet-notice-item) { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: clamp(8px, 1.6vw, 22px); min-height: clamp(46px, 5.25vw, 69px); padding: 5px 6px; border: 0; border-bottom: 1px solid var(--s5-line); border-radius: 0; background: none; color: var(--s5-ink); text-align: left; box-shadow: none; }
html body.s5-home :is(#studentTodayTasks, #studentNoticeSummary, #studentScheduleSummary) button strong { white-space: normal; font-size: clamp(15px, 1.95vw, 24px); line-height: 1.24; overflow-wrap: anywhere; }
.s5-home .s5-task-mark { width: 1.45rem; height: 1.45rem; border: 2px solid #14203b; border-radius: 6px; box-sizing: border-box; }
.s5-home [data-s5-completed="true"] .s5-task-mark { display: grid; place-items: center; background: #559966; border-color: #559966; }
.s5-home [data-s5-completed="true"] .s5-task-mark::after { content: '✓'; color: white; font-size: 15px; }
html body.s5-home #studentTodayTasks button > span { min-width: clamp(60px, 10vw, 145px); padding: 6px; text-align: center; border: 1px solid #8ca0b5; border-radius: 8px; color: var(--s5-ink); font-size: clamp(13px, 1.5vw, 19px); }
html body.s5-home #studentTodayTasks button[data-s5-completed="true"] > span { background: #ddf8e4; border-color: transparent; color: #146d39; }
html body.s5-home #studentNoticeSummary button { grid-template-columns: 20px minmax(0,1fr) auto; }
.s5-home #studentNoticeSummary button::before { content: '\f0a1'; font: 900 18px 'Font Awesome 6 Free'; color: #d92b28; }
.s5-home #studentNoticeSummary button::after { content: '›'; font-size: 23px; }
.s5-home #studentNoticeSummary button :is(small, .economy-wallet-notice-badges) { display: none; }
html body.s5-home #studentScheduleSummary button { grid-template-columns: auto minmax(0,1fr); min-height: 44px; }
html body.s5-home #studentScheduleSummary button > span:first-child { padding: 4px 10px; border-radius: 7px; background: #dbe3eb; color: var(--s5-ink); font-size: clamp(13px, 1.55vw, 19px); }
html body.s5-home .student-home-schedule-actions { display: flex; width: max-content; margin: 6px 0; }
html body.s5-home #studentScheduleDate { font-size: 13px; }
html body.s5-home #studentMealSummary ul { display: flex; flex-wrap: wrap; list-style: none; gap: 4px 8px; padding: 10px 6px; color: var(--s5-ink); font-size: clamp(15px, 1.8vw, 22px); }
.s5-home #studentMealSummary li + li::before { content: '·'; margin-right: 8px; }
.s5-home :is(.student-home-tools-layout, .student-home-secondary-grid) { margin-top: 24px; }
@media (max-width: 900px) { .s5-home .s5-top nav { order: 3; width: 100%; } }
@media (max-width: 780px) {
  .s5-home .s5-shortcuts > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html body.s5-home .student-home-summary-grid { grid-template-columns: minmax(0,1fr); grid-template-areas: 'tasks' 'notice' 'schedule' 'meal'; gap: 12px; }
  .s5-home .student-home-summary-grid::before { content: none; }
  html body.s5-home :is(.student-home-tools-layout, .student-home-secondary-grid) { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 460px) {
  .s5-home .s5-top { gap: 0 4px; }
  .s5-home .s5-top nav { justify-content: space-between; }
  .s5-home .s5-top nav > a, .s5-home .s5-top nav > details > summary { padding-inline: 5px; min-height: 44px; font-size: 13px; }
  .s5-home-context { gap: 5px; }
  .s5-home-context time:not(:empty) { padding-inline: 5px; border: 0; }
}

.s5-home .s5-top nav { padding-inline-start: 10px; border-inline-start: 1px solid var(--s5-line); }
.s5-home .s5-top nav > a, .s5-home .s5-top nav > details > summary { padding-inline: clamp(7px, 1.6vw, 20px); }
.s5-home .s5-home-column { min-width: 0; }
.s5-home .s5-home-column > article { grid-area: auto; }
.s5-home .s5-home-column > article + article { margin-top: 13px; }
html body.s5-home #studentScheduleSummary button > span:first-child { width: auto; min-width: 72px; white-space: nowrap; }
html body.s5-home #studentTodayTasks button[data-s5-continue="true"] > span { color: white; background: #087d3c; border-color: #087d3c; }
html body.s5-home .s5-schedule-footer { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
html body.s5-home .student-home-schedule-actions button { font-size: 14px; }
.s5-home #studentRecommendedToolGrid a :is(strong, .home-tool-icon) { font-size: inherit; }
.s5-home #studentRecommendedTools header::after { content: ''; width: 1px; height: 23px; margin-inline-start: 10px; background: #91a2b9; }
.s5-home #studentRecommendedTools #studentRecommendedCount { display: none; }
.s5-home .s5-home-account:not([open]) .student-home-identity-bar { display: none; }
@media (max-width: 1100px) { .s5-home .s5-top nav { padding-inline-start: 0; border-inline-start: 0; } }
@media (max-width: 780px) {
  .s5-home .s5-home-column { display: contents; }
  .s5-home .student-home-summary-card--tasks { grid-area: tasks !important; }
  .s5-home .student-home-summary-card--notice { grid-area: notice !important; }
  .s5-home .student-home-summary-card--schedule { grid-area: schedule !important; }
  .s5-home .student-home-summary-card--meal { grid-area: meal !important; }
}
@media (max-width: 460px) { .s5-home .s5-top nav > a, .s5-home .s5-top nav > details > summary { padding-inline: 5px; } }

html body.s5-home #studentRecommendedTools > header :is(i, small, strong) { display: none; }
html body.s5-home #studentRecommendedToolGrid > a.student-home-tool-card {
  display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: auto;
  justify-items: start; min-height: 44px; padding: 0 6px; align-content: center;
}
html body.s5-home #studentRecommendedToolGrid > a.student-home-tool-card::after { content: '›'; font-size: 22px; }
html body.s5-home #studentRecommendedToolGrid > a.student-home-tool-card :is(i, strong) { font-size: clamp(16px, 1.85vw, 23px); color: var(--s5-ink); }
html body.s5-home #studentRecommendedToolGrid > a.student-home-tool-card :is(i, .student-home-tool-icon) { width: 30px; height: 30px; background: none; }
html body.s5-home #studentScheduleSummary button[data-student-href] { grid-template-columns: minmax(72px, auto) minmax(0,1fr); gap: 20px; }
html body.s5-home #studentScheduleSummary button[data-student-href] > span:first-child { text-align: center; }
html body.s5-home #studentNoticeSummary button .economy-wallet-notice-copy strong { color: var(--s5-ink); }
html body.s5-home .student-home-summary-card > a { min-height: 32px; }
.s5-home .s5-home-student { padding: 3px 10px; border-radius: 999px; background: #d5eafa; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 13ch; }
.s5-home .s5-home-student:empty { display: none; }
@media (max-width: 520px) { .s5-home .s5-home-student { display: none; } }
