/* Roshdino reference layout: mobile-first visual hierarchy and role workspaces. */
body[data-role="student"]{--primary:#0668ed;--primary-strong:#0054d6;--primary-2:#25a9ff;--role-soft:#edf5ff}
body[data-role="parent"]{--primary:#12854d;--primary-strong:#086c3c;--primary-2:#26c780;--role-soft:#edf9f2}
body[data-role="teacher"]{--primary:#b65b04;--primary-strong:#914800;--primary-2:#ffa626;--role-soft:#fff6e9}
body[data-role="manager"]{--primary:#7338dd;--primary-strong:#6023c4;--primary-2:#aa75fa;--role-soft:#f4efff}
body[data-role="counselor"]{--primary:#cf1962;--primary-strong:#a50e4b;--primary-2:#ff649b;--role-soft:#fff0f6}
body[data-role="admin"]{--primary:#334155;--primary-strong:#1e293b;--primary-2:#74899f;--role-soft:#f1f5f9}
body[data-role]{--bg:#f5f7fc;--border:#eaf0f7;--text:#27334d;--muted:#72809a;background:var(--bg);color:var(--text)}
.app{grid-template-columns:240px minmax(0,1fr)}
.main{padding:0 30px 30px;min-width:0}
.page-content{max-width:1240px;margin-inline:auto}
.sidebar{width:240px;background:#fff;border-left:1px solid var(--border);box-shadow:none;padding:24px 18px}
.brand-row{padding-bottom:22px;border-bottom:1px solid var(--border)}
.brand-logo{width:40px;height:40px;border-radius:12px}
.brand-row strong{font-size:22px;font-weight:750}.brand-row span{font-size:10px}
.user-card{background:transparent;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:20px 0;gap:12px}
.user-avatar,.top-avatar{padding:0;border:0;background:transparent;overflow:hidden;flex-shrink:0}
.role-avatar{display:block;object-fit:contain;width:100%;height:100%}
.user-avatar{width:46px;height:46px}.top-avatar{width:38px;height:38px}
.nav-btn{min-height:44px;padding:10px 12px;font-size:13px;font-weight:550;margin-bottom:4px;color:#63708b}
.nav-btn.active{background:var(--role-soft);color:var(--primary);box-shadow:none;border-inline-start:3px solid var(--primary)}
.nav-icon svg{width:21px;height:21px}.nav-label{margin-top:18px;font-size:10px;letter-spacing:0}
.sidebar-footer{border-top:1px solid var(--border);font-size:11px;background:#fff;padding-top:16px}
.topbar{position:static;max-width:1240px;margin-inline:auto;background:transparent;border:0;padding-block:20px;margin-bottom:0;min-height:80px}
.page-heading h1{font-size:22px;font-weight:750}.page-heading p{font-size:11px}
.topbar-actions{gap:10px}.top-action{box-shadow:none;border:1px solid var(--border);background:#fff;border-radius:12px;width:38px;height:38px}
.card{border:1px solid var(--border);background:#fff;border-radius:18px;padding:20px;box-shadow:0 4px 18px #263d6504}
.card:hover{box-shadow:0 4px 18px #263d6504}
.section-head{margin-bottom:16px;align-items:center}.section-head h3{font-size:16px;font-weight:750}.section-head p{font-size:11px;line-height:1.7;margin-top:3px}
.text-link{display:inline-flex;align-items:center;gap:5px;color:var(--primary);background:transparent;border:0;padding:7px 0;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;min-height:36px}
.text-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}
.btn{min-height:44px;border-radius:11px;font-size:13px;font-weight:650;gap:7px;display:inline-flex;align-items:center;justify-content:center}
.btn.primary{background:var(--primary);box-shadow:0 4px 12px color-mix(in srgb,var(--primary) 14%,transparent)}
.btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.full{width:100%}.empty-state{font-size:12px;padding:18px 8px}
.home-greeting{position:relative;isolation:isolate;overflow:hidden;display:flex;justify-content:space-between;align-items:center;padding:26px 32px 38px;min-height:172px;border-radius:22px;background:linear-gradient(105deg,var(--primary-2),var(--primary));color:#fff;margin-bottom:-18px}
.home-greeting:after{content:'';position:absolute;width:300px;height:300px;left:-60px;bottom:-240px;border-radius:50%;background:#ffffff16;z-index:-1}
.home-greeting>.role-avatar{width:94px;height:94px;border:5px solid #ffffff35;border-radius:50%;box-shadow:0 8px 20px #16356118;z-index:1}
.home-greeting h2{font-size:28px;font-weight:750;line-height:1.6;margin:4px 0}.home-greeting p{font-size:12px;margin:3px 0;color:#fff}
.home-role{font-size:11px;color:#fff;opacity:.85}.greeting-decoration{position:absolute;left:150px;top:32px;opacity:.35}
.greeting-decoration svg{width:30px;height:30px;fill:none;stroke:#fff;stroke-width:1.5}
.home-overview-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:16px;margin:0 18px 18px}
.academic-overview{padding:22px 24px}.academic-overview .section-head{margin-bottom:6px}
.overview-reading{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:152px}
.overview-number{min-width:110px;display:flex;flex-direction:column;gap:3px}
.overview-number>span{font-size:12px;color:var(--muted)}.overview-number strong{font-size:44px;line-height:1.4;font-weight:800;color:var(--primary)}
.overview-number small{font-size:11px;line-height:1.9}
.overview-spark{min-width:0;width:65%}.overview-spark .chart-box{border:0;background:transparent;padding:0;height:auto;min-height:0}
.overview-spark .chart-box svg{height:140px;width:100%}.overview-spark .chart-axis-labels{font-size:10px;margin-top:-8px;padding-inline:5%}
.overview-spark .chart-legend{display:none}
.home-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:stretch}
.compact-stat{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:16px;background:#fff;padding:16px;min-width:0}
.compact-stat>div{display:flex;flex-direction:column;min-width:0;gap:3px}.compact-stat small{font-size:11px;color:var(--muted)}
.compact-stat b{font-size:22px;font-weight:750;line-height:1.6;overflow-wrap:anywhere;color:var(--stat-color)}
.compact-stat>div>span{font-size:10px;color:var(--muted)}
.stat-blue{--stat-color:#0668ed;--stat-soft:#edf5ff}.stat-green{--stat-color:#12854d;--stat-soft:#edf9f2}.stat-purple{--stat-color:#7338dd;--stat-soft:#f4efff}.stat-pink{--stat-color:#cf1962;--stat-soft:#fff0f6}.stat-amber{--stat-color:#b65b04;--stat-soft:#fff6e9}
.stat-icon{background:var(--stat-soft);color:var(--stat-color);width:40px;height:40px;border-radius:12px;flex-shrink:0;display:grid;place-items:center}
.stat-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.role-stats{position:relative;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 18px 20px}
.home-content-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:18px;margin-bottom:20px}
.home-main-column,.home-side-column{display:flex;flex-direction:column;gap:18px;min-width:0}
.today-lesson-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.today-lesson{display:flex;flex-direction:column;gap:8px;align-items:center;border:0;border-radius:14px;padding:16px 8px;cursor:pointer;min-width:0;min-height:120px;color:var(--tile-color);background:var(--tile-soft)}
.today-lesson>span{font-size:10px;opacity:.75}.today-lesson b{font-size:14px;font-weight:650}.today-lesson small{font-size:12px;direction:ltr}
.tile-0{--tile-color:#0668ed;--tile-soft:#edf5ff}.tile-1{--tile-color:#12854d;--tile-soft:#edf9f2}.tile-2{--tile-color:#b65b04;--tile-soft:#fff6e9}
.sample-caption{font-size:10px;color:var(--muted);display:block;margin-top:9px;text-align:center}
.home-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.home-shortcut{display:flex;flex-direction:column;gap:9px;align-items:center;justify-content:center;border:0;background:transparent;padding:0;cursor:pointer;min-height:82px;color:var(--text);min-width:0}
.home-shortcut>span{width:52px;height:52px;background:var(--shortcut-soft);color:var(--shortcut-color);border-radius:16px;display:grid;place-items:center;transition:transform .15s}
.home-shortcut:hover>span{transform:translateY(-3px)}.home-shortcut b{font-size:12px;font-weight:600;white-space:nowrap}
.home-shortcut svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.shortcut-blue{--shortcut-color:#0668ed;--shortcut-soft:#edf5ff}.shortcut-green{--shortcut-color:#12854d;--shortcut-soft:#edf9f2}.shortcut-purple{--shortcut-color:#7338dd;--shortcut-soft:#f4efff}.shortcut-pink{--shortcut-color:#cf1962;--shortcut-soft:#fff0f6}.shortcut-amber{--shortcut-color:#b65b04;--shortcut-soft:#fff6e9}
.home-goals .mini-goal{padding:10px 0}.home-goals .mini-goal b{font-size:13px;line-height:1.9}.home-goals .mini-goal>strong{font-size:13px}.home-goals .mini-goal>.growth-icon{width:32px;height:32px}
.home-goals>.btn{margin-top:18px}.home-review .section-head p{font-size:11px}.review-invite{display:flex;gap:12px;align-items:center;margin:18px 0}
.review-invite>svg{width:43px;height:43px;fill:none;stroke:#7338dd;stroke-width:1.5;background:#f4efff;border-radius:12px;padding:8px}
.review-invite b{font-size:13px;font-weight:650;display:block}.review-invite small{font-size:11px;color:var(--muted)}
.home-subject-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.subject-small{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px;border:0;border-radius:12px;background:var(--tile-soft);color:var(--tile-color);text-align:right;min-width:0;cursor:pointer}
.subject-small>span{display:none}.subject-small b{font-size:12px;font-weight:600;display:block}.subject-small small{font-size:10px;display:block;margin-top:5px}.subject-small strong{font-size:19px;font-weight:750}
.child-profile-strip{position:relative;display:flex;align-items:center;gap:12px;border:1px solid var(--border);background:#fff;padding:12px 18px;border-radius:16px;margin:0 18px 16px}
.child-profile-strip>.role-avatar{width:44px;height:44px}.child-profile-strip b{font-size:14px;display:block}.child-profile-strip small{font-size:11px;color:var(--muted)}.child-profile-strip>.status{margin-inline-start:auto}
.child-profile-strip+.home-overview-grid{margin-top:0}
.support-note h3{font-size:16px;font-weight:700;margin-block:14px 6px}.support-note p{font-size:12px;color:var(--muted);line-height:2}.support-note>.growth-icon{background:var(--role-soft);color:var(--primary)}
.case-row{display:flex;align-items:center;gap:14px;width:100%;text-align:right;padding:15px 0;border:0;border-bottom:1px solid var(--border);background:#fff;cursor:pointer;min-width:0}
.case-row>.role-avatar{width:50px;height:50px;flex-shrink:0}.case-row>span:nth-child(2){flex:1;min-width:0}.case-row b{display:block;font-size:14px;font-weight:650}.case-row small{display:block;font-size:11px;line-height:1.8;color:var(--muted)}
.counselor-cases>.btn{margin-top:18px}.home-side-column .home-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
.school-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.school-class-grid>div{padding:14px;border:1px solid var(--border);border-radius:12px;background:#fafbfe}
.school-class-grid b{font-size:14px;display:block}.school-class-grid small{font-size:11px;color:var(--muted)}
.admin-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
/* Learning pages use compact headers and a central action surface. */
.learning-header{background:transparent;border:0;padding:12px 0 20px;border-radius:0;margin-bottom:0;box-shadow:none}
.learning-header .eyebrow{display:none}.learning-header-icon{width:42px;height:42px;background:var(--role-soft);border-radius:12px}.learning-header h2{font-size:20px}.learning-header p{font-size:12px;margin-top:4px}
.daily-snapshot{gap:12px;margin-bottom:18px}.daily-snapshot>div{padding:16px;border-radius:16px}.daily-snapshot small{font-size:11px}.daily-snapshot b{font-size:22px}
.daily-layout{gap:18px}.daily-layout .student-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.daily-layout .student-quick-action{min-height:100px;padding:14px 8px;border-radius:14px}.daily-layout .student-quick-action b{font-size:13px}.daily-layout .student-quick-action small{font-size:11px}
.daily-habit-item{border-radius:12px;min-height:74px;padding:14px}.daily-habit-item b{font-size:13px}.daily-habit-item small{font-size:11px}
.weekly-agenda{gap:12px}.agenda-day{border-radius:14px}.agenda-day summary{padding:16px;min-height:64px}.lesson-tile{border-radius:12px;padding:14px}.lesson-tile b{font-size:14px}.lesson-copy span,.lesson-copy small{font-size:11px}.schedule-caption{font-size:11px}
.focus-workstation{margin-bottom:18px}.focus-subjects{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.focus-subjects button{flex:1;min-height:40px;background:#f5f7fc;color:var(--text);border:0;border-radius:10px;padding:8px 12px;font-size:13px;cursor:pointer}.focus-subjects button.active{background:var(--primary);color:#fff}
.focus-layout{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1fr);align-items:center;gap:32px;padding:12px 20px}
.focus-clock{position:relative;width:250px;height:250px;justify-self:center}.focus-clock>svg{width:100%;height:100%;fill:none;stroke-width:7;stroke-linecap:round}.focus-clock circle{stroke:var(--role-soft)}.focus-clock path{stroke:var(--primary)}
.focus-clock>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.focus-clock span{font-size:13px;color:var(--muted)}.focus-clock strong{font-size:32px;line-height:1.5;font-weight:750;font-variant-numeric:tabular-nums}
.clock-toggle{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;border:0;background:var(--primary);color:#fff;cursor:pointer;box-shadow:0 5px 12px color-mix(in srgb,var(--primary) 22%,transparent)}
.clock-toggle svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.focus-caption{color:var(--primary);font-size:12px;font-weight:600}.focus-controls h3{font-size:21px;font-weight:700;margin:8px 0}.focus-controls p{font-size:12px;color:var(--muted);margin:6px 0 18px}
.focus-controls label{font-size:12px;font-weight:600;display:block;margin-bottom:8px}.focus-controls textarea{display:block;width:100%;min-height:84px;border:1px solid var(--border);border-radius:12px;padding:12px;font:inherit;font-size:13px;resize:vertical;background:#fafbfe}
.focus-buttons{display:flex;gap:10px;margin-top:14px}.focus-buttons>.primary{flex:1}.study-overview{padding:18px;min-height:0;background:var(--role-soft);border:0}.study-overview h3{font-size:17px}.study-overview p{font-size:12px;margin:6px 0}.study-overview .growth-ring{width:100px;height:100px}.study-overview .growth-ring strong{font-size:24px}.study-facts{margin-top:10px}.study-facts b{font-size:23px}.study-facts span{font-size:11px}
.study-entry{padding:14px 0}.study-entry h4{font-size:14px}.study-entry p{font-size:11px}.review-timeline-item h4{font-size:14px}.review-timeline-item p,.review-due{font-size:11px}.study-panels{gap:18px}
/* Goal workspace: visible milestones, compact summaries and clear next action. */
.goals-welcome{padding:24px;gap:24px;border-radius:20px;background:linear-gradient(110deg,var(--role-soft),#fff);min-height:190px;margin-bottom:16px}
.goals-welcome h2{font-size:25px;margin:6px 0 10px}.goals-welcome p{font-size:13px;line-height:1.9;margin-bottom:16px;max-width:470px}.goals-overall{padding:10px 16px;background:transparent;box-shadow:none;position:relative}.goals-overall .growth-ring{width:118px;height:118px}.goals-overall small{font-size:11px}.journey-target{display:none}
.goal-journey{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;margin-bottom:16px;border:1px solid var(--border);border-radius:14px;background:#fff}
.goal-journey>span{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--primary);white-space:nowrap}.goal-journey svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}.goal-journey i{height:2px;background:var(--role-soft);flex:1;max-width:100px}
.goals-summary{gap:12px;margin-bottom:18px}.goals-summary>div{padding:14px 18px}.goals-summary b{font-size:23px}.goals-summary .growth-icon{width:30px;height:30px}
.goals-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.goal-card{position:relative;overflow:hidden;border:1px solid var(--border);border-top:3px solid var(--goal-color);padding:20px;border-radius:18px}
.goal-card h3{font-size:16px;min-height:54px;line-height:1.8;margin:18px 0 14px}.goal-visual{gap:12px;margin-bottom:18px}.goal-visual .growth-ring{width:96px;height:96px}.goal-visual .growth-ring strong{font-size:24px}.goal-next>b{font-size:12px;font-weight:500}.goal-deadline{font-size:11px}.goal-category{font-size:12px}.goal-visibility{font-size:10px}.goal-update{min-height:44px;font-size:12px}.goal-progress-line{margin-bottom:14px}
.goal-privacy-note{font-size:12px}.goal-privacy-note>.growth-icon{width:24px;height:24px}
.profile-identity{padding:22px;background:linear-gradient(110deg,var(--role-soft),#fff)}.profile-initials{background:transparent;width:76px;height:76px;padding:0;border-radius:50%;overflow:hidden;color:transparent}.profile-interests .interests-grid{gap:12px}
.interests-grid article{background:#fafbfe;padding:16px;border:0}.interests-grid h3{font-size:14px}.achievement-card{padding:24px 18px}.achievement-medal{width:60px;height:60px;border-radius:18px}
@media(min-width:821px){body[data-page="dashboard"] .home-greeting{margin-top:0}.teacher-home+.grid{position:relative}body[data-role="teacher"][data-page="dashboard"] .metric-grid{position:relative;margin:0 18px 18px}body[data-role="teacher"][data-page="dashboard"] .metric-card{background:#fff;border:1px solid var(--border)}}
@media(max-width:1150px){.home-overview-grid,.home-content-grid{grid-template-columns:minmax(0,1.3fr) minmax(270px,1fr)}.compact-stat{padding:12px;gap:8px}.compact-stat b{font-size:19px}.stat-icon{width:32px;height:32px}.stat-icon svg{width:20px;height:20px}.goals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-number strong{font-size:38px}.home-subject-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){
 .app{display:block}.sidebar{width:min(310px,88vw)}.main{padding:0 16px 96px}.topbar{position:sticky;top:0;z-index:30;background:#f5f7fcf2;backdrop-filter:blur(12px);padding-block:12px;min-height:64px;margin-bottom:0}
 .page-heading h1{font-size:19px}.topbar-actions{gap:6px}.top-avatar{display:none}.top-action{width:35px;height:35px}.mobile-menu{width:35px;height:35px;background:#fff;border:1px solid var(--border);border-radius:10px;font-size:18px}.topbar-right{gap:10px}
 .mobile-nav{height:70px;padding:5px 12px calc(5px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--border);box-shadow:0 -4px 15px #27334d05}
 .mobile-nav button{font-size:10px;color:#7b879c;gap:4px;font-weight:500}.mobile-nav button.active{background:transparent;font-weight:750;color:var(--primary);position:relative}.mobile-nav button.active:before{content:'';position:absolute;top:-5px;width:24px;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}
 .mobile-nav button span svg{width:22px;height:22px}.card{padding:18px;border-radius:16px}.section-head h3{font-size:15px}.section-head p{font-size:11px}.text-link{font-size:11px}
 .home-greeting{padding:18px 22px 32px;min-height:132px;border-radius:18px;margin-bottom:-18px}.home-greeting h2{font-size:24px}.home-greeting p{font-size:11px;line-height:1.8}.home-greeting>.role-avatar{width:70px;height:70px;border-width:3px}.home-role{display:none}.greeting-decoration{display:none}
 .home-overview-grid{grid-template-columns:1fr;gap:12px;margin:0 10px 14px}.home-stats{gap:10px}.home-content-grid{grid-template-columns:1fr;gap:14px}.home-main-column,.home-side-column{gap:14px}
 .academic-overview{padding:16px 18px}.overview-reading{min-height:130px;gap:12px}.overview-number{min-width:95px}.overview-number strong{font-size:38px}.overview-number>span{font-size:11px}.overview-number small{font-size:10px}
 .overview-spark{width:62%}.overview-spark .chart-box svg{height:125px}.overview-spark .chart-axis-labels{font-size:9px;gap:3px;padding-inline:3%;margin-top:-10px}
 .compact-stat{padding:12px;gap:10px;min-height:86px;border-radius:14px}.compact-stat b{font-size:19px}.compact-stat small{font-size:11px}.compact-stat>div>span{font-size:10px}.stat-icon{width:34px;height:34px;border-radius:10px}
 .role-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 10px 14px}
 .today-lesson{min-height:92px;padding:12px 6px;gap:6px;border-radius:12px}.today-lesson b{font-size:13px}.today-lesson small{font-size:11px}.today-lesson>span{font-size:10px}
 .home-shortcut{min-height:75px}.home-shortcut>span{width:44px;height:44px;border-radius:13px}.home-shortcut svg{width:24px;height:24px}.home-shortcut b{font-size:11px}.home-shortcuts{gap:8px}.home-actions .section-head{margin-bottom:10px}.home-subject-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.subject-small{padding:10px;gap:4px}.subject-small strong{font-size:18px}
 .home-side-column .home-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}.home-review .review-invite{margin-block:12px}.home-review .section-head{margin-bottom:10px}.home-goals .section-head{margin-bottom:8px}
 .child-profile-strip{margin:0 10px 12px;padding:10px 14px}.child-profile-strip>.role-avatar{width:38px;height:38px}
 .learning-header{padding:12px 0 16px;gap:10px}.learning-header h2{font-size:18px}.learning-header p{font-size:11px}.learning-header-icon{width:34px;height:34px}.learning-header>.btn{font-size:12px;padding-inline:12px}
 .focus-layout{grid-template-columns:1fr;padding:0;gap:4px}.focus-clock{width:215px;height:215px}.focus-controls h3,.focus-controls>p,.focus-caption{display:none}.focus-controls label{margin-top:8px;font-size:12px}.focus-controls textarea{min-height:64px}.focus-subjects{gap:7px;margin-bottom:8px}.focus-subjects button{font-size:12px;padding:8px}
 .study-overview h3{font-size:16px}.study-overview .study-overview-copy>p{display:none}.study-facts{gap:18px}.study-facts b{font-size:21px}.study-facts span{font-size:10px}.study-overview .growth-ring{width:88px;height:88px}.study-overview .growth-ring span{font-size:10px}.study-panels{gap:14px}.study-entry-meta b{font-size:12px}
 .daily-snapshot{gap:8px}.daily-snapshot>div{padding:12px 8px;gap:8px}.daily-snapshot small{font-size:10px}.daily-snapshot b{font-size:18px}.daily-layout{gap:14px}.daily-layout .student-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.daily-layout .student-quick-action{min-height:84px;padding:10px 4px}.daily-layout .student-quick-action b{font-size:11px}.daily-layout .student-quick-action small{display:none}.daily-layout .growth-icon{width:32px;height:32px}
 .goals-welcome{padding:20px;flex-direction:row;align-items:center;gap:14px;min-height:0;margin-bottom:12px}.goals-welcome h2{font-size:20px;margin:5px 0 8px}.goals-welcome p{font-size:12px;line-height:1.8;margin-bottom:12px}.goals-welcome-copy{flex:1}.goals-welcome .eyebrow{font-size:11px}.goals-welcome .btn{font-size:12px;min-height:40px;padding-inline:10px}.goals-overall{padding:0;min-width:100px}.goals-overall .growth-ring{width:92px;height:92px}.goals-overall .growth-ring strong{font-size:24px}.goals-overall .growth-ring span{font-size:9px}.goals-overall>small{font-size:10px}
 .goal-journey{gap:7px;padding:13px 10px}.goal-journey>span{font-size:10px;gap:4px}.goal-journey svg{width:17px;height:17px}.goal-journey i{min-width:5px}.goals-summary{gap:8px;margin-bottom:14px}.goals-summary>div{padding:10px 6px;border-radius:12px}.goals-summary b{font-size:20px}.goals-summary>div>span:last-child{font-size:10px}.goals-grid{grid-template-columns:1fr;gap:14px}
 .goal-card{padding:18px;border-radius:16px}.goal-card h3{min-height:0;font-size:16px;margin:14px 0}.goal-visual{margin-bottom:14px;justify-content:flex-start;gap:20px}.goal-next{flex:1}.goal-progress-line{height:6px}.goal-next>b{font-size:12px}.goal-deadline{font-size:11px}.goal-category{font-size:12px}.goal-visibility{font-size:11px}.goal-update{font-size:12px}.goal-privacy-note{font-size:11px;gap:8px;padding:14px 2px}
 .case-row{gap:10px}.case-row>.role-avatar{width:42px;height:42px}.case-row b{font-size:13px}.case-row small{font-size:11px}.case-row .status{font-size:10px;white-space:nowrap}.school-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body[data-role="teacher"][data-page="dashboard"] .metric-grid{position:relative;margin:0 10px 14px;grid-template-columns:repeat(2,minmax(0,1fr))!important}.metric-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px}.metric-value{font-size:23px}.metric-label{font-size:11px}.metric-delta{font-size:10px}.metric-icon{width:32px;height:32px;min-width:32px;border-radius:10px}
 .profile-identity{padding:18px}.profile-identity h2{font-size:21px}.profile-information-grid{gap:14px;margin-bottom:14px}.profile-interests .interests-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.interests-grid article{padding:14px}.interests-grid h3{font-size:13px}.interest-rating{font-size:10px;gap:6px}.interest-rating i{width:7px;height:7px}.interest-rating b{gap:3px}
 .achievements-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.achievement-card{padding:20px 14px;gap:10px}.achievement-card h3{font-size:14px}.achievement-card p{font-size:11px}.achievement-date{font-size:10px}.achievement-medal{width:52px;height:52px}.achievement-medal svg{width:28px;height:28px}.achievements-banner{gap:14px;padding:18px}.achievements-banner b{font-size:18px}.achievements-banner p{font-size:12px}
}
@media(max-width:380px){.main{padding-inline:12px}.home-greeting{padding-inline:18px}.home-greeting h2{font-size:22px}.home-greeting>.role-avatar{width:62px;height:62px}.overview-number strong{font-size:34px}.overview-number{min-width:86px}.academic-overview{padding-inline:14px}.compact-stat{padding:10px;gap:8px}.compact-stat b{font-size:17px}.compact-stat small{font-size:10px}.home-shortcut b{font-size:10px}.goals-welcome{padding:16px}.goals-welcome h2{font-size:18px}.goals-welcome p{font-size:11px}.goals-overall{min-width:86px}.goals-overall .growth-ring{width:80px;height:80px}.goal-journey>span{font-size:9px}.section-head>.text-link{font-size:10px}}
@media print{.home-greeting{background:#fff!important;color:#222!important;border:1px solid #ddd;margin-bottom:12px}.home-greeting p{color:#222}.home-overview-grid,.role-stats{margin-inline:0}.home-content-grid{display:block}.home-side-column{margin-top:16px}.focus-buttons,.clock-toggle,.focus-subjects,.home-shortcuts,.text-link{display:none}.card{box-shadow:none!important}.home-role{color:#222}}
/* Mobile reference refinements found during visual review. */
.clock-toggle path{stroke:currentColor}
@media(max-width:820px){
 .goals-overall{width:auto;flex:0 0 92px;min-width:0;flex-direction:column;align-self:center}
 .goals-welcome-copy{flex:1;min-width:0}.goals-welcome h2{font-size:21px;line-height:1.7}.goals-welcome p{font-size:12px;line-height:1.9}
 .goals-welcome .btn{white-space:nowrap}.goals-overall>small{text-align:center}
 .learning-header{flex-direction:row;align-items:center}.learning-header-main{min-width:0;flex:1}.learning-header-icon,.learning-header h2{display:none}.learning-header p{margin:0;font-size:11px;line-height:1.9}
 .learning-header>.btn{flex-shrink:0;align-self:center;white-space:nowrap;font-size:12px;padding-inline:10px;width:auto}
 .study-entry .study-note{font-size:11px;color:var(--muted);line-height:1.9}
}
@media(max-width:380px){.goals-overall{flex-basis:80px}.goals-welcome h2{font-size:19px}}
/* Entry screen shares the product's typography and illustrated role selection. */
.login-view{background:#f5f7fc;padding:32px}
.login-shell{border:1px solid #eaf0f7;border-radius:26px;box-shadow:0 18px 70px #2237580c;max-width:1100px;overflow:hidden}
.login-brand-panel{background:linear-gradient(140deg,#0064ed,#22acff);padding:44px;display:flex;flex-direction:column;justify-content:center}
.login-brand-content{gap:18px}.login-brand-content h1{font-size:44px;font-weight:800;letter-spacing:0}.login-logo{width:86px;height:86px;border-radius:22px;background:#fff;box-shadow:none}
.brand-subtitle{font-size:16px}.brand-slogan{font-size:18px;font-weight:600;line-height:1.9}
.login-feature-grid{gap:12px;margin-top:32px}.login-feature-grid>div{background:#ffffff15;border:1px solid #ffffff25;border-radius:16px;padding:18px}.login-feature-grid b{font-size:14px}.login-feature-grid small{font-size:11px;line-height:1.8}
.login-form-panel{padding:40px;background:#fff}.login-card-head h2{font-size:29px;font-weight:750}.login-card-head p{font-size:12px;line-height:1.9}
.login-card label{font-size:13px;font-weight:600}.login-card input{font-size:14px;border-radius:11px;min-height:46px;padding:12px;direction:ltr;text-align:left;border:1px solid var(--border)}
.quick-logins{grid-template-columns:1fr 1fr;gap:10px}.quick-login{border-radius:13px;padding:12px;min-height:72px;gap:10px}.quick-login .qicon{width:38px;height:38px;border:0;background:transparent}.quick-login b{font-size:12px;font-weight:650}.quick-login small{font-size:10px;direction:ltr;display:block}
.security-note{font-size:11px;line-height:1.9}.maker-line{margin-top:30px}
@media(max-width:820px){.login-view{padding:20px}.login-shell{max-width:540px}.login-brand-panel{padding:26px;min-height:190px}.login-brand-content h1{font-size:34px}.login-logo{width:68px;height:68px}.brand-subtitle{font-size:14px}.brand-slogan{font-size:15px;margin:12px 0 0}.maker-line{display:none}.login-form-panel{padding:26px}.login-card-head h2{font-size:25px}}
@media(max-width:560px){.login-view{padding:0}.login-shell{border:0;border-radius:0;box-shadow:none}.login-brand-panel{padding:24px;min-height:180px}.login-form-panel{padding:24px 20px}.quick-logins{grid-template-columns:1fr 1fr}.quick-login{padding:10px 8px;gap:7px}.quick-login b{font-size:11px}.quick-login small{font-size:9px}.quick-login .qicon{width:32px;height:32px}.security-note{font-size:10px}}
/* Teacher and counselor workflows use the same card-based information structure. */
.teacher-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.teacher-class-grid>button{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid #fff0dd;background:#fff8ef;color:#914800;border-radius:14px;padding:18px;cursor:pointer}
.teacher-class-grid svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8}.teacher-class-grid b{font-size:15px;font-weight:700}.teacher-class-grid small{font-size:11px}
.teacher-subject-list>div{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.teacher-subject-list>div:last-child{border-bottom:0}.teacher-subject-list b{font-size:14px;display:block}.teacher-subject-list small{font-size:11px;color:var(--muted)}.teacher-subject-list strong{margin-inline-start:auto;font-size:25px;color:var(--primary)}
.teacher-performance>div{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.teacher-performance>div:last-child{border:0}.teacher-performance>.role-avatar,.teacher-performance .role-avatar{width:42px;height:42px}.teacher-performance b{font-size:13px;display:block}.teacher-performance small{font-size:11px;color:var(--muted)}.teacher-performance strong{margin-inline-start:auto;font-size:19px;color:var(--primary)}
.class-selection{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.class-selection button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:135px;padding:14px 18px;background:#fff;border:1px solid var(--border);border-radius:12px;font-size:14px;font-weight:600;cursor:pointer}.class-selection small{font-size:11px;font-weight:400;color:var(--muted)}.class-selection .active{background:var(--primary);border-color:var(--primary);color:#fff}.class-selection .active small{color:#ffffffd9}
.class-student-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.class-student-list article{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px;background:#fafbfe;border:1px solid var(--border);border-radius:14px}.class-student-list .role-avatar{width:48px;height:48px}.class-student-list h3{font-size:14px;margin:0;font-weight:650}.class-student-list small{font-size:11px;color:var(--muted)}.class-student-list strong{font-size:24px;color:var(--primary);margin-inline-start:auto}.class-student-list .status{width:100%;text-align:center;background:#fff}
.case-toolbar{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-bottom:18px}.case-filter-tabs{display:flex;gap:8px}.case-filter-tabs button{min-height:44px;border:1px solid var(--border);background:#fff;padding:10px 18px;border-radius:11px;font-size:12px;color:var(--text);cursor:pointer}.case-filter-tabs .active{background:var(--primary);border-color:var(--primary);color:#fff}.case-search{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--border);border-radius:11px;padding:8px 12px;min-width:220px}.case-search svg{width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:1.8}.case-search input{border:0;min-width:0;width:100%;font:inherit;font-size:13px;outline-offset:2px}
.counselor-student-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.counselor-case-card{display:flex;align-items:center;gap:12px;min-width:0;border:1px solid var(--border);border-radius:16px;background:#fff;padding:18px;text-align:right;cursor:pointer}.counselor-case-card .role-avatar{width:50px;height:50px;flex-shrink:0}.counselor-case-card>span{flex:1;min-width:0}.counselor-case-card b{font-size:14px;display:block}.counselor-case-card small{font-size:11px;color:var(--muted);display:block;margin:4px 0 8px}.counselor-case-card strong{font-size:20px;color:var(--primary)}.counselor-case-card .status{font-size:10px}
@media(max-width:1150px){.counselor-student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.class-student-list{grid-template-columns:1fr}}
@media(max-width:820px){.teacher-class-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.teacher-class-grid>button{padding:14px}.teacher-class-grid b{font-size:14px}.teacher-subject-list strong{font-size:22px}.teacher-performance>div{padding:12px 0}.class-selection{gap:8px}.class-selection button{min-width:0;flex:1;padding:12px 14px;font-size:13px}.class-student-list article{padding:14px}.case-toolbar{flex-direction:column;align-items:stretch;gap:12px}.case-filter-tabs{gap:7px}.case-filter-tabs button{flex:1;padding-inline:8px;font-size:11px}.case-search{min-width:0}.counselor-student-grid{grid-template-columns:1fr;gap:12px}.counselor-case-card{padding:16px}.counselor-case-card .role-avatar{width:46px;height:46px}}
