/* Student and family workflow portal surfaces extracted from app.py. */
.student-v0-home,
.student-v0-task-shell,
.family-v0-home { display:grid; gap:18px; min-width:0; }
.student-v0-home-grid { display:grid; grid-template-columns:minmax(0,1.16fr) minmax(360px,0.84fr); gap:16px; align-items:stretch; }
.student-v0-app-shell { display:grid; gap:14px; min-width:0; padding:20px; border-radius:34px; border:1px solid var(--student-border); background:rgba(255,255,255,0.9); box-shadow:0 18px 38px rgba(78,102,113,0.08); }
.student-v0-main-card,
.family-v0-main-card { position:relative; overflow:hidden; display:grid; gap:14px; align-content:space-between; min-width:0; padding:22px; border-radius:34px; text-decoration:none; box-shadow:0 18px 38px rgba(78,102,113,0.12); }
.student-v0-main-card { min-height:208px; background:linear-gradient(135deg,#c8d6d0 0%,#baccc5 100%); color:var(--student-hero-text); border:1px solid rgba(97,121,133,0.16); }
.family-v0-main-card { align-self:start; min-height:320px; background:linear-gradient(135deg,#d6e1dc 0%,#c6d3ce 52%,#eef2f0 100%); color:var(--family-ink); border:1px solid var(--family-border); box-shadow:0 18px 38px rgba(78,102,113,0.10); }
.student-v0-main-card::after,
.family-v0-main-card::after { content:""; position:absolute; right:-58px; bottom:-74px; width:196px; height:196px; border-radius:999px; background:rgba(255,255,255,0.24); }
.student-v0-main-card > *,
.family-v0-main-card > * { position:relative; z-index:1; }
.student-v0-main-top,
.family-v0-main-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.student-v0-main-kicker,
.family-v0-main-kicker { display:inline-flex; align-items:center; min-height:32px; width:fit-content; padding:0 12px; border-radius:999px; font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.student-v0-main-kicker { background:rgba(255,255,255,0.34); color:var(--student-accent-strong); }
.family-v0-main-kicker { background:#fff; color:var(--family-accent-strong); border:1px solid var(--family-border); }
.student-v0-main-count,
.family-v0-main-count { display:inline-flex; align-items:center; justify-content:center; min-width:56px; height:56px; padding:0 12px; border-radius:999px; font-size:26px; font-weight:900; letter-spacing:-0.04em; }
.student-v0-main-count { background:rgba(255,255,255,0.62); color:var(--student-accent-strong); }
.family-v0-main-count { background:var(--family-accent-soft); color:var(--family-accent-strong); }
.student-v0-main-title { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:center; min-width:0; }
.student-v0-main-icon { display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:20px; font-size:26px; font-weight:900; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.42); }
.student-v0-main-icon.tone-reading { background:var(--student-reading-bg); color:var(--student-reading-text); }
.student-v0-main-icon.tone-writing { background:var(--student-writing-bg); color:var(--student-writing-text); }
.student-v0-main-icon.tone-audio { background:var(--student-audio-bg); color:var(--student-audio-text); }
.student-v0-main-icon.tone-quiz { background:var(--student-quiz-bg); color:var(--student-quiz-text); }
.student-v0-main-card strong,
.family-v0-main-card strong { font-size:32px; line-height:1; letter-spacing:-0.05em; }
.student-v0-main-card strong { color:var(--student-hero-text); }
.family-v0-main-card strong { color:var(--family-ink); }
.student-v0-main-meta { display:grid; gap:4px; color:rgba(36,52,59,0.78); font-size:14px; line-height:1.45; }
.student-v0-main-meta b { color:var(--student-accent-strong); font-size:11px; line-height:1; letter-spacing:0.08em; text-transform:uppercase; }
.student-v0-main-cta { display:inline-flex; align-items:center; justify-content:center; width:fit-content; min-height:36px; padding:0 14px; border-radius:999px; background:rgba(255,255,255,0.66); color:var(--student-accent-strong); font-size:12px; font-weight:900; letter-spacing:0.06em; text-transform:uppercase; }
.family-v0-latest-title,
.family-v0-main-card em { font-style:normal; color:rgba(36,52,59,0.76); font-size:14px; line-height:1.55; }
.family-v0-latest-title { color:var(--family-ink); font-size:18px; font-weight:850; letter-spacing:-0.02em; overflow-wrap:anywhere; }
.student-v0-meter-grid,
.family-v0-meter-grid { display:grid; gap:10px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.student-v0-meter,
.family-v0-meter { display:grid; gap:4px; min-width:0; padding:12px 14px; border-radius:22px; background:#fff; box-shadow:0 8px 18px rgba(31,95,119,0.05); }
.student-v0-meter { border:1px solid var(--student-border); }
.family-v0-meter { border:1px solid var(--family-border); }
.student-v0-meter strong,
.family-v0-meter strong { font-size:22px; line-height:1; letter-spacing:-0.04em; color:#111827; }
.family-v0-meter strong { color:var(--family-ink); }
.student-v0-meter span,
.family-v0-meter span { color:#64748b; font-size:12px; font-weight:800; line-height:1.25; }
.student-v0-meter.is-action { background:var(--student-writing-bg); }
.student-v0-meter.is-review { background:var(--student-review-bg); }
.student-v0-meter.is-done { background:var(--student-done-bg); }
.student-v0-meter.is-retry { background:var(--student-warn-bg); }
.family-v0-meter.is-action { background:#e9f8fb; }
.family-v0-meter.is-report { background:#ece7ff; }
.family-v0-meter.is-homework { background:#fff0d6; }
.family-v0-meter.is-update { background:#e7f8e8; }
.family-v0-children { display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.family-v0-child-chip { display:inline-flex; align-items:center; min-height:30px; padding:0 12px; border-radius:999px; background:#fff; border:1px solid var(--family-border); color:var(--family-accent-strong); font-size:12px; font-weight:800; }
.student-v0-app-grid { display:grid; gap:12px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.student-v0-app-shell .student-v0-app-grid { grid-template-columns:1fr; }
.family-v0-home-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,0.9fr); gap:16px; align-items:stretch; }
.family-v0-side-stack { display:grid; gap:12px; min-width:0; align-content:start; }
.family-v0-app-grid { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.student-v0-app-card,
.family-v0-app-card { display:grid; gap:12px; align-content:space-between; min-width:0; min-height:208px; padding:20px; border-radius:30px; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.student-v0-app-card { background:#fff; border:1px solid var(--student-border); box-shadow:0 12px 28px rgba(78,102,113,0.06); color:#111827; }
.family-v0-app-card { background:#fff; border:1px solid var(--family-border); box-shadow:0 12px 26px rgba(78,102,113,0.08); color:var(--family-ink); }
.student-v0-app-shell .student-v0-app-card { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"icon title badge" "icon copy badge"; gap:4px 12px; align-items:center; min-height:98px; padding:16px; border-radius:24px; }
.family-v0-side-stack .family-v0-app-card { grid-template-columns:auto minmax(0,1fr); grid-template-areas:"icon title" "icon copy" "badge badge"; gap:4px 12px; align-items:center; min-height:112px; padding:16px; border-radius:24px; }
.student-v0-app-card:hover,
.family-v0-app-card:hover { transform:translateY(-2px); }
.student-v0-app-card:hover { border-color:var(--student-border-strong); box-shadow:0 18px 32px rgba(78,102,113,0.10); }
.family-v0-app-card:hover { border-color:var(--family-border-strong); box-shadow:0 18px 30px rgba(78,102,113,0.10); }
.student-v0-app-icon,
.family-v0-app-icon { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:22px; font-size:28px; font-weight:900; }
.student-v0-app-icon { background:var(--student-accent-soft); color:var(--student-accent-strong); }
.student-v0-app-shell .student-v0-app-icon { grid-area:icon; width:52px; height:52px; border-radius:18px; font-size:22px; }
.student-v0-app-card.tone-reading .student-v0-app-icon { background:var(--student-reading-bg); color:var(--student-reading-text); }
.student-v0-app-card.tone-audio .student-v0-app-icon { background:var(--student-audio-bg); color:var(--student-audio-text); }
.student-v0-app-card.tone-quiz .student-v0-app-icon { background:var(--student-quiz-bg); color:var(--student-quiz-text); }
.family-v0-app-icon { background:var(--family-accent-soft); color:var(--family-accent-strong); }
.family-v0-side-stack .family-v0-app-icon { grid-area:icon; width:52px; height:52px; border-radius:18px; font-size:22px; }
.student-v0-app-card strong,
.family-v0-app-card strong { font-size:24px; line-height:1.08; letter-spacing:-0.04em; overflow-wrap:anywhere; }
.student-v0-app-shell .student-v0-app-card strong { grid-area:title; font-size:18px; }
.family-v0-side-stack .family-v0-app-card strong { grid-area:title; font-size:18px; }
.family-v0-app-card strong { color:var(--family-ink); }
.student-v0-app-copy,
.family-v0-app-copy { color:#64748b; font-size:13px; line-height:1.45; }
.student-v0-app-shell .student-v0-app-copy { grid-area:copy; }
.family-v0-side-stack .family-v0-app-copy { grid-area:copy; }
.student-v0-app-badge,
.family-v0-app-badge { display:inline-flex; align-items:center; justify-content:center; min-height:32px; width:fit-content; padding:0 12px; border-radius:999px; background:var(--family-accent-soft); color:var(--family-accent-strong); font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.student-v0-app-badge { background:var(--student-accent-soft); color:var(--student-accent-strong); }
.student-v0-app-shell .student-v0-app-badge { grid-area:badge; align-self:center; }
.family-v0-side-stack .family-v0-app-badge { grid-area:badge; align-self:center; justify-self:start; margin-top:4px; }
.family-v0-student-view-panel { display:grid; gap:12px; padding:16px; border-radius:28px; border:1px solid var(--family-border); background:rgba(255,255,255,0.9); box-shadow:0 14px 30px rgba(78,102,113,0.08); }
.family-v0-student-view-head { display:grid; gap:4px; }
.family-v0-student-view-head strong { color:var(--family-ink); font-size:18px; line-height:1.12; letter-spacing:-0.03em; }
.family-v0-student-view-head span { color:var(--family-copy); font-size:12px; line-height:1.45; }
.family-v0-student-view-grid { display:grid; gap:8px; }
.family-v0-student-view-card { margin:0; }
.family-v0-student-view-card button { width:100%; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; align-items:center; min-height:64px; padding:10px 12px; border-radius:20px; border:1px solid rgba(35,117,142,0.14); background:#fff; color:var(--family-ink); text-align:left; cursor:pointer; box-shadow:0 8px 18px rgba(78,102,113,0.05); }
.family-v0-student-view-card button:hover { border-color:var(--family-border-strong); box-shadow:0 12px 24px rgba(78,102,113,0.08); }
.family-v0-student-avatar { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:16px; background:var(--family-accent-soft); color:var(--family-accent-strong); font-weight:900; }
.family-v0-student-copy { display:grid; gap:2px; min-width:0; }
.family-v0-student-copy strong { color:var(--family-ink); font-size:15px; line-height:1.2; overflow-wrap:anywhere; }
.family-v0-student-copy em { color:var(--family-copy); font-size:12px; font-style:normal; }
.family-v0-student-view-card b { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:0 10px; border-radius:999px; background:var(--family-accent-soft); color:var(--family-accent-strong); font-size:11px; letter-spacing:0.06em; text-transform:uppercase; }
.student-v0-list-shell,
.family-v0-feed-shell { display:grid; gap:14px; padding:20px; border-radius:34px; background:rgba(255,255,255,0.9); box-shadow:0 18px 38px rgba(78,102,113,0.08); }
.student-v0-list-shell { border:1px solid var(--student-border); }
.family-v0-feed-shell { border:1px solid var(--family-border); }
.student-v0-section-head,
.family-v0-section-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.student-v0-section-head h3,
.family-v0-section-head h3 { margin:0; font-size:24px; line-height:1.08; letter-spacing:-0.04em; }
.student-v0-section-head p,
.family-v0-section-head p { margin:6px 0 0; font-size:13px; line-height:1.55; color:#64748b; }

.app-body.menu-workflow .student-v0-section-head p,
.app-body.menu-workflow .family-v0-section-head p,
.app-body.menu-workflow .student-v0-today-copy em,
.app-body.menu-workflow .family-v0-tools-summary span,
.app-body.menu-workflow .student-v0-app-copy,
.app-body.menu-workflow .family-v0-app-copy,
.app-body.menu-workflow .student-v0-main-meta,
.app-body.menu-workflow .family-v0-main-card em {
  display: none !important;
}

.app-body.menu-workflow .student-v0-service-home .student-v0-main-meta,
.app-body.menu-workflow .family-v0-child-service-card .family-v0-child-status-top p,
.app-body.menu-workflow .family-v0-child-service-card .family-v0-child-next span,
.app-body.menu-workflow .family-v0-child-service-card .family-v0-child-meta-list {
  display: grid !important;
}

.student-v0-section-head-muted { margin-top:4px; padding-top:12px; border-top:1px solid rgba(148,163,184,0.18); }
.student-v0-list-stack,
.family-v0-feed-list { display:grid; gap:12px; }
.student-v0-task-card,
.family-v0-feed-item { display:grid; align-items:center; min-width:0; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.student-v0-task-card { grid-template-columns:auto minmax(0,1fr) auto; gap:16px; min-height:96px; padding:16px 18px; border-radius:26px; background:#fff; border:1px solid var(--student-border); box-shadow:0 10px 24px rgba(78,102,113,0.05); color:#111827; }
.student-v0-task-card:hover { transform:translateY(-1px); border-color:var(--student-border-strong); box-shadow:0 14px 28px rgba(78,102,113,0.08); }
.student-v0-task-card.is-priority,
.student-v0-task-card.is-active { border-color:rgba(97,121,133,0.34); box-shadow:0 18px 32px rgba(78,102,113,0.10); }
.student-v0-task-card.is-done { background:linear-gradient(180deg,#f7f8f9 0%,#eef1f3 100%); border-color:rgba(132,146,155,0.24); }
.student-v0-task-icon { display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:20px; font-size:28px; font-weight:900; color:#21303a; }
.student-v0-task-icon.tone-reading { background:var(--student-reading-bg); color:var(--student-reading-text); }
.student-v0-task-icon.tone-writing { background:var(--student-writing-bg); color:var(--student-writing-text); }
.student-v0-task-icon.tone-audio { background:var(--student-audio-bg); color:var(--student-audio-text); }
.student-v0-task-icon.tone-quiz { background:var(--student-quiz-bg); color:var(--student-quiz-text); }
.student-v0-task-copy { min-width:0; display:grid; gap:5px; }
.student-v0-task-copy strong { font-size:18px; line-height:1.15; letter-spacing:-0.03em; overflow-wrap:anywhere; }
.student-v0-task-copy span { color:#64748b; font-size:13px; line-height:1.45; }
.student-v0-task-badge { display:inline-flex; align-items:center; justify-content:center; min-height:30px; width:fit-content; padding:0 12px; border-radius:999px; font-size:11px; font-weight:900; letter-spacing:0.06em; text-transform:uppercase; }
.student-v0-task-badge.tone-todo { background:var(--student-reading-bg); color:var(--student-reading-text); }
.student-v0-task-badge.tone-retry { background:var(--student-warn-bg); color:var(--student-warn-text); }
.student-v0-task-badge.tone-waiting { background:var(--student-review-bg); color:var(--student-review-text); }
.student-v0-task-badge.tone-done { background:var(--student-done-bg); color:var(--student-done-text); }
.student-v0-empty { display:grid; gap:8px; padding:18px; border-radius:24px; border:1px dashed rgba(97,121,133,0.3); background:linear-gradient(180deg,#ffffff 0%,#f5f7f6 100%); color:#5a6b72; }
.student-v0-empty strong { font-size:18px; line-height:1.2; color:#1f2937; }
.student-v0-task-shell { padding:0; }
.student-v0-task-split { display:grid; grid-template-columns:minmax(300px,360px) minmax(0,1fr); gap:18px; align-items:start; }
.student-v0-task-list-col,
.student-v0-task-detail-col { min-width:0; }
.student-v0-task-list-col { display:grid; gap:12px; padding:18px; border-radius:32px; border:1px solid var(--student-border); background:rgba(255,255,255,0.92); box-shadow:0 18px 38px rgba(78,102,113,0.08); }
.student-v0-task-detail-col { display:grid; }
.student-v0-task-panel { display:grid; gap:16px; min-width:0; padding:22px; border-radius:32px; border:1px solid var(--student-border); background:rgba(255,255,255,0.94); box-shadow:0 18px 38px rgba(78,102,113,0.08); }
.student-v0-task-hero { display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px; align-items:start; }
.student-v0-task-hero-icon { display:inline-flex; align-items:center; justify-content:center; width:72px; height:72px; border-radius:24px; font-size:32px; font-weight:900; color:#21303a; }
.student-v0-task-hero-icon.tone-reading { background:var(--student-reading-bg); color:var(--student-reading-text); }
.student-v0-task-hero-icon.tone-writing { background:var(--student-writing-bg); color:var(--student-writing-text); }
.student-v0-task-hero-icon.tone-audio { background:var(--student-audio-bg); color:var(--student-audio-text); }
.student-v0-task-hero-icon.tone-quiz { background:var(--student-quiz-bg); color:var(--student-quiz-text); }
.student-v0-task-hero-copy { display:grid; gap:10px; min-width:0; }
.student-v0-task-hero-copy h4 { margin:0; font-size:32px; line-height:1.05; letter-spacing:-0.05em; color:#111827; overflow-wrap:anywhere; }
.student-v0-chip-row { display:flex; flex-wrap:wrap; gap:8px; }
.student-v0-date-chip { display:inline-flex; align-items:center; min-height:30px; padding:0 12px; border-radius:999px; background:#edf2f4; color:#5c6d75; font-size:12px; font-weight:800; }
.student-v0-panel-block { display:grid; gap:8px; padding:18px; border-radius:24px; border:1px solid rgba(148,163,184,0.18); background:#fff; }
.student-v0-panel-label { font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; color:#66767e; }
.student-v0-task-panel .student-task-body { margin:0; color:#334155; font-size:16px; line-height:1.7; white-space:pre-line; }
.student-v0-compose-card textarea { width:100%; min-height:190px; padding:16px 18px; border-radius:20px; border:1px solid rgba(148,163,184,0.22); background:#fff; color:#111827; font-size:16px; line-height:1.7; resize:vertical; }
.student-v0-upload-panel { gap:14px; }
.student-v0-upload-grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.student-v0-upload-field { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center; min-width:0; min-height:112px; padding:18px; border-radius:24px; border:2px dashed rgba(148,163,184,0.28); background:linear-gradient(180deg,#ffffff 0%,#f7f8f9 100%); cursor:pointer; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease; }
.student-v0-upload-field:hover { transform:translateY(-1px); border-color:rgba(97,121,133,0.38); box-shadow:0 14px 28px rgba(78,102,113,0.08); }
.student-v0-upload-field.has-file { border-style:solid; background:linear-gradient(180deg,#ffffff 0%,#edf5f1 100%); border-color:rgba(97,121,133,0.34); }
.student-v0-upload-field.tone-audio { border-color:rgba(111,170,159,0.26); }
.student-v0-upload-field.tone-camera { border-color:rgba(136,168,193,0.28); }
.student-v0-upload-field.tone-file { border-color:rgba(132,146,155,0.26); }
.student-v0-upload-symbol { display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:18px; font-size:24px; font-weight:900; color:#21303a; background:#edf2f4; }
.student-v0-upload-field.tone-audio .student-v0-upload-symbol { background:var(--student-audio-bg); color:var(--student-audio-text); }
.student-v0-upload-field.tone-camera .student-v0-upload-symbol { background:var(--student-reading-bg); color:var(--student-reading-text); }
.student-v0-upload-field.tone-file .student-v0-upload-symbol { background:var(--student-done-bg); color:var(--student-done-text); }
.student-v0-upload-copy { min-width:0; display:grid; gap:4px; }
.student-v0-upload-copy strong { font-size:18px; line-height:1.15; letter-spacing:-0.03em; color:#111827; overflow-wrap:anywhere; }
.student-v0-upload-copy span { color:#64748b; font-size:13px; line-height:1.45; }
.student-v0-upload-meta { font-size:12px; line-height:1.45; color:#64748b; text-align:right; overflow-wrap:anywhere; max-width:140px; }
.student-v0-upload-input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.student-v0-add-row { display:flex; flex-wrap:wrap; gap:10px; }
.student-v0-note-card { display:grid; gap:8px; padding:16px 18px; border-radius:24px; border:1px solid rgba(244,180,116,0.42); background:#fff7ed; }
.student-v0-note-card strong { font-size:14px; font-weight:900; color:#c25d16; }
.student-v0-note-copy { color:#7c4320; font-size:15px; line-height:1.65; }
.student-v0-meta-line { color:#8d654a; font-size:12px; line-height:1.45; }
.student-v0-submit-form { display:grid; gap:14px; }
.student-v0-submit-form label { display:grid; gap:8px; color:#334155; font-size:14px; font-weight:800; }
.student-v0-submit-form textarea,
.student-v0-submit-form input[type='text'],
.student-v0-submit-form input[type='file'] { width:100%; }
.student-v0-files-card { display:grid; gap:10px; padding:18px; border-radius:24px; border:1px solid rgba(148,163,184,0.18); background:#fff; }
.student-v0-action-row { display:flex; flex-wrap:wrap; gap:10px; }
.student-v0-action-row .btn,
.student-v0-action-row button { min-height:48px; padding:0 18px; border-radius:16px; }
.student-v0-submit-bar { justify-content:flex-end; }
.student-v0-file-list { display:grid; gap:10px; }
.student-v0-file-item { display:flex; justify-content:space-between; gap:14px; align-items:center; min-width:0; padding:14px 16px; border-radius:20px; border:1px solid rgba(148,163,184,0.18); background:#fff; color:#334155; text-decoration:none; box-shadow:0 8px 18px rgba(78,102,113,0.04); }
.student-v0-file-item span:first-child { min-width:0; overflow-wrap:anywhere; }
.student-v0-file-item span:last-child { color:var(--student-accent-strong); font-size:12px; font-weight:900; letter-spacing:0.06em; text-transform:uppercase; }
.family-v0-feed-item { grid-template-columns:auto minmax(0,1fr); gap:14px; min-height:92px; padding:16px 18px; border-radius:24px; border:1px solid var(--family-border); background:#fff; box-shadow:0 10px 24px rgba(78,102,113,0.05); color:var(--family-ink); }
.family-v0-feed-item:hover { transform:translateY(-1px); border-color:var(--family-border-strong); box-shadow:0 14px 28px rgba(78,102,113,0.10); }
.family-v0-feed-icon { display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:18px; background:var(--family-accent-soft); color:var(--family-accent-strong); font-size:22px; font-weight:900; }
.family-v0-feed-copy { min-width:0; display:grid; gap:4px; }
.family-v0-feed-copy strong { font-size:18px; line-height:1.15; letter-spacing:-0.03em; color:var(--family-ink); overflow-wrap:anywhere; }
.family-v0-feed-copy span { color:var(--family-copy); font-size:13px; line-height:1.45; }
.family-v0-empty { display:grid; gap:8px; place-items:center; min-height:120px; padding:18px; border-radius:24px; border:1px dashed var(--family-border-strong); background:linear-gradient(180deg,#ffffff 0%,#f6f8f7 100%); color:var(--family-copy); text-align:center; }
.student-v0-today-strip { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:center; padding:16px 18px; border-radius:28px; border:1px solid var(--student-border); background:rgba(255,255,255,0.88); box-shadow:0 14px 30px rgba(78,102,113,0.08); }
.student-v0-today-copy { display:grid; gap:4px; min-width:0; }
.student-v0-today-copy span { width:fit-content; min-height:26px; padding:5px 10px; border-radius:999px; background:var(--student-accent-soft); color:var(--student-accent-strong); font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.student-v0-today-copy strong { color:var(--student-ink); font-size:20px; line-height:1.14; letter-spacing:-0.03em; overflow-wrap:anywhere; }
.student-v0-today-copy em { color:var(--student-copy); font-size:13px; line-height:1.45; font-style:normal; }
.student-v0-today-cells { display:grid; grid-template-columns:repeat(2, minmax(72px, auto)) auto; gap:10px; align-items:center; }
.student-v0-today-cell { display:grid; gap:2px; min-height:58px; min-width:72px; padding:10px 12px; border-radius:18px; background:#fff; border:1px solid var(--student-border); }
.student-v0-today-cell b { color:var(--student-ink); font-size:22px; line-height:1; letter-spacing:-0.03em; }
.student-v0-today-cell span { color:var(--student-copy); font-size:11px; font-weight:900; letter-spacing:0.06em; text-transform:uppercase; }
.student-v0-inline-cta { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 16px; border-radius:16px; background:linear-gradient(135deg,#0d8aa6 0%,#287c85 100%); color:#fff; font-size:12px; font-weight:900; letter-spacing:0.06em; text-transform:uppercase; text-decoration:none; box-shadow:0 10px 20px rgba(13,138,166,0.14); }
.family-v0-child-status-panel { display:grid; gap:14px; padding:20px; border-radius:34px; border:1px solid var(--family-border); background:rgba(255,255,255,0.9); box-shadow:0 18px 38px rgba(78,102,113,0.08); }
.family-v0-child-status-grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.family-v0-child-status-card { display:grid; gap:12px; min-width:0; padding:16px; border-radius:24px; background:#fff; border:1px solid var(--family-border); box-shadow:0 10px 22px rgba(78,102,113,0.06); }
.family-v0-child-status-card.is-homework { background:linear-gradient(180deg,#fff 0%,#fff7ed 100%); }
.family-v0-child-status-card.is-update { background:linear-gradient(180deg,#fff 0%,#f0fbf5 100%); }
.family-v0-child-status-card.is-calm { background:linear-gradient(180deg,#fff 0%,#f7fbff 100%); }
.family-v0-child-status-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.family-v0-child-status-top strong { color:var(--family-ink); font-size:19px; line-height:1.15; letter-spacing:-0.03em; overflow-wrap:anywhere; }
.family-v0-child-status-top span { display:inline-flex; min-height:28px; align-items:center; padding:0 10px; border-radius:999px; background:var(--family-accent-soft); color:var(--family-accent-strong); font-size:11px; font-weight:900; white-space:nowrap; }
.family-v0-child-status-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.family-v0-child-status-metrics span { display:grid; gap:3px; padding:10px 12px; border-radius:16px; background:rgba(255,255,255,0.76); border:1px solid var(--family-border); color:var(--family-copy); font-size:11px; font-weight:900; letter-spacing:0.05em; text-transform:uppercase; }
.family-v0-child-status-metrics b { color:var(--family-ink); font-size:22px; line-height:1; letter-spacing:-0.03em; }
.family-v0-child-status-card p { margin:0; color:var(--family-copy); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.family-v0-tools { display:grid; gap:10px; padding:14px; border-radius:24px; border:1px solid var(--family-border); background:rgba(255,255,255,0.88); box-shadow:0 12px 24px rgba(78,102,113,0.06); }
.family-v0-tools-summary { display:grid; gap:4px; cursor:pointer; list-style:none; }
.family-v0-tools-summary::-webkit-details-marker { display:none; }
.family-v0-tools-summary strong { color:var(--family-ink); font-size:17px; line-height:1.15; letter-spacing:-0.02em; }
.family-v0-tools-summary span { color:var(--family-copy); font-size:12px; line-height:1.45; }
.family-v0-tools[open] .family-v0-student-view-grid { margin-top:10px; }
.student-v0-service-home .student-v0-home-grid { grid-template-columns:minmax(0,1.05fr) minmax(320px,0.95fr); }
.student-v0-next-lesson-card { background:linear-gradient(135deg,#c5d7d1 0%,#d7dccd 100%); }
.student-v0-lesson-meta { gap:8px; }
.student-v0-lesson-meta span { display:grid; gap:3px; color:rgba(36,52,59,0.82); font-size:14px; line-height:1.35; }
.student-v0-lesson-meta b { color:var(--student-accent-strong); font-size:11px; letter-spacing:0.08em; text-transform:uppercase; }
.student-v0-service-meter-grid .student-v0-meter strong { overflow-wrap:anywhere; }
.family-v0-family-today-card { min-height:280px; }
.family-v0-child-service-panel { gap:16px; }
.family-v0-child-service-grid { grid-template-columns:1fr; }
.family-v0-child-service-card { gap:14px; }
.family-v0-child-service-card .family-v0-child-status-top p { margin:4px 0 0; color:var(--family-copy); font-size:12px; line-height:1.45; }
.family-v0-child-next { display:grid; gap:5px; padding:14px 16px; border-radius:18px; background:rgba(255,255,255,0.84); border:1px solid var(--family-border); color:var(--family-ink); text-decoration:none; }
.family-v0-child-next:hover { border-color:var(--family-border-strong); box-shadow:0 10px 20px rgba(78,102,113,0.08); }
.family-v0-child-next b { color:var(--family-accent-strong); font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.family-v0-child-next strong { color:var(--family-ink); font-size:19px; line-height:1.12; letter-spacing:-0.03em; overflow-wrap:anywhere; }
.family-v0-child-next span { color:var(--family-copy); font-size:13px; line-height:1.45; }
.family-v0-child-metrics-wide { grid-template-columns:repeat(4,minmax(0,1fr)); }
.family-v0-child-metrics-wide span b { overflow-wrap:anywhere; font-size:19px; }
.family-v0-child-meta-list { display:grid; gap:8px; }
.family-v0-child-meta-list span { display:grid; gap:3px; min-width:0; padding:10px 12px; border-radius:16px; background:rgba(255,255,255,0.70); border:1px solid var(--family-border); color:var(--family-copy); font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.family-v0-child-meta-list b { color:var(--family-accent-strong); font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.family-v0-child-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:stretch; }
.family-v0-child-action { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:0 12px; border-radius:14px; border:1px solid var(--family-border); background:#fff; color:var(--family-accent-strong); font-size:12px; font-weight:900; text-decoration:none; cursor:pointer; box-shadow:0 6px 14px rgba(78,102,113,0.05); }
.family-v0-child-action:hover { border-color:var(--family-border-strong); box-shadow:0 10px 18px rgba(78,102,113,0.08); }
.family-v0-child-inline-form { margin:0; display:inline-flex; }
.family-v0-child-inline-form .family-v0-child-action { font-family:inherit; }
.teacher-v0-service-home { gap:16px; }
.teacher-v0-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,0.58fr) auto; gap:16px; align-items:stretch; padding:18px; border-radius:30px; background:linear-gradient(135deg,#f7faf9 0%,#e9f3f1 100%); border:1px solid rgba(128,153,151,0.22); box-shadow:0 18px 38px rgba(45,78,82,0.08); }
.teacher-v0-hero-copy h2 { margin:6px 0 0; font-size:32px; line-height:1.02; letter-spacing:-0.04em; color:#1f2937; }
.teacher-v0-hero-copy p { max-width:620px; margin:8px 0 0; color:#5f6f72; font-size:14px; line-height:1.55; }
.teacher-v0-focus-card { display:grid; gap:6px; align-content:space-between; min-width:0; min-height:156px; padding:18px; border-radius:24px; background:#fff; color:#1f2937; text-decoration:none; border:1px solid rgba(128,153,151,0.24); box-shadow:0 12px 26px rgba(45,78,82,0.07); }
.teacher-v0-focus-card span { color:#64748b; font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.teacher-v0-focus-card strong { color:#102a30; font-size:24px; line-height:1.08; letter-spacing:-0.04em; overflow-wrap:anywhere; }
.teacher-v0-focus-card em { color:#64748b; font-size:13px; line-height:1.45; font-style:normal; overflow-wrap:anywhere; }
.teacher-v0-focus-card b { justify-self:start; display:inline-flex; align-items:center; min-height:34px; padding:0 12px; border-radius:999px; background:#e2f3f1; color:#0f6f72; font-size:12px; font-weight:900; }
.teacher-v0-hero-actions { display:grid; gap:10px; align-content:center; min-width:152px; }
.teacher-v0-hero-btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 16px; border-radius:16px; background:#0f6f72; color:#fff; font-size:13px; font-weight:900; text-decoration:none; box-shadow:0 10px 20px rgba(15,111,114,0.16); }
.teacher-v0-hero-btn.secondary { background:#fff; color:#0f6f72; border:1px solid rgba(15,111,114,0.18); box-shadow:none; }
.teacher-v0-metric-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.teacher-v0-timeline-panel,
.teacher-v0-tools-panel { border-radius:28px; background:rgba(255,255,255,0.94); }
.teacher-v0-panel-head { align-items:center; }
.teacher-v0-panel-link { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:0 12px; border-radius:14px; background:#eef7f6; color:#0f6f72; font-size:12px; font-weight:900; text-decoration:none; }
.teacher-v0-lesson-list { gap:10px; }
.teacher-v0-lesson-card { grid-template-columns:74px minmax(0,1fr); align-items:stretch; padding:0; overflow:hidden; }
.teacher-v0-time { display:grid; place-items:center; align-content:center; gap:4px; min-height:118px; background:#e2f3f1; color:#0f6f72; font-size:18px; font-weight:950; letter-spacing:-0.03em; }
.teacher-v0-time span { color:#5f6f72; font-size:12px; font-weight:900; }
.teacher-v0-lesson-main { display:grid; gap:8px; min-width:0; padding:14px 16px; }
.teacher-v0-lesson-stats { display:flex; flex-wrap:wrap; gap:8px; align-items:center; color:#64748b; font-size:12px; font-weight:800; }
.teacher-v0-lesson-stats span { display:inline-flex; min-height:28px; align-items:center; padding:0 10px; border-radius:999px; background:#f1f5f9; }
.teacher-v0-lesson-stats b { margin-left:auto; color:#0f6f72; font-size:12px; }
.teacher-v0-empty { display:grid; gap:8px; padding:18px; border-radius:22px; border:1px dashed rgba(128,153,151,0.35); background:linear-gradient(180deg,#ffffff 0%,#f6faf9 100%); color:#64748b; }
.teacher-v0-empty strong { color:#1f2937; font-size:18px; line-height:1.2; }
.teacher-v0-empty span { font-size:13px; line-height:1.5; }
.teacher-v0-tool-grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.teacher-v0-tool-card { display:grid; gap:10px; align-content:start; min-height:164px; padding:18px; border-radius:22px; background:#fff; border:1px solid rgba(128,153,151,0.22); color:#1f2937; text-decoration:none; box-shadow:0 10px 24px rgba(45,78,82,0.05); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.teacher-v0-tool-card:hover { transform:translateY(-1px); border-color:rgba(15,111,114,0.28); box-shadow:0 14px 28px rgba(45,78,82,0.09); }
.teacher-v0-tool-icon { display:inline-flex; align-items:center; justify-content:center; width:50px; height:50px; border-radius:18px; background:#e2f3f1; color:#0f6f72; font-size:21px; font-weight:950; }
.teacher-v0-tool-card strong { color:#102a30; font-size:20px; line-height:1.12; letter-spacing:-0.03em; overflow-wrap:anywhere; }
.teacher-v0-tool-card span:not(.teacher-v0-tool-icon) { color:#64748b; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.teacher-v0-tool-card b { margin-top:auto; color:#0f6f72; font-size:12px; font-weight:900; }
.family-v0-lesson-page { gap:16px; }
.family-v0-lesson-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:22px; border-radius:30px; background:linear-gradient(135deg,#d6e1dc 0%,#eef7f5 100%); border:1px solid var(--family-border); box-shadow:0 18px 38px rgba(78,102,113,0.08); }
.family-v0-lesson-hero span { color:var(--family-accent-strong); font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.family-v0-lesson-hero h2 { margin:7px 0 0; color:var(--family-ink); font-size:34px; line-height:1.04; letter-spacing:-0.04em; overflow-wrap:anywhere; }
.family-v0-lesson-hero p { max-width:720px; margin:8px 0 0; color:var(--family-copy); font-size:14px; line-height:1.55; }
.family-v0-lesson-panel { gap:16px; }
.family-v0-lesson-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.family-v0-lesson-detail-grid span { display:grid; gap:5px; min-width:0; padding:14px 16px; border-radius:18px; border:1px solid var(--family-border); background:#fff; color:var(--family-ink); font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
.family-v0-lesson-detail-grid b { color:var(--family-accent-strong); font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.family-v0-classmate-grid { display:flex; flex-wrap:wrap; gap:8px; }
.family-v0-classmate-chip,
.family-v0-classmate-empty { display:inline-flex; align-items:center; min-height:36px; padding:0 12px; border-radius:999px; border:1px solid var(--family-border); background:#fff; color:var(--family-ink); font-size:13px; font-weight:800; }
.family-v0-classmate-empty { color:var(--family-copy); }
.teacher-homework-v0 { display:grid; gap:16px; min-width:0; }
.teacher-homework-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,0.42fr); gap:16px; align-items:stretch; padding:22px; border-radius:30px; background:linear-gradient(135deg,#f7faf9 0%,#e9f3f1 100%); border:1px solid rgba(128,153,151,0.22); box-shadow:0 18px 38px rgba(45,78,82,0.08); }
.teacher-homework-hero span,
.teacher-homework-panel-head span { color:#0f6f72; font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.teacher-homework-hero h2 { margin:7px 0 0; color:#102a30; font-size:34px; line-height:1.04; letter-spacing:-0.04em; }
.teacher-homework-hero p { max-width:720px; margin:8px 0 0; color:#5f6f72; font-size:14px; line-height:1.55; }
.teacher-homework-scope { display:grid; gap:6px; align-content:center; padding:18px; border-radius:24px; background:#fff; border:1px solid rgba(128,153,151,0.22); }
.teacher-homework-scope b { color:#102a30; font-size:22px; line-height:1.12; letter-spacing:-0.03em; overflow-wrap:anywhere; }
.teacher-homework-scope span { color:#64748b; font-size:13px; line-height:1.45; text-transform:none; letter-spacing:0; }
.teacher-homework-stats.ops-stats-grid { margin:0; }
.teacher-homework-grid { display:grid; grid-template-columns:minmax(280px,0.78fr) minmax(0,1.22fr); gap:16px; align-items:start; }
.teacher-homework-left,
.teacher-homework-right { display:grid; gap:16px; min-width:0; }
.teacher-homework-panel { display:grid; gap:14px; min-width:0; padding:18px; border-radius:28px; background:rgba(255,255,255,0.94); border:1px solid rgba(128,153,151,0.22); box-shadow:0 14px 30px rgba(45,78,82,0.06); }
.teacher-homework-panel-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.teacher-homework-panel-head h3 { margin:4px 0 0; color:#102a30; font-size:24px; line-height:1.08; letter-spacing:-0.04em; }
.teacher-homework-panel-head > b { display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 10px; border-radius:999px; background:#e2f3f1; color:#0f6f72; font-size:19px; font-weight:950; }
.teacher-homework-v0 .card { padding:0; border:none; border-radius:0; background:transparent; box-shadow:none; }
.teacher-homework-v0 .card h4 { margin:0 0 10px; color:#102a30; font-size:18px; line-height:1.15; }
.teacher-homework-v0 .form-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; align-items:end; }
.teacher-homework-v0 .form-row label { display:grid; gap:6px; color:#334155; font-size:13px; font-weight:800; }
.teacher-homework-v0 .form-row button,
.teacher-homework-submission-wrap button { min-height:44px; border-radius:14px; }
.teacher-homework-list { display:grid; gap:10px; }
.teacher-homework-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; min-width:0; min-height:74px; padding:14px 16px; border-radius:20px; border:1px solid rgba(128,153,151,0.20); background:#fff; color:#102a30; text-decoration:none; box-shadow:0 8px 18px rgba(45,78,82,0.04); }
.teacher-homework-item:hover,
.teacher-homework-item.is-selected { border-color:rgba(15,111,114,0.32); box-shadow:0 12px 24px rgba(45,78,82,0.08); }
.teacher-homework-item-main { display:grid; gap:4px; min-width:0; }
.teacher-homework-item-main strong { color:#102a30; font-size:17px; line-height:1.18; overflow-wrap:anywhere; }
.teacher-homework-item-main em { color:#64748b; font-size:12px; line-height:1.35; font-style:normal; }
.teacher-homework-progress { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:0 12px; border-radius:999px; background:#e2f3f1; color:#0f6f72; font-size:13px; font-weight:950; white-space:nowrap; }
.teacher-homework-selected { padding:12px 14px; border-radius:18px; border:1px solid rgba(128,153,151,0.18); background:#f8fbfb; color:#64748b; }
.teacher-homework-selected strong { color:#102a30; }
.teacher-homework-details { display:grid; gap:12px; padding:14px; border-radius:20px; border:1px solid rgba(128,153,151,0.20); background:#fff; }
.teacher-homework-details summary { cursor:pointer; color:#102a30; font-weight:900; list-style:none; }
.teacher-homework-details summary::-webkit-details-marker { display:none; }
.teacher-homework-details[open] summary { margin-bottom:12px; }
.teacher-homework-empty { padding:16px; border-radius:18px; border:1px dashed rgba(128,153,151,0.30); background:#f8fbfb; color:#64748b; font-size:14px; line-height:1.5; }
.teacher-homework-v0 .homework-submission-table { width:100%; }
.homework-attach-actions { display:grid; gap:12px; }
.homework-attach-actions .form-row { margin:0; padding:12px; border-radius:18px; border:1px solid rgba(128,153,151,0.20); background:#f8fbfb; }
.resource-desk-v0 { display:grid; gap:16px; min-width:0; }
.resource-desk-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,0.34fr); gap:16px; align-items:stretch; padding:22px; border-radius:30px; background:linear-gradient(135deg,#f7faf9 0%,#e9f3f1 100%); border:1px solid rgba(128,153,151,0.22); box-shadow:0 18px 38px rgba(45,78,82,0.08); }
.resource-desk-hero span,
.resource-workspace-head span,
.resource-work-panel-head span { color:#0f6f72; font-size:11px; font-weight:900; letter-spacing:0.08em; text-transform:uppercase; }
.resource-desk-hero h2 { margin:7px 0 0; color:#102a30; font-size:34px; line-height:1.04; letter-spacing:-0.04em; }
.resource-desk-hero p { max-width:760px; margin:8px 0 0; color:#5f6f72; font-size:14px; line-height:1.55; }
.resource-desk-scope { display:grid; gap:6px; align-content:center; padding:18px; border-radius:24px; background:#fff; border:1px solid rgba(128,153,151,0.22); }
.resource-desk-scope b { color:#102a30; font-size:22px; line-height:1.12; letter-spacing:-0.03em; overflow-wrap:anywhere; }
.resource-desk-scope span { color:#64748b; font-size:13px; line-height:1.45; text-transform:none; letter-spacing:0; }
.resource-desk-stats.ops-stats-grid { margin:0; }
.resource-desk-nav { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:10px; }
.resource-desk-nav-card { display:grid; gap:4px; min-height:104px; padding:16px; border-radius:22px; border:1px solid rgba(128,153,151,0.20); background:#fff; color:#102a30; text-decoration:none; box-shadow:0 10px 22px rgba(45,78,82,0.04); }
.resource-desk-nav-card:hover,
.resource-desk-nav-card.is-active { border-color:rgba(15,111,114,0.34); box-shadow:0 14px 28px rgba(45,78,82,0.09); transform:translateY(-1px); }
.resource-desk-nav-card span { color:#0f6f72; font-size:22px; font-weight:950; line-height:1; }
.resource-desk-nav-card strong { color:#102a30; font-size:18px; line-height:1.15; letter-spacing:-0.02em; }
.resource-desk-nav-card em { color:#64748b; font-size:13px; line-height:1.35; font-style:normal; }
.resource-workspace { display:grid; gap:14px; min-width:0; padding:18px; border-radius:28px; background:rgba(255,255,255,0.96); border:1px solid rgba(128,153,151,0.22); box-shadow:0 14px 30px rgba(45,78,82,0.06); }
.resource-workspace-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.resource-workspace-head h3 { margin:4px 0 0; color:#102a30; font-size:26px; line-height:1.08; letter-spacing:-0.04em; }
.resource-workspace-head p { max-width:560px; margin:0; color:#64748b; font-size:14px; line-height:1.5; }
.resource-work-grid { display:grid; grid-template-columns:minmax(280px,0.8fr) minmax(0,1.2fr); gap:14px; align-items:start; }
.resource-work-panel { display:grid; gap:12px; min-width:0; padding:16px; border-radius:22px; border:1px solid rgba(128,153,151,0.20); background:#fff; }
.resource-work-panel-head h4 { margin:4px 0 0; color:#102a30; font-size:21px; line-height:1.12; letter-spacing:-0.03em; }
.resource-work-note { padding:14px; border-radius:18px; border:1px dashed rgba(128,153,151,0.30); background:#f8fbfb; color:#64748b; font-size:14px; line-height:1.5; }
.resource-form-surface { display:grid; gap:12px; margin:0; padding:14px; border-radius:20px; border:1px solid rgba(128,153,151,0.20); background:#f8fbfb; }
.resource-form-surface .form-grid { gap:12px; }
.resource-form-surface .form-actions { margin-top:0; }
.resource-work-list-panel .table-wrap { margin-top:0; }
.resource-reading-card-grid { display:grid; gap:12px; }
.resource-reading-card-grid > .card { margin:0; border-radius:24px; }
.resource-module-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.resource-module-manage { margin-top:12px; padding:12px; border-radius:18px; border:1px solid rgba(128,153,151,0.20); background:#f8fbfb; }
.resource-module-manage summary { cursor:pointer; color:#0f6f72; font-weight:900; list-style:none; }
.resource-module-manage summary::-webkit-details-marker { display:none; }
.resource-module-manage-grid { display:grid; gap:12px; margin-top:12px; }
.resource-module-status-actions { display:flex; flex-wrap:wrap; gap:8px; }
.storage-target-panel { display:grid; gap:12px; margin:0 0 12px; padding:14px; border:1px solid rgba(128,153,151,0.22); border-radius:22px; background:linear-gradient(180deg,#fff,#f8fbfb); }
.storage-target-head { display:grid; gap:4px; }
.storage-target-head strong { color:#0f6f72; font-size:18px; line-height:1.1; }
.storage-target-head span { color:#64748b; font-size:13px; line-height:1.45; }
.storage-target-grid { display:grid; grid-template-columns:minmax(180px,0.8fr) minmax(220px,1fr) minmax(180px,0.9fr) minmax(180px,0.8fr); gap:10px; align-items:end; }
.storage-target-grid label,
.storage-target-mode { display:grid; gap:6px; min-width:0; margin:0; color:#102a30; font-size:12px; font-weight:900; }
.storage-target-grid select,
.storage-target-grid input[type='text'],
.storage-target-grid input:not([type]),
.storage-target-grid .storage-share-note { width:100%; min-width:0; }
.storage-target-mode { padding:0; border:0; align-self:stretch; }
.storage-target-mode legend { padding:0; margin:0 0 6px; color:#102a30; font-size:12px; font-weight:900; }
.storage-target-mode label { display:inline-flex; align-items:center; min-height:40px; padding:0 10px; border:1px solid rgba(128,153,151,0.22); border-radius:12px; background:#fff; font-size:13px; font-weight:800; }
.storage-target-mode input { margin-right:6px; }
.storage-target-actions { display:flex; flex-wrap:wrap; gap:8px; }
.storage-target-note { grid-column:span 2; }
.storage-target-panel .is-disabled { opacity:0.55; }
.lesson-action-switcher { display:grid; gap:12px; }
.lesson-action-selector { display:grid; grid-template-columns:minmax(220px,360px) minmax(0,1fr); gap:10px; align-items:end; }
.lesson-action-selector label,
.lesson-book-loan-grid label { display:grid; gap:6px; min-width:0; color:#334155; font-size:13px; font-weight:800; }
.lesson-action-selector select,
.lesson-book-loan-grid select,
.lesson-book-loan-grid input { width:100%; min-width:0; }
.lesson-action-panel { display:grid; gap:12px; padding:14px; border-radius:22px; border:1px solid rgba(128,153,151,0.22); background:linear-gradient(180deg,#fff,#f8fbfb); }
.lesson-action-panel[hidden] { display:none !important; }
.lesson-action-panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.lesson-action-panel-head strong { display:block; color:#102a30; font-size:18px; line-height:1.15; }
.lesson-action-panel-head span { color:#64748b; font-size:13px; line-height:1.45; }
.lesson-book-loan-grid { display:grid; grid-template-columns:minmax(160px,0.7fr) minmax(200px,1fr) minmax(150px,0.6fr); gap:10px; align-items:end; }
.lesson-homework-desk { display:grid; gap:12px; margin-top:12px; padding:14px; border-radius:22px; border:1px solid rgba(128,153,151,0.22); background:linear-gradient(180deg,#fff,#f8fbfb); }
.lesson-action-panel .lesson-homework-desk { margin-top:0; padding:0; border:0; border-radius:0; background:transparent; }
.lesson-homework-desk-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.lesson-homework-desk-head strong { display:block; color:#102a30; font-size:18px; line-height:1.15; }
.lesson-homework-desk-head span { display:block; margin-top:3px; color:#64748b; font-size:13px; line-height:1.45; }
.lesson-homework-chip-row { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.lesson-homework-chip { display:grid; gap:2px; max-width:100%; min-height:48px; padding:9px 12px; border-radius:16px; border:1px solid rgba(128,153,151,0.22); background:#fff; color:#102a30; text-decoration:none; }
.lesson-homework-chip strong { max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; line-height:1.2; }
.lesson-homework-chip span { color:#64748b; font-size:12px; line-height:1.2; }
.lesson-homework-chip.is-selected { border-color:rgba(15,111,114,0.34); background:#eaf7f5; color:#0f6f72; }
.lesson-homework-grid { display:grid; grid-template-columns:minmax(180px,0.9fr) minmax(180px,1fr) minmax(150px,0.7fr); gap:10px; align-items:end; }
.lesson-homework-grid label { display:grid; gap:6px; min-width:0; color:#334155; font-size:13px; font-weight:800; }
.lesson-homework-grid input,
.lesson-homework-grid select,
.lesson-homework-grid textarea { width:100%; min-width:0; }
.lesson-homework-note { grid-column:1 / -1; }
.lesson-homework-resource-table { margin-top:0; }
.app-body.menu-workflow .workflow-lesson-page { gap:18px; }
.app-body.menu-workflow .workflow-lesson-header { background:linear-gradient(135deg,#f7faf9 0%,#e9f3f1 100%) !important; border-color:rgba(128,153,151,0.22) !important; }
.app-body.menu-workflow .workflow-title { font-size:34px; line-height:1.04; letter-spacing:-0.04em; color:#102a30; }
.app-body.menu-workflow .workflow-panel { background:rgba(255,255,255,0.96) !important; border-color:rgba(128,153,151,0.22) !important; }
.app-body.menu-workflow .workflow-panel-head h4 { font-size:24px; letter-spacing:-0.04em; color:#102a30; }
.app-body.menu-workflow .workflow-meta-form textarea[name='lesson_summary'] { min-height:150px; border-radius:20px; background:#fff; border:1px solid rgba(128,153,151,0.26); font-size:16px; line-height:1.6; }
.app-body.menu-workflow .workflow-meta-optional { border-radius:20px; border-color:rgba(128,153,151,0.24); }
.app-body.menu-workflow .workflow-action-bar { position:sticky; bottom:12px; z-index:5; padding:14px; border-radius:22px; border:1px solid rgba(128,153,151,0.24); background:rgba(255,255,255,0.94); box-shadow:0 14px 30px rgba(45,78,82,0.10); }
@media (max-width: 1100px) {
  .student-v0-home-grid,
  .student-v0-task-split,
  .family-v0-home-grid { grid-template-columns:1fr; }
  .student-v0-app-shell .student-v0-app-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .student-v0-app-shell .student-v0-app-card { grid-template-columns:1fr; grid-template-areas:"icon" "title" "copy" "badge"; align-items:start; align-content:space-between; min-height:156px; }
  .family-v0-child-metrics-wide { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .teacher-v0-hero { grid-template-columns:1fr; }
  .teacher-v0-hero-actions { grid-template-columns:repeat(2,minmax(0,1fr)); min-width:0; }
  .teacher-v0-metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .teacher-homework-hero,
  .teacher-homework-grid,
  .resource-desk-hero,
  .resource-work-grid { grid-template-columns:1fr; }
  .storage-target-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .lesson-action-selector,
  .lesson-book-loan-grid { grid-template-columns:1fr; }
  .lesson-homework-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .student-v0-main-card,
  .student-v0-app-shell,
  .family-v0-main-card,
  .family-v0-student-view-panel,
  .student-v0-list-shell,
  .family-v0-feed-shell,
  .student-v0-task-list-col,
  .student-v0-task-panel { padding:18px; border-radius:26px; }
  .student-v0-app-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .family-v0-app-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .student-v0-task-card { grid-template-columns:auto minmax(0,1fr); }
  .student-v0-task-card .student-v0-task-badge { grid-column:1 / -1; justify-self:start; }
  .student-v0-meter-grid,
  .family-v0-meter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .student-v0-today-strip { grid-template-columns:1fr; }
  .student-v0-today-cells { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .student-v0-inline-cta { grid-column:1 / -1; width:100%; }
  .teacher-v0-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .family-v0-lesson-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .resource-desk-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 768px) {
  .student-v0-home,
  .student-v0-task-shell,
  .family-v0-home { gap:14px; }
  .student-v0-main-card strong,
  .family-v0-main-card strong,
  .student-v0-task-hero-copy h4 { font-size:26px; }
  .student-v0-main-count,
  .family-v0-main-count { min-width:48px; height:48px; font-size:22px; }
  .student-v0-main-icon { width:52px; height:52px; border-radius:18px; font-size:23px; }
  .student-v0-app-card,
  .family-v0-app-card { min-height:148px; padding:16px; border-radius:24px; }
  .student-v0-app-shell .student-v0-app-card { min-height:148px; }
  .student-v0-app-icon,
  .family-v0-app-icon { width:56px; height:56px; border-radius:18px; font-size:24px; }
  .student-v0-app-card strong,
  .family-v0-app-card strong { font-size:20px; }
  .student-v0-list-shell,
  .family-v0-feed-shell,
  .family-v0-child-status-panel,
  .student-v0-task-list-col,
  .student-v0-task-panel { padding:16px; border-radius:24px; }
  .student-v0-task-card { padding:14px 16px; min-height:84px; border-radius:22px; }
  .student-v0-task-icon { width:52px; height:52px; border-radius:18px; font-size:24px; }
  .student-v0-task-copy strong,
  .family-v0-feed-copy strong { font-size:17px; }
  .family-v0-child-status-grid { grid-template-columns:1fr; }
  .family-v0-child-status-top { display:grid; }
  .family-v0-child-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .family-v0-child-inline-form,
  .family-v0-child-action { width:100%; }
  .student-v0-task-hero { grid-template-columns:1fr; }
  .student-v0-task-hero-icon { width:64px; height:64px; border-radius:22px; font-size:28px; }
  .student-v0-panel-block,
  .student-v0-note-card,
  .student-v0-files-card,
  .student-v0-file-item,
  .family-v0-feed-item { border-radius:20px; }
  .student-v0-action-row > * { flex:1 1 calc(50% - 5px); }
  .student-v0-upload-grid { grid-template-columns:1fr; }
  .student-v0-upload-field { grid-template-columns:auto minmax(0,1fr); }
  .student-v0-upload-meta { grid-column:1 / -1; text-align:left; max-width:none; }
  .teacher-v0-hero,
  .teacher-v0-timeline-panel,
  .teacher-v0-tools-panel { padding:16px; border-radius:24px; }
  .teacher-v0-hero-copy h2 { font-size:26px; }
  .teacher-v0-focus-card { min-height:132px; border-radius:22px; }
  .teacher-v0-lesson-card { grid-template-columns:1fr; }
  .teacher-v0-time { grid-template-columns:auto auto; justify-content:start; min-height:0; padding:12px 16px; place-items:start; }
  .teacher-v0-lesson-stats b { width:100%; margin-left:0; }
  .teacher-v0-tool-grid { grid-template-columns:1fr; }
  .teacher-v0-tool-card { min-height:132px; border-radius:20px; }
  .family-v0-lesson-hero,
  .teacher-homework-hero,
  .teacher-homework-panel,
  .resource-desk-hero,
  .resource-workspace,
  .resource-work-panel { padding:16px; border-radius:24px; }
  .family-v0-lesson-hero { display:grid; }
  .family-v0-lesson-hero h2,
  .teacher-homework-hero h2,
  .resource-desk-hero h2,
  .app-body.menu-workflow .workflow-title { font-size:27px; }
  .teacher-homework-panel-head { display:grid; }
  .teacher-homework-item { grid-template-columns:1fr; }
  .teacher-homework-progress { justify-self:start; }
  .resource-workspace-head { display:grid; }
  .resource-module-actions,
  .resource-module-status-actions { display:grid; grid-template-columns:1fr; }
  .storage-target-grid { grid-template-columns:1fr; }
  .storage-target-note { grid-column:auto; }
  .storage-target-actions { display:grid; grid-template-columns:1fr; }
  .lesson-action-panel-head { display:grid; }
  .lesson-homework-desk-head { display:grid; }
  .lesson-homework-grid { grid-template-columns:1fr; }
  .lesson-homework-chip { width:100%; }
  .lesson-homework-chip strong { max-width:none; }
}
@media (max-width: 540px) {
  .student-v0-app-grid,
  .student-v0-app-shell .student-v0-app-grid,
  .family-v0-app-grid,
  .student-v0-meter-grid,
  .family-v0-meter-grid { grid-template-columns:1fr; }
  .student-v0-app-shell .student-v0-app-card { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"icon title badge" "icon copy badge"; align-items:center; min-height:98px; }
  .family-v0-side-stack .family-v0-app-card { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"icon title badge" "icon copy badge"; gap:4px 12px; align-items:center; min-height:98px; padding:16px; }
  .family-v0-side-stack .family-v0-app-icon { grid-area:icon; width:52px; height:52px; border-radius:18px; font-size:22px; }
  .family-v0-side-stack .family-v0-app-card strong { grid-area:title; font-size:18px; }
  .family-v0-side-stack .family-v0-app-copy { grid-area:copy; }
  .family-v0-side-stack .family-v0-app-badge { grid-area:badge; align-self:center; justify-self:auto; margin-top:0; }
  .family-v0-student-view-card button { grid-template-columns:auto minmax(0,1fr); }
  .family-v0-student-view-card b { grid-column:2; justify-self:start; }
  .family-v0-child-actions { grid-template-columns:1fr; }
  .family-v0-child-metrics-wide { grid-template-columns:1fr; }
  .student-v0-action-row > * { flex:1 1 100%; }
  .teacher-v0-metric-grid,
  .teacher-v0-hero-actions,
  .resource-desk-nav { grid-template-columns:1fr; }
  .family-v0-lesson-detail-grid { grid-template-columns:1fr; }
}

/* rtweb-responsive-density-v2: keep teacher/student workspaces usable on phones and iPad widths. */
@media (max-width: 1100px) {
  .student-v0-service-home .student-v0-home-grid { grid-template-columns:1fr; }
  .app-body.menu-workflow .teacher-v0-metric-grid.wf-teacher-action-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-card { min-height:0; padding:10px 12px; border-radius:16px; gap:3px; }
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-copy,
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-link { display:none; }
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-value { font-size:22px; }
  .teacher-v0-tool-card { min-height:120px; padding:14px; border-radius:18px; gap:8px; }
  .teacher-v0-tool-card b { display:none; }
  .teacher-v0-tool-card span:not(.teacher-v0-tool-icon) { font-size:12px; line-height:1.35; }
  .resource-desk-nav-card { min-height:0; padding:12px; border-radius:18px; }
  .resource-desk-nav-card em { display:none; }
  .resource-desk-nav-card span { font-size:19px; }
  .resource-desk-nav-card strong { font-size:16px; }
}

@media (max-width: 900px) {
  .student-v0-home,
  .student-v0-task-shell,
  .teacher-v0-service-home,
  .teacher-homework-v0,
  .resource-desk-v0 { gap:12px; }

  .student-v0-main-card,
  .student-v0-app-shell,
  .student-v0-list-shell,
  .student-v0-task-list-col,
  .student-v0-task-panel,
  .teacher-v0-hero,
  .teacher-v0-timeline-panel,
  .teacher-v0-tools-panel { padding:14px; border-radius:22px; }

  .teacher-v0-hero { gap:12px; }
  .teacher-v0-hero-copy h2,
  .student-v0-main-card strong,
  .student-v0-task-hero-copy h4 { font-size:clamp(23px,4vw,28px); line-height:1.06; }
  .teacher-v0-hero-copy p,
  .teacher-v0-focus-card em { display:none; }
  .teacher-v0-focus-card { min-height:0; padding:14px; border-radius:18px; }
  .teacher-v0-focus-card strong { font-size:22px; }
  .teacher-v0-focus-card b { min-height:30px; padding:0 10px; }
  .teacher-v0-hero-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .teacher-v0-hero-btn { min-height:40px; padding:0 12px; border-radius:13px; }

  .teacher-v0-metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .app-body.menu-workflow .teacher-v0-metric-grid.wf-teacher-action-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .teacher-v0-metric-grid .ops-stat,
  .teacher-homework-stats .ops-stat,
  .resource-desk-stats .ops-stat { min-height:0; padding:10px 12px; border-radius:16px; }
  .teacher-v0-metric-grid .ops-stat-copy { display:none; }
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-card { min-height:0; padding:10px 12px; border-radius:16px; gap:3px; }
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-copy,
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-link { display:none; }
  .app-body.menu-workflow .teacher-v0-metric-grid .wf-teacher-action-value { font-size:22px; }

  .teacher-v0-lesson-list,
  .teacher-v0-tool-grid { gap:10px; }
  .teacher-v0-lesson-card { grid-template-columns:64px minmax(0,1fr); }
  .teacher-v0-time { min-height:0; padding:10px 8px; font-size:15px; gap:2px; }
  .teacher-v0-time span { font-size:11px; }
  .teacher-v0-lesson-main { padding:12px; gap:6px; }
  .teacher-v0-lesson-main h3 { font-size:18px; line-height:1.15; }
  .teacher-v0-lesson-stats { gap:6px; }
  .teacher-v0-lesson-stats span { min-height:26px; padding:0 8px; }
  .teacher-v0-lesson-stats b { width:auto; margin-left:0; }

  .teacher-v0-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .teacher-v0-tool-card { min-height:0; padding:13px; border-radius:18px; gap:8px; }
  .teacher-v0-tool-card span:not(.teacher-v0-tool-icon),
  .teacher-v0-tool-card b { display:none; }
  .teacher-v0-tool-icon { width:42px; height:42px; border-radius:14px; font-size:18px; }
  .teacher-v0-tool-card strong { font-size:17px; line-height:1.15; }

  .student-v0-home-grid,
  .student-v0-service-home .student-v0-home-grid { gap:12px; }
  .student-v0-main-card { min-height:0; }
  .student-v0-main-title { gap:10px; }
  .student-v0-main-icon,
  .student-v0-app-icon,
  .student-v0-app-shell .student-v0-app-icon,
  .student-v0-task-icon { width:44px; height:44px; border-radius:14px; font-size:19px; }
  .student-v0-app-grid,
  .student-v0-app-shell .student-v0-app-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .student-v0-app-card,
  .student-v0-app-shell .student-v0-app-card { min-height:0; padding:13px; border-radius:18px; }
  .student-v0-app-shell .student-v0-app-card { grid-template-columns:auto minmax(0,1fr); grid-template-areas:"icon title" "icon badge"; align-content:center; }
  .student-v0-app-shell .student-v0-app-copy { display:none; }
  .student-v0-app-card strong,
  .student-v0-app-shell .student-v0-app-card strong { font-size:17px; line-height:1.15; }
  .student-v0-app-badge,
  .student-v0-app-shell .student-v0-app-badge { justify-self:start; min-height:24px; padding:0 8px; font-size:10px; }

  .student-v0-meter-grid,
  .student-v0-service-meter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .student-v0-meter { min-height:0; padding:10px 11px; border-radius:16px; }
  .student-v0-today-strip { padding:12px; border-radius:20px; gap:10px; }
  .student-v0-today-cell { min-height:50px; padding:8px 10px; border-radius:16px; }
  .student-v0-inline-cta { min-height:40px; }

  .student-v0-task-card { min-height:0; padding:12px; gap:10px; border-radius:18px; }
  .student-v0-task-hero { gap:10px; }
  .student-v0-task-hero-icon { width:52px; height:52px; border-radius:18px; font-size:24px; }
  .student-v0-panel-block,
  .student-v0-files-card,
  .student-v0-note-card { padding:13px; border-radius:18px; }
  .student-v0-compose-card textarea { min-height:150px; padding:12px 14px; border-radius:16px; }
  .student-v0-upload-field { min-height:0; padding:12px; border-radius:18px; gap:10px; }
  .student-v0-upload-symbol { width:44px; height:44px; border-radius:14px; font-size:19px; }
  .student-v0-submit-bar { position:sticky; bottom:8px; z-index:5; padding:8px; border-radius:16px; background:rgba(255,255,255,0.94); border:1px solid rgba(148,163,184,0.18); }
}

@media (max-width: 768px) and (min-width: 541px) {
  .teacher-v0-metric-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .app-body.menu-workflow .teacher-v0-metric-grid.wf-teacher-action-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .teacher-v0-tool-grid,
  .student-v0-app-grid,
  .student-v0-app-shell .student-v0-app-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 540px) {
  .teacher-v0-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .resource-desk-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .teacher-v0-metric-grid,
  .student-v0-meter-grid,
  .student-v0-service-meter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .app-body.menu-workflow .teacher-v0-metric-grid.wf-teacher-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .teacher-v0-lesson-card { grid-template-columns:58px minmax(0,1fr); }
  .teacher-v0-time { padding:10px 6px; font-size:14px; }
  .teacher-v0-lesson-main { padding:10px; }
  .teacher-v0-lesson-stats span { min-height:24px; }
  .student-v0-app-shell .student-v0-app-card { min-height:72px; padding:12px; }
  .student-v0-file-item { align-items:flex-start; flex-direction:column; gap:6px; }
}

@media (max-width: 380px) {
  .teacher-v0-tool-grid,
  .resource-desk-nav,
  .student-v0-meter-grid,
  .student-v0-service-meter-grid { grid-template-columns:1fr; }
  .app-body.menu-workflow .teacher-v0-metric-grid.wf-teacher-action-grid { grid-template-columns:1fr; }
}

/* Parent home: a short mobile-first summary instead of repeated portal panels. */
.parent-mobile-home {
  width: min(1120px, 100%);
  gap: 16px;
}

body.app-body.role-parent .page-container {
  container-type: inline-size;
}

.parent-home-head {
  padding: 2px 0 16px;
  border-bottom: 1px solid #d9ded6;
}

.parent-home-head > span {
  color: #4e8a57;
  font-size: 11px;
  font-weight: 800;
}

.parent-home-head h2 {
  margin: 5px 0 2px;
  color: #17211d;
  font-size: 28px;
  line-height: 1.15;
}

.parent-home-head p {
  margin: 0;
  color: #68746e;
  font-size: 13px;
}

.parent-mobile-home .portal-overview-grid {
  display: grid;
  grid-template-columns: minmax(300px, 1.7fr) repeat(3, minmax(138px, 0.75fr));
  gap: 10px;
}

.parent-mobile-home .portal-focus-card,
.parent-mobile-home .portal-stat-tile {
  min-height: 128px;
  padding: 16px;
  color: #17211d;
  background: #ffffff;
  border: 1px solid #d9ded6;
  border-left: 1px solid #d9ded6;
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(8, 42, 34, 0.05);
}

.parent-mobile-home .portal-focus-card {
  color: #ffffff;
  background: #123f32;
  border-color: #123f32;
}

.parent-mobile-home .portal-focus-card span,
.parent-mobile-home .portal-focus-card em,
.parent-mobile-home .portal-focus-card small {
  color: rgba(255, 255, 255, 0.72);
}

.parent-mobile-home .portal-focus-card strong {
  color: #ffffff;
  font-size: 25px;
}

.parent-mobile-home .portal-stat-tile strong {
  color: #123f32;
}

.parent-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.parent-summary-strip > a,
.parent-summary-strip > span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px 12px;
  color: #17211d;
  background: #f7f9f5;
  border: 1px solid #d9ded6;
  border-radius: 5px;
  text-decoration: none;
}

.parent-summary-strip strong {
  color: #123f32;
  font-size: 21px;
  line-height: 1;
}

.parent-summary-strip span span {
  color: #68746e;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.parent-detail-section {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.parent-mobile-home .parent-data-panel {
  gap: 10px;
  padding: 14px;
  border-color: #d9ded6;
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(8, 42, 34, 0.05);
}

.parent-data-summary-title {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

.parent-data-summary-icon,
.parent-mobile-home .portal-row-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.parent-data-summary-icon {
  width: 30px;
  height: 30px;
  border-radius: 4px;
  color: #123f32;
  background: #edf3e9;
}

.parent-data-summary-icon svg,
.parent-mobile-home .portal-row-mark svg {
  width: 18px;
  height: 18px;
}

.parent-data-summary-meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  margin-left: auto;
  padding: 0 6px;
  color: #123f32;
  background: #edf3e9;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 800;
}

.parent-mobile-home .parent-data-panel .portal-row {
  min-height: 56px;
  border-radius: 5px;
  background: #f8faf8;
}

.parent-mobile-home .parent-data-panel .portal-row-mark {
  color: #123f32;
  background: #edf3e9;
  border-radius: 4px;
}

.parent-mobile-home .parent-data-panel .portal-empty {
  min-height: 56px;
  padding: 12px;
  border: 1px dashed #c8d0c6;
  border-radius: 5px;
  color: #68746e;
  background: #f8faf8;
}

@media (min-width: 541px) {
  .parent-data-panel:not([open]) > .parent-data-desktop-head {
    display: flex;
  }

  .parent-data-panel:not([open]) > .portal-row-list {
    display: grid;
  }
}

.parent-mobile-home .family-v0-feed-shell,
.parent-quick-section,
.parent-child-tools {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 16px;
  background: #ffffff;
  border: 1px solid #d9ded6;
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(8, 42, 34, 0.05);
}

.parent-mobile-home .family-v0-section-head {
  align-items: center;
}

.parent-mobile-home .family-v0-section-head h3 {
  color: #17211d;
  font-size: 19px;
  line-height: 1.25;
}

.parent-mobile-home .family-v0-section-head > a {
  font-size: 12px;
  font-weight: 700;
}

.parent-mobile-home .family-v0-feed-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.parent-mobile-home .family-v0-feed-item {
  min-height: 82px;
  padding: 12px;
  border-radius: 5px;
  box-shadow: none;
}

.parent-mobile-home .family-v0-feed-icon {
  width: 42px;
  height: 42px;
  border-radius: 4px;
  color: #123f32;
  background: #edf3e9;
}

.parent-mobile-home .family-v0-feed-icon svg,
.parent-mobile-home .family-v0-app-icon svg {
  width: 22px;
  height: 22px;
}

.parent-mobile-home .family-v0-feed-copy strong {
  font-size: 15px;
}

.parent-mobile-home .family-v0-app-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.parent-mobile-home .family-v0-app-card {
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 72px;
  padding: 12px;
  border-radius: 5px;
  box-shadow: none;
}

.parent-mobile-home .family-v0-app-icon {
  width: 40px;
  height: 40px;
  border-radius: 4px;
  color: #123f32;
  background: #edf3e9;
}

.parent-mobile-home .family-v0-app-card strong {
  font-size: 15px;
  line-height: 1.25;
}

.parent-mobile-home .family-v0-app-badge {
  min-width: 26px;
  min-height: 26px;
  padding: 0 7px;
  color: #123f32;
  background: #edf3e9;
  border-radius: 3px;
  font-size: 10px;
}

.parent-child-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.parent-child-tools summary {
  color: #17211d;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
}

.parent-child-tools[open] summary {
  margin-bottom: 10px;
}

@media (max-width: 900px) {
  .parent-mobile-home .portal-overview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .parent-mobile-home .portal-focus-card {
    grid-column: 1 / -1;
  }

  .parent-mobile-home .family-v0-feed-list {
    grid-template-columns: 1fr;
  }

  .parent-mobile-home .family-v0-app-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 540px) {
  .parent-mobile-home {
    gap: 8px;
  }

  .parent-summary-strip {
    gap: 5px;
  }

  .parent-summary-strip > a,
  .parent-summary-strip > span {
    min-height: 48px;
    padding: 7px 6px;
  }

  .parent-summary-strip strong {
    font-size: 18px;
  }

  .parent-summary-strip span span {
    font-size: 10px;
  }

  .parent-detail-section {
    gap: 8px;
  }

  .parent-detail-section > .family-v0-section-head {
    padding: 2px;
  }

  .parent-mobile-home .parent-data-panel,
  .parent-mobile-home .parent-data-panel[open] {
    gap: 8px;
    padding: 0 10px 10px;
    border-radius: 5px;
  }

  .parent-mobile-home .parent-data-panel:not([open]) {
    padding-bottom: 0;
  }

  .parent-mobile-home .parent-data-summary {
    margin: 0;
    padding: 0;
  }

  .parent-mobile-home .parent-data-desktop-head {
    display: none;
  }

  .parent-mobile-home .parent-data-panel .portal-row-list {
    gap: 6px;
  }

  .parent-mobile-home .parent-data-panel .portal-row {
    min-height: 50px;
    padding: 7px;
  }

  .parent-mobile-home .parent-data-panel .portal-row-mark {
    width: 30px;
    height: 30px;
  }

  .parent-mobile-home .parent-data-panel .portal-row-main strong {
    font-size: 13px;
  }

  .parent-mobile-home .parent-data-panel .portal-row-main em,
  .parent-mobile-home .parent-data-panel .portal-row-meta {
    font-size: 10px;
  }

  .parent-home-head {
    padding: 0 0 7px;
  }

  .parent-home-head > span,
  .parent-home-head p {
    display: none;
  }

  .parent-home-head h2 {
    margin: 0;
    font-size: 22px;
  }

  .parent-mobile-home .portal-overview-grid {
    gap: 8px;
  }

  .parent-mobile-home .portal-focus-card {
    min-height: 86px;
    padding: 11px 13px;
    gap: 3px;
  }

  .parent-mobile-home .portal-focus-card strong {
    font-size: 20px;
  }

  .parent-mobile-home .portal-focus-card small {
    display: none;
  }

  .parent-mobile-home .portal-stat-tile {
    min-height: 64px;
    padding: 8px;
    gap: 2px;
  }

  .parent-mobile-home .portal-stat-tile strong {
    font-size: 21px;
  }

  .parent-mobile-home .portal-stat-tile em {
    font-size: 10px;
    line-height: 1.2;
  }

  .parent-mobile-home .family-v0-feed-shell,
  .parent-quick-section,
  .parent-child-tools {
    padding: 10px;
    border-radius: 5px;
  }

  .parent-quick-section {
    padding: 7px 0 0;
    background: transparent;
    border: 0;
    box-shadow: none;
  }

  .parent-mobile-home .family-v0-section-head h3 {
    font-size: 17px;
  }

  .parent-mobile-home .family-v0-feed-shell {
    padding: 10px;
  }

  .parent-mobile-home .family-v0-feed-item {
    min-height: 58px;
    padding: 8px;
  }

  .parent-mobile-home .family-v0-feed-icon {
    width: 34px;
    height: 34px;
  }

  .parent-mobile-home .family-v0-app-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .parent-mobile-home .family-v0-app-card {
    grid-template-columns: 32px minmax(0, 1fr) auto;
    gap: 7px;
    min-height: 52px;
    padding: 8px;
  }

  .parent-mobile-home .family-v0-app-icon {
    width: 32px;
    height: 32px;
  }

  .parent-mobile-home .family-v0-app-icon svg {
    width: 18px;
    height: 18px;
  }

  .parent-mobile-home .family-v0-app-card strong {
    font-size: 13px;
  }

  .parent-mobile-home .family-v0-app-badge {
    min-width: 22px;
    min-height: 22px;
    padding: 0 5px;
  }

  .parent-mobile-home .family-v0-app-badge.is-open {
    display: none;
  }

  .parent-child-tools summary {
    font-size: 14px;
  }

  .parent-child-tools[open] .parent-child-actions {
    display: grid;
  }

  .parent-child-tools[open] .parent-child-actions .btn {
    width: 100%;
    min-height: 38px;
  }
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home {
  gap: 8px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-summary-strip {
  gap: 5px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-summary-strip > a,
html[data-layout-mode="mobile"] body.app-body.role-parent .parent-summary-strip > span {
  min-height: 48px;
  padding: 7px 6px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-summary-strip strong {
  font-size: 18px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-summary-strip span span {
  font-size: 10px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-detail-section {
  gap: 8px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-detail-section > .family-v0-section-head {
  padding: 2px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .parent-data-panel,
html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .parent-data-panel[open] {
  gap: 8px;
  padding: 0 10px 10px;
  border-radius: 5px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .parent-data-panel:not([open]) {
  padding-bottom: 0;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  color: #123f32;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  list-style: none;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-summary::-webkit-details-marker {
  display: none;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-summary::after {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  content: "";
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-panel[open] > .parent-data-summary::after {
  transform: rotate(225deg) translate(-2px, -2px);
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-desktop-head {
  display: none;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-panel .portal-row-list {
  gap: 6px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-panel .portal-row {
  min-height: 50px;
  padding: 7px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-panel .portal-row-mark {
  width: 30px;
  height: 30px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-panel .portal-row-main strong {
  font-size: 13px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-panel .portal-row-main em,
html[data-layout-mode="mobile"] body.app-body.role-parent .parent-data-panel .portal-row-meta {
  font-size: 10px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-home-head {
  padding: 0 0 7px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-home-head > span,
html[data-layout-mode="mobile"] body.app-body.role-parent .parent-home-head p {
  display: none;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-home-head h2 {
  margin: 0;
  font-size: 22px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .portal-overview-grid {
  width: 100%;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .portal-focus-card {
  grid-column: 1 / -1;
  min-height: 86px;
  padding: 11px 13px;
  gap: 3px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .portal-focus-card strong {
  font-size: 20px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .portal-focus-card small {
  display: none;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .portal-stat-tile {
  min-height: 64px;
  padding: 8px;
  gap: 2px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .portal-stat-tile strong {
  font-size: 21px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .portal-stat-tile em {
  font-size: 10px;
  line-height: 1.2;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-feed-list {
  grid-template-columns: 1fr;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-feed-shell {
  padding: 10px;
  border-radius: 5px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-feed-item {
  min-height: 58px;
  padding: 8px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-feed-icon {
  width: 34px;
  height: 34px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-quick-section {
  padding: 7px 0 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-section-head h3 {
  font-size: 17px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-app-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-app-card {
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 7px;
  min-height: 52px;
  padding: 8px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-app-icon {
  width: 32px;
  height: 32px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-app-icon svg {
  width: 18px;
  height: 18px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-app-card strong {
  font-size: 13px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-app-badge {
  min-width: 22px;
  min-height: 22px;
  padding: 0 5px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-mobile-home .family-v0-app-badge.is-open {
  display: none;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-child-tools {
  padding: 10px;
  border-radius: 5px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-child-tools summary {
  font-size: 14px;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-child-tools[open] .parent-child-actions {
  display: grid;
}

html[data-layout-mode="mobile"] body.app-body.role-parent .parent-child-tools[open] .parent-child-actions .btn {
  width: 100%;
  min-height: 38px;
}

@media (max-width: 540px) {
  .portal-student-home {
    gap: 8px;
  }

  .portal-student-home .portal-overview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .portal-student-home .portal-focus-card {
    grid-column: 1 / -1;
    min-height: 86px;
    padding: 11px 13px;
    gap: 3px;
    color: #ffffff;
    background: #123f32;
    border: 1px solid #123f32;
    border-radius: 5px;
  }

  .portal-student-home .portal-focus-card span,
  .portal-student-home .portal-focus-card em,
  .portal-student-home .portal-focus-card small {
    color: rgba(255, 255, 255, 0.72);
  }

  .portal-student-home .portal-focus-card strong {
    color: #ffffff;
    font-size: 20px;
  }

  .portal-student-home .portal-focus-card small {
    display: none;
  }

  .portal-student-home .portal-stat-tile {
    min-height: 64px;
    padding: 8px;
    gap: 2px;
    border: 1px solid #d9ded6;
    border-radius: 5px;
    box-shadow: 0 1px 2px rgba(8, 42, 34, 0.05);
  }

  .portal-student-home .portal-stat-tile strong {
    color: #123f32;
    font-size: 21px;
  }

  .portal-student-home .portal-stat-tile em {
    font-size: 10px;
    line-height: 1.2;
  }

  .portal-student-home .student-v0-home-grid {
    display: block;
  }

  .portal-student-home .student-v0-main-card,
  .portal-student-home > .student-v0-meter-grid,
  .portal-student-home > .portal-panel-grid,
  .portal-student-home .student-v0-list-shell.is-empty,
  .portal-student-home .student-v0-section-head-muted,
  .portal-student-home .student-v0-list-stack-done {
    display: none;
  }

  .portal-student-home .student-v0-app-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  .portal-student-home .student-v0-app-card {
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    min-height: 52px;
    padding: 8px;
    border: 1px solid #d9ded6;
    border-radius: 5px;
    background: #ffffff;
    box-shadow: none;
  }

  .portal-student-home .student-v0-app-card.tone-reading,
  .portal-student-home .student-v0-app-card.tone-audio,
  .portal-student-home .student-v0-app-card.tone-quiz {
    color: #17211d;
    background: #ffffff;
    border-color: #d9ded6;
  }

  .portal-student-home .student-v0-app-card .student-v0-app-icon {
    width: 30px;
    height: 30px;
    border-radius: 4px;
    color: #123f32;
    background: #edf3e9;
  }

  .portal-student-home .student-v0-app-icon svg {
    width: 17px;
    height: 17px;
  }

  .portal-student-home .student-v0-app-card strong {
    font-size: 13px;
    line-height: 1.2;
  }

  .portal-student-home .student-v0-list-shell {
    gap: 8px;
    padding: 10px;
    border: 1px solid #d9ded6;
    border-radius: 5px;
    box-shadow: 0 1px 2px rgba(8, 42, 34, 0.05);
  }

  .portal-student-home .student-v0-section-head h3 {
    font-size: 17px;
  }

  .portal-student-home .student-v0-section-head p {
    display: none;
  }

  .portal-student-home .student-v0-task-card {
    min-height: 54px;
    padding: 8px;
    border-radius: 5px;
  }

  .portal-student-home .student-v0-list-stack > :nth-child(n + 3) {
    display: none;
  }
}
