.single-placeholder[data-page="module-detail"] {
width: 100%;
max-width: none;
}
.modules-overview-page {
gap: 18px;
}
.modules-overview-hero {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 24px;
border-radius: 28px;
background: linear-gradient(135deg, rgba(255,255,255,0.94), rgba(240, 247, 255, 0.78));
}
.modules-overview-hero h2 {
margin: 6px 0 0;
font-size: clamp(30px, 4vw, 48px);
line-height: 1;
letter-spacing: -0.06em;
}
.modules-overview-hero p {
margin: 10px 0 0;
max-width: 720px;
color: var(--muted-strong);
line-height: 1.5;
}
.modules-current-panel {
display: flex;
align-items: center;
justify-content: space-between;
gap: 18px;
padding: 22px;
border-radius: 26px;
background: linear-gradient(135deg, rgba(255,255,255,0.94), rgba(236, 249, 243, 0.78));
}
.modules-current-panel h3 {
margin: 4px 0 0;
font-size: 30px;
line-height: 1;
letter-spacing: -0.055em;
}
.modules-current-panel p {
margin: 8px 0 0;
color: var(--muted-strong);
}
.modules-current-actions,
.modules-card-actions {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.modules-overview-section {
display: grid;
gap: 12px;
}
.modules-section-head h3 {
margin: 3px 0 0;
font-size: 22px;
letter-spacing: -0.04em;
}
.modules-card-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
}
.modules-card-grid.compact {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.modules-card {
min-height: 210px;
padding: 17px;
border-radius: 22px;
background: rgba(255, 255, 255, 0.82);
border: 1px solid rgba(255, 255, 255, 0.72);
box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
display: flex;
flex-direction: column;
gap: 12px;
}
.modules-card.is-built {
background: linear-gradient(180deg, rgba(255,255,255,0.94), rgba(241, 247, 255, 0.82));
}
.modules-card-top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}
.modules-card h4 {
margin: 0;
font-size: 22px;
letter-spacing: -0.05em;
}
.modules-card-top p,
.modules-card-copy {
margin: 5px 0 0;
color: var(--muted-strong);
font-size: 13px;
line-height: 1.45;
}
.modules-status {
flex: 0 0 auto;
padding: 7px 9px;
border-radius: 999px;
background: rgba(100, 116, 139, 0.10);
color: var(--muted-strong);
font-size: 11px;
font-weight: 900;
}
.modules-status.current {
background: rgba(10, 132, 255, 0.10);
color: var(--accent-strong);
}
.modules-status.completed {
background: rgba(52, 199, 89, 0.12);
color: #15703d;
}
.modules-status.available {
background: rgba(124, 58, 237, 0.10);
color: #5b21b6;
}
.modules-topic-hint {
padding: 10px 11px;
border-radius: 14px;
background: rgba(10, 132, 255, 0.08);
color: var(--accent-strong);
font-size: 12px;
font-weight: 800;
line-height: 1.35;
}
.modules-card-actions {
margin-top: auto;
}
.modules-card-action,
.modules-card-link {
display: inline-flex;
align-items: center;
min-height: 34px;
padding: 8px 11px;
border-radius: 999px;
border: 1px solid rgba(15, 23, 42, 0.07);
background: rgba(255, 255, 255, 0.78);
color: var(--accent-strong);
font-size: 12px;
font-weight: 850;
}
.modules-card-action:disabled {
color: var(--muted);
cursor: not-allowed;
background: rgba(15, 23, 42, 0.04);
}
.modules-empty-state {
padding: 18px;
border-radius: 20px;
background: rgba(255, 255, 255, 0.72);
border: 1px solid rgba(15, 23, 42, 0.06);
color: var(--muted-strong);
font-size: 14px;
}
.module-workspace {
display: grid;
gap: 22px;
}
.module-workspace-hero {
padding: 30px;
border-radius: 30px;
background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(245,248,252,0.88));
border: 1px solid rgba(255, 255, 255, 0.72);
box-shadow: var(--shadow-lg);
}
.module-workspace-meta {
display: inline-flex;
align-items: center;
gap: 10px;
flex-wrap: wrap;
margin-top: 16px;
}
.module-meta-pill {
display: inline-flex;
align-items: center;
padding: 9px 13px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.78);
border: 1px solid rgba(15, 23, 42, 0.06);
color: var(--muted-strong);
font-size: 13px;
font-weight: 700;
}
.module-workspace-title {
margin: 12px 0 0;
font-size: clamp(34px, 5vw, 56px);
line-height: 0.98;
letter-spacing: -0.06em;
}
.module-workspace-subtitle {
margin: 12px 0 0;
color: var(--muted-strong);
font-size: 18px;
line-height: 1.45;
}
.module-workspace-overview {
margin: 18px 0 0;
max-width: 760px;
color: var(--muted);
font-size: 15px;
line-height: 1.6;
}
.module-workspace-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 18px;
}
.subject-workspace {
display: grid;
gap: 18px;
margin: 18px 0 22px;
}
.subject-shell {
padding: 22px;
border-radius: 28px;
background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,248,252,0.92));
box-shadow: 0 20px 38px rgba(15, 23, 42, 0.06);
}
.subject-shell-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
.subject-shell-head h3 {
margin: 4px 0 0;
font-size: 28px;
letter-spacing: -0.05em;
}
.subject-card-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
margin-top: 18px;
}
.subject-nav-card {
display: flex;
align-items: center;
gap: 12px;
padding: 14px;
border-radius: 22px;
border: 1px solid rgba(15, 23, 42, 0.05);
background: rgba(255,255,255,0.82);
color: var(--text);
text-align: left;
cursor: pointer;
transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, border-color 0.22s ease;
}
.subject-nav-card:focus-visible {
transform: translateY(-2px);
box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
background: rgba(255,255,255,0.96);
}
@media (hover: hover) and (pointer: fine) {
.subject-nav-card:hover {
transform: translateY(-2px);
box-shadow: 0 16px 30px rgba(15, 23, 42, 0.08);
background: rgba(255,255,255,0.96);
}
}
.subject-nav-card.active {
border-color: rgba(10, 132, 255, 0.16);
background: linear-gradient(180deg, rgba(240,247,255,0.98), rgba(232,242,255,0.88));
box-shadow: 0 18px 30px rgba(10, 132, 255, 0.08);
}
.subject-nav-icon {
width: 42px;
height: 42px;
border-radius: 14px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(15, 23, 42, 0.05);
color: var(--muted-strong);
font-size: 15px;
font-weight: 800;
letter-spacing: -0.03em;
flex-shrink: 0;
}
.subject-nav-card.active .subject-nav-icon {
background: rgba(10, 132, 255, 0.14);
color: var(--accent-strong);
}
.subject-nav-label {
display: flex;
flex-direction: column;
gap: 2px;
}
.subject-nav-label strong {
font-size: 15px;
letter-spacing: -0.02em;
}
.subject-nav-label span {
color: var(--muted);
font-size: 12px;
}
.subject-nav-card.is-empty .subject-nav-icon,
.subject-nav-card.is-empty .subject-nav-label strong {
opacity: 0.5;
}
.subject-nav-label .subject-nav-empty {
color: #8a5a00;
font-weight: 700;
}
.module-build-notice {
display: flex;
align-items: flex-start;
gap: 16px;
padding: 20px 22px;
border-radius: 24px;
background:
repeating-linear-gradient(-45deg, rgba(245, 158, 11, 0.07) 0 14px, transparent 14px 28px),
linear-gradient(180deg, #fffaf0, #fff6e3);
border: 1px dashed rgba(217, 119, 6, 0.45);
}
.module-build-notice[hidden] {
display: none;
}
.module-build-notice-icon {
flex-shrink: 0;
display: grid;
place-items: center;
width: 52px;
height: 52px;
border-radius: 16px;
background: #ffffff;
box-shadow: 0 10px 22px rgba(217, 119, 6, 0.18);
}
.module-build-notice-icon svg {
width: 36px;
height: 36px;
}
.module-build-notice-body {
min-width: 0;
}
.module-build-notice-tag {
display: inline-block;
padding: 3px 10px;
border-radius: 999px;
background: #f59e0b;
color: #1f2937;
font-size: 11px;
font-weight: 850;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.module-build-notice strong {
display: block;
margin-top: 6px;
color: var(--text);
font-size: 19px;
letter-spacing: -0.02em;
}
.module-build-notice p {
margin: 4px 0 0;
color: var(--text);
font-size: 14.5px;
line-height: 1.5;
}
.module-build-notice p b {
color: #92400e;
}
.module-build-notice-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 12px;
}
.module-build-btn {
min-height: 40px;
padding: 0 16px;
border-radius: 999px;
border: 1px solid rgba(15, 23, 42, 0.12);
background: #ffffff;
color: var(--text);
box-shadow: none;
font-size: 14px;
font-weight: 800;
}
@media (hover: hover) and (pointer: fine) {
.module-build-btn:hover {
transform: translateY(-1px);
box-shadow: 0 10px 20px rgba(15, 23, 42, 0.10);
}
}
.module-build-btn.is-primary {
border: 0;
background: linear-gradient(135deg, #10b981, #0a84ff);
color: #ffffff;
box-shadow: 0 12px 24px rgba(10, 132, 255, 0.24);
}
.module-build-btn.is-primary::after {
content: " →";
}
@media (max-width: 560px) {
.module-build-notice {
padding: 16px;
gap: 12px;
}
.module-build-notice-icon {
width: 42px;
height: 42px;
}
.module-build-btn {
width: 100%;
}
}
.subject-topic-panel {
padding: 22px;
border-radius: 28px;
background: rgba(255,255,255,0.9);
box-shadow: 0 18px 32px rgba(15, 23, 42, 0.05);
}
.subject-topic-header {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
margin-bottom: 18px;
}
.subject-topic-header h3 {
margin: 4px 0 0;
font-size: 28px;
letter-spacing: -0.05em;
}
.subject-topic-header p {
margin: 0;
color: var(--muted);
font-size: 14px;
}
.subject-topic-groups {
display: grid;
gap: 12px;
}
.subject-topic-group {
border-radius: 22px;
background: rgba(248, 250, 252, 0.88);
border: 1px solid rgba(15, 23, 42, 0.04);
overflow: hidden;
}
.subject-topic-group summary {
list-style: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 16px 18px;
font-size: 15px;
font-weight: 700;
letter-spacing: -0.02em;
}
.subject-topic-group summary::-webkit-details-marker {
display: none;
}
.subject-topic-group summary span {
color: var(--muted);
font-size: 12px;
font-weight: 700;
}
.subject-topic-list {
display: grid;
gap: 8px;
padding: 0 18px 18px;
}
.subject-topic-empty {
display: grid;
gap: 4px;
padding: 24px;
border-radius: 22px;
background: rgba(248, 250, 252, 0.88);
border: 1px dashed rgba(15, 23, 42, 0.12);
text-align: center;
}
.subject-topic-empty strong {
font-size: 15px;
letter-spacing: -0.02em;
}
.subject-topic-empty span {
color: var(--muted);
font-size: 13px;
}
.subject-topic-item {
padding: 12px 14px;
border-radius: 16px;
background: rgba(255,255,255,0.86);
color: var(--text);
font-size: 14px;
}
.subject-topic-button {
width: 100%;
padding: 12px 14px;
border: none;
border-radius: 16px;
background: rgba(255,255,255,0.92);
color: var(--text);
font-size: 14px;
text-align: left;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.subject-topic-button:focus-visible {
transform: translateY(-1px);
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
background: rgba(255,255,255,1);
}
@media (hover: hover) and (pointer: fine) {
.subject-topic-button:hover {
transform: translateY(-1px);
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08);
background: rgba(255,255,255,1);
}
}
.subject-topic-button.is-return-focus,
.subject-topic-item.is-return-focus {
animation: subject-topic-return 1.8s ease-out;
}
@keyframes subject-topic-return {
0%, 35% {
background: rgba(255, 255, 255, 1);
box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.32), 0 12px 24px rgba(15, 23, 42, 0.08);
}
100% {
box-shadow: 0 0 0 3px rgba(10, 132, 255, 0), 0 12px 24px rgba(15, 23, 42, 0);
}
}
@media (prefers-reduced-motion: reduce) {
.subject-topic-button.is-return-focus,
.subject-topic-item.is-return-focus {
animation: none;
box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.32);
}
}
.subject-topic-subgroup {
border-radius: 16px;
background: rgba(241, 245, 249, 0.9);
border: 1px solid rgba(15, 23, 42, 0.07);
}
.subject-topic-subgroup summary {
list-style: none;
cursor: pointer;
display: flex;
align-items: center;
gap: 10px;
padding: 12px 14px;
font-size: 14.5px;
font-weight: 700;
letter-spacing: -0.01em;
}
.subject-topic-subgroup summary::-webkit-details-marker {
display: none;
}
.subject-topic-subgroup summary::before {
content: '';
flex: none;
width: 7px;
height: 7px;
border-right: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(-45deg);
transition: transform 0.2s ease;
opacity: 0.6;
}
.subject-topic-subgroup[open] summary::before {
transform: rotate(45deg);
}
.subject-topic-subgroup summary span {
margin-left: auto;
color: var(--muted);
font-size: 12px;
font-weight: 700;
white-space: nowrap;
}
.subject-topic-subhead {
display: flex;
align-items: baseline;
gap: 10px;
margin-top: 8px;
padding: 6px 4px 2px;
border-bottom: 1px solid rgba(15, 23, 42, 0.1);
color: #1e3a5f;
font-size: 12.5px;
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.subject-topic-subhead:first-child {
margin-top: 0;
}
.subject-topic-subhead span {
margin-left: auto;
color: var(--muted);
font-size: 11.5px;
font-weight: 700;
letter-spacing: 0;
text-transform: none;
white-space: nowrap;
}
.subject-topic-sublist {
display: grid;
gap: 8px;
padding: 0 10px 10px;
}
.topic-detail-panel {
padding: 22px;
border-radius: 28px;
background: rgba(255,255,255,0.92);
box-shadow: 0 18px 32px rgba(15, 23, 42, 0.05);
}
.topic-detail-meta {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin: 12px 0 18px;
}
.topic-detail-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
margin-top: 18px;
}
.topic-detail-card {
padding: 18px;
border-radius: 22px;
background: rgba(248, 250, 252, 0.9);
border: 1px solid rgba(15, 23, 42, 0.04);
}
.topic-detail-card h4 {
margin: 8px 0 8px;
font-size: 18px;
letter-spacing: -0.03em;
}
.topic-detail-card p {
margin: 0;
color: var(--text);
font-size: 14px;
line-height: 1.55;
}
.topic-workspace-page {
display: grid;
gap: 18px;
margin: 18px 0 22px;
}
.topic-workspace-hero {
padding: 26px;
border-radius: 32px;
background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(246,248,252,0.92));
box-shadow: 0 22px 40px rgba(15, 23, 42, 0.06);
}
.topic-workspace-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
}
.topic-workspace-title {
margin: 10px 0 0;
font-size: clamp(40px, 5vw, 62px);
letter-spacing: -0.06em;
line-height: 0.95;
hyphens: auto;
overflow-wrap: anywhere;
}
.topic-workspace-copy {
max-width: none;
color: var(--muted);
font-size: 16px;
line-height: 1.6;
margin: 18px 0 0;
}
@media (min-width: 1180px) {
.topic-workspace-copy {
columns: 2;
column-gap: 44px;
}
}
@media (min-width: 1800px) {
.topic-workspace-copy {
columns: 3;
column-gap: 44px;
}
}
.topic-workspace-copy strong {
color: var(--text);
font-weight: 700;
}
.topic-workspace-actions {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.topic-breadcrumbs {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
margin-top: 12px;
color: var(--muted);
font-size: 13px;
}
.topic-breadcrumbs button {
width: auto;
padding: 0;
background: transparent;
color: var(--muted-strong);
box-shadow: none;
border: none;
font-size: 13px;
font-weight: 700;
}
.topic-breadcrumbs button:focus-visible {
transform: none;
text-decoration: underline;
background: transparent;
}
@media (hover: hover) and (pointer: fine) {
.topic-breadcrumbs button:hover {
transform: none;
text-decoration: underline;
background: transparent;
}
}
.topic-workspace-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
}
.topic-section-card {
padding: 22px;
border-radius: 28px;
background: rgba(255,255,255,0.92);
box-shadow: 0 18px 32px rgba(15, 23, 42, 0.05);
}
.topic-section-card.full-width {
grid-column: 1 / -1;
}
.topic-section-card .section-label {
font-size: 12px;
font-weight: 800;
letter-spacing: 0.09em;
text-transform: uppercase;
color: var(--accent-strong, #0066cc);
margin: 0 0 2px;
line-height: 1.35;
}
.topic-section-card h3 {
margin: 10px 0 10px;
font-size: 28px;
letter-spacing: -0.04em;
}
.topic-section-card p {
margin: 0;
color: var(--text);
font-size: 15px;
line-height: 1.65;
}
.topic-stack {
display: grid;
gap: 14px;
margin-top: 18px;
}
.topic-callout {
padding: 16px 18px;
border-radius: 20px;
background: linear-gradient(180deg, rgba(240,247,255,0.95), rgba(233,241,252,0.9));
border: 1px solid rgba(10, 132, 255, 0.12);
}
.topic-callout strong {
display: block;
margin-bottom: 6px;
font-size: 13px;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--accent-strong);
}
.topic-bullet-list {
display: grid;
gap: 10px;
margin-top: 16px;
}
.topic-bullet-item {
padding: 14px 16px;
border-radius: 18px;
background: rgba(248, 250, 252, 0.88);
color: var(--text);
font-size: 14px;
line-height: 1.55;
}
.topic-bullet-item strong {
display: block;
margin-bottom: 4px;
font-size: 15px;
letter-spacing: -0.02em;
}
.topic-columns {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 14px;
margin-top: 18px;
}
.topic-mini-card {
padding: 18px;
border-radius: 22px;
background: rgba(248, 250, 252, 0.9);
border: 1px solid rgba(15, 23, 42, 0.04);
}
.topic-mini-card h4 {
margin: 0 0 10px;
font-size: 18px;
letter-spacing: -0.03em;
}
.topic-mini-card ul,
.topic-section-card ul {
margin: 0;
padding-left: 18px;
color: var(--muted);
display: grid;
gap: 8px;
font-size: 14px;
line-height: 1.55;
}
.topic-compare-table {
width: 100%;
border-collapse: collapse;
margin-top: 18px;
overflow: hidden;
border-radius: 22px;
background: rgba(248, 250, 252, 0.9);
}
.topic-compare-table th,
.topic-compare-table td {
padding: 14px 16px;
text-align: left;
vertical-align: top;
border-bottom: 1px solid rgba(15, 23, 42, 0.05);
font-size: 14px;
line-height: 1.5;
}
.topic-compare-table th {
font-size: 12px;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--muted-strong);
background: rgba(255,255,255,0.7);
}
.topic-compare-table tr:last-child td {
border-bottom: none;
}
.high-yield-callout {
padding: 20px 22px;
border-radius: 24px;
background: linear-gradient(180deg, rgba(240,247,255,0.98), rgba(233,241,252,0.92));
border: 1px solid rgba(10, 132, 255, 0.12);
box-shadow: 0 16px 28px rgba(10, 132, 255, 0.06);
}
.high-yield-callout-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap;
margin-bottom: 10px;
}
.high-yield-callout-label {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--accent-strong);
font-size: 12px;
font-weight: 800;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.high-yield-callout-tag {
display: inline-flex;
align-items: center;
padding: 7px 11px;
border-radius: 999px;
background: rgba(255,255,255,0.82);
border: 1px solid rgba(10, 132, 255, 0.08);
color: var(--accent-strong);
font-size: 12px;
font-weight: 700;
}
.high-yield-callout p {
margin: 0;
color: var(--text);
font-size: 16px;
line-height: 1.72;
font-weight: 560;
}
.module-workspace-card {
padding: 24px;
border-radius: 28px;
background: var(--surface-strong);
border: 1px solid rgba(255, 255, 255, 0.68);
box-shadow: var(--shadow-md);
transition: transform 0.22s ease, box-shadow 0.22s ease;
}
@media (hover: hover) and (pointer: fine) {
.module-workspace-card:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
}
}
.module-workspace-card h3 {
margin: 10px 0 8px;
font-size: 24px;
letter-spacing: -0.04em;
}
.module-workspace-card p {
margin: 0;
color: var(--text);
font-size: 14px;
line-height: 1.6;
}
#hoad-saved-assessments[hidden] {
display: none;
}
.hoad-saved-assessment-list {
margin-top: 18px;
display: grid;
gap: 14px;
}
.hoad-saved-assessment-card {
padding: 18px;
border-radius: 22px;
background: rgba(248, 250, 252, 0.9);
border: 1px solid rgba(15, 23, 42, 0.05);
box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
transition: transform 0.18s ease, box-shadow 0.18s ease;
}
@media (hover: hover) and (pointer: fine) {
.hoad-saved-assessment-card:hover {
transform: translateY(-2px);
box-shadow: 0 18px 34px rgba(15, 23, 42, 0.1);
}
}
.hoad-saved-assessment-head {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}
.hoad-saved-assessment-head strong {
display: block;
font-size: 17px;
line-height: 1.35;
letter-spacing: -0.02em;
color: #111827;
}
.hoad-saved-assessment-meta {
margin-top: 8px;
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.hoad-saved-assessment-meta span {
display: inline-flex;
align-items: center;
padding: 8px 12px;
border-radius: 999px;
background: rgba(255,255,255,0.92);
border: 1px solid rgba(15, 23, 42, 0.05);
color: #475569;
font-size: 12px;
font-weight: 700;
}
.hoad-saved-assessment-actions {
margin-top: 16px;
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.hoad-saved-assessment-actions .button {
width: auto;
}
.hoad-saved-assessment-empty {
margin-top: 18px;
padding: 16px 18px;
border-radius: 20px;
background: rgba(248, 250, 252, 0.9);
border: 1px solid rgba(15, 23, 42, 0.05);
color: #64748b;
font-size: 14px;
line-height: 1.6;
}
.module-workspace-grid > .module-workspace-card {
display: flex;
flex-direction: column;
}
.module-workspace-grid > .module-workspace-card > .module-card-actions:last-child {
margin-top: auto;
padding-top: 18px;
}
.module-workspace-grid:has(#moduleMockExamShelf:not([hidden])) {
align-items: start;
}
.module-workspace-grid:has(> #hoad-saved-assessments:not([hidden])) > .analytics-card,
.module-workspace-grid:has(> .analytics-card > .analytics-dropdown[open]) > .module-workspace-card {
grid-column: 1 / -1;
}
.module-workspace-grid:not(:has(> #hoad-saved-assessments:not([hidden]))) > .analytics-card:has(> .analytics-dropdown[open]) {
order: -1;
}
.analytics-dropdown {
margin-top: auto;
padding-top: 18px;
}
.analytics-dropdown > summary {
display: inline-flex;
border-radius: 999px;
cursor: pointer;
list-style: none;
}
.analytics-dropdown > summary::-webkit-details-marker {
display: none;
}
.analytics-dropdown > summary:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 3px;
}
.analytics-dropdown-cue {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 14px 20px;
border-radius: 999px;
background: rgba(10, 132, 255, 0.08);
color: var(--accent-strong);
font-size: 14px;
font-weight: 800;
transition: background 0.18s ease;
}
@media (hover: hover) and (pointer: fine) {
.analytics-dropdown > summary:hover .analytics-dropdown-cue {
background: rgba(10, 132, 255, 0.14);
}
}
.analytics-dropdown[open] .analytics-dropdown-cue {
background: rgba(15, 23, 42, 0.06);
color: #475569;
font-size: 0;
}
.analytics-dropdown[open] .analytics-dropdown-cue::before {
content: "Hide exam stats";
font-size: 14px;
}
.analytics-dropdown-body {
padding-top: 18px;
}
.analytics-topbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px 16px;
flex-wrap: wrap;
}
.analytics-caption {
margin: 0;
color: var(--muted-strong);
font-size: 13px;
font-weight: 600;
}
.analytics-cohort {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--muted-strong);
font-size: 12px;
font-weight: 800;
}
.analytics-cohort select {
width: auto;
min-height: 34px;
padding: 6px 30px 6px 12px;
border-radius: 999px;
font-size: 13px;
font-weight: 700;
}
.analytics-cohort select:disabled {
opacity: 1;
cursor: default;
}
.cx {
margin-top: 14px;
}
.cx-empty,
.cx-note {
margin: 12px 0 0;
color: var(--muted-strong);
font-size: 13px;
line-height: 1.5;
}
.cx-key {
display: flex;
flex-wrap: wrap;
gap: 6px 18px;
color: var(--muted-strong);
font-size: 12px;
font-weight: 700;
}
.cx-key span {
display: inline-flex;
align-items: center;
gap: 7px;
}
.cx-key i {
display: inline-block;
border-radius: 4px;
}
.cx-key-range {
width: 22px;
height: 6px;
background: rgba(10, 132, 255, 0.2);
}
.cx-key-mid {
width: 22px;
height: 12px;
background: var(--accent);
}
.cx-key-median {
position: relative;
width: 14px;
height: 12px;
background: var(--accent);
}
.cx-key-median::after {
content: "";
position: absolute;
left: 6px;
top: 0;
bottom: 0;
width: 2px;
background: #fff;
}
.cx-table {
margin-top: 12px;
border-top: 1px solid var(--line);
}
.cx-row {
display: grid;
grid-template-columns: minmax(96px, 1.1fr) repeat(2, minmax(64px, 0.7fr)) repeat(2, minmax(96px, 1fr)) minmax(240px, 3fr);
align-items: center;
gap: 12px;
padding: 10px 8px;
border-bottom: 1px solid var(--line);
border-radius: 12px;
transition: background 0.15s ease;
}
.cx-row:focus-within {
background: rgba(10, 132, 255, 0.04);
}
@media (hover: hover) and (pointer: fine) {
.cx-row:not(.cx-row--head):not(.cx-row--axis):hover {
background: rgba(10, 132, 255, 0.04);
}
}
.cx-row--head {
padding-top: 8px;
padding-bottom: 8px;
border-radius: 0;
color: var(--muted);
font-size: 11px;
font-weight: 800;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.cx-row--axis {
padding-top: 6px;
padding-bottom: 0;
border-bottom: 0;
}
.cx-exam {
display: flex;
flex-direction: column;
color: var(--text);
font-size: 14px;
font-weight: 800;
letter-spacing: -0.01em;
}
.cx-exam small {
color: var(--muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0;
}
.cx-num {
color: var(--text);
font-size: 14px;
font-weight: 700;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}
.cx-num--quiet {
color: var(--muted-strong);
font-weight: 600;
}
.cx-chart {
position: relative;
height: 26px;
border-radius: 6px;
outline: none;
}
.cx-chart:focus-visible {
box-shadow: 0 0 0 2px rgba(10, 132, 255, 0.45);
}
.cx-grid {
position: absolute;
top: 0;
bottom: 0;
width: 1px;
background: rgba(15, 23, 42, 0.06);
}
.cx-range {
position: absolute;
top: 50%;
height: 6px;
margin-top: -3px;
border-radius: 4px;
background: rgba(10, 132, 255, 0.2);
}
.cx-mid {
position: absolute;
top: 50%;
height: 12px;
margin-top: -6px;
border-radius: 4px;
background: var(--accent);
}
.cx-median {
position: absolute;
top: 50%;
width: 2px;
height: 12px;
margin: -6px 0 0 -1px;
background: #fff;
}
.cx-tip {
position: absolute;
left: 50%;
bottom: calc(100% + 8px);
z-index: 5;
display: grid;
gap: 2px;
min-width: 176px;
padding: 9px 12px;
border-radius: 12px;
background: #fff;
border: 1px solid var(--line);
box-shadow: 0 14px 30px rgba(15, 23, 42, 0.14);
color: var(--muted-strong);
font-size: 12px;
font-weight: 600;
white-space: nowrap;
opacity: 0;
pointer-events: none;
transform: translate(-50%, 4px);
transition: opacity 0.15s ease, transform 0.15s ease;
}
.cx-tip strong {
color: var(--text);
font-size: 12px;
font-weight: 800;
}
.cx-tip b {
color: var(--text);
font-weight: 800;
font-variant-numeric: tabular-nums;
}
.cx-chart:hover .cx-tip,
.cx-chart:focus-visible .cx-tip {
opacity: 1;
transform: translate(-50%, 0);
}
.cx-chart-head {
text-transform: none;
letter-spacing: 0;
font-size: 12px;
}
.cx-axis {
position: relative;
height: 14px;
}
.cx-axis span {
position: absolute;
color: var(--muted);
font-size: 11px;
font-weight: 700;
font-variant-numeric: tabular-nums;
transform: translateX(-50%);
}
.module-card-actions {
margin-top: 18px;
}
.module-tool-actions {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px;
}
.module-tools-card {
background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.9));
}
@media (max-width: 1180px) {
.modules-card-grid,
.modules-card-grid.compact {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 820px) {
.modules-overview-hero,
.modules-current-panel {
align-items: flex-start;
flex-direction: column;
}
.subject-card-grid,
.module-workspace-grid,
.topic-workspace-grid,
.topic-detail-grid,
.topic-columns,
.modules-card-grid,
.modules-card-grid.compact {
grid-template-columns: 1fr;
}
.cx-row {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px 12px;
padding: 12px 6px;
}
.cx-row--head {
display: none;
}
.cx-exam,
.cx-chart,
.cx-axis {
grid-column: 1 / -1;
}
.cx-row--axis > span:not(.cx-axis) {
display: none;
}
.cx-num {
display: flex;
flex-direction: column;
font-size: 13px;
}
.cx-num::before {
content: attr(data-label);
color: var(--muted);
font-size: 10px;
font-weight: 800;
letter-spacing: 0.03em;
text-transform: uppercase;
}
}
#hoadTopicWorkspacePage > [hidden] { display: none !important; }
.rb-launch[hidden] { display: none !important; }
.rb-launch {
position: relative;
display: inline-flex; align-items: center; gap: 10px; padding: 11px 20px 11px 15px; border-radius: 999px;
font: inherit; font-size: 14px; font-weight: 800; letter-spacing: -0.01em; color: #3d2a00; white-space: nowrap; cursor: pointer;
background: linear-gradient(180deg, #fffaea 0%, #fbefc9 40%, #f1d78a 78%, #e2bf5c 100%);
border: 1px solid #c9a23e;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.95),
inset 0 -2px 0 rgba(120, 80, 0, 0.12),
0 2px 0 #d2b05a,
0 14px 28px rgba(150, 105, 10, 0.22),
0 0 0 4px rgba(255, 255, 255, 0.55);
transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.rb-launch:hover {
transform: translateY(-2px);
filter: brightness(1.03);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.95),
inset 0 -2px 0 rgba(120, 80, 0, 0.12),
0 3px 0 #d2b05a,
0 20px 36px rgba(150, 105, 10, 0.28),
0 0 0 4px rgba(255, 255, 255, 0.6);
}
}
.rb-launch:active { transform: translateY(0); box-shadow: inset 0 2px 4px rgba(120, 80, 0, 0.2), 0 8px 18px rgba(150, 105, 10, 0.18); }
.rb-launch:focus-visible { outline: 3px solid #0071e3; outline-offset: 3px; }
.rb-launch svg { width: 26px; height: 22px; flex: 0 0 26px; overflow: visible; }
.rb-launch svg rect { stroke: #8a6100; stroke-width: 1.6; transition: transform 0.25s ease; transform-box: fill-box; transform-origin: 50% 100%; }
.rb-launch-back { fill: #f6e3a8; }
.rb-launch-mid { fill: #fbefc9; }
.rb-launch-front { fill: #ffffff; }
.rb-launch-tick { stroke: #b8860b; stroke-width: 2.2; }
.rb-launch:hover .rb-launch-back { transform: rotate(8deg) translateX(1px); }
.rb-launch:hover .rb-launch-mid { transform: rotate(3deg); }
.rb-launch-new {
position: absolute; top: -9px; right: -6px;
padding: 3px 8px; border-radius: 999px;
font-size: 10px; font-weight: 900; letter-spacing: 0.08em; text-transform: uppercase; line-height: 1;
color: #ffffff; background: #b8860b; border: 2px solid #ffffff;
box-shadow: 0 6px 14px rgba(150, 105, 10, 0.35);
}
@media (prefers-reduced-motion: reduce) {
.rb-launch, .rb-launch svg rect { transition: none; }
}
.gin-recall-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; }
.gin-recall-bar--outside { margin: 0 0 10px; justify-content: flex-end; }
.gin-recall-bar button { box-shadow: none; transform: none; font: inherit; }
@media (hover: hover) and (pointer: fine) {
.gin-recall-bar button:hover { transform: none; }
}
.gin-recall-mode {
display: inline-flex; padding: 3px; gap: 2px; border-radius: 999px;
background: #f1f3f7; border: 1px solid #e3e7ee;
}
.gin-recall-mode button {
padding: 6px 13px; border-radius: 999px; background: transparent; color: #4a4f59;
font-size: 13px; font-weight: 800; cursor: pointer;
}
.gin-recall-mode button[aria-pressed="true"] { background: #ffffff; color: #111111; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.1), 0 3px 10px -6px rgba(15, 23, 42, 0.3); }
.gin-recall-mode button:focus-visible, .gin-recall-xlink:focus-visible { outline: 3px solid #0071e3; outline-offset: 2px; }
.gin-recall-xlink {
display: inline-flex; align-items: center; gap: 8px; padding: 8px 15px; border-radius: 999px;
border: 1px solid #e6cd83; background: linear-gradient(180deg, #fffaea, #fbefc9); cursor: pointer;
font-size: 13.5px; font-weight: 800; color: #5a4000;
}
@media (hover: hover) and (pointer: fine) {
.gin-recall-xlink:hover { background: #fbefc9; }
}
.gin-recall-xlink span { color: #b8860b; }
.arc-pad-toast {
position: fixed; left: 50%; bottom: 28px; z-index: 3000; max-width: calc(100vw - 32px);
padding: 11px 18px; border-radius: 999px; background: #111111; color: #ffffff;
font-size: 14px; font-weight: 700; line-height: 1.35; text-align: center;
box-shadow: 0 14px 30px -14px rgba(0, 0, 0, 0.55);
opacity: 0; transform: translate(-50%, 12px); pointer-events: none;
transition: opacity 0.2s ease, transform 0.2s ease;
}
.arc-pad-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.vt-launch[hidden] {
display: none !important;
}
.vt-launch {
display: inline-flex;
align-items: center;
gap: 9px;
padding: 11px 18px;
border-radius: 999px;
font-size: 13px;
font-weight: 700;
letter-spacing: -0.01em;
color: #fff;
background: linear-gradient(180deg, #d81733, #ab0c24);
border: 1px solid rgba(126, 8, 27, 0.4);
box-shadow: 0 14px 28px rgba(200, 16, 46, 0.26);
cursor: pointer;
white-space: nowrap;
transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
.vt-launch:hover {
transform: translateY(-1px);
filter: saturate(1.08);
box-shadow: 0 18px 34px rgba(200, 16, 46, 0.32);
}
}
.vt-launch:active {
transform: translateY(0);
}
.vt-launch svg {
width: 15px;
height: 15px;
flex: 0 0 15px;
}
.vt-launch-note {
display: block;
font-size: 11px;
font-weight: 600;
color: var(--muted);
margin-top: 7px;
text-align: right;
}
.subject-topic-header .vt-launch-slot {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
}
@media (max-width: 720px) {
.subject-topic-header .vt-launch-slot {
align-items: flex-start;
width: 100%;
}
.vt-launch-note {
text-align: left;
}
}
.subject-topic-header .vt-launch-slot p {
text-align: right;
max-width: 48ch;
}
@media (max-width: 720px) {
.subject-topic-header .vt-launch-slot p {
text-align: left;
}
}
@media (max-width: 700px) {
.topic-workspace-page .topic-workspace-hero {
padding-top: 20px;
padding-bottom: 22px;
}
.topic-workspace-page .topic-workspace-hero .topic-detail-meta,
.topic-workspace-page .topic-workspace-hero .topic-workspace-actions {
display: none;
}
.topic-workspace-page .topic-breadcrumbs {
gap: 2px 6px;
margin-top: 6px;
font-size: 14px;
}
.topic-workspace-page .topic-breadcrumbs > span:nth-last-child(-n+2) {
display: none;
}
.topic-workspace-page .topic-breadcrumbs button {
min-height: 44px;
padding: 0 2px;
font-size: 14px;
color: #0a63d6;
}
.topic-workspace-page .topic-workspace-copy {
margin-top: 10px;
}
}
@media (max-width: 700px) {
.topic-workspace-page .topic-workspace-hero,
.topic-workspace-page .topic-section-card {
margin-left: -16px;
margin-right: -16px;
padding-left: 16px;
padding-right: 16px;
border-radius: 0;
}
.topic-workspace-page .topic-section-card .topic-section-card {
margin-left: 0;
margin-right: 0;
border-radius: 22px;
}
}
