/* Journal direction: open pages, typographic hierarchy and task-focused disclosure.
   Loaded after screen styles so every role uses the same visual language. */
:root, :root[data-theme="light"] {
    --bg: #ffffff; --surface: #ffffff; --surface-secondary: #f3f5f2;
    --surface-tertiary: #f8f9f7; --surface-hover: #f0f4f0;
    --text-primary: #242c28; --text-secondary: #667069; --text-tertiary: #737e76;
    --divider: #dce2dc; --divider-subtle: #edf0eb;
    --sidebar: #f3f5f0; --sidebar-soft: #f3f5f0; --sidebar-text: #424d43;
    --sidebar-muted: #6a756b; --sidebar-border: #e2e7df; --sidebar-hover: #e8ede5;
    --sidebar-active: transparent; --sidebar-active-border: #205c4d; --sidebar-brand-text: #205c4d;
    --card-shadow: none; --shadow-xs: none; --shadow-sm: none;
    --sidebar-width: 232px; --table-header: #f7f9f5;
    --font-display: "Cambria", "Georgia", serif;
    --font-sans: "Segoe UI", Arial, sans-serif;
}
:root[data-theme="dark"] {
    --bg: #161c19; --surface: #161c19; --surface-secondary: #202a23;
    --surface-tertiary: #1c241f; --surface-hover: #28362d;
    --text-primary: #e6ece6; --text-secondary: #a9b7ac; --text-tertiary: #9aa99e;
    --primary: #8fc9a9; --primary-hover: #b1dfc4; --primary-soft: #263d30;
    --on-accent: #15291e; --divider: #354039; --divider-subtle: #2b342e;
    --sidebar: #1c241f; --sidebar-soft: #1c241f; --sidebar-text: #ccd8ce;
    --sidebar-muted: #a2b2a6; --sidebar-border: #303b33; --sidebar-hover: #29372d;
    --sidebar-active: transparent; --sidebar-active-border: #8fc9a9; --sidebar-brand-text: #c2e1cc;
    --input-bg: #1c241f; --table-header: #202a23; --card-shadow: none;
}
body { font-size: 14px; }
.page-heading { margin-bottom: 34px; align-items: center; }
.page-heading h1, .student-title-line h1 { font-family: var(--font-display); font-size: clamp(30px, 3vw, 40px); font-weight: 400; letter-spacing: -.035em; }
/* Static introductory copy repeats the heading; field hints and errors stay visible. */
.page-heading .lead, .page-heading #page-subtitle { display: none; }
h2, .section-heading h2, .student-shell .panel-heading h2 { font-size: 17px; font-weight: 600; letter-spacing: 0; }
.card, .panel, .panel-section, .table-card, .content-card, .stat-card,
.student-shell .panel, .student-shell .assistant-lead,
.student-shell .metrics-grid, .student-shell .summary-strip {
    border: 0; border-radius: 0; box-shadow: none; background: transparent;
}
.card-header, .panel-heading { padding-left: 0; padding-right: 0; }
.button, .student-shell .button { border-radius: 2px; box-shadow: none; font-weight: 600; }
.button:not(.button-primary):not(.primary):not(.button-danger) { background: transparent; border-color: var(--divider); }
.button:not(.button-primary):not(.primary):hover { background: var(--surface-hover); }
.button-primary, .student-shell .button.primary { background: var(--primary); border-color: var(--primary); color: var(--on-accent); }
.input, .select, .student-shell input, .student-shell select, .student-shell textarea { border-radius: 2px; }
.sidebar[data-app-sidebar] { border: 0; padding: 26px 16px 18px; }
.app-brand { font-family: var(--font-display); font-weight: 600; font-size: 24px; gap: 0; }
.app-brand .brand-mark { display: none; }
.nav-section-title { font-size: 10px; font-weight: 500; letter-spacing: .09em; }
.nav-link { font-size: 14px; font-weight: 400; border-radius: 0; padding: 9px 10px; }
.nav-link.active { color: var(--sidebar-brand-text); font-weight: 700; background: transparent; }
.nav-link.active::before { width: 2px; border-radius: 0; left: -6px; }
.nav-link .nav-icon { width: 16px; height: 16px; opacity: .7; }
.sidebar-footer .avatar { background: transparent; border-radius: 0; color: var(--sidebar-brand-text); font-family: var(--font-display); font-size: 20px; }
.sidebar-footer .theme-field label { display: none; }
.sidebar-footer .select { border: 0; font-size: 12px; padding-left: 0; }
.workspace { grid-template-columns: minmax(0, 1fr); }
/* Summary remains available without a second dashboard next to the table. */
.utility-column { display: flex; flex-wrap: wrap; gap: 28px; padding: 20px 0 0; border: 0; }
.utility-column .utility-section { padding: 0; border: 0; }
.utility-column .utility-section:has(.quick-actions), .utility-column .utility-section:has(.notice) { display: none; }
.utility-column .mini-group { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; padding: 0; background: transparent; }
.utility-column .mini-group-meta, .utility-column .utility-title { display: none; }
.utility-column .mini-row { gap: 10px; border: 0; margin: 0; }
.data-table th, table th { background: var(--table-header); font-weight: 600; text-transform: none; }
.data-table td, table td { border-bottom: 1px solid var(--divider-subtle); }
.status, .risk-badge, .badge { border: 0; border-radius: 2px; box-shadow: none; }
.quiet-details { min-width: 0; padding: 18px 0; border: 0; border-top: 1px solid var(--divider); }
.quiet-details > summary { cursor: pointer; color: var(--text-secondary); font-size: 14px; font-weight: 500; list-style-position: inside; }
.quiet-details[open] > summary { color: var(--primary); margin-bottom: 22px; }
.quiet-details > summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 6px; }
.quiet-details.improvements { grid-column: 1 / -1; }
/* Teacher and curator desk: group controls followed by one priority list. */
.today-workspace .start-work-card { padding: 0 0 28px; margin-bottom: 34px; border: 0; border-bottom: 1px solid var(--divider); }
.today-workspace .start-work-controls { margin: 0; gap: 18px; }
.today-workspace .start-work-actions { justify-content: flex-start; }
.today-workspace .start-work-actions .button { flex: 0 1 auto; }
.today-workspace .start-work-actions .button:not(.button-primary) { border-color: transparent; }
.today-workspace #today-content { grid-template-columns: minmax(0, 1.65fr) minmax(240px, 1fr); gap: 40px; }
.today-workspace .risk-card { padding: 20px 0; border: 0; border-bottom: 1px solid var(--divider); border-radius: 0; }
.today-workspace .risk-card::before { display: none; }
.today-workspace .risk-actions { border: 0; padding-top: 8px; }
.today-workspace .risk-actions .button { background: transparent; border-color: transparent; color: var(--primary); padding: 4px 0; margin-right: 16px; min-height: 32px; }
.today-workspace .risk-actions .text-button { font-size: 12px; }
.today-workspace .action-feed { padding: 0; min-height: 0; border: 0; }
.today-workspace .compact-empty, .today-workspace .action-feed .compact-empty { border: 0; padding: 18px 0; min-height: 0; text-align: left; justify-items: start; }
.today-workspace .compact-empty h3 { font-size: 14px; font-weight: 400; color: var(--muted); margin: 0; }
.today-workspace .compact-empty p { display: none; }
.today-workspace .risk-meta { font-size: 12px; }
/* Student home: next action, a compact line of results, then assignments. */
.student-shell .panel { padding: 20px 0; }
.student-shell .today-priority { border: 0; padding: 0 0 26px; border-bottom: 1px solid var(--divider); }
.student-shell .today-priority .panel-heading h2 { display: none; }
.student-shell .today-priority .panel-heading p { max-width: 600px; }
.student-shell .today-priority-title { font-family: var(--font-display); font-size: 25px; font-weight: 400; }
.student-shell .metrics-grid { padding: 12px 0 20px; margin: 0; gap: 24px; }
.student-shell .metric { padding: 8px 0; min-height: 0; background: transparent; }
.student-shell .metric-note { display: none; }
.student-shell .metric-value { font-size: 23px; font-weight: 500; }
.student-shell .dashboard-grid { display: flex; flex-direction: column; gap: 0; }
.student-shell .dashboard-grid > .panel { order: -1; }
.student-shell .assignment-card, .student-shell .assistant-item, .student-shell .quick-questions button { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.student-shell .assistant-grid { display: flex; flex-direction: column; gap: 0; }
.student-shell .assistant-lead { padding: 0 0 20px; border: 0; gap: 0; }
.student-shell .assistant-lead > span, .student-shell .assistant-lead h2 { display: none; }
.student-shell .assistant-lead p { font-size: 12px; }
.student-shell .assistant-lead button { margin-left: auto; }
.student-shell .assistant-summary { display: none; }
.student-shell .assistant-grid > .panel.assistant-wide { order: -1; padding-top: 0; }
.student-shell .assistant-detail { width: 100%; }
.student-shell .quick-questions { gap: 8px 22px; }
.student-shell .quick-questions button { padding: 5px 0; color: var(--primary); text-decoration: underline; text-underline-offset: 4px; }
.student-shell .assistant-question textarea { border: 1px solid var(--divider); min-height: 88px; }
.student-kpis { background: transparent; box-shadow: none; padding: 0; }
.panel-section { padding: 18px 0; }
.invite-details { margin-bottom: 28px; }
.invite-details > summary { color: var(--primary); }
.auth-card { border-top: 3px solid var(--primary); padding: 28px 0; }
@media (max-width: 1050px) { .today-workspace #today-content { grid-template-columns: 1fr; gap: 26px; } .today-workspace .today-columns { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
    .student-shell .today-priority .panel-heading { flex-direction: column; align-items: flex-start; gap: 16px; }
    .student-shell .today-priority .panel-heading > div { width: 100%; min-width: 0; }
    .page-heading { margin-bottom: 24px; }
    .today-workspace .today-columns { grid-template-columns: 1fr; }
    .today-workspace .start-work-actions { display: flex; }
    .today-workspace .start-work-actions .button { flex: 1 1 150px; }
    .student-shell .metrics-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .student-shell .assistant-lead { flex-wrap: wrap; gap: 14px; }
    .student-shell .assistant-lead button { margin-left: 0; }
    .utility-column .mini-group { gap: 12px; }
}
.risk-details { margin-top: 12px; color: var(--muted); font-size: 12px; }
.risk-details summary { cursor: pointer; list-style-position: inside; }
.risk-details[open] summary { margin-bottom: 12px; }
.risk-details .row-actions { margin-top: 12px; }
.today-workspace .risk-actions .button:not(.button-primary) { border: 0; }
@media (min-width: 761px) { .student-shell .metrics-grid { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.student-shell .assistant-question > label { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* Personal study guidance: readable prose, short steps, resources without card clutter. */
.student-shell .personal-assistant { max-width: 920px; }
.student-shell .personal-assistant h2 { font-size: 23px; font-weight: 600; margin: 0 0 16px; }
.student-shell .personal-assistant h3 { font-size: 20px; line-height: 1.45; margin: 26px 0 10px; }
.student-shell .personal-assistant p, .student-shell .personal-assistant li { font-size: 18px; line-height: 1.75; }
.student-shell .personal-assistant .assistant-context { font-size: 15px; color: var(--muted); margin: 0 0 30px; }
.student-shell .personal-assistant .assistant-question { margin: 0; }
.student-shell .personal-assistant .assistant-question textarea { font-size: 18px; line-height: 1.6; padding: 16px; width: 100%; min-height: 110px; resize: vertical; }
.student-shell .personal-assistant .assistant-question small { font-size: 14px; }
.student-shell .personal-assistant .button { font-size: 16px; min-height: 44px; }
.student-shell .personal-assistant .quick-questions { margin: 12px 0 34px; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.student-shell .personal-assistant .quick-questions button { font-size: 15px; line-height: 1.5; text-align: left; }
.assistant-response-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; align-items: center; border-top: 1px solid var(--divider); padding-top: 28px; }
.student-shell .personal-assistant .assistant-response-toolbar h2 { margin: 0; }
.personal-answer { padding: 4px 0 24px; }
.student-shell .personal-assistant .answer-summary { font-size: 21px; line-height: 1.65; }
.student-shell .personal-assistant .asked-question { font-size: 16px; color: var(--muted); padding-left: 16px; border-left: 2px solid var(--primary); }
.answer-focus { color: var(--text-primary); }
.personal-steps { padding-left: 28px; }
.personal-steps li { padding-left: 8px; margin-bottom: 14px; }
.personal-steps li::marker { color: var(--primary); font-weight: 600; }
.student-shell .personal-assistant .assistant-source { font-size: 15px; color: var(--muted); }
.personal-answer { overflow-wrap: anywhere; }
.personal-answer .answer-section { margin: 26px 0; }
.student-shell .personal-assistant .answer-heading {
    margin: 0 0 14px; font-size: 18px; font-weight: 650;
    text-decoration: underline; text-decoration-color: var(--primary);
    text-decoration-thickness: 2px; text-underline-offset: 7px;
}
.personal-answer .asked-question span { display: block; font-size: 12px; font-weight: 700; margin-bottom: 4px; }
.personal-answer .answer-callout {
    padding: 22px 24px; margin: 24px 0; background: var(--surface-secondary);
    border-left: 4px solid var(--primary); border-radius: 0 12px 12px 0;
}
.personal-answer .answer-focus { margin: 0; font-weight: 550; }
.personal-answer .answer-topic { font-weight: 650; color: var(--primary); }
.personal-answer .personal-steps { margin: 0; padding-left: 28px; }
.personal-answer .personal-steps li { padding: 10px 0 14px 10px; border-bottom: 1px solid var(--divider-subtle); }
.personal-answer .personal-steps li:last-child { border-bottom: 0; margin-bottom: 0; }
.student-shell .personal-assistant .answer-encouragement { font-size: 16px; font-style: italic; color: var(--text-secondary); }
.personal-answer .assistant-source { padding-top: 16px; border-top: 1px solid var(--divider-subtle); }
.student-shell .personal-assistant .assistant-question textarea:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
@media (max-width: 600px) { .personal-answer .answer-callout { padding: 18px 16px; } }
.assistant-study-materials { padding-top: 24px; border-top: 1px solid var(--divider); margin-bottom: 28px; }
.student-shell .personal-assistant #assistant-materials-note { color: var(--muted); font-size: 16px; }
.study-resource { padding: 22px 0; border-bottom: 1px solid var(--divider-subtle); }
.study-video-preview { display: block; position: relative; max-width: 460px; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 12px; margin-bottom: 16px; background: var(--surface-secondary); }
.study-video-preview img { width: 100%; height: 100%; object-fit: cover; }
.study-video-preview span { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: #202a23; color: #fff; padding: 8px 18px; border-radius: 12px; }
.study-video-preview:focus-visible { outline: 3px solid var(--primary); outline-offset: 3px; }
.study-video-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 24px; }
.study-video-card { min-width: 0; }
.study-video-card .study-video-preview { max-width: none; margin-bottom: 12px; }
.student-shell .personal-assistant .study-video-card h3 { font-size: 17px; margin: 0 0 6px; overflow-wrap: anywhere; }
.study-video-card h3 a { color: var(--text-primary); text-decoration: none; }
.study-video-card h3 a:hover { text-decoration: underline; }
.study-video-card small { color: var(--text-secondary); }
.study-resource-kind { font-size: 14px; color: var(--muted); }
.student-shell .personal-assistant .study-resource h3 { margin: 8px 0; }
.study-resource h3 a, .study-resource-link { color: var(--primary); }
.study-resource-link { font-size: 17px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.student-shell .personal-assistant .study-resource p { margin: 8px 0 14px; font-size: 17px; }
.student-shell .personal-assistant .quiet-details summary { font-size: 17px; }
.student-shell .personal-assistant .assistant-item small { font-size: 16px; line-height: 1.65; }
.student-shell .personal-assistant .assistant-summary { display: grid; }
.assistant-loading { color: var(--muted); min-height: 90px; }
.assistant-failure { color: var(--danger); }
@media (max-width: 600px) {
    .student-shell .personal-assistant .assistant-question-row { display: flex; flex-direction: column; }
    .student-shell .personal-assistant .assistant-response-toolbar .button { width: 100%; }
    .student-shell .personal-assistant .answer-summary { font-size: 20px; }
    .student-shell .personal-assistant .quick-questions { gap: 12px; }
}
.student-shell .personal-assistant .assistant-question-row { align-items: end; } .student-shell .personal-assistant .assistant-question-row button { align-self: end; min-height: 48px; }
