/* Phone layout is used at every viewport width. */
body{font-size:13px}.shell{display:block}.sidebar{display:none}.main{grid-column:auto}.topbar{height:72px;padding:0 20px}.crumb{display:none}.mobile-brand{display:flex;font-size:16px}.brand img{width:33px}.brand span small{font-size:7px}.top-actions{gap:9px}.top-actions>.avatar{display:none}.demo-tag{font-size:8px;padding:4px 6px}.content{padding:22px 18px 105px}.greeting{margin-bottom:20px}.greeting h1{font-size:24px}.greeting p{font-size:10px}.hero{min-height:246px;padding:24px 21px;border-radius:16px}.hero h2{font-size:23px}.hero-copy{width:68%}.hero p{font-size:10px;width:95%}.hero-art{width:190px;height:190px;right:-33px;bottom:4px}.hero-time{display:block;margin:10px 0 0;font-size:9px}.hero .primary{padding:11px 14px;font-size:10px}.hero-orbit{right:-150px}.eyebrow{font-size:8px}.stats{gap:8px;margin:15px 0 22px}.stat{display:block;padding:13px 11px}.stat-icon{width:29px;height:29px;border-radius:8px;margin-bottom:9px}.stat-icon .icon{width:17px}.stat strong{font-size:21px}.stat p{font-size:8px}.stat strong small{font-size:10px}.section-title h2{font-size:15px}.task-info h3{font-size:10px}.task-info p{font-size:9px;gap:6px;flex-wrap:wrap}.task-list{padding:0 12px}.task-row{padding:15px 0}.subject-icon{width:34px;height:37px;border-radius:8px;font-size:16px}.task-go{font-size:9px;padding:6px}.task-check{width:16px;height:16px;border-radius:5px}.task-info .badge{font-size:8px}.tools-grid{gap:8px}.tool-card{padding:14px 10px}.tool-card h3{font-size:10px}.tool-card p{font-size:9px}.tool-card>div{margin-bottom:12px}.tool-card .tool-ico{width:29px;height:29px}.tool-ico .icon{width:17px}.right-col{display:block;margin-top:22px}.right-col .panel{margin-bottom:16px}.right-col .progress-panel{display:none}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:9px 8px max(11px,env(safe-area-inset-bottom));justify-content:space-around;z-index:30}.bottom-nav button{font-size:8px;color:#8a988b;display:flex;flex-direction:column;align-items:center;gap:5px;padding:3px 5px;min-width:48px}.bottom-nav .icon{width:20px;height:20px}.bottom-nav .active{color:var(--teal);font-weight:600}.bottom-nav .ai-nav{color:var(--teal)}.bottom-nav .ai-nav .icon{background:var(--teal);color:white;border-radius:12px;width:34px;height:34px;padding:7px;margin-top:-17px;box-shadow:0 3px 10px #137c7030}.page-head{gap:13px}.page-head h1{font-size:24px}.page-head p{font-size:10px}.page-head .primary{font-size:10px;padding:10px 12px}.chat-window{min-height:570px}.chat-stage{padding:17px}.chat-header{padding:16px}.chat-header .secondary{padding:8px;font-size:10px}.ai-message{padding:17px;font-size:12px}.ai-message h2{font-size:16px}.choices{grid-template-columns:1fr;gap:8px}.choice{font-size:11px;padding:10px}.chat-footer{padding:13px}.chat-tools button{font-size:9px;padding:5px}.chat-tools .icon{width:16px}.result-grid{gap:8px}.result-grid .panel{padding:13px 10px}.result-grid h2{font-size:10px}.result-grid .big-number{font-size:27px}.result-grid .subtle{font-size:8px}.welcome{display:block}.welcome-art{padding:25px 20px}.welcome-art>svg{width:150px;height:150px}.welcome-art h1{font-size:24px}.welcome-art p{font-size:11px;margin-top:8px}.welcome-form{padding:28px 24px}.welcome-form .brand{margin-bottom:25px}.role-grid button{font-size:10px}.tabs button{padding:8px 11px;font-size:10px}.notice{font-size:10px}.feedback{padding:16px}.feedback p{font-size:11px}#toast{bottom:95px;font-size:11px}.answer-form{flex-wrap:wrap}.answer-form textarea{min-height:90px}.answer-form .primary{margin-left:auto}.profile-card .avatar{width:50px;height:50px;font-size:20px}.profile-card h2{font-size:18px}
:root{--phone-width:460px;--nav-height:76px;--header-height:76px}
html{background:#e7eee6}body{max-width:var(--phone-width);margin:0 auto;background:var(--paper);min-height:100dvh;box-shadow:0 0 65px #173c3614;font-size:14px;overflow-x:hidden}
.shell{display:block;min-height:100dvh}.sidebar,.crumb,.top-actions>.avatar,.greeting .date,.chat-plan{display:none!important}.main{display:block;min-width:0}
.topbar{height:calc(var(--header-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 18px 0;background:var(--paper);position:sticky;top:0;z-index:20}.mobile-brand{display:flex}.mobile-brand .brand{font-size:17px;gap:9px}.brand img{width:36px;height:36px}.brand span small{font-size:7px;letter-spacing:1px}.top-actions{gap:5px}.demo-tag{font-size:8px;padding:4px 6px}.bell{width:44px;height:44px;display:grid;place-items:center}
.content{padding:16px 18px calc(var(--nav-height) + env(safe-area-inset-bottom) + 24px);max-width:none;margin:0}.greeting{margin:3px 0 20px}.greeting h1{font-size:25px}.greeting p{font-size:12px;line-height:1.8;margin-top:4px}.dashboard,.two-col,.chat-layout{display:block}.right-col{display:block;margin-top:22px}.right-col .progress-panel{display:none}.right-col .panel{margin-bottom:16px}.left-col{width:100%}
.hero{border-radius:22px;min-height:268px;padding:23px 22px;align-items:flex-start}.hero-copy{width:100%;padding-right:0}.hero .eyebrow{font-size:9px;letter-spacing:.7px}.hero h2{font-size:25px;line-height:1.45;max-width:100%;margin-bottom:11px}.hero p{font-size:12px;line-height:1.85;width:65%;max-width:230px;margin-bottom:20px}.hero .primary{font-size:12px;min-height:46px;padding:11px 15px;position:relative;z-index:3}.hero-time{display:block;margin:10px 0 0;font-size:10px}.hero-time .icon{width:14px;height:14px}.hero-art{width:158px;height:158px;right:-12px;bottom:22px}.hero-orbit{width:210px;height:210px;right:-85px;top:80px}
.stats{gap:9px;margin:17px 0 23px}.stat{display:block;padding:14px 11px;border-radius:15px}.stat strong{font-size:23px;letter-spacing:-.7px}.stat p{font-size:10px;margin-top:3px;line-height:1.7}.stat strong small{font-size:11px}.stat-icon{width:30px;height:30px;margin-bottom:9px}.section-title{margin:23px 0 14px;gap:5px}.section-title h2{font-size:16px}.section-title .text-btn{min-height:40px;font-size:11px}.task-list{padding:0 12px;border-radius:16px}.task-row{gap:9px;padding:14px 0;position:relative}.task-info h3{font-size:12px;font-weight:600;line-height:1.7}.task-info p{font-size:10px;line-height:1.7}.task-info .badge{font-size:9px}.subject-icon{height:36px;width:32px;font-size:17px}.task-check{height:44px;width:26px;border:0;position:relative;background:transparent!important;flex:none}.task-check:before{content:'';position:absolute;inset:13px 4px;border:1.5px solid #c5d6c0;border-radius:5px;background:white}.task-check.done:before{background:var(--teal);border-color:var(--teal)}.task-check .icon{position:relative;z-index:1;width:16px;height:16px;color:white}.task-go{height:44px;width:34px;flex:none;border:0;padding:8px 4px;font-size:12px}.task-go .icon{width:18px}
.tools-grid{grid-template-columns:1fr;gap:10px}.tool-card{position:relative;min-height:92px;padding:16px 45px 16px 65px;border-radius:15px}.tool-card>div{margin:0;position:absolute;inset:0;pointer-events:none}.tool-card .tool-ico{position:absolute;left:16px;top:25px;width:35px;height:35px}.tool-card>div>.icon{position:absolute;right:17px;top:34px;width:17px;height:17px}.tool-card h3{font-size:13px;margin-bottom:4px}.tool-card p{font-size:11px}.footer-note{font-size:10px;line-height:1.8}.panel{border-radius:16px;padding:19px;margin-bottom:18px}.panel h2{font-size:16px}.panel .subtle{font-size:12px}.day{font-size:11px;min-height:55px}.day b{font-size:14px}.agenda-heading{font-size:12px}.agenda-item{gap:16px;margin:19px 0}.agenda-item time{font-size:12px}.agenda-item strong{font-size:13px}.agenda-item p{font-size:11px}.panel-link{font-size:12px;min-height:46px}.quote p{font-size:12px}.quote strong{font-size:13px}
.bottom-nav{display:flex;position:fixed;left:50%;transform:translateX(-50%);right:auto;width:min(100%,var(--phone-width));bottom:0;min-height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:11px 5px calc(10px + env(safe-area-inset-bottom));background:#fff;z-index:30;justify-content:space-around;align-items:center;border-top:1px solid var(--line);box-shadow:0 -4px 20px #1b453504}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;min-width:54px;padding:2px 4px;gap:5px;font-size:10px;color:#849281}.bottom-nav .icon{width:21px;height:21px}.bottom-nav .active{color:var(--teal);font-weight:600}.bottom-nav .ai-nav .icon{background:var(--teal);color:white;border-radius:13px;width:38px;height:38px;padding:8px;margin-top:-16px;box-shadow:0 3px 12px #137c7025}
.page-head{gap:10px;align-items:center;margin:3px 0 21px}.page-head h1{font-size:25px;line-height:1.4}.page-head p{font-size:12px;line-height:1.8}.page-head .primary,.page-head .secondary{font-size:11px;min-height:44px;padding:10px;flex:none}.primary,.secondary{min-height:46px;font-size:13px;border-radius:11px}.text-btn{min-height:44px;font-size:12px}.notice,.notice.warn{font-size:12px;line-height:1.9}.subtle{font-size:12px}.tabs{width:100%;gap:3px}.tabs button{flex:1;font-size:12px;min-height:44px;padding:9px}.week{gap:2px}.schedule-grid{display:block;overflow:visible;padding:0}.schedule-entry{padding:15px 17px;border-radius:12px;font-size:12px;min-height:85px}.schedule-entry b{font-size:14px}.schedule-entry span{font-size:12px;line-height:1.7}.schedule-grid+.secondary{margin-top:12px}
.result-grid{gap:8px}.result-grid .panel{padding:15px 10px}.result-grid h2{font-size:11px;line-height:1.7}.result-grid .big-number{font-size:29px}.result-grid .subtle{font-size:10px}.history-row h3{font-size:13px}.history-row p{font-size:12px}.progress-detail{font-size:12px}.history-row .text-btn{width:44px}.role-grid button{font-size:12px;min-height:78px}.form-actions{flex-wrap:wrap}.profile-card h2{font-size:21px}.profile-card .avatar{width:55px;height:55px}label{font-size:13px}input,select,textarea{font-size:16px;padding:12px;border-radius:11px;min-height:46px}.badge{font-size:10px}.table-wrap{max-width:100%}th,td{font-size:12px;padding:13px 7px}
.welcome{display:block;min-height:100dvh}.welcome-art{padding:24px 20px 28px}.welcome-art>.hero-art{position:relative;inset:auto;width:180px;height:180px}.welcome-art h1{font-size:27px}.welcome-art p{font-size:12px}.welcome-form{padding:30px 24px;max-width:none}.welcome-form .brand{margin-bottom:26px}.welcome-form h2{font-size:25px}.welcome-form>p,.auth-foot{font-size:13px}.password-field button{min-width:50px;font-size:12px}
dialog{max-width:430px;width:calc(100% - 28px);padding:23px;border-radius:23px;max-height:calc(var(--app-height,100dvh) - 32px)}.modal-title h2{font-size:20px}.close{width:44px;height:44px;display:grid;place-items:center;flex:none}.form-error{font-size:12px}.file-zone input{font-size:12px}.transcript{font-size:13px}#toast{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 14px);font-size:12px;width:max-content;max-width:min(90%,420px)}
/* The study screen stays within the phone viewport; only the current turn scrolls. */
body[data-page="ai"]{height:var(--app-height,100dvh);overflow:hidden}body[data-page="ai"] .shell{height:var(--app-height,100dvh);min-height:0}body[data-page="ai"] .main{height:100%;display:flex;flex-direction:column}body[data-page="ai"] .topbar{flex:none}body[data-page="ai"] .content{flex:1;min-height:0;display:flex;flex-direction:column;padding:6px 12px calc(var(--nav-height) + env(safe-area-inset-bottom) + 10px)}body[data-page="ai"] .page-head{margin:0 5px 12px;flex:none}body[data-page="ai"] .page-head h1{font-size:22px}body[data-page="ai"] .page-head p{display:none}body[data-page="ai"] .page-head .pill{font-size:9px;padding:6px 9px}body[data-page="ai"] .page-head .pill .icon{height:15px;width:15px}.chat-layout{flex:1;min-height:0;display:flex;flex-direction:column}.chat-window{min-height:0;flex:1;border-radius:18px;display:flex;flex-direction:column}.chat-header{padding:12px 14px;flex:none;gap:9px}.chat-header img{width:32px}.chat-header h3{font-size:12px}.chat-header p{font-size:9px;line-height:1.6}.chat-header .secondary{padding:6px 8px;min-height:42px;font-size:10px}.chat-stage{padding:16px;min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;justify-content:flex-start;gap:14px}.chat-stage>.subtle{font-size:10px}.chat-stage>.bar{flex:none}.ai-message{padding:17px;border-radius:0 14px 14px;font-size:13px;line-height:1.85;flex:none}.ai-message .eyebrow{font-size:9px;line-height:1.8}.ai-message h2{font-size:17px;line-height:1.7}.ai-message .subtle{font-size:11px}.choices{grid-template-columns:1fr;gap:9px;margin-top:18px}.choice{padding:10px 12px;min-height:48px;font-size:13px;border-radius:10px}.choice span{height:26px;width:26px;font-size:11px}.chat-stage>.primary{min-height:46px;flex:none}.chat-footer{flex:none;padding:5px 12px 8px;background:white}.chat-tools{gap:3px}.chat-tools>div{gap:4px}.chat-tools button{min-height:44px;font-size:10px;padding:6px 2px;white-space:nowrap;gap:5px}.chat-tools .icon{height:16px;width:16px}.chat-footer p{font-size:8px;margin:0;line-height:1.6}.feedback{font-size:13px;flex:none}.feedback h3{font-size:14px}.feedback p{font-size:13px}.answer-preview{font-size:12px;flex:none}.answer-form{display:flex;flex-wrap:wrap;gap:9px}.answer-form input{width:100%;flex-basis:100%}.answer-form textarea{min-height:100px}.session-summary{padding:15px 0}.session-summary h2{font-size:22px}.session-summary p{font-size:12px}.session-summary .stat{display:flex}.session-summary .stat strong{font-size:21px}.session-summary .form-actions{gap:8px}.session-summary .primary,.session-summary .secondary{font-size:11px}.chat-stage .empty{padding:20px 5px;font-size:12px}
@media(max-width:359px){.content{padding-left:13px;padding-right:13px}.mobile-brand .brand{font-size:15px;gap:7px}.brand span small{font-size:6px}.topbar{padding-left:13px;padding-right:10px}.hero{padding:20px 17px}.hero h2{font-size:22px}.hero-art{width:130px;height:130px;right:-15px;bottom:30px}.hero p{font-size:11px;width:67%}.hero .primary{font-size:11px}.hero-time{font-size:9px}.hero-copy .eyebrow{font-size:8px}.task-info h3{font-size:11px}.task-row{gap:6px}.task-info p{font-size:9px}.task-check{width:23px}.subject-icon{width:28px}.task-go{width:26px}.bottom-nav button{font-size:9px;min-width:48px}.chat-stage{padding:12px}.ai-message{padding:13px}.ai-message h2{font-size:15px}.chat-header h3{font-size:11px}.chat-header p{font-size:8px}.chat-tools button{font-size:9px}}
/* Teacher-authored curriculum: student calendar is a read-only learning feed. */
.class-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 11px;border:1px solid #dde7d7;background:white;border-radius:12px;color:var(--teal);font-size:12px;font-weight:600}.class-chip .icon{width:16px;height:16px}.curriculum-source{background:#e3efde;border:1px solid #dce8d3;border-radius:20px;padding:20px 17px;display:flex;gap:13px;align-items:flex-start;position:relative}.source-symbol{background:#fff9;width:39px;height:42px;display:grid;place-items:center;border-radius:12px;color:var(--teal);flex:none}.curriculum-source b{font-size:17px;line-height:1.6;letter-spacing:-.4px;display:block;padding-right:13px}.curriculum-source p{font-size:12px;line-height:1.9;color:#6d8465;margin-top:9px}.source-check{position:absolute;right:16px;top:17px;color:#6f9461}.source-check .icon{width:17px;height:17px}.curriculum-demo{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;color:#8a9780;margin:13px 0 20px}.curriculum-demo .icon{width:13px;height:13px}.calendar-week{margin-top:21px;padding:16px 12px 4px;background:white;border:1px solid var(--line);border-radius:17px}.week-caption{display:flex;align-items:center;justify-content:space-between;padding:0 5px 14px;font-size:10px;color:#98a18e}.week-caption b{color:#73866c;font-size:12px;font-weight:500}.calendar-week .week{margin:0 0 10px}.calendar-week .day{min-height:61px;padding:8px 2px;border-radius:12px}.calendar-week .day b{margin-top:5px;font-size:15px}.lesson-card{display:flex;gap:13px;margin-bottom:16px;align-items:stretch}.lesson-time{width:44px;flex:none;display:flex;align-items:center;flex-direction:column;padding-top:18px;position:relative}.lesson-time b{font-size:12px;color:#587253;font-weight:600}.lesson-time>span{font-size:9px;color:#a0aa97;margin-top:4px}.lesson-time i{flex:1;width:1px;background:#dce6d3;margin:13px 0 2px;position:relative}.lesson-time i:before{content:'';position:absolute;top:-3px;left:-3px;width:7px;height:7px;border-radius:50%;background:#bfd0b1;border:2px solid var(--paper);box-sizing:content-box}.lesson-body{flex:1;min-width:0;background:white;border:1px solid #e5eadf;border-radius:17px;padding:17px 15px 0;overflow:hidden}.lesson-subject{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-bottom:10px}.subject-name{font-size:11px;letter-spacing:.3px;color:var(--teal);font-weight:600}.lesson-subject .badge{font-size:8px;padding:3px 6px}.lesson-body h3{font-size:16px;line-height:1.6;letter-spacing:-.3px;font-weight:600}.lesson-teacher{font-size:10px;line-height:1.8;color:#8c9983;margin:10px 0;display:flex;align-items:center;gap:5px}.lesson-teacher .icon{width:13px;height:13px}.lesson-goal{font-size:11px;color:#7a8972;line-height:1.85;padding:12px 0;border-top:1px solid #f0f2eb}.lesson-open{margin:0 -15px;width:calc(100% + 30px);display:flex;align-items:center;justify-content:space-between;padding:12px 15px;min-height:46px;background:#f4f8ee;border-top:1px solid #edf2e5;color:var(--teal);font-size:11px}.lesson-open .icon{width:16px;height:16px}.lesson-card.literature .subject-name{color:#ae7d52}.lesson-card.literature .lesson-open{background:#fdf8ef;color:#a07a49}.lesson-card.science .subject-name{color:#8173a1}.lesson-card.science .lesson-open{background:#f6f4fa;color:#8173a1}.curriculum-foot{text-align:center;color:#98a38f;font-size:10px;line-height:1.9;padding:13px 8px 0}.curriculum-foot .icon{display:block;margin:0 auto 7px;width:16px;height:16px}.source-label{display:flex;align-items:center;gap:4px;font-size:10px;color:#8a9a7c}.source-label .icon{width:13px;height:13px}.plan-source-head{padding-bottom:19px;border-bottom:1px solid var(--line)}.plan-source-head h3{font-size:22px;letter-spacing:-.6px;line-height:1.6;margin:12px 0}.plan-source-head p{font-size:11px;color:var(--muted);line-height:1.9;margin-top:7px}.plan-source-head p .icon{height:14px;width:14px}.plan-section{padding:20px 0;border-bottom:1px solid var(--line)}.plan-section:last-of-type{border-bottom:0}.plan-section h3{font-size:14px;display:flex;align-items:center;gap:8px;color:var(--teal);margin-bottom:12px}.plan-section h3 .icon{width:18px;height:18px}.plan-section p{white-space:pre-wrap;font-size:13px;line-height:1.95;color:#6e8068;overflow-wrap:anywhere}.plan-manage h3{font-size:17px;margin:10px 0}.plan-manage .subtle{font-size:11px;margin-top:8px}.plan-manage .form-actions{justify-content:flex-start;gap:9px;margin-top:13px}.plan-manage .form-actions button{font-size:11px}.plan-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plan-form-grid>div{min-width:0}.plan-form-grid input{min-width:0;max-width:100%;font-size:14px}.plan-manage .lesson-subject .badge{font-size:10px}
@media(max-width:359px){.curriculum-source{padding:17px 13px;gap:10px}.curriculum-source b{font-size:15px}.curriculum-source p{font-size:11px}.source-symbol{width:34px;height:37px}.class-chip{font-size:10px;padding:6px 8px}.lesson-card{gap:9px}.lesson-body{padding:15px 12px 0}.lesson-time{width:37px}.lesson-body h3{font-size:15px}.lesson-open{margin:0 -12px;width:calc(100% + 24px);padding:12px}.lesson-subject .badge{font-size:7px}.curriculum-demo{font-size:9px}}
.week-controls{display:flex;justify-content:space-between;align-items:center;margin:-5px 0 10px}.week-controls .text-btn{font-size:11px;min-height:36px;color:#85977b}.week-arrow{width:44px;height:40px;font-size:25px;color:var(--teal);border-radius:9px}.week-arrow:hover{background:#f0f6e9}
/* Local school setup: choose a role, then a named profile. */
.entry-screen{min-height:100dvh;padding:25px 20px 35px}.entry-screen>header{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:0 0 37px}.entry-screen .brand{font-size:18px;gap:9px}.entry-screen .brand img{width:37px;height:37px}.entry-screen .brand small{font-size:6px}.entry-screen header>.demo-tag{max-width:82px;white-space:normal;text-align:center;font-size:7px;line-height:1.7}.entry-heading .eyebrow{font-size:8px;letter-spacing:.8px;margin-bottom:15px}.entry-heading h1{font-size:31px;line-height:1.4;letter-spacing:-1.2px;color:var(--dark)}.entry-heading>p{font-size:12px;color:#819078;line-height:1.9;margin-top:15px}.entry-roles{display:grid;gap:13px;margin:27px 0}.entry-role{display:flex;align-items:center;gap:13px;text-align:left;background:white;border:1px solid #e2e9dc;border-radius:18px;padding:19px 16px;min-height:97px;width:100%}.entry-role>span:nth-child(2){flex:1;min-width:0}.entry-role b{font-size:15px;display:block;color:var(--dark)}.entry-role small{font-size:10px;display:block;color:#8a9680;line-height:1.8;margin-top:4px}.entry-role>.icon{height:17px;width:17px;color:#9cad90}.entry-role-icon{height:43px;width:43px;display:grid;place-items:center;color:var(--teal);background:#e8f1e2;border-radius:13px;flex:none}.entry-role:nth-child(2) .entry-role-icon{color:#aa814b;background:#fbf1dd}.entry-role:nth-child(3) .entry-role-icon{color:#8b79a5;background:#f1edf7}.entry-role.selected{border-color:#6aab90;background:#edf5e7;box-shadow:0 0 0 1px #6aab9033}.entry-profiles{border-top:1px solid var(--line);padding-top:3px}.entry-profiles .section-title h2{font-size:15px}.entry-profiles .primary{margin-top:13px;font-size:12px}.local-person{display:flex;align-items:center;text-align:left;gap:12px;min-height:77px;width:100%;padding:14px 13px;background:white;border:1px solid var(--line);border-radius:13px;margin:10px 0}.local-person>span:nth-child(2){flex:1;min-width:0}.local-person b{font-size:12px;display:block}.local-person small{font-size:10px;color:var(--muted);display:block;margin-top:4px;overflow-wrap:anywhere}.local-person>.icon{height:17px;width:17px;color:var(--teal)}.entry-guide{background:#edf3e6;border-radius:17px;padding:20px}.entry-guide>b{font-size:12px;color:#667f5b}.entry-guide p{font-size:11px;color:#8a9a7e;margin-top:12px;line-height:1.8}.entry-guide p span{font-size:9px;display:inline-block;width:23px;color:#91aa7f;font-weight:600}.entry-disclosure{text-align:center;margin:27px 0 0;color:#a1ab98;font-size:9px;line-height:1.9}.entry-disclosure .icon{display:block;width:17px;height:17px;margin:0 auto 9px;color:#9bad8e}.compact{padding:20px 0}.teacher-identity{display:flex;align-items:center;gap:10px;background:#edf5e7;border:1px solid #dce8d3;border-radius:15px;padding:15px;margin-bottom:18px}.teacher-identity>div{flex:1;min-width:0}.teacher-identity b{font-size:13px}.teacher-identity p{font-size:10px;color:#89977e;margin-top:4px}.teacher-identity .text-btn{font-size:10px;flex:none}.teacher-identity .avatar{height:36px;width:36px;background:#daeacb;color:#70925b}.school-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.school-shortcuts button{font-size:11px;display:flex;gap:6px;align-items:center;justify-content:center}.school-shortcuts .icon{height:17px;width:17px}.school-class{margin-top:17px}.school-class .subtle{font-size:11px;line-height:1.9;margin-top:9px}.teaching-time{display:flex;align-items:center;gap:7px;font-size:12px;color:#6c8b60;margin:15px 0 10px}.teaching-time .icon{width:16px;height:16px}.teaching-time span{margin-left:auto;font-size:11px}.teaching-card h3{font-size:18px;line-height:1.6}.teaching-card>.subtle{font-size:11px;margin-top:9px}.teaching-card .form-actions{justify-content:flex-start;gap:8px;margin-top:12px}.teaching-card .form-actions button{font-size:11px}.subject-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 19px}.subject-checks label{margin:0;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:8px;padding:11px 10px;min-height:44px;font-size:11px;font-weight:400}.subject-checks input{width:18px;height:18px;min-height:0;padding:0;flex:none;accent-color:var(--teal)}.local-consent{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.8;font-weight:400;margin:20px 0}.local-consent input{width:19px;height:19px;min-height:0;flex:none;accent-color:var(--teal);margin-top:3px}.profile-card+.secondary{margin-bottom:12px}
@media(max-width:359px){.entry-screen{padding:22px 16px}.entry-screen .brand{font-size:16px}.entry-screen .brand small{font-size:5px}.entry-screen .brand img{height:32px;width:32px}.entry-heading h1{font-size:28px}.entry-role{padding:17px 12px;gap:10px}.entry-role small{font-size:9px}.entry-role-icon{height:37px;width:37px}.entry-heading .eyebrow{font-size:7px}.subject-checks{grid-template-columns:1fr}.teacher-identity{padding:13px 11px}}
.role-switch{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:var(--teal)}.role-switch:hover{background:#edf4e7}
.library-card h3{font-size:18px;line-height:1.65;margin:10px 0}.library-card>.subtle{font-size:11px;line-height:1.8;margin:12px 0}.library-card .form-actions{justify-content:flex-start;gap:8px}.library-card .form-actions button{font-size:11px}.schedule-hint{display:flex;gap:10px;padding:16px;border-radius:13px;background:#eaf3e3;color:#6d8760;font-size:12px;line-height:1.9;margin-bottom:15px}.schedule-hint .icon{width:19px;height:19px;margin-top:4px}.schedule-clock{display:flex;align-items:center;gap:8px;padding:13px;border:1px solid #e1ead9;background:#f4f8ee;border-radius:11px;margin-top:15px;color:var(--teal);font-size:12px;flex-wrap:wrap}.schedule-clock>.icon{width:16px;height:16px}.schedule-clock>span{font-size:9px;color:#8f9f82;margin-left:auto}.bell-table{margin:20px 0 12px}.bell-row{display:grid;grid-template-columns:33px 1fr 1fr;gap:10px;align-items:center;margin:9px 0}.bell-row>b{text-align:center;font-size:13px;color:#7d9270}.bell-row input{min-width:0;font-size:14px;padding:10px 8px}.bell-heading{font-size:10px;color:var(--muted);text-align:center;margin-bottom:15px}.teaching-time{flex-wrap:wrap}.teaching-time>span{white-space:nowrap}
.weekly-repeat{margin:18px 0;border:1px solid #dfe8d7;border-radius:14px;padding:15px;background:#f6f9f0}.weekly-toggle{display:flex;align-items:center;gap:11px;margin:0;font-weight:400;cursor:pointer;min-height:44px}.weekly-toggle>input{width:20px;height:20px;min-height:0;padding:0;flex:none;accent-color:var(--teal)}.weekly-toggle b{display:block;font-size:13px;color:var(--dark)}.weekly-toggle small{display:block;font-size:10px;color:#8a9a7e;line-height:1.8;margin-top:4px}.weekly-repeat [hidden]{display:none!important}.weekly-repeat input[type="number"]{background:white}.repeat-summary{background:#e9f2e2;border-radius:10px;padding:12px;margin:12px 0;color:#6a865b;font-size:11px;line-height:1.9}.weekly-repeat .subtle{font-size:11px;line-height:1.85}.weekly-badge{display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:10px}.weekly-badge>.icon{width:13px;height:13px}
/* Teacher weekly calendar: phone-width viewport with a horizontally scrollable week. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.teacher-week-toolbar{background:white;border:1px solid var(--line);border-radius:17px;padding:15px 12px 12px;margin:0 0 17px}.teacher-week-range{display:flex;gap:7px;align-items:center;justify-content:space-between;text-align:center}.teacher-week-range>button{width:40px;height:44px;flex:none;font-size:25px;color:var(--teal);border-radius:10px}.teacher-week-range>button:hover{background:#f1f6eb}.teacher-week-range>div{min-width:0}.teacher-week-range b{font-size:14px;letter-spacing:-.3px;display:block}.teacher-week-range small{display:block;font-size:10px;color:#94a188;margin-top:5px}.teacher-week-tools{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:16px 4px 15px;border-bottom:1px solid #edf1e7}.teacher-week-tools>.secondary{font-size:11px;padding:8px 12px;min-height:44px}.teacher-week-jump{display:flex;align-items:center;gap:6px;margin:0;min-width:0;color:#91a382}.teacher-week-jump>.icon{width:16px;height:16px}.teacher-week-jump input{font-size:16px;min-height:44px;width:155px;min-width:0;padding:7px 8px;border-radius:9px;color:#75896b}.teacher-week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:14px}.teacher-day{display:flex;align-items:center;flex-direction:column;gap:3px;padding:6px 1px;border-radius:10px;min-height:65px;color:#92a185;min-width:0}.teacher-day>span{font-size:9px}.teacher-day>b{font-size:14px;font-weight:500}.teacher-day>small{font-size:8px;line-height:1.5;min-width:15px;background:#f0f4e9;border-radius:4px;padding:0 3px;color:#9cac8e}.teacher-day.is-today{box-shadow:inset 0 0 0 1px #bed2af}.teacher-day.is-selected{background:var(--teal);color:white;box-shadow:none}.teacher-day.is-selected>small{background:#ffffff25;color:#e3efde}.teacher-week-caption{display:flex;align-items:center;justify-content:space-between;gap:5px;margin:0 1px 12px;font-size:9px;color:#96a18d}.teacher-week-caption>span{display:flex;gap:5px;align-items:center}.teacher-week-caption .icon{width:13px;height:13px}.teacher-week-scroll{position:relative;max-width:100%;width:100%;max-height:560px;overflow:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid #e0e8d8;border-radius:14px;background:white;isolation:isolate;scrollbar-width:thin;scrollbar-color:#c3d4b5 #f3f7ed}.teacher-week-scroll:focus-visible{outline:2px solid #91ba80;outline-offset:3px}.teacher-week-grid{display:grid;grid-template-columns:52px repeat(7,104px);width:780px;background:#fff;position:relative}.teacher-grid-corner{position:sticky;top:0;left:0;z-index:9;grid-column:1;grid-row:1;display:grid;place-items:center;font-size:9px;color:#9aa88e;background:#f6f8f1;border-right:1px solid #e8eddf;border-bottom:1px solid #e8eddf;letter-spacing:.7px}.teacher-grid-day{position:sticky;top:0;z-index:6;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;background:#f7f9f3;border-right:1px solid #e8eddf;border-bottom:1px solid #e8eddf;color:#809374}.teacher-grid-day>span{font-size:10px}.teacher-grid-day>b{font-size:12px;font-weight:500}.teacher-grid-day.is-today{background:#e7f1df;color:var(--teal)}.teacher-grid-period{position:sticky;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:#fbfcf8;border-right:1px solid #e7eddd;border-bottom:1px solid #edf1e6}.teacher-grid-period>b{font-size:13px;color:#8a9d7c;font-weight:500}.teacher-grid-period>span{font-size:9px;color:#9ba98f}.teacher-grid-period>small{font-size:8px;color:#b1bba7}.teacher-grid-empty{min-width:0;min-height:0;border-right:1px solid #edf1e5;border-bottom:1px solid #edf1e5;padding:0;display:flex;align-items:center;justify-content:center;color:#d5dfcc;background:#fff}.teacher-grid-empty>span{opacity:.55;font-size:18px;font-weight:400}.teacher-grid-empty:hover,.teacher-grid-empty:focus-visible{background:#f2f7eb;color:#7b9f69}.teacher-grid-empty.is-today{background:#fafcf7}.teacher-grid-break{font-size:9px;color:#abb69f;display:flex;align-items:center;justify-content:center;background:#f4f7ee;border-top:1px solid #e9eede;border-bottom:1px solid #e9eede;letter-spacing:.4px;z-index:1}.teacher-grid-event{margin:3px;position:relative;z-index:3;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:3px;align-items:flex-start;justify-content:flex-start;padding:8px 8px 7px;border-radius:8px;border:1px solid #d7e5c9;border-left:3px solid #78a767;background:#eaf3e2;color:#5a7d4a;text-align:left}.teacher-grid-event>strong{font-size:13px;line-height:1.2;font-weight:700;letter-spacing:-.3px}.teacher-grid-event>span{font-size:10px;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-grid-event>small{font-size:9px;line-height:1.7;margin-top:5px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:#83a16f;overflow-wrap:anywhere}.teacher-grid-event>i{position:absolute;right:6px;top:8px;width:5px;height:5px;border-radius:50%;background:#71a563}.teacher-grid-event.literature{background:#fdf2e5;border-color:#efdfc7;border-left-color:#cdac78;color:#ae8753}.teacher-grid-event.science{background:#f0edf8;border-color:#dfd7ee;border-left-color:#a190c1;color:#8c7ea5}.teacher-grid-event.needs-lesson{border-style:dashed;background:#fcf8ec;border-color:#e9d7ac;border-left-style:solid;border-left-color:#d4b875;color:#ae935d}.teacher-grid-event.needs-lesson>small{color:#bda572}.teacher-grid-event.needs-lesson>i{background:#d5b56c}.teacher-grid-event.is-draft{opacity:.7}.teacher-grid-event:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}.teacher-week-legend{display:flex;gap:11px;align-items:center;flex-wrap:wrap;padding:15px 1px;font-size:9px;color:#9ba58f}.teacher-week-legend>span{display:flex;align-items:center;gap:5px}.teacher-week-legend i{height:6px;width:6px;border-radius:50%;background:#78a767}.teacher-week-legend i.pending{background:#d5b56c}.teacher-week-legend>span:last-child{font-size:8px;margin-left:auto}.week-empty-notice{margin-top:14px}.teacher-week-scroll+.teacher-week-legend{margin-top:0}
@media(max-width:359px){.teacher-week-range b{font-size:12px}.teacher-week-range small{font-size:9px}.teacher-week-tools{padding-left:0;padding-right:0;gap:5px}.teacher-week-jump input{width:147px;font-size:16px}.teacher-week-jump>.icon{display:none}.teacher-week-caption{font-size:8px}.teacher-week-legend{gap:9px}.teacher-week-legend>span:last-child{width:100%;margin:0}.teacher-week-toolbar{padding:13px 10px 10px}}
/* Student experience: conversation first, timetable second, other tools under Profile. */
body[data-role="student"]{--nav-height:0px}.student-shell{min-height:100dvh;background:#f7f9f4}.student-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(16px + env(safe-area-inset-top)) 20px 12px;background:#f7f9f4;border-bottom:1px solid #eaf0e3}.student-header .brand{font-size:18px;gap:10px}.student-header .brand img{width:37px;height:37px}.student-header .brand span small{font-size:7px;letter-spacing:1px}.student-profile-button{position:relative;width:43px;height:43px;display:grid;place-items:center;border-radius:50%;border:1px solid #dfe8d5;background:#fff;color:#6f8c60;flex:none}.student-profile-button .icon{width:21px;height:21px}.student-profile-button.selected{background:#e2efda;border-color:#a5c78f}.student-profile-dot{position:absolute;bottom:4px;right:3px;width:8px;height:8px;border:2px solid var(--paper);background:#9dbb86;border-radius:50%}.student-primary-nav{display:flex;gap:5px;padding:9px 18px 11px;background:#f7f9f4;border-bottom:1px solid #e8eedf}.student-primary-nav>button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:7px 10px;border-radius:11px;font-size:12px;color:#97a58c;font-weight:500}.student-primary-nav .icon{height:17px;width:17px}.student-primary-nav>button.active{color:var(--teal);background:#e8f1df}.student-main{padding:22px 18px 35px}.student-main.is-conversation{padding:0}.student-conversation{display:flex;flex-direction:column;min-height:0;height:100%}.student-context{display:flex;align-items:center;gap:7px;padding:15px 21px 9px;flex:none;font-size:11px;color:#69845b}.student-context small{font-size:10px;color:#9aaa8e}.student-ai-light{width:6px;height:6px;border-radius:50%;background:#8bb578;box-shadow:0 0 0 3px #e9f1e2}.student-trial{margin-left:auto;color:#a6b09c;font-size:8px}.student-chat-stage{padding:20px 20px 25px;gap:17px;justify-content:flex-start;overflow-y:auto;min-height:0;flex:1;overscroll-behavior:contain}.student-chat-stage>.student-message-label{font-size:9px;letter-spacing:1px;color:#94a985;display:flex;align-items:center;gap:6px;margin:7px 2px -7px}.student-message-label .icon{width:15px;height:15px}.student-chat-stage .ai-message{background:white;border:1px solid #e5eddd;border-radius:0 19px 19px 19px;padding:21px 19px;flex:none;line-height:1.9}.student-chat-stage .ai-message h2{font-size:21px;line-height:1.65;letter-spacing:-.6px;color:#234b3f;font-weight:600}.student-chat-stage .ai-message>p{font-size:14px;line-height:1.95;color:#7e9173;margin-top:15px}.student-chat-stage .ai-message .subtle{font-size:11px}.student-lesson-context{padding:15px 0;border-top:1px solid #eef2e7;border-bottom:1px solid #eef2e7;margin:17px 0}.student-lesson-context b{display:block;font-size:14px;color:#526f43;line-height:1.8}.student-lesson-context span{font-size:10px;color:#a4af98;line-height:1.9;display:block;margin-top:4px}.student-chat-stage .ai-message .student-current-prompt{color:#345d49;font-size:16px;font-weight:500;line-height:1.9}.student-chat-stage .ai-message .student-flow-note{font-size:11px;color:#a3ae99;line-height:1.9}.student-quick-answers{display:grid;grid-template-columns:1fr;gap:10px;flex:none}.student-quick-answers button,.student-chat-stage>.primary,.student-chat-stage>.secondary{min-height:49px;padding:13px 15px;font-size:13px;border-radius:12px;flex:none}.student-quick-answers .secondary{border:1px solid #dce6d2;background:#f5f8ef;color:#849773}.student-chat-footer{flex:none;padding:8px 20px calc(14px + env(safe-area-inset-bottom));background:#f7f9f4;border-top:1px solid #eaf0e2}.student-chat-footer>p{text-align:center;font-size:9px;color:#a8b39c;line-height:1.8}.student-session-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-3px 0 7px}.student-session-controls>.text-btn{font-size:11px;gap:6px;color:#8ba07b;min-height:39px}.student-session-controls .icon{width:16px;height:16px}.student-chat-stage .choice{font-size:14px;min-height:49px;border-color:#dce7d0}.student-chat-stage .choices{gap:10px;margin-top:20px}.student-chat-stage .choice span{font-size:11px;color:#91a77e}.student-chat-stage .bar{height:4px;flex:none}.student-chat-stage .feedback{font-size:13px;background:#edf5e4;border-radius:13px;padding:20px;flex:none}.student-chat-stage .feedback.wrong{background:#fff7e8}.student-chat-stage .feedback p{font-size:13px;line-height:1.95}.student-chat-stage .feedback h3{font-size:16px;line-height:1.7}.student-chat-stage .answer-preview{font-size:12px;background:#e7f0de;border-radius:14px 14px 0 14px}.student-chat-stage .answer-form{gap:12px}.student-chat-stage .answer-form .primary{min-height:46px}.student-chat-stage .notice{font-size:12px;flex:none}.student-chat-stage .student-review-instruction{white-space:pre-wrap;background:#f2f6eb;border-radius:10px;padding:13px;font-size:13px!important}.student-reading{background:#f2f6eb;border-radius:13px;padding:17px;margin-top:18px}.student-reading>b{font-size:14px;color:#648050}.student-reading>p{white-space:pre-wrap;font-size:13px;color:#7b916c;line-height:1.95;margin-top:12px;overflow-wrap:anywhere}.student-chat-stage .ai-message .student-score-line{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-top:1px solid #edf1e6;border-bottom:1px solid #edf1e6;color:#779461;font-size:13px}.student-score-line>b{font-size:24px;letter-spacing:-.7px;color:var(--teal)}
body[data-role="student"][data-page="ai"]{height:var(--app-height,100dvh);overflow:hidden}body[data-role="student"][data-page="ai"] .student-shell{height:var(--app-height,100dvh);min-height:0;display:flex;flex-direction:column}body[data-role="student"][data-page="ai"] .student-header,body[data-role="student"][data-page="ai"] .student-primary-nav{flex:none}body[data-role="student"][data-page="ai"] .student-main{flex:1;min-height:0}.student-page-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.student-page-title h1{font-size:25px;letter-spacing:-.8px}.student-calendar-week{margin:0 0 22px;padding:13px 13px 4px}.student-calendar-week .week-controls{margin:0 0 11px}.student-calendar-week .week-controls>span{font-size:12px;color:#879b79}.student-calendar-week .week{margin-bottom:0}.student-calendar-week .text-btn.full{font-size:10px;min-height:33px}.student-day-title{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:15px}.student-day-title h2{font-size:15px}.student-day-title>span{font-size:11px;color:#9cad8c}.student-schedule-card{background:white;border:1px solid #e2ead8;border-radius:15px;padding:17px 14px;display:flex;gap:15px;margin-bottom:12px}.student-schedule-time{min-width:60px;flex:none;border-right:1px solid #eaf0e1;padding-right:12px}.student-schedule-time>b{display:block;font-size:13px;color:#6d8b59}.student-schedule-time>small{font-size:10px;color:#9daf8b;display:block;margin-top:5px}.student-schedule-card>div{flex:1;min-width:0}.student-schedule-card h3{font-size:15px}.student-schedule-card p{font-size:12px;line-height:1.8;color:#8b9b7c;margin-top:5px}.student-schedule-card>div>small{font-size:10px;line-height:1.9;color:#a9b49c;display:block;margin-top:5px}.student-schedule-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.student-schedule-actions>.text-btn{min-height:36px;font-size:10px;padding:4px 0;gap:5px}.student-schedule-actions .icon{height:13px;width:13px}.student-timetable-note{text-align:center;font-size:10px;line-height:1.9;color:#a3b095;margin:23px 0}.student-personal-links{margin:-9px 0}.student-menu-link{width:100%;display:flex;gap:12px;align-items:center;text-align:left;padding:17px 0;min-height:54px;border-bottom:1px solid #eef2e7;font-size:12px;color:#7a926b}.student-menu-link:last-child{border-bottom:0}.student-menu-link>.icon{width:18px;height:18px;flex:none;color:#97ad88}.student-menu-link>.icon:last-child:not(:first-child){margin-left:auto;width:15px;height:15px;color:#b0bea4}.student-back{font-size:12px;color:#91a27e;padding:0 0 15px;min-height:40px}.student-main .profile-card{margin-bottom:20px}.student-main .profile-card h2{font-size:21px}.student-main .profile-card .subtle{font-size:12px}body[data-role="student"] #toast{bottom:calc(20px + env(safe-area-inset-bottom))}
@media(max-width:359px){.student-header{padding-left:16px;padding-right:16px}.student-header .brand{font-size:16px}.student-header .brand img{width:33px;height:33px}.student-header .brand small{font-size:6px}.student-primary-nav{padding-left:13px;padding-right:13px}.student-primary-nav>button{font-size:11px}.student-context{padding-left:16px;padding-right:16px}.student-chat-stage{padding-left:16px;padding-right:16px}.student-chat-stage .ai-message{padding:18px 16px}.student-chat-stage .ai-message h2{font-size:19px}.student-chat-stage .ai-message>p{font-size:13px}.student-chat-stage .ai-message .student-current-prompt{font-size:15px}.student-main{padding-left:15px;padding-right:15px}.student-main.is-conversation{padding:0}.student-schedule-card{padding:14px 12px;gap:11px}.student-schedule-time{min-width:53px}.student-page-title h1{font-size:23px}}
/* Student conversation input stays at the bottom, including above the phone keyboard. */
.student-composer{display:flex;flex-direction:column;gap:8px}.student-input-row{display:flex;align-items:flex-end;gap:8px;border:1px solid #dce6d3;border-radius:19px;background:white;padding:6px}.student-input-row textarea{flex:1;min-width:0;min-height:40px;max-height:110px;resize:none;border:0;background:transparent;padding:10px 9px;font-size:16px;line-height:1.4;box-shadow:none;margin:0}.student-input-row textarea:focus{outline:none}.student-send{width:41px;height:41px;flex:none;border-radius:50%;background:var(--teal);color:white;display:grid;place-items:center}.student-send .icon{width:20px;height:20px;transform:rotate(-90deg)}.student-input-tools{display:flex;align-items:center;gap:9px}.student-input-tools button{display:flex;align-items:center;gap:5px;min-height:40px;padding:5px 7px;color:#56764b;font-size:11px;border-radius:9px}.student-input-tools button:focus-visible{outline:2px solid var(--teal)}.student-input-tools .icon{width:20px;height:20px}.student-input-tools small{font-size:8px;color:#98a48b;margin-left:auto;max-width:105px;line-height:1.6}.student-chat-footer{padding-top:9px;padding-bottom:calc(7px + env(safe-area-inset-bottom))}.student-chat-footer>p{font-size:8px}.student-media-message{align-self:flex-end;max-width:92%;border:1px solid #dbe7cf;border-radius:15px 15px 0 15px;background:#edf5e5;padding:12px;flex:none}.student-media-message img{display:block;max-width:100%;max-height:180px;object-fit:contain;border-radius:8px}.student-media-message audio,#studentAudioPreview audio{width:100%;max-width:300px;margin:8px 0}.student-media-message p{font-size:12px;margin-top:7px}.student-media-message small{font-size:9px;color:#7c906e;line-height:1.7;display:block;margin-top:5px}.student-answer-instruction{font-size:12px!important}.student-file-label{display:block;padding:15px;background:#edf4e5;border-radius:12px;margin:18px 0}.student-file-label input{font-size:13px;margin-top:10px;width:100%}#studentRecordButton{margin:12px 0}#studentTranscript{font-size:16px}button:disabled{opacity:.45;cursor:default}
.demo-ai-consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.8;margin:17px 0}.demo-ai-consent input{width:20px;flex:none;margin-top:4px}.student-chat-stage .notice{white-space:pre-wrap}
.student-mode-button{margin-left:auto;font-size:9px;border:1px solid #dbe5d0;border-radius:20px;padding:7px 10px;color:#688552;background:#edf4e5;min-height:32px}.student-api-error>p{margin:10px 0;overflow-wrap:anywhere}.student-api-error .form-actions{display:grid;grid-template-columns:1fr;gap:8px}.student-api-error small{font-size:10px;line-height:1.8;display:block}.demo-mode-card{padding:16px;border:1px solid #dbe7cf;border-radius:13px;background:#f2f7ec}.demo-mode-card p{font-size:12px;line-height:1.9;margin:8px 0 14px}
/* Brief entrance on a new conversation step; no old question is kept on screen. */
@keyframes student-turn-arrive{from{opacity:.25;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 .student-turn-enter>.ai-message,.student-turn-enter>.feedback,.student-turn-enter>.answer-preview,.student-turn-enter>.student-quick-answers,.student-turn-enter>.primary,.student-turn-enter>.secondary{animation:student-turn-arrive 240ms cubic-bezier(.2,.7,.25,1) both}
 .student-turn-enter>.feedback,.student-turn-enter>.student-quick-answers{animation-delay:35ms}
 .student-conversation button{transition:transform 120ms ease,background-color 150ms ease,border-color 150ms ease}
 .student-conversation button:active:not(:disabled){transform:scale(.98)}
 .student-input-row{transition:border-color 150ms ease,box-shadow 150ms ease}
 .student-input-row:focus-within{border-color:#8eaf87;box-shadow:0 0 0 3px #137c7009}
}
@media(prefers-reduced-motion:reduce){.student-conversation *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Inline recording, matching the compact conversation toolbar. */
.student-input-tools [data-composer="voice"]{justify-content:center;width:42px;height:42px;padding:9px}.student-input-tools [data-composer="voice"] .icon{width:23px;height:23px}
.student-inline-voice{width:100%;min-width:0}.student-voice-row{display:flex;align-items:center;gap:9px;padding:8px 5px;background:#fff;border:1px solid #e8eae7;border-radius:32px;box-shadow:0 2px 4px #25362b04}.student-voice-row button{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center}.voice-cancel,.voice-stop{background:#f3f4f3;color:#1b1f1f}.voice-cancel .icon{width:20px;height:20px}.voice-stop span{width:12px;height:12px;background:currentColor;border-radius:2px}.voice-send{background:#1b1f1f;color:white}.voice-send .icon{width:24px;height:24px;transform:rotate(-90deg)}.voice-wave{display:flex;align-items:center;justify-content:space-between;gap:3px;height:42px;flex:1;min-width:0;overflow:hidden}.voice-wave i{width:3px;min-width:2px;max-height:39px;background:#979b98;border-radius:5px;flex:none}.voice-wave i:nth-child(-n+12){background:#cbd0cc}.voice-status{font-size:9px;color:#8b9685;text-align:center;line-height:1.8;padding:7px 0 0}.voice-review{width:100%;height:36px;margin-top:10px}.voice-transcript{margin-top:8px;font-size:11px;color:#718566}.voice-transcript summary{padding:8px 0;cursor:pointer}.voice-transcript p{font-size:10px;line-height:1.7}.voice-transcript textarea{font-size:16px;min-height:65px;max-height:90px;margin-top:6px;resize:vertical}@media(max-width:359px){.student-voice-row{gap:7px}.student-voice-row button{width:35px;height:35px}.voice-wave{gap:2px}.voice-wave i{width:2px}}
.voice-wave{gap:2px}.voice-wave i{width:auto;min-width:1px;max-width:4px;flex:1}

@media(prefers-reduced-motion:no-preference){.voice-wave i{transition:height 80ms linear}}
.speaking-instruction{margin-top:18px}.speaking-instruction p{font-size:13px;color:#6d8561;line-height:1.8}.speaking-instruction button{margin:14px 0;display:flex;align-items:center;justify-content:center;gap:7px}.speaking-instruction small{font-size:10px;color:#8c9b80;line-height:1.8;display:block}
.student-schedule-toggle{display:flex;gap:5px;padding:5px;border-radius:12px;background:#eaf0e3;margin:0 0 16px}.student-schedule-toggle button{flex:1;min-height:41px;padding:8px 6px;font-size:11px;border-radius:9px;color:#839278}.student-schedule-toggle button.active{background:#fff;color:var(--teal);box-shadow:0 2px 8px #29482408}.student-schedule-identity{margin-bottom:17px;padding:16px 17px;border:1px solid #e1e9d8;background:#f0f5e9;border-radius:14px}.student-schedule-identity p{font-size:11px;line-height:1.8;color:#718363}.student-schedule-identity h2{font-size:18px;line-height:1.7;margin:4px 0;color:#315644}.student-schedule-identity span{font-size:10px;color:#8a9a7c}.student-week-help{font-size:10px;color:#8d9c80;line-height:1.8;margin:0 0 11px}.student-week-scroll{max-width:100%;overflow:auto;border:1px solid #dce5d2;border-radius:13px;background:white;overscroll-behavior-x:contain}.student-week-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:680px;font-size:12px}.student-week-table th,.student-week-table td{border-right:1px solid #e1e8d9;border-bottom:1px solid #e1e8d9;text-align:center;vertical-align:middle;padding:0}.student-week-table tr>:last-child{border-right:0}.student-week-table tbody tr:last-child>*{border-bottom:0}.student-week-table thead th{background:#eaf0e4;padding:12px 5px;color:#547148}.student-week-table th:first-child{width:45px;position:sticky;left:0;background:#f1f5eb;z-index:2}.student-week-table thead th:first-child{z-index:3;background:#e2ebd9}.student-week-table th b{display:block;font-size:12px}.student-week-table th span{display:block;font-size:10px;font-weight:400;margin-top:4px;color:#8a9a7d}.student-week-table th small{display:block;font-size:8px;color:var(--teal);margin-top:3px}.student-week-table td{height:90px}.student-week-table td button{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:90px;padding:10px 5px;gap:7px;color:#456739}.student-week-table td button b{font-size:12px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.student-week-table td button small{font-size:8px;color:#91a082;line-height:1.6}.student-week-table .today{background:#f0f7e9}.student-week-table thead .today{background:#dcebd2;color:var(--teal)}.student-week-table td button:active{background:#e7f0df}.student-week-table button:focus-visible{outline:2px solid var(--teal);outline-offset:-3px}.student-week-table .lesson-dot{width:4px;height:4px;border-radius:50%;background:var(--teal)}.student-empty-period{color:#d1dac9;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* A complete weekly timetable on one portrait A4 sheet, including on phones. */
.student-a4-controls{display:flex;align-items:center;justify-content:space-between;gap:3px;margin:-4px 0 12px}.student-a4-controls .text-btn{font-size:10px;min-height:38px;gap:4px;padding:5px}.student-a4-controls .icon{width:14px;height:14px}.student-a4-sheet{container-type:inline-size;box-sizing:border-box;width:100%;aspect-ratio:210/297;padding:14px 9px 10px;display:flex;flex-direction:column;gap:10px;background:white;border:1px solid #dce5d2;border-radius:4px;box-shadow:0 4px 20px #27451b05}.student-a4-heading{text-align:center;flex:none}.student-a4-heading>h2{font-size:clamp(12px,4cqi,18px);letter-spacing:1px;color:#315841}.student-a4-sheet .student-schedule-identity{padding:0;margin:8px 0 6px;background:none;border:0;border-radius:0}.student-a4-sheet .student-schedule-identity p{font-size:clamp(8px,2.7cqi,12px);line-height:1.5}.student-a4-sheet .student-schedule-identity h2{font-size:clamp(10px,3.3cqi,15px);line-height:1.5;margin:4px 0}.student-a4-sheet .student-schedule-identity span,.student-a4-heading>p{font-size:clamp(7px,2.3cqi,10px);line-height:1.5}.student-a4-heading>p{color:#7b8e6c}.student-a4-sheet .student-week-scroll{overflow:visible;border-radius:0;flex:1;min-height:0}.student-a4-sheet .student-week-table{min-width:0;width:100%;height:100%;font-size:clamp(6px,2.3cqi,10px)}.student-a4-sheet .student-week-table th:first-child{width:23px;position:static}.student-a4-sheet .student-week-table thead th{padding:7px 1px}.student-a4-sheet .student-week-table th b{font-size:clamp(6px,2.3cqi,11px)}.student-a4-sheet .student-week-table th span{font-size:clamp(5px,1.8cqi,8px);margin-top:3px}.student-a4-sheet .student-week-table th small{font-size:clamp(5px,1.6cqi,7px)}.student-a4-sheet .student-week-table td{height:auto}.student-a4-sheet .student-week-table td button{min-height:0;height:100%;padding:5px 1px;gap:5px;overflow-wrap:anywhere}.student-a4-sheet .student-week-table td button b{font-size:clamp(6px,2.25cqi,11px);line-height:1.4}.student-a4-sheet .student-week-table td button small{font-size:clamp(5px,1.65cqi,8px);line-height:1.4}.student-a4-footnote{text-align:center;flex:none;font-size:clamp(6px,1.9cqi,9px);line-height:1.7;color:#94a287}.student-a4-sheet .notice{font-size:8px;padding:7px;margin:5px 0 0!important}
@media print{
 @page{size:A4 portrait;margin:10mm}
 body[data-role="student"][data-page="calendar"],body[data-role="student"][data-page="calendar"] .student-shell{background:white!important;width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}
 body[data-role="student"][data-page="calendar"] .student-header,body[data-role="student"][data-page="calendar"] .student-primary-nav,body[data-role="student"][data-page="calendar"] .student-page-title,body[data-role="student"][data-page="calendar"] .student-schedule-toggle,body[data-role="student"][data-page="calendar"] .student-a4-controls,#toast,dialog{display:none!important}
 body[data-role="student"][data-page="calendar"] .student-main{padding:0!important;max-width:none!important}
 .student-a4-sheet{width:190mm;height:268.7mm;aspect-ratio:auto;margin:0;padding:6mm 4mm;border:1px solid #bbc9b2;box-shadow:none;break-inside:avoid;page-break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .student-a4-sheet .student-week-table th:first-child{width:12mm}.student-a4-sheet .student-week-table td button{color:#28451e}.student-a4-sheet .student-week-table td button small{color:#5c6d51}
}
/* Landscape A4 scaled to the phone's portrait width: all seven days visible. */
.student-a4-sheet{aspect-ratio:297/210;padding:9px 6px 7px;gap:5px}.student-a4-heading>h2{font-size:clamp(9px,3cqi,15px);letter-spacing:.7px}.student-a4-sheet .student-schedule-identity{margin:3px 0 2px}.student-a4-sheet .student-schedule-identity p{font-size:clamp(6px,2.1cqi,10px);line-height:1.3}.student-a4-sheet .student-schedule-identity h2{font-size:clamp(8px,2.7cqi,13px);line-height:1.3;margin:2px 0}.student-a4-sheet .student-schedule-identity span,.student-a4-heading>p{font-size:clamp(6px,1.9cqi,9px);line-height:1.3}.student-a4-sheet .student-week-table thead th{padding:3px 1px}.student-a4-sheet .student-week-table th:first-child{width:20px}.student-a4-sheet .student-week-table th b{font-size:clamp(6px,2cqi,10px)}.student-a4-sheet .student-week-table th span{font-size:clamp(5px,1.6cqi,8px);margin-top:1px}.student-a4-sheet .student-week-table th small{font-size:clamp(4px,1.35cqi,7px);line-height:1.2;margin-top:1px}.student-a4-sheet .student-week-table td button{padding:2px 1px;gap:2px}.student-a4-sheet .student-week-table td button b{font-size:clamp(6px,2cqi,10px);line-height:1.2}.student-a4-sheet .student-week-table td button small{font-size:clamp(4.5px,1.45cqi,7px);line-height:1.2}.student-a4-footnote{font-size:clamp(5px,1.5cqi,8px);line-height:1.3}.student-a4-sheet .lesson-dot{display:none}
@media print{@page{size:A4 landscape;margin:10mm}.student-a4-sheet{width:277mm;height:189.5mm;aspect-ratio:auto;padding:4mm 3mm;gap:3mm}.student-a4-sheet .student-week-table th:first-child{width:10mm}}
@media screen{.student-a4-sheet{gap:3px;padding:7px 5px 5px}.student-a4-sheet .student-week-table td button small{display:none}.student-a4-sheet .student-week-table td button{padding:1px;gap:0}.student-a4-sheet .student-week-table thead th{padding:2px 1px}.student-a4-footnote{font-size:clamp(4px,1.35cqi,7px)}}
@media screen and (max-width:359px){.student-a4-heading>h2{font-size:9px;line-height:1.2}.student-a4-sheet .student-schedule-identity{margin:2px 0}.student-a4-sheet .student-schedule-identity h2{font-size:8px;line-height:1.2;margin:1px 0}.student-a4-sheet .student-schedule-identity p{font-size:6px;line-height:1.2}.student-a4-sheet .student-schedule-identity span,.student-a4-heading>p{font-size:5px;line-height:1.2}}

.student-a4-heading{display:flex;flex-direction:column;gap:3px}.student-a4-heading>h2{margin:0;line-height:1.3}.student-a4-heading>.student-a4-person{font-size:clamp(5px,1.85cqi,9px);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;color:#547148}.student-a4-heading>.student-a4-range{font-size:clamp(6px,2cqi,10px);line-height:1.4;margin:0}
.extra-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:19px 0}.extra-top h2{font-size:21px}.extra-top p{font-size:11px;line-height:1.7;color:#91a082;margin-top:5px}.extra-top .primary{padding:11px 13px;font-size:12px;display:flex;align-items:center;gap:5px}.extra-top .icon{width:16px;height:16px}.extra-week{padding:10px;border:1px solid #e0e8d6;border-radius:12px}.extra-week span{font-size:11px;color:#7a916c}.extra-day{margin:20px 0}.extra-day>h3{font-size:12px;color:#78906a;margin-bottom:9px}.extra-card{display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:16px 13px;background:white;border:1px solid #e0e9d7;border-radius:13px;margin:8px 0}.extra-card>span{font-size:14px;line-height:1.7;color:var(--teal);flex:none}.extra-card>span small{display:block;font-size:10px;color:#98a68b}.extra-card>div{flex:1;min-width:0}.extra-card b{font-size:14px}.extra-card p{font-size:10px;color:#94a287;line-height:1.8;margin-top:4px;overflow-wrap:anywhere}.extra-card>.icon{width:16px;flex:none;color:#9bab8c}.student-schedule-toggle button{font-size:10px;padding-left:3px;padding-right:3px}
.student-subject-options{display:grid;gap:10px;flex:none}.student-subject-options .student-subject-main{display:flex;align-items:center;gap:13px;padding:15px 13px;border:1px solid #dce7d1;border-radius:14px;background:white;text-align:left;min-height:75px}.student-subject-options .student-subject-main>span:nth-child(2){flex:1;min-width:0}.student-subject-options b{display:block;font-size:15px;color:#3e684d}.student-subject-options small{display:block;font-size:10px;color:#91a17f;line-height:1.8;margin-top:4px}.student-subject-options .student-subject-main>.icon{width:16px;height:16px;color:#9cab90}.student-subject-note{font-size:10px;line-height:1.8;color:#99a68d}.student-subject-options .student-subject-main:active{background:#f0f6e9}
.student-source-card{padding:13px 0;border-top:1px solid #e9efdf;margin-top:12px}.student-source-card small{display:block;font-size:8px;letter-spacing:.4px;color:#96a584;line-height:1.8}.student-source-card b{display:block;font-size:13px;color:#537448;line-height:1.7;margin:4px 0}.student-source-card span{font-size:9px;color:#95a288;line-height:1.8;display:block}.student-question-source{font-size:10px;line-height:1.8;color:#7e9471;padding:10px 12px;border-radius:10px;background:#edf4e4}
.student-reset-button{display:block;margin:3px auto 0;min-height:30px;font-size:10px;color:#8b9d7c;padding:5px 12px;border-radius:8px}.student-reset-button:active{background:#eaf1e1}

.student-subject-choice{display:flex;gap:6px;align-items:stretch}.student-subject-main{flex:1;min-width:0}.student-skip-review{font-size:10px;color:#8c987c;text-decoration:underline;min-width:48px;max-width:58px;padding:8px 3px;line-height:1.7;border-radius:9px}.student-skip-review:active{background:#e8f0df}

/* Local profile avatar shared across role headers and personal screens. */
.avatar,.student-profile-button{overflow:hidden;flex-shrink:0}.user-avatar-image{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.student-profile-button{font-weight:700;font-size:18px}.student-profile-button:has(.user-avatar-image){padding:0}.avatar-editor{display:flex;align-items:center;flex-direction:column;gap:16px;text-align:center}.avatar.avatar-large{width:96px;height:96px;font-size:36px;border-radius:50%}.avatar-upload{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.avatar-editor .subtle{font-size:13px;line-height:1.6}.avatar-editor #avatarStatus{font-size:13px;color:var(--primary,#117e72)}

.whole-study-summary{margin:16px 0}.whole-study-summary ul{padding-left:20px;margin:14px 0}.whole-study-summary li{margin:10px 0;line-height:1.6}.whole-study-summary strong{color:#9a5426}

.parent-study-report{margin-top:20px}.parent-study-report h4{font-size:16px;margin:22px 0 10px;color:#117e72}.parent-study-report p{margin:10px 0;line-height:1.6}.parent-report-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.parent-report-table th,.parent-report-table td{border:1px solid #dfe7dd;padding:10px 8px;text-align:left;vertical-align:top;overflow-wrap:anywhere;line-height:1.6}.parent-report-table th:first-child{width:27%}.parent-report-table thead{background:#edf3e8}.parent-report-table strong{color:#9a5426}

.study-summary-part{margin:20px 0;border-top:1px solid #dfe7dd;padding-top:16px}.study-summary-part h3,.study-summary-heading{font-size:17px;color:#117e72;margin:16px 0}.study-summary-part article{background:#f4f7f1;border-radius:14px;padding:12px;margin:12px 0}.study-summary-part h4{font-size:15px;margin:0 0 8px}.study-summary-part p{line-height:1.6;font-size:14px}.study-review-note{color:#9a5426}

/* Phone-first local account entry. */
.login-screen{width:100%;max-width:460px;min-height:var(--app-height,100dvh);margin:0 auto;background:#f6f8f2;padding:24px 22px 30px}.login-screen header{display:flex;align-items:center;justify-content:space-between;gap:8px}.login-screen .brand{gap:9px}.login-screen .brand-name{font-size:20px}.login-screen .demo-tag{font-size:9px;white-space:nowrap}.login-intro{text-align:center;margin:32px 0 24px}.login-symbol{display:inline-flex;align-items:center;justify-content:center;width:62px;height:62px;border-radius:22px;background:#e1efe4;color:#117e72;margin-bottom:14px}.login-symbol svg{width:30px;height:30px}.login-intro h1{font-size:27px;letter-spacing:-.7px;margin:0 0 8px}.login-intro p{font-size:14px;color:#758579}.login-card{background:white;border:1px solid #e0e8dc;border-radius:24px;padding:20px;box-shadow:0 12px 28px #24463606}.login-tabs{display:flex;gap:6px;background:#eef3e9;border-radius:13px;padding:5px;margin-bottom:22px}.login-tabs button{width:50%;padding:11px 5px;border-radius:10px;font-weight:600;color:#758579}.login-tabs .active{background:#fff;color:#117e72;box-shadow:0 2px 6px #213e3510}.login-card label{display:block;font-size:13px;font-weight:600;margin:16px 0 7px}.login-card input,.login-card select{width:100%;min-height:48px;border:1px solid #dce5d8;border-radius:12px;background:#fff;padding:11px 12px;font-size:16px;color:#254237}.login-card input:focus,.login-card select:focus{outline:2px solid #8bc8b7;outline-offset:2px}.login-password{position:relative}.login-password input{padding-right:68px}.login-password button{position:absolute;right:12px;top:0;height:48px;color:#117e72;font-size:13px;display:flex;align-items:center;gap:4px}.login-password svg{display:none}.login-card .primary{min-height:49px;margin-top:14px;justify-content:center}.login-switch{text-align:center;font-size:13px;margin:20px 0 0;color:#77867c}.login-switch button{color:#117e72;font-weight:600}.login-help{font-size:12px;line-height:1.6;color:#7a897c;margin-top:10px}.login-disclosure{font-size:11px;color:#81917e;text-align:center;line-height:1.7;margin:23px 0 0}.login-disclosure svg{width:14px;height:14px;vertical-align:middle}.login-card .form-error{font-size:13px;line-height:1.5;margin-top:14px}

.login-hero-logo{display:block;width:78px;height:78px;margin:0 auto 17px;border-radius:23px;box-shadow:0 8px 24px #137c7014}.login-intro{margin:27px 0 23px}.login-intro h1{font-size:30px;letter-spacing:-1px;color:#234038}.login-intro .login-slogan{font-size:14px;color:#117e72;margin:9px 0}.login-intro .login-description{font-size:12px;color:#7b897d;line-height:1.7;margin:11px 0 0}.login-form-title{font-size:19px;margin:0 0 17px}.login-card{padding:23px 20px}.login-card label:first-child{margin-top:0}

.product-owner{text-align:center;color:#637b6c;font-size:12px;line-height:1.6;margin:20px 0 10px}.product-owner strong{color:#117e72;font-weight:600}

/* Two-sided learning conversation, keeping only the active test turn visible. */
.learning-chat-row{display:flex;align-items:flex-start;gap:8px;flex:none;width:100%;min-width:0;margin-bottom:16px}.learning-chat-row.from-student{flex-direction:row-reverse;padding-left:28px}.learning-chat-avatar{width:30px;height:30px;flex:0 0 30px;border-radius:11px;overflow:hidden;display:grid;place-items:center;background:#e0eee5;color:#117e72;font-weight:600;font-size:13px}.learning-chat-avatar>img{width:100%;height:100%;object-fit:cover}.learning-chat-card{background:white;border:1px solid #e0e9de;border-radius:0 16px 16px 16px;padding:13px 12px;min-width:0;flex:1;box-shadow:0 3px 12px #23403804}.from-student .learning-chat-card{background:#e5f2ec;border-color:#d6e7de;border-radius:16px 0 16px 16px}.learning-chat-card>header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:10px;color:#648172}.learning-chat-card>header b{font-size:11px;overflow-wrap:anywhere}.learning-chat-card time{white-space:nowrap;font-size:9px;color:#8a9b8d}.learning-chat-content{font-size:14px;line-height:1.7;overflow-wrap:anywhere}.learning-chat-content p{margin:7px 0}.student-chat-stage .learning-chat-content .ai-message{border:0;background:transparent;box-shadow:none;padding:0;border-radius:0}.student-chat-stage .learning-chat-content .ai-message h2{font-size:18px;line-height:1.6}.student-chat-stage .learning-chat-content .ai-message>p{font-size:13px;margin-top:11px}.learning-chat-content .student-message-label{display:none}.student-chat-stage .learning-chat-content .answer-preview{padding:0;background:transparent;white-space:pre-wrap;font-size:14px}.learning-chat-content>.primary,.learning-chat-content>.secondary{width:100%;justify-content:center;margin-top:12px;min-height:44px}.learning-chat-content .student-subject-main{padding:10px 6px;gap:6px}.learning-chat-content .student-subject-main b{font-size:13px}.learning-chat-content .student-skip-review{font-size:10px;padding:8px 5px}.learning-chat-content .subject-icon{width:27px;height:27px;flex:0 0 27px}.chat-transcript{display:block;width:100%;flex:none}.student-chat-stage{display:flex;flex-direction:column;gap:0}.student-chat-stage .learning-chat-content .whole-study-summary{margin:12px 0}.student-chat-stage .learning-chat-content .feedback{padding:13px}.learning-chat-content .student-media-message{margin:0;max-width:100%;padding:0;background:transparent}.learning-chat-content audio{width:100%;max-width:100%}

.login-install{margin:20px 0 8px;text-align:center}.login-install button{min-height:47px;justify-content:center;gap:9px;border:1px solid #cbdfd4;background:#eaf3ed;color:#117e72;border-radius:14px;font-size:14px;font-weight:600}.login-install small{display:block;font-size:11px;color:#7d8e80;line-height:1.6;margin-top:7px}.install-guide{font-size:14px;line-height:1.8}.install-guide ol{padding-left:23px;margin:16px 0}.install-guide li{margin:9px 0}.install-guide .subtle{font-size:12px}

.login-animated-logo{width:138px;height:138px;margin:0 auto 19px}.login-animated-logo .launch-emblem{width:94px;height:94px;box-shadow:0 10px 28px #137c7024,0 0 0 6px #ffffffb0}.login-animated-logo .launch-emblem img{width:76px;height:76px}.login-animated-logo:after{inset:12px}.login-animated-logo .launch-star{font-size:18px;right:0;top:17px}.login-animated-logo .launch-star.small{font-size:12px;left:3px;bottom:17px}
/* Compact login branding preserves room for the form on portrait phones. */
.login-screen{padding-top:16px;padding-bottom:20px}.login-intro{margin:14px 0 16px}.login-animated-logo{width:88px;height:88px;margin-bottom:10px}.login-animated-logo .launch-emblem{width:62px;height:62px;box-shadow:0 7px 18px #137c701c,0 0 0 4px #ffffffb0}.login-animated-logo .launch-emblem img{width:50px;height:50px}.login-animated-logo:after{inset:8px}.login-animated-logo .launch-star{font-size:13px;top:8px}.login-animated-logo .launch-star.small{font-size:9px;bottom:10px}.login-intro h1{font-size:25px;line-height:1.2;margin:0 0 6px;letter-spacing:-.7px}.login-intro .login-slogan{font-size:12px;line-height:1.45;margin:5px 0}.login-intro .login-description{display:none}.login-card{padding:18px 18px}.login-form-title{font-size:17px;margin:0 0 13px}.login-card label{margin-top:12px}.login-switch{margin-top:14px}.login-install{margin-top:14px}.login-screen .product-owner{margin:12px 0 6px}.login-disclosure{margin-top:10px}

/* Readable, grouped student account controls. */
.profile-identity-card{display:flex;align-items:center;gap:15px;padding:19px 17px;border:1px solid #dde8dd;border-radius:20px;background:white;margin-bottom:26px}.profile-identity-card .avatar{width:58px;height:58px;border-radius:50%;font-size:25px;flex:none}.profile-identity-card>div:last-child{min-width:0}.profile-identity-card h2{font-size:21px;line-height:1.4;overflow-wrap:anywhere;color:#234438;margin:0 0 5px}.profile-identity-card p{font-size:16px;color:#577361;margin:0}.profile-identity-card small{display:block;font-size:13px;color:#75867a;line-height:1.6;margin-top:5px}.student-profile-group{margin-bottom:24px}.student-profile-group>h2{font-size:17px;font-weight:650;color:#355d4c;margin:0 0 10px;padding-left:3px}.profile-group-card{background:white;border:1px solid #e0e8dc;border-radius:18px;overflow:hidden}.profile-menu-item{display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-height:76px;padding:15px 14px;border-bottom:1px solid #edf1e9;color:#294f3f}.profile-menu-item:last-child{border-bottom:0}.profile-menu-icon{width:37px;height:37px;border-radius:12px;background:#eff5ec;display:grid;place-items:center;flex:none;color:#3c8974}.profile-menu-icon .icon{width:21px;height:21px}.profile-menu-copy{flex:1;min-width:0}.profile-menu-copy b{display:block;font-size:16px;line-height:1.5;font-weight:550}.profile-menu-copy small{display:block;font-size:13px;line-height:1.6;color:#758678;margin-top:3px}.profile-menu-item>.icon{width:18px;height:18px;flex:none;color:#91a695}.profile-menu-item:active{background:#f0f6ed}.student-profile-logout .secondary{font-size:16px;min-height:50px;justify-content:center;gap:9px;border-radius:14px}.student-profile-logout{margin:28px 0 20px}.student-profile-group~.product-owner{font-size:12px}

.login-card .login-remember{display:flex;align-items:center;gap:10px;margin:16px 0 5px;font-size:14px;font-weight:500;cursor:pointer}.login-card .login-remember input{width:20px;height:20px;min-height:20px;flex:0 0 20px;accent-color:#137c70;margin:0;padding:0}.login-remember small{display:block;font-size:11px;font-weight:400;color:#829080;margin-top:2px}
/* Larger secondary text in the student conversation. */
.student-chat-stage .student-subject-main small{font-size:14px;line-height:1.7;color:#71816f}.student-chat-stage .student-subject-note{font-size:14px;line-height:1.8;color:#71816f}.student-chat-stage .learning-chat-content .subtle{font-size:13px;line-height:1.75;color:#748276}.student-chat-stage .learning-chat-content .ai-message>p{font-size:14px;color:#71816f}.student-chat-stage .learning-chat-card>header time{font-size:11px;color:#77867c}.student-chat-stage .student-skip-review{font-size:13px;color:#72816e}.student-chat-stage .student-question-source{font-size:12px;line-height:1.7;color:#748276}
/* Full-width subject content; secondary action sits inside its lower-right edge. */
.student-chat-stage .student-subject-choice{display:flex;flex-direction:column;gap:0;width:100%;border:1px solid #dce7d1;border-radius:15px;background:#fff;overflow:hidden;padding-bottom:4px}.student-chat-stage .student-subject-choice .student-subject-main{width:100%;flex:none;min-height:0;border:0;border-radius:0;background:transparent;padding:13px 10px 4px;gap:9px;align-items:flex-start}.student-chat-stage .student-subject-main .subject-icon{margin-top:3px}.student-chat-stage .student-subject-main>.icon{margin-top:6px;flex:none}.student-chat-stage .student-subject-choice .student-skip-review{align-self:flex-end;width:auto;min-width:72px;max-width:none;min-height:40px;padding:8px 13px;margin:0 3px 0 0;font-size:13px;line-height:1.5;white-space:nowrap}.student-chat-stage .student-subject-main b{font-size:15px}.student-chat-stage .student-subject-main small{font-size:14px;line-height:1.65}

/* Gentle message rhythm rather than animating the entire conversation. */
.student-chat-stage.student-turn-enter{animation:none!important}.chat-typing{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#f1f6ef!important;border:0!important;padding:10px!important;font-size:13px!important;color:#6b8572}.chat-typing small{flex-basis:100%;font-size:11px;color:#8a9a8b}.typing-dots{display:inline-flex;gap:4px;align-items:center}.typing-dots i{width:5px;height:5px;border-radius:50%;background:#73a58a;animation:gentle-typing 1.35s ease-in-out infinite}.typing-dots i:nth-child(2){animation-delay:.18s}.typing-dots i:nth-child(3){animation-delay:.36s}.learning-chat-row:last-child{animation:gentle-message .24s ease-out both}@keyframes gentle-typing{0%,70%,100%{opacity:.35;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}@keyframes gentle-message{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.typing-dots i,.learning-chat-row:last-child{animation:none!important}}

.login-restore{display:flex;margin:14px auto;justify-content:center;font-size:13px;color:#3e806b;min-height:44px;text-align:center}.restore-file-label{display:block;margin:18px 0;font-size:14px;font-weight:600}.restore-file-label input{display:block;margin-top:10px;padding:12px;max-width:100%;font-size:14px}.restore-counts{padding-left:20px;font-size:14px;line-height:1.8;margin:14px 0}.restore-consent{display:flex;gap:11px;align-items:flex-start;margin:18px 0;font-size:14px;line-height:1.6}.restore-consent input{width:21px;height:21px;flex:0 0 21px;accent-color:#137c70;margin-top:3px}

.login-load-data{margin:14px 0;text-align:center}.login-load-data button{min-height:48px;font-size:15px;font-weight:600;color:#137c70;border:1px solid #cbded1;border-radius:14px;background:#fff;justify-content:center;gap:9px}.login-load-data small{display:block;font-size:12px;line-height:1.6;color:#758678;margin-top:7px}

.learning-activity-tabs{display:flex;gap:7px;padding:5px 18px 10px;flex:none}.learning-activity-tabs button{flex:1;min-height:36px;font-size:12px;color:#768b79;border:1px solid #dfe8d9;border-radius:11px}.learning-activity-tabs .active{color:#117e72;background:#e8f2e8;border-color:#c9dfcc;font-weight:600}.review-readonly{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 8px;color:#5e7d69;font-size:13px;text-align:center}.review-readonly svg{width:17px;height:17px;flex:none}.review-results{width:100%;margin:13px 0;overflow:hidden}.review-results table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:12px}.review-results th,.review-results td{text-align:left;padding:8px 5px;border:1px solid #dee8da;overflow-wrap:anywhere;vertical-align:top}.review-results thead{background:#eff5ec}.review-results th:first-child{width:25%}.review-farewell{color:#117e72!important;font-weight:600}.review-final h2{color:#117e72!important}
/* More readable secondary copy in old-lesson review cards and summaries. */
.student-chat-stage .learning-chat-content .ai-message>p{font-size:16px;line-height:1.8;color:#657967}.student-chat-stage .student-subject-main small{font-size:16px;line-height:1.7;color:#657967}.student-chat-stage .student-subject-note{font-size:15px;line-height:1.8;color:#657967}.student-chat-stage .learning-chat-content .subtle,.student-chat-stage .learning-chat-content .notice{font-size:15px;line-height:1.75;color:#6b7d6f}.student-chat-stage .student-source-card p,.student-chat-stage .student-source-card small{font-size:14px;line-height:1.7;color:#6b7d6f}.student-chat-stage .review-results table{font-size:14px;line-height:1.65}.student-chat-stage .review-readonly{font-size:14px}

.gemini-connection-status{padding:12px 14px;border:1px solid #cde1d1;border-radius:12px;background:#eef6ee;color:#27694f;font-size:14px;line-height:1.6;margin:15px 0}[data-demo-ai] .demo-ai-consent{font-size:14px;line-height:1.7;align-items:flex-start}[data-demo-ai] .demo-ai-consent input{min-width:22px;min-height:22px;accent-color:#137c70}[data-demo-ai] .form-error{font-size:14px;line-height:1.6;margin:13px 0}[data-demo-ai] [aria-invalid="true"]{outline:2px solid #bb6651;outline-offset:2px}

/* Readable controls and a compact frame for each learning exchange. */
body button,body input,body select,body textarea{font-size:16px}
.student-primary-nav button,.learning-activity-tabs button,.student-mode-button{font-size:15px;min-height:44px}
.student-context,.student-context small,.student-chat-footer>p{font-size:13px}
.student-chat-stage .learning-chat-content,.student-chat-stage .learning-chat-content .ai-message>p{font-size:16px;line-height:1.65}
.student-chat-stage .student-subject-main b{font-size:17px}
.student-chat-stage .learning-chat-content .subtle,.student-chat-stage .student-subject-main small{font-size:15px}
.learning-turn-frame{flex:none;width:100%;min-width:0;border:1px solid #d4e3d8;border-radius:18px;background:#fff;padding:10px;margin:0 0 14px}
.learning-turn-frame .learning-chat-row{margin-bottom:7px;gap:6px}
.learning-turn-frame .learning-chat-card{border:0;box-shadow:none;padding:8px;background:#f5f8f4}
.learning-turn-frame .from-student .learning-chat-card{background:#e5f2ec}
.learning-turn-frame .learning-chat-card>header{margin-bottom:4px}
.learning-turn-frame .learning-chat-content p{margin:4px 0}
.learning-turn-frame .feedback{margin:0;padding:8px!important}
.review-final h2{font-size:20px}.review-final h3{font-size:17px;margin-top:14px}
.review-final .primary,.review-final .secondary{width:100%;margin-top:12px;justify-content:center;min-height:46px}
.review-final table{font-size:14px}.student-chat-stage .review-final p{margin:7px 0!important}
.primary,.secondary,.text-btn,.student-session-controls button,.student-reset-button{font-size:16px;line-height:1.5}
.login-card label,.login-card input,.login-card select{font-size:16px}
.learning-chat-card>header b{font-size:13px}.learning-chat-card>header time{font-size:12px}
.chat-transcript>summary{font-size:15px;color:#287b68;padding:12px 2px;cursor:pointer}

/* Keep preparation titles above lesson names, with a distinct missing-material action. */
.student-chat-stage .prep-subject-card{padding:14px;box-sizing:border-box;gap:10px}
.student-chat-stage .prep-subject-card .student-subject-main{display:block;padding:0;width:100%;text-align:left}
.prep-subject-copy{display:block;width:100%;min-width:0;box-sizing:border-box}
.student-chat-stage .prep-subject-copy b,.student-chat-stage .prep-subject-copy h3{display:block;font-size:18px;line-height:1.45;margin:0 0 6px;white-space:normal;word-break:normal;overflow-wrap:normal;color:#1d685c}
.student-chat-stage .prep-subject-copy small,.student-chat-stage .prep-subject-copy p{display:block;font-size:15px;line-height:1.6;margin:0;color:#63756a;word-break:normal;overflow-wrap:break-word}
.student-chat-stage .missing-lesson-card{background:#fff9ed;border-color:#ead5aa}
.student-chat-stage .missing-lesson-card h3{color:#916016}
.student-chat-stage .missing-skip-button{align-self:flex-end;width:auto;max-width:100%;min-height:42px;padding:9px 20px;margin:0;border:1px solid #d2a65b;background:#f8e6bf;color:#79500e;font-size:16px;font-weight:600;border-radius:12px;box-sizing:border-box;white-space:nowrap}
.student-chat-stage .missing-skip-button:active{background:#efd49c}

/* Conversation occupies the available viewport; chrome remains visually separate. */
body[data-role="student"][data-page="ai"] .student-header{padding:calc(6px + env(safe-area-inset-top)) 14px 5px;background:#fff;border-bottom:0;min-height:50px}
body[data-role="student"][data-page="ai"] .student-header .brand{font-size:18px;gap:8px}
body[data-role="student"][data-page="ai"] .student-header .brand img{width:32px;height:32px}
body[data-role="student"][data-page="ai"] .student-header .brand small{display:none}
body[data-role="student"][data-page="ai"] .student-profile-button{width:40px;height:40px}
body[data-role="student"][data-page="ai"] .student-primary-nav{padding:2px 12px 5px;background:#fff;gap:8px;border-bottom:1px solid #d9e5df}
body[data-role="student"][data-page="ai"] .student-primary-nav>button{min-height:40px;padding:5px 8px;font-size:14px}
.student-conversation{background:#edf3f0}
.student-conversation .student-context{padding:5px 13px;min-height:29px;background:#fff;font-size:12px}
.student-conversation .student-context small{font-size:12px}
.student-conversation .student-mode-button{min-height:28px;padding:3px 9px;font-size:12px}
.student-conversation .learning-activity-tabs{padding:3px 12px 7px;background:#fff;border-bottom:1px solid #d4e2da;box-shadow:0 3px 8px #23403808;gap:7px;z-index:1}
.student-conversation .learning-activity-tabs button{min-height:40px;font-size:14px;padding:5px 6px}
.student-conversation .student-chat-stage{padding:12px 10px 16px;background:#edf3f0;scroll-padding-bottom:12px}
.student-conversation .learning-chat-row{gap:6px;margin-bottom:11px}
.student-conversation .learning-chat-avatar{width:26px;height:26px;flex-basis:26px;border-radius:9px}
.student-conversation .learning-chat-card{padding:11px 12px;border-color:#dce7df;box-shadow:0 2px 5px #23403806}
.student-conversation .student-chat-footer{background:#fff;border-top:1px solid #cfded5;box-shadow:0 -4px 12px #23403808;padding:7px 12px calc(5px + env(safe-area-inset-bottom));display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:2px;z-index:1}
.student-chat-footer .student-composer{width:100%;gap:2px}
.student-chat-footer .student-input-row{padding:4px;gap:3px;border-radius:17px;background:#f7faf8;border-color:#cddfd3;align-items:center}
.student-chat-footer .student-input-tools{flex:none;gap:0}
.student-chat-footer .student-input-tools button,.student-chat-footer .student-input-tools [data-composer="voice"]{width:38px;height:42px;min-height:42px;padding:7px;justify-content:center;flex:none}
.student-chat-footer .student-input-tools .icon{width:21px;height:21px}
.student-chat-footer .student-input-row textarea{padding:9px 4px;min-height:42px;max-height:92px;font-size:16px}
.student-chat-footer .student-send{width:42px;height:42px}
.student-media-note{font-size:10px;color:#78897c;line-height:1.5;text-align:center}
.student-chat-footer .student-session-controls{width:100%;margin:0;gap:8px}
.student-chat-footer .student-session-controls>.text-btn{font-size:13px;min-height:30px;padding:2px 5px}
.student-chat-footer .student-reset-button{order:3;margin:0 0 0 auto;font-size:13px;min-height:30px;padding:3px 6px;width:auto}
.student-conversation .student-chat-footer>p{order:2;flex:1;font-size:10px;text-align:left;line-height:1.4;margin:0}
.student-chat-footer .review-readonly{width:100%;padding:8px 4px}
@media(max-height:600px){body[data-role="student"][data-page="ai"] .student-primary-nav{display:none}.student-conversation .student-context{display:none}}
.student-chat-footer .student-inline-voice{width:100%;min-width:0}
/* One shared subject list, separated by rules instead of individual cards. */
.student-chat-stage .student-subject-options{display:block;width:100%;gap:0}
.student-chat-stage .student-subject-options .student-subject-choice{display:flex;flex-direction:row;align-items:center;gap:10px;width:100%;padding:10px 0;margin:0;border:0;border-bottom:1px solid #e2e9e4;border-radius:0;background:transparent;box-shadow:none;overflow:visible;box-sizing:border-box}
.student-chat-stage .student-subject-options .student-subject-choice:last-child{border-bottom:0;padding-bottom:2px}
.student-chat-stage .student-subject-options .student-subject-choice:first-child{padding-top:2px}
.student-chat-stage .student-subject-options .student-subject-main{flex:1;min-width:0;width:auto;padding:4px 0;border:0;border-radius:0;background:transparent;min-height:44px;gap:8px}
.student-chat-stage .student-subject-options .student-subject-main b{font-size:17px;line-height:1.4;margin-bottom:3px}
.student-chat-stage .student-subject-options .student-subject-main small{font-size:14px;line-height:1.5;margin-top:0}
.student-chat-stage .student-subject-options .prep-subject-copy{flex:1;min-width:0;width:auto}
.student-chat-stage .student-subject-options .prep-subject-copy h3{font-size:17px;margin:0 0 3px;line-height:1.4}
.student-chat-stage .student-subject-options .prep-subject-copy p{font-size:14px;line-height:1.5}
.student-chat-stage .student-subject-options .missing-skip-button,.student-chat-stage .student-subject-options .student-skip-review{flex:none;align-self:center;min-width:0;width:auto;max-width:100%;margin:0;padding:7px 11px;min-height:40px;font-size:14px;line-height:1.4}

.subject-task-list{width:100%;margin-top:10px}
.subject-task-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #e0e8e2;min-width:0}
.subject-task-row:last-child{border-bottom:0;padding-bottom:0}
.subject-task-copy{flex:1;min-width:0}
.subject-task-copy b{display:block;font-size:17px;line-height:1.4;color:#245c4c;margin-bottom:3px;word-break:normal}
.subject-task-copy small{display:block;font-size:14px;line-height:1.5;color:#6a7d70;overflow-wrap:break-word}
.subject-task-row .subject-task-action,.subject-task-row .missing-skip-button{flex:none;width:auto;min-height:42px;padding:7px 10px;font-size:14px;line-height:1.4;white-space:nowrap;border-radius:10px;margin:0}
.subject-task-row .missing-skip-button{background:#f8e6bf;border:1px solid #d2a65b;color:#79500e}
.subject-task-status{flex:none;font-size:12px;color:#7c897f;max-width:75px;text-align:right}

/* A single conversation, without navigation tabs taking up the viewport. */
.student-header.conversation-header,body[data-role="student"][data-page="ai"] .student-header.conversation-header{padding:calc(9px + env(safe-area-inset-top)) 13px 9px;min-height:64px;background:#fff;border-bottom:1px solid #d9e5dd;gap:10px}
.student-brand-home{display:flex;align-items:center;gap:9px;min-width:0;min-height:44px;text-align:left;padding:0;color:#24473d}
.student-brand-home>img{width:36px;height:36px;flex:none}
.student-brand-home>span{min-width:0}.student-brand-home b{display:block;font-size:20px;line-height:1.2;letter-spacing:-.5px}
.student-brand-home small{display:flex;align-items:center;gap:5px;font-size:11px;line-height:1.4;margin-top:4px;color:#678171;white-space:nowrap}
.student-brand-home .student-ai-light{width:5px;height:5px;box-shadow:none;flex:none}
.student-header-actions{display:flex;align-items:center;gap:7px;flex:none}
.student-calendar-icon{width:42px;height:42px;min-height:42px;border-radius:13px;display:grid;place-items:center;color:#137c70;background:#eff5f1;border:1px solid #dce8df;padding:8px}
.student-calendar-icon .icon{width:23px;height:23px}
.student-conversation .student-chat-stage:has(.chat-welcome){justify-content:center}
.chat-welcome{width:100%;max-width:430px;margin:auto;flex:none;text-align:center;padding:20px 18px;box-sizing:border-box;color:#557464}
.chat-welcome-logo{width:130px;height:130px;margin:0 auto 19px}
.chat-welcome-logo .launch-emblem{width:86px;height:86px}.chat-welcome-logo .launch-emblem img{width:70px;height:70px}
.chat-welcome-logo .launch-star{font-size:19px;right:0;top:15px}.chat-welcome-logo .launch-star.small{font-size:13px;left:0;bottom:17px}
.chat-welcome h1{font-size:24px;color:#24604f;line-height:1.4;margin:0 0 7px}
.chat-welcome p{font-size:15px;line-height:1.65;margin:12px 0}.chat-welcome .chat-welcome-slogan{font-size:14px;color:#7b8e80}
.chat-welcome strong{color:#117e72}.chat-welcome>.primary{min-height:44px;padding:10px 26px;margin:6px auto 0;justify-content:center;border-radius:14px}
.chat-phase-divider{display:flex;align-items:center;gap:10px;width:100%;flex:none;margin:7px 0 17px;color:#426c5b;font-size:13px;font-weight:600}
.chat-phase-divider:before,.chat-phase-divider:after{content:"";height:1px;flex:1;background:#c7d9cd}.chat-phase-divider span{flex:none}
.chat-phase-divider.is-complete{color:#6f8478}.chat-phase-archive{flex:none;border-bottom:1px solid #c7d9cd;margin:0 0 14px;padding:0 3px 10px;font-size:14px;color:#527460}
.chat-phase-archive>summary{padding:8px 0;cursor:pointer}.chat-phase-archive .review-results{background:#fff}
@media(max-width:350px){.student-brand-home b{font-size:18px}.student-brand-home small{font-size:10px}.student-brand-home>img{width:31px;height:31px}.student-header-actions{gap:4px}.student-calendar-icon{width:39px;height:40px}.chat-welcome{padding:12px}.chat-welcome-logo{width:108px;height:108px;margin-bottom:12px}}
@media(max-height:600px){.chat-welcome-logo{width:80px;height:80px;margin-bottom:8px}.chat-welcome-logo .launch-emblem{width:58px;height:58px}.chat-welcome-logo .launch-emblem img{width:47px;height:47px}.chat-welcome{padding:10px}.chat-welcome h1{font-size:20px}.chat-welcome p{font-size:14px;margin:7px 0}}

/* Quiet message metadata and a clearly distinct student side. */
.learning-chat-card>header{justify-content:flex-end;margin-bottom:4px}.learning-chat-card>header time{font-size:10px}
.student-conversation .learning-chat-row.from-student{margin-left:auto;width:92%;padding-left:16px;flex-direction:row-reverse}
.student-conversation .from-student .learning-chat-card,.learning-turn-frame .from-student .learning-chat-card{background:#d4eee9;border:1px solid #96cabe;color:#164f45;border-radius:15px 0 15px 15px}
.student-conversation .from-student .learning-chat-avatar{background:#187e70;color:white}
.student-conversation .from-student .learning-chat-content{color:#164f45}
.student-main.is-conversation{display:flex;flex-direction:column;min-height:0}.student-main.is-conversation>.student-conversation{flex:1;height:auto;min-height:0}
.home-study-report{padding:20px 15px 30px;overflow-y:auto;width:100%;box-sizing:border-box;background:#f2f6f3}
.student-main.is-conversation>.home-study-report{flex:1;min-height:0}
.report-student-name{font-size:15px;color:#607b6c;margin:0 0 16px}
.knowledge-overview{background:linear-gradient(135deg,#147b6d,#245e55);border-radius:20px;color:white;padding:21px 18px;margin:0 0 18px}
.knowledge-overview>span{font-size:15px}.knowledge-overview>strong{display:block;font-size:46px;line-height:1.3;margin:7px 0}.knowledge-overview>p{font-size:14px;margin:0 0 14px}
.knowledge-overview>div{display:flex;gap:12px;border-top:1px solid #ffffff38;padding-top:12px}.knowledge-overview>div>span{flex:1;font-size:13px}.knowledge-overview>div b{display:block;font-size:19px;margin-top:4px}.knowledge-overview>small{display:block;font-size:12px;color:#d7ebe3;line-height:1.6;margin-top:13px}
.home-study-report>.review-final{background:#fff;border:1px solid #dce7df;border-radius:18px;padding:17px;font-size:15px;line-height:1.65}
.home-study-report .review-final>h2{display:none}.home-study-report .restart-study-message,.home-study-report .preparation-next-message{margin-top:15px}.home-study-report .primary.full,.home-study-report .secondary.full{width:100%;justify-content:center;min-height:46px;margin-top:10px}
.report-home-actions{margin-top:8px}.home-report-shortcut{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 13px;background:#fff;border-bottom:1px solid #dce7df;flex:none}.home-report-shortcut b{display:block;font-size:13px;color:#256757}.home-report-shortcut small{font-size:11px;color:#7b8e81}.home-report-shortcut button{font-size:13px;min-height:40px}

.student-dashboard{max-width:620px;margin:auto;padding:18px 14px 30px;color:#284c40}
body[data-role="student"][data-page="home"] .student-main{padding:0;background:#f0f5f2}
.dashboard-greeting{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.dashboard-greeting p{font-size:12px;color:#72897b;margin-bottom:5px}.dashboard-greeting h1{font-size:23px;line-height:1.4;margin:0}
.dashboard-star-total{background:#fff3ce;border:1px solid #ebd9a0;padding:9px 13px;border-radius:15px;color:#9b6815;font-size:21px;font-weight:700;white-space:nowrap;text-align:center}.dashboard-star-total small{display:block;font-size:10px;font-weight:500}
.daily-goal{background:linear-gradient(135deg,#147d6e,#235d54);color:#fff;padding:19px 17px;border-radius:21px;box-shadow:0 8px 20px #195e4912}
.daily-goal-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;letter-spacing:.6px}.daily-goal-top b{font-size:12px;letter-spacing:0;color:#ffe5a0}.daily-goal h2{font-size:22px;line-height:1.4;margin:13px 0 7px}.daily-goal>p{font-size:13px;color:#d7e8df;line-height:1.6}.dashboard-goal-bar{height:7px;background:#ffffff2b;border-radius:8px;margin:17px 0 8px;overflow:hidden}.dashboard-goal-bar i{height:100%;display:block;background:#f0d383;border-radius:8px}
.daily-goal-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.daily-goal-bottom b{white-space:nowrap;color:#ffe6a3}.daily-goal>small{display:block;font-size:11px;line-height:1.6;color:#d4e8de;margin-top:12px}.daily-goal>.primary{width:100%;background:#fff;color:#176c5d;justify-content:center;margin-top:16px;min-height:46px;border-radius:12px}
.dashboard-section{margin-top:23px}.dashboard-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:11px}.dashboard-section-title h2{font-size:18px;line-height:1.4}.dashboard-section-title>span{font-size:12px;color:#7d8e82}.dashboard-section-title>.text-btn{font-size:12px;min-height:40px;padding:4px}
.dashboard-tasks,.dashboard-results{border:1px solid #dce7df;border-radius:17px;background:#fff;overflow:hidden}.dashboard-task-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid #e7eee8}.dashboard-task-row:last-child{border-bottom:0}.dashboard-task-row>div{min-width:0}.dashboard-task-row b{font-size:17px}.dashboard-task-row p{font-size:13px;color:#647d6b;line-height:1.6;margin-top:3px}.dashboard-task-row p>span{display:inline-block;min-width:52px;font-size:11px;color:#849487}.dashboard-task-row>.secondary{flex:none;font-size:14px;min-height:42px;padding:7px 14px;border-radius:11px}
.dashboard-footnote{font-size:11px;line-height:1.65;color:#809081;margin:9px 2px 0}.dashboard-section>.secondary.full{min-height:44px;justify-content:center;margin-top:11px;width:100%}
.dashboard-empty{padding:22px 15px;border:1px dashed #d2e1d7;border-radius:16px;background:#f9fbf9;text-align:center;color:#7c8e80;font-size:14px;line-height:1.65}.dashboard-empty>span{display:block;font-size:27px;margin-bottom:7px}.dashboard-empty>b{display:block;color:#526e5d}.dashboard-empty>p{font-size:13px;margin-top:5px}
.dashboard-knowledge{background:#e2efe7;border-radius:16px;padding:14px;display:flex;align-items:center;gap:14px;margin-bottom:10px}.dashboard-knowledge>strong{font-size:30px;color:#176e5e;flex:none}.dashboard-knowledge b{display:block;font-size:13px}.dashboard-knowledge small{display:block;font-size:12px;color:#708574;margin-top:5px}
.dashboard-result-row{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;padding:13px 14px;gap:8px;border-bottom:1px solid #e7eee8;color:#375d4c}.dashboard-result-row:last-child{border-bottom:0}.dashboard-result-row>div{min-width:0}.dashboard-result-row b{font-size:15px;display:block}.dashboard-result-row small{display:block;font-size:13px;line-height:1.6;color:#738675;margin-top:4px}.dashboard-result-row .dashboard-review-needed{color:#a17a37}.dashboard-result-row>.icon{width:18px;height:18px;flex:none}
.dashboard-badges{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dashboard-badge{text-align:center;border:1px dashed #d1dcd4;border-radius:16px;background:#f8faf8;padding:16px 10px;color:#87958a}.dashboard-badge>span{font-size:30px;display:block;filter:grayscale(1);opacity:.45}.dashboard-badge b{display:block;font-size:14px;margin-top:7px}.dashboard-badge small{display:block;font-size:11px;line-height:1.55;margin-top:5px}.dashboard-badge em{display:inline-block;font-size:10px;font-style:normal;margin-top:10px;border-radius:8px;padding:3px 8px;background:#edf1ed}.dashboard-badge.is-earned{border:1px solid #e2cf8d;background:#fff9e6;color:#7c692c}.dashboard-badge.is-earned>span{filter:none;opacity:1}.dashboard-badge.is-earned em{background:#f3e4b0;color:#8e6a15}
.student-home-icon{width:36px;height:40px;display:grid;place-items:center;color:#3c7c68;padding:6px}.student-home-icon .icon{width:22px;height:22px}
@media(max-width:350px){.student-header-actions{gap:2px}.student-home-icon{width:30px}.student-dashboard{padding-left:11px;padding-right:11px}.dashboard-greeting h1{font-size:20px}.daily-goal h2{font-size:20px}}

@media(max-width:359px){.student-home-icon{display:none}}

.chat-return-home{display:flex;align-items:center;min-height:44px;padding:5px 0;margin:0 0 9px;color:#137c70;font-size:14px;font-weight:500;text-align:left}.chat-return-home:focus-visible{outline:2px solid #137c70;outline-offset:3px;border-radius:6px}

.school-live-clock{padding:9px 12px;background:#e3efe8;border-radius:14px;text-align:center;font-size:23px;font-weight:650;color:#246c57;flex:none}.school-live-clock small{display:block;font-size:9px;color:#6c8977}
.school-live-card{padding:23px 19px;border-radius:21px;background:linear-gradient(135deg,#197c70,#245f58);color:white}.school-live-label{display:flex;align-items:center;gap:8px;font-size:14px;color:#d5efdf}.school-live-label i{width:8px;height:8px;border-radius:50%;background:#b8dda2}.school-live-card h2{font-size:29px;margin:13px 0 8px;line-height:1.3}.school-live-card>p{font-size:16px;line-height:1.6}.school-live-card .school-current-lesson{font-size:14px;margin-top:10px;color:#dfebe4}.school-focus-message{margin:20px 0 13px;padding:13px;background:#ffffff12;border-radius:12px;font-size:15px;line-height:1.7}.school-live-card>small{font-size:11px;line-height:1.7;display:block;color:#cbdfd4}
.school-period-row{display:flex;gap:16px;align-items:center;padding:15px 14px;border-bottom:1px solid #e5ece7}.school-period-row:last-child{border-bottom:0}.school-period-row>div:last-child{flex:1;min-width:0}.school-period-row b{display:block;font-size:16px}.school-period-row small{display:block;font-size:12px;line-height:1.5;color:#7b9080;margin-top:4px}.school-period-time{width:103px;flex:none}.school-period-time b{font-size:13px;color:#799282}.school-period-time small{font-size:11px}.school-period-row.is-current{background:#e0efe5;border-left:4px solid #27816a}.school-period-row.is-current small{color:#29775f}.school-period-row.is-ended{color:#8c9c8e}
body[data-school-focus="true"] .student-schedule-actions{display:none}body[data-school-focus="true"] .student-week-table button:disabled{opacity:1;cursor:default}body[data-school-focus="true"] .student-profile-button:disabled{opacity:.7;cursor:default}

.school-header-stats{display:flex;flex-direction:column;gap:7px;align-items:stretch;flex:none}.school-header-stats .dashboard-star-total{font-size:21px;padding:8px 12px}.school-header-stats .school-live-clock{font-size:18px;padding:7px 12px}.school-focus-dashboard .dashboard-greeting>div:first-child{min-width:0;flex:1}
/* Readable timetable on real phones; keep the existing landscape A4 print layout. */
@media screen{
body[data-role="student"][data-page="calendar"] .student-main{padding:20px 12px 28px;background:#f2f6f3}
body[data-page="calendar"] .student-page-title{margin-bottom:18px}
body[data-page="calendar"] .student-page-title h1{font-size:26px;line-height:1.35;color:#214c3e}
body[data-page="calendar"] .class-chip{font-size:14px;color:#1a6d5d;background:white;border-color:#c4d8cb}
.student-schedule-toggle{padding:5px;gap:4px;background:#e1ebe5;border:1px solid #d1dfd6;border-radius:15px;margin-bottom:18px}
.student-schedule-toggle button{font-size:14px;line-height:1.4;min-height:46px;padding:8px 4px;color:#4b6758;font-weight:550}
.student-schedule-toggle button.active{background:#147d6f;color:white;box-shadow:0 3px 8px #1765531c}
.student-a4-controls{flex-wrap:wrap;gap:3px;margin:0 0 12px}
.student-a4-controls .text-btn{font-size:13px;min-height:44px;padding:7px 4px;color:#246f5c}
.student-a4-controls .icon{width:17px;height:17px}
.student-a4-sheet{aspect-ratio:auto;min-height:350px;height:auto;padding:12px 5px 10px;gap:10px;border:1px solid #c3d5c8;border-radius:13px;box-shadow:0 4px 12px #23403805}
.student-a4-heading{gap:5px;padding:0 3px}
.student-a4-heading>h2{font-size:17px;line-height:1.35;letter-spacing:.4px;color:#214f40}
.student-a4-heading>.student-a4-person{font-size:11px;line-height:1.5;color:#456552}
.student-a4-heading>.student-a4-range{font-size:12px;line-height:1.5;color:#4a6b58}
.student-a4-sheet .student-week-scroll{flex:none;overflow:hidden;border:1px solid #baccbe;border-radius:7px;min-width:0}
.student-a4-sheet .student-week-table{width:100%;min-width:0;height:auto;table-layout:fixed}
.student-a4-sheet .student-week-table th,.student-a4-sheet .student-week-table td{border-color:#c3d2c7}
.student-a4-sheet .student-week-table th:first-child{width:31px;background:#e8f0eb}
.student-a4-sheet .student-week-table thead th{padding:8px 1px;background:#e6eee9;color:#27553f}
.student-a4-sheet .student-week-table th b{font-size:12px;line-height:1.35;color:inherit}
.student-a4-sheet .student-week-table th span{font-size:10px;line-height:1.4;color:#566e5b;margin-top:4px}
.student-a4-sheet .student-week-table th small{font-size:9px;line-height:1.4;color:#1b6b55}
.student-a4-sheet .student-week-table tbody th b{font-size:13px;color:#375d47}
.student-a4-sheet .student-week-table tbody th span{font-size:9px;color:#5f7466}
.student-a4-sheet .student-week-table td{height:43px;background:#fff}
.student-a4-sheet .student-week-table tbody tr:nth-child(even) td{background:#f8fbf9}
.student-a4-sheet .student-week-table td button{min-height:43px;height:auto;padding:6px 1px;gap:0;color:#263f34;line-height:1.4}
.student-a4-sheet .student-week-table td button b{font-size:clamp(10px,3.15cqi,13px);font-weight:650;line-height:1.45;color:#263f34;word-break:normal;overflow-wrap:anywhere}
.student-a4-sheet .student-week-table td button small,.student-a4-sheet .student-week-table td button .lesson-dot{display:none}
.student-a4-sheet .student-week-table td.today{background:#e0efe4!important}
.student-a4-sheet .student-week-table thead th.today{background:#147b6a;color:#fff}
.student-a4-sheet .student-week-table thead th.today span,.student-a4-sheet .student-week-table thead th.today small{color:#fff}
.student-a4-footnote{font-size:11px;line-height:1.6;color:#5a7562;padding:0 4px}
.student-empty-period{color:#819788;font-size:13px}
.student-schedule-identity{padding:15px;border-color:#ceded2;background:#e9f2eb}
.student-schedule-identity p{font-size:14px;line-height:1.6;color:#4f6e58}
.student-schedule-identity h2{font-size:21px;line-height:1.5;color:#214b39;margin:6px 0}
.student-schedule-identity span{font-size:14px;color:#57715e;line-height:1.6}
.student-calendar-week{border-color:#d1dfd5;background:#fff;padding:12px 9px 7px}
.student-calendar-week .week-controls>span{font-size:15px;color:#4b6c57;line-height:1.4;text-align:center}
.student-calendar-week .week-controls .week-arrow{color:#176e5a;min-width:40px;min-height:44px;font-size:25px}
.student-calendar-week .week{gap:3px}
.student-calendar-week .day{font-size:13px;color:#4e6a58;min-width:0;padding:9px 2px;line-height:1.4}
.student-calendar-week .day b{font-size:21px;margin-top:5px;color:inherit}
.student-calendar-week .day.selected{background:#147d6c;color:#fff}
.student-calendar-week>.text-btn.full{font-size:14px;color:#226d57;min-height:42px}
.student-day-title h2{font-size:19px;color:#294f3d}.student-day-title>span{font-size:14px;color:#5e7865}
.student-schedule-card{padding:16px 13px;border-color:#ccdbd0;gap:13px}
.student-schedule-time{min-width:60px;padding-right:11px;border-color:#d7e2da}
.student-schedule-time>b{font-size:17px;color:#246a50}.student-schedule-time>small{font-size:13px;color:#5d7866}
.student-schedule-card h3{font-size:20px;color:#244c39;line-height:1.4}
.student-schedule-card p{font-size:15px;color:#536e5b;line-height:1.6;margin-top:6px}
.student-schedule-card>div>small{font-size:14px;color:#667e6b;line-height:1.6}
.student-schedule-actions>.text-btn{font-size:14px;min-height:42px;color:#1a7258}
.student-timetable-note{font-size:13px;line-height:1.7;color:#607865}
.extra-top{align-items:flex-start;gap:10px}.extra-top h2{font-size:23px;color:#244e39}.extra-top p{font-size:14px;color:#5b7763;line-height:1.6}
.extra-top .primary{font-size:15px;min-height:46px;padding:10px 14px;flex:none}
.extra-week{padding:12px 9px;border-color:#cbdccf;background:#fff}.extra-week span{font-size:15px;color:#4b6c56}.extra-week button{min-width:42px;min-height:44px;color:#176e56}
body[data-page="calendar"] .empty{font-size:15px;line-height:1.7;color:#5c7563;border-color:#ceddd2;background:white}
body[data-page="calendar"] .empty h3{font-size:18px;color:#315640;line-height:1.5}.extra-day>h3{font-size:16px;color:#365e44}.extra-card{padding:16px 13px;border-color:#ccdcd1}.extra-card>span{font-size:16px;color:#236c51}.extra-card>span small{font-size:13px;color:#5c7864}.extra-card b{font-size:18px;color:#2c503d}.extra-card p{font-size:14px;color:#5c7463;line-height:1.6}
}

/* Home header stays in view and shares the system toolbar color. */
html{background:#fff}body[data-role="student"][data-page="home"] .student-header{position:sticky;top:0;z-index:60;background:#fff;box-shadow:0 2px 8px #23403808}body[data-role="student"][data-page="home"]{scroll-padding-top:80px}

/* Teal brand header, matched to the installed app's status bar. */
html{background:#126f65}
body[data-role="student"] .student-header.conversation-header,body[data-role="student"][data-page="ai"] .student-header.conversation-header,body[data-role="student"][data-page="home"] .student-header{background:#126f65;border-bottom:1px solid #ffffff20;box-shadow:0 3px 12px #164f3e20}
.student-header.conversation-header .student-brand-home{color:#fff}
.student-header.conversation-header .student-brand-home b{color:#fff}
.student-header.conversation-header .student-brand-home small{color:#d4ece2}
.student-header.conversation-header .student-ai-light{background:#e8ce72}
.student-header.conversation-header .student-brand-home>img{background:#ffffff18;border:1px solid #ffffff26;border-radius:12px;padding:2px}
.student-header.conversation-header .student-calendar-icon{background:#ffffff15;border:1px solid #ffffff32;color:#fff}
.student-header.conversation-header .student-home-icon{color:#e5f4ec}
.student-header.conversation-header .student-profile-button{background:#e2f0e6;border:2px solid #ffffff70;color:#346d51}
.student-header.conversation-header .student-profile-dot{border-color:#126f65;background:#e2c76b}
.student-header.conversation-header button:focus-visible{outline:2px solid #f1d77f;outline-offset:3px}
.school-sync-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 14px;color:#28645a;font-size:14px;line-height:1.4}.school-sync-toolbar>span{min-width:0;flex:1}.school-sync-toolbar>div{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:7px}.school-sync-toolbar button{background:#e3f2ec;color:#075d54;border:1px solid #9fc7ba;border-radius:10px;padding:9px 12px;font:inherit;font-weight:600;min-height:40px}.school-sync-toolbar .is-error{color:#9b4133}.cloud-manager-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.cloud-directory article{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:15px 0;border-bottom:1px solid #dce5df}.cloud-directory article>div{min-width:0}.cloud-directory small{display:block;line-height:1.5;color:#526d61;overflow-wrap:anywhere}.cloud-directory b{font-size:18px}.school-sync-toolbar small{max-width:130px;color:#805d22}@media(max-width:440px){.school-sync-toolbar{font-size:13px}.school-sync-toolbar button{padding:8px;font-size:14px}}
.organization-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 0;border-bottom:1px solid #d2e5da;margin-bottom:8px}.organization-bar>div{flex:1 1 180px;min-width:0}.organization-bar b{display:block;font-size:16px;color:#124e44;overflow-wrap:anywhere}.organization-bar small{display:block;font-size:14px;color:#4c6b60}.organization-bar button{min-height:40px;padding:9px 12px;font-size:14px}.cloud-directory select{max-width:100%}[data-org-form] label{display:block;margin-top:12px}[data-learning-merge] label{display:flex;align-items:center;gap:10px;margin:14px 0}[data-learning-merge] input[type=radio]{width:auto}

/* Role-specific management lives in Profile. */
.profile-admin-tools{width:100%;min-width:0}.profile-admin-group{background:#fff;border:1px solid #d7e5dd;border-radius:20px;padding:20px;margin:20px 0}.profile-admin-group h2{font-size:22px;color:#174c42;margin:0 0 8px}.profile-admin-group p{font-size:16px;line-height:1.6;color:#4b665e;margin:0 0 16px}.profile-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}.profile-admin-grid button{font-size:17px;line-height:1.4;min-height:54px;white-space:normal;text-align:left;padding:15px 18px}.resource-content{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto}.profile-admin-tools .cloud-directory article{min-width:0}.profile-admin-tools small{overflow-wrap:anywhere}
body[data-role="admin"] .topbar{background:#117c70;color:#fff;border-bottom-color:#0e6c62;position:sticky;top:0;z-index:40}body[data-role="admin"] .topbar .brand,body[data-role="admin"] .topbar .brand small,body[data-role="admin"] .topbar .crumb,body[data-role="admin"] .topbar button{color:#fff}body[data-role="admin"] .topbar .demo-tag{background:#ffffff18;border-color:#ffffff35;color:#e8fff8}.profile-footer{margin:24px 0}.profile-admin-grid button:focus-visible{outline:3px solid #e9b84b;outline-offset:3px}

/* Keep the dialog header reachable and scroll only its content on touch screens. */
html.modal-open{overflow:hidden;overscroll-behavior:none}body.modal-open{position:fixed;top:var(--modal-scroll-offset,0);left:0;right:0;width:100%;overflow:hidden}
#modal{padding:0;overflow:hidden;max-height:calc(var(--app-height,100dvh) - 32px);max-width:min(560px,calc(100vw - 28px));box-sizing:border-box}
#modal[open]{display:flex;flex-direction:column}#modal .modal-title{flex:0 0 auto;margin:0;padding:20px 23px 16px;border-bottom:1px solid var(--line);background:#fff;gap:16px;outline:none}#modal .modal-title h2{min-width:0;line-height:1.4;overflow-wrap:anywhere}#modal .modal-content{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:20px 23px 24px;scroll-padding:16px}#modal .modal-content>*{max-width:100%;box-sizing:border-box}#modal .member-role-actions{display:flex;flex-direction:column;gap:10px;flex:0 0 auto}#modal .member-role-actions button{white-space:normal;min-height:44px}
@media(max-width:480px){#modal .modal-content .cloud-directory article{align-items:flex-start;gap:12px;flex-wrap:wrap}#modal .member-role-actions{width:100%;flex-direction:row;flex-wrap:wrap}#modal .member-role-actions button{flex:1;min-width:110px}#modal .modal-title{padding:16px 18px}#modal .modal-content{padding:18px}}

.async-loading{min-height:170px;padding:14px 0;color:#41675c}.async-loading p{font-size:17px;margin:12px 0 20px}.async-spinner{display:block;width:25px;height:25px;border:3px solid #d9e9e2;border-top-color:#117c70;border-radius:50%;animation:async-spin .8s linear infinite}.loading-lines{display:grid;gap:12px}.loading-lines i{height:14px;background:#edf3ef;border-radius:8px}.loading-lines i:nth-child(2){width:85%}.loading-lines i:nth-child(3){width:65%}.async-error p{margin:8px 0 20px}.navigation-progress{position:fixed;z-index:10001;top:env(safe-area-inset-top,0px);left:0;right:0;padding:12px 18px;background:#117c70;color:#fff;box-shadow:0 4px 14px #174c4220;font-size:16px;text-align:center;pointer-events:none}.context-loading #app{pointer-events:none}#modal[open]{animation:panel-appear .12s ease-out}@keyframes async-spin{to{transform:rotate(360deg)}}@keyframes panel-appear{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.async-spinner,#modal[open]{animation:none}}
/* Compact teacher class directory and bottom navigation. */
body[data-role="teacher"]{--nav-height:64px}
body[data-role="teacher"] .bottom-nav{bottom:0;min-height:calc(64px + env(safe-area-inset-bottom,0px));padding:4px 5px calc(4px + env(safe-area-inset-bottom,0px));align-items:center}
body[data-role="teacher"] .bottom-nav button{min-height:54px;gap:3px;font-size:11px}
.teacher-class-list{display:grid;gap:10px}.teacher-class-card{display:flex;align-items:center;min-width:0;background:#fff;border:1px solid #d9e5df;border-radius:16px;overflow:hidden;min-height:94px}.teacher-class-card.is-homeroom{border-left:4px solid #137c70}.teacher-class-main{flex:1;min-width:0;align-self:stretch;padding:16px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:5px}.teacher-class-title{display:flex;align-items:center;gap:9px}.teacher-class-title>b{font-size:21px;color:#174c40;line-height:1.3}.teacher-class-meta{font-size:14px;line-height:1.5;color:#526c61;overflow-wrap:anywhere}.homeroom-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#fff1c8;color:#8a621c;border-radius:9px;flex:none}.homeroom-mark .icon{width:18px;height:18px}.teacher-class-tools{display:flex;gap:6px;padding:12px 12px 12px 0;flex:none}.teacher-class-tools button{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eaf4ef;color:#126c60;border:1px solid #cfe1d8}.teacher-class-tools .icon{width:23px;height:23px}.teacher-class-main:hover{background:#f5faf7}.teacher-class-tools button:hover{background:#dceee5}.class-week-empty{display:block;text-align:center;color:#657a70;padding:20px 0}
@media(min-width:760px){.teacher-class-list{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}
/* Teacher personal profile: identity and school administration share one card. */
.teacher-personal-card{background:#fff;border:1px solid #d7e5dd;border-radius:20px;overflow:hidden;margin:0 0 22px}.teacher-personal-top{display:flex;align-items:center;gap:16px;padding:22px 18px}.teacher-avatar-wrap{position:relative;flex:none}.teacher-avatar-wrap>.avatar{width:68px;height:68px;font-size:27px;overflow:hidden}.teacher-avatar-camera{position:absolute;bottom:-4px;right:-5px;width:32px;height:32px;border:3px solid #fff;border-radius:50%;display:grid;place-items:center;background:#137c70;color:#fff}.teacher-avatar-camera:before{content:'';position:absolute;inset:-6px}.teacher-avatar-camera .icon{width:17px;height:17px}.teacher-personal-link{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-align:left;padding:4px 0;min-height:64px}.teacher-personal-link>span{flex:1;min-width:0}.teacher-personal-link b{display:block;font-size:21px;line-height:1.4;overflow-wrap:anywhere;color:#174c42}.teacher-personal-link small{display:block;margin-top:5px;font-size:16px;color:#526c61}.teacher-personal-link>.icon,.teacher-admin-link>.icon,.teacher-teaching-item>.icon{width:19px;height:19px;color:#6c877b;flex:none}.teacher-admin-link{width:100%;border-top:1px solid #e2ece6;display:flex;align-items:center;gap:12px;padding:14px 18px;text-align:left;color:#126c60;font-size:17px;font-weight:600}.teacher-admin-link>span:nth-child(2){flex:1}.teacher-menu-icon{width:42px;height:42px;border-radius:12px;background:#e7f3ed;color:#14796b;display:grid;place-items:center;flex:none}.teacher-menu-icon .icon{width:23px;height:23px}.teacher-teaching-menu{margin:24px 0}.teacher-teaching-menu>h2{font-size:21px;margin:0 0 13px}.teacher-teaching-items{display:grid;gap:10px}.teacher-teaching-item{display:flex;align-items:center;gap:13px;padding:16px;background:white;border:1px solid #d7e5dd;border-radius:16px;min-height:88px;width:100%;text-align:left}.teacher-menu-copy{flex:1;min-width:0}.teacher-menu-copy b{display:block;font-size:17px;line-height:1.4;color:#214b3e}.teacher-menu-copy small{display:block;margin-top:5px;font-size:14px;line-height:1.5;color:#526c61}.teacher-teaching-item:hover,.teacher-admin-link:hover{background:#f3f9f5}.teacher-personal-details{margin:0}.teacher-personal-details>div{padding:14px 0;border-bottom:1px solid #e3ece7}.teacher-personal-details dt{font-size:14px;color:#526c61;margin-bottom:5px}.teacher-personal-details dd{font-size:18px;line-height:1.5;margin:0;color:#214b3e;overflow-wrap:anywhere}

.header-notifications{width:44px;height:44px;display:grid;place-items:center;flex:none;color:var(--teal);border-radius:12px}.header-notifications .icon{width:24px;height:24px}.header-notifications:hover{background:#137c7010}.notifications-empty{text-align:center;padding:24px 8px 30px}.notifications-empty>span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;background:#e7f3ed;color:#137c70}.notifications-empty>span .icon{width:30px;height:30px}.notifications-empty h3{font-size:20px;margin:0 0 10px}.notifications-empty p{font-size:16px;line-height:1.6;color:#526c61}

.startup-status{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:32px 24px;background:var(--paper);color:#214b3e}.startup-status>img{width:76px;height:76px}.startup-status h1{font-size:27px}.startup-status p{font-size:18px;max-width:340px}.startup-status small{font-size:14px;color:#526c61}.startup-status .async-spinner{margin:6px 0}

/* Remove redundant identity/date strips and keep weekly controls compact. */
.teacher-week-toolbar .teacher-week-tools{padding:8px 4px 0;border-bottom:0;justify-content:center}.teacher-week-toolbar .teacher-week-tools>.secondary{min-height:40px;padding:6px 14px}

.teacher-week-toolbar.teacher-week-compact{background:transparent;border:0;border-radius:0;padding:0;margin:0 0 12px;box-shadow:none}.teacher-week-compact .teacher-week-range{justify-content:center}.teacher-week-compact .teacher-week-range b{font-size:16px}.teacher-week-links{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:5px}.teacher-week-links>span{color:#b9cbc2;font-size:13px}.teacher-week-links .teacher-week-link{background:transparent;border:0;border-radius:0;box-shadow:none;color:#216f61;font-size:14px;font-weight:500;min-height:44px;padding:7px 8px;white-space:nowrap}.teacher-week-links .teacher-week-link:hover{text-decoration:underline;text-underline-offset:4px}.teacher-week-links .teacher-week-link:focus-visible{outline:2px solid #137c70;outline-offset:0;border-radius:5px}
/* Platform administration keeps the school as its management boundary. */
body[data-role="admin"]{--nav-height:64px}body[data-role="admin"] .bottom-nav{min-height:calc(64px + env(safe-area-inset-bottom,0px));padding:4px 5px calc(4px + env(safe-area-inset-bottom,0px))}body[data-role="admin"] .bottom-nav button{min-height:54px;gap:3px;font-size:11px}.platform-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.platform-stat{padding:18px;background:white;border:1px solid #d7e5dd;border-radius:17px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.platform-stat>span{color:#137c70}.platform-stat>b{font-size:30px;line-height:1.2;color:#174c42}.platform-stat>small{font-size:14px;color:#526c61}.platform-section{margin:24px 0}.platform-section>h2{font-size:21px;margin:0 0 14px}.platform-updated{font-size:13px;color:#526c61;margin:18px 0}.platform-library-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.platform-library-head>span{font-size:15px;color:#526c61}.platform-library-head .primary{font-size:14px;padding:10px 13px}.platform-resource-list{display:grid;gap:10px;margin:16px 0}.platform-resource{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:1px solid #d7e5dd;border-radius:16px;background:white;text-align:left}.platform-resource .teacher-menu-copy b{overflow-wrap:anywhere}.platform-school-list{border:1px solid #d7e5dd;background:white;border-radius:17px;padding:0 16px}.platform-school-list article{display:flex;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid #e2ece6;min-width:0}.platform-school-list article:last-child{border:0}.platform-school-list article>div{min-width:0}.platform-school-list b{display:block;font-size:17px;overflow-wrap:anywhere;color:#214b3e}.platform-school-list small{display:block;font-size:14px;color:#526c61;line-height:1.5;margin-top:5px}.platform-school-list .needs-attention{color:#95621d}.platform-school-list>p{padding:16px 0}
.school-admin-context{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-5px 0 12px;min-height:38px;color:#347265}.school-admin-context>span{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600}.school-admin-context>span .icon{width:16px;height:16px}.school-admin-context .text-btn{font-size:14px;min-height:44px;padding:4px 0;white-space:nowrap}.school-active-year{display:flex;align-items:center;gap:8px;color:#347265;font-size:15px;margin:0 0 16px}.school-active-year .icon{width:18px;height:18px}#schoolAdminPage>.platform-section:first-child{margin-top:0}

/* Unify teacher/admin chrome with the installed app theme and give the timetable more room. */
body[data-role="teacher"] .topbar,body[data-role="admin"] .topbar{background:#126f65;color:#fff;border-bottom:1px solid #ffffff20;box-shadow:0 2px 8px #164f3e18;position:sticky;top:0;z-index:40}body[data-role="teacher"] .topbar .brand,body[data-role="teacher"] .topbar .brand small,body[data-role="teacher"] .topbar .crumb,body[data-role="teacher"] .topbar .header-notifications,body[data-role="admin"] .topbar .brand,body[data-role="admin"] .topbar .brand small,body[data-role="admin"] .topbar .header-notifications{color:#fff}body[data-role="teacher"] .topbar .brand small,body[data-role="admin"] .topbar .brand small{color:#dcefe8}body[data-role="teacher"] .topbar .demo-tag,body[data-role="admin"] .topbar .demo-tag{background:#ffffff12;border-color:#ffffff35;color:#e5f4ee}.teacher-welcome{display:flex;align-items:center;gap:14px;margin:2px 0 18px}.teacher-welcome-avatar{padding:0;flex:none;border-radius:50%}.teacher-welcome-avatar .avatar{width:58px;height:58px;border:2px solid #d1e7dc;background:#e4f0e7;color:#246957;font-size:24px;overflow:hidden}.teacher-welcome>div{min-width:0}.teacher-welcome h1{font-size:24px;line-height:1.35;letter-spacing:-.6px;overflow-wrap:anywhere}.teacher-welcome p{font-size:14px;line-height:1.5;color:#526c61;margin-top:5px}body[data-page="teacher"] .calendar-week{padding:8px 10px;margin-bottom:16px}body[data-page="teacher"] .section-title{margin:18px 0 12px}body[data-page="teacher"] .panel.empty{padding:22px 18px}body[data-page="teacher"] .panel.empty>.icon{width:34px;height:34px;margin-bottom:12px}body[data-page="teacher"] .panel.empty h3{font-size:18px}body[data-page="teacher"] .panel.empty p{font-size:14px;line-height:1.65;max-width:285px;margin:8px auto 18px}body[data-page="teacher-calendar"] .content{padding-top:12px}.teacher-calendar-title{margin:0 0 10px;min-height:44px}.teacher-calendar-title h1{font-size:25px}.teacher-calendar-title .primary{min-height:44px;font-size:14px;padding:9px 13px;gap:6px}.teacher-calendar-title .primary .icon{width:19px;height:19px}.teacher-week-compact .teacher-week-range>div{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:3px 12px}.teacher-week-compact .teacher-week-range small{margin:0;font-size:12px;color:#526c61}.teacher-week-compact .teacher-week-links{margin-top:2px}.teacher-week-toolbar.teacher-week-compact{margin-bottom:6px}.teacher-week-caption{margin-bottom:8px;font-size:11px;color:#526c61}.teacher-week-caption .icon{width:14px;height:14px}.teacher-grid-empty>span{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:0;background:transparent;color:#8bad80;font-size:23px;font-weight:300;line-height:1;opacity:1}.teacher-grid-empty>span .icon{width:23px;height:23px;stroke-width:1.3}.teacher-grid-empty:hover>span,.teacher-grid-empty:focus-visible>span{background:transparent;color:#6d955f}.teacher-week-scroll{max-height:min(620px,calc(var(--app-height,100dvh) - 250px - var(--nav-height) - env(safe-area-inset-bottom,0px)))}

.teacher-calendar-title .primary{background:transparent;color:#137c70;border:0;box-shadow:none;padding-left:6px;padding-right:6px}.teacher-calendar-title .primary:hover{background:transparent;color:#0e665b;text-decoration:underline;text-underline-offset:4px}
.schedule-image-invite{display:flex;align-items:flex-start;gap:13px;margin:20px 0 10px;padding:18px;border:1px dashed #bed4c4;border-radius:17px;background:#f0f6ef}.schedule-image-invite>div{min-width:0}.schedule-image-invite h3{font-size:17px;line-height:1.4;color:#285842}.schedule-image-invite p{font-size:14px;line-height:1.6;color:#526c61;margin:7px 0}.schedule-image-invite .text-btn{font-size:14px;min-height:44px;white-space:normal;text-align:left}.schedule-image-week{font-size:16px;font-weight:600;color:#216e5f;margin-bottom:12px}.schedule-model-settings{margin:16px 0;color:#347265}.schedule-model-settings summary{cursor:pointer;font-size:15px;min-height:32px}.schedule-image-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.6;font-weight:500;margin:18px 0}.schedule-image-consent input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:#137c70}#schedulePhotoPreview img{display:block;width:100%;max-height:240px;object-fit:contain;border-radius:12px;margin:12px 0}.schedule-image-row{border:1px solid #d7e5dd;border-radius:15px;margin:16px 0;padding:14px}.schedule-image-row>header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:17px}.schedule-row-remove{width:44px;height:44px;display:grid;place-items:center;color:#6a8377}.schedule-row-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 12px}.schedule-row-fields label{font-size:14px;min-width:0;margin:9px 0 0}.schedule-row-fields input,.schedule-row-fields select{font-size:15px;margin-top:6px;min-height:44px}.schedule-row-subject{grid-column:1/-1}.schedule-row-warning{display:block;font-size:13px;line-height:1.5;color:#916b2f;margin:0 0 8px}.schedule-image-warnings{padding-left:20px;font-size:14px;color:#85662f;line-height:1.6}.schedule-image-rows .subtle{font-size:13px;line-height:1.5}.schedule-image-invite button:disabled{opacity:.65}

/* Teacher home, based on the supplied daily workspace reference. */
body[data-role="teacher"][data-page="teacher"]{--th-ink:#123c43;--th-muted:#69878b}body[data-role="teacher"] .teacher-header-avatar{display:flex!important;min-width:44px;min-height:44px;padding:0;border:2px solid #ddf4e8;background:#edf7f0;color:#277d6b;overflow:hidden}body[data-role="teacher"] .teacher-header-avatar img{width:100%;height:100%;object-fit:cover}body[data-role="teacher"] .top-actions{gap:14px}.teacher-home-welcome{display:flex;align-items:center;gap:16px;margin:6px 0 24px;color:var(--th-ink)}.teacher-home-welcome h1{font-size:clamp(25px,4vw,34px);line-height:1.25;margin:0 0 8px}.teacher-home-welcome p{font-size:15px;color:var(--th-muted);line-height:1.5;margin:0}.teacher-home-avatar{background:none;border:0;padding:0;flex:none}.teacher-home-avatar .avatar{width:70px;height:70px;font-size:29px;background:#dfefe8;color:#117d6b;overflow:hidden}.teacher-home-art{margin-left:auto;display:flex;align-items:center;gap:4px;color:#17867a}.teacher-home-art>.icon:first-child{width:64px;height:64px;stroke-width:1.1}.teacher-home-art>.icon:last-child{width:26px;height:26px;color:#d4a83e}.teacher-home-datebar{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid #dee9e4;background:#fff;border-radius:18px;margin-bottom:24px}.teacher-home-day-tabs{display:flex;gap:4px;background:#f1f6f3;border-radius:14px;padding:3px}.teacher-home-day-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 14px;border:0;border-radius:12px;background:transparent;color:#668282;font-weight:700;font-size:15px;white-space:nowrap}.teacher-home-day-tabs button.active{background:#007e72;color:white}.teacher-home-day-tabs .icon{width:23px;height:23px}.teacher-home-date{margin-left:auto;text-align:center;border-left:1px solid #deebe4;padding-left:16px;min-width:140px}.teacher-home-date small{display:block;color:var(--th-muted);font-size:14px;margin-bottom:4px}.teacher-home-date b{font-size:20px;color:var(--th-ink);white-space:nowrap}.teacher-home-picker{position:relative;display:grid;place-items:center;min-width:48px;height:48px;border:1px solid #d8ebe1;border-radius:13px;background:#e8f7ef;color:#007e72;cursor:pointer}.teacher-home-picker .icon{width:27px;height:27px}.teacher-home-picker input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;min-height:44px}.teacher-home-picker input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;cursor:pointer}.teacher-home-section{margin:24px 0 14px;color:var(--th-ink)}.teacher-home-section h2{font-size:24px;letter-spacing:-.4px;margin:0}.teacher-home-section>span,.teacher-home-section .text-btn{color:var(--th-muted);font-size:15px}.teacher-home-section .text-btn{display:flex;align-items:center;gap:4px;padding:6px;min-height:44px}.teacher-home-lessons,.teacher-home-classes{overflow:hidden;background:white;border:1px solid #dee8e2;border-radius:18px;box-shadow:0 3px 10px #184f3a04}.teacher-home-lesson{display:grid;grid-template-columns:74px 48px minmax(90px,.75fr) minmax(110px,1fr) 22px;align-items:center;gap:14px;width:100%;background:white;border:0;border-bottom:1px solid #edf1ed;text-align:left;padding:14px;color:var(--th-ink);cursor:pointer}.teacher-home-lesson:last-child,.teacher-home-class:last-child{border-bottom:0}.teacher-home-lesson:hover,.teacher-home-class:hover{background:#f8fcf9}.teacher-home-lesson:focus-visible,.teacher-home-class:focus-visible,.teacher-home-shortcuts button:focus-visible{outline:3px solid #6ba996;outline-offset:-3px}.teacher-home-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:60px;border-radius:12px;background:var(--tone-bg);color:var(--tone);font-size:15px}.teacher-home-subject-icon{display:grid;place-items:center;background:var(--tone-bg);color:var(--tone);height:56px;border-radius:12px}.teacher-home-subject-icon .icon{width:28px;height:28px}.teacher-home-subject b,.teacher-home-class-copy b{display:block;font-size:17px;font-weight:750}.teacher-home-subject small,.teacher-home-class-copy small{display:block;color:#627e87;font-size:15px;margin-top:7px}.teacher-home-lesson-title{border-left:1px solid #e4ece6;padding-left:16px;line-height:1.5;font-size:15px;color:#5e7889;overflow-wrap:anywhere}.teacher-home-lesson-title small{display:block;font-size:12px;margin-top:4px;color:#738d8a}.teacher-home-unprepared{color:#9b6b23}.teacher-home-lesson>.icon,.teacher-home-class>.icon{color:#008475;width:22px;height:22px}.teacher-home-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 28px}.teacher-home-shortcuts button{min-height:64px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #dce7df;border-radius:16px;background:#fff;color:#096b5c;font-size:17px;font-weight:700;padding:12px}.teacher-home-shortcuts .icon{width:28px;height:28px}.teacher-home-class{display:flex;align-items:center;gap:16px;padding:14px 16px;width:100%;text-align:left;border:0;border-bottom:1px solid #edf1ed;background:white;color:var(--th-ink);cursor:pointer}.teacher-home-class-badge{display:grid;place-items:center;width:82px;min-height:65px;flex:none;border-radius:13px;font-size:25px;font-weight:800;background:var(--tone-bg);color:var(--tone)}.teacher-home-class-copy{flex:1;min-width:0}.teacher-home-class-status{display:flex;align-items:center;gap:9px;padding:12px;border-radius:12px;background:#edf8f2;color:#277b65;font-size:14px;max-width:180px}.teacher-home-class-status .icon{width:24px;height:24px;flex:none}.teacher-home-empty{padding:28px 20px;text-align:center;color:#69847a}.teacher-home-empty h3{color:var(--th-ink);font-size:18px;margin:12px 0 8px}.teacher-home-empty p{line-height:1.5;margin:0}.teacher-home-empty>.icon{width:38px;height:38px;color:#87a495}.teacher-home-lesson.blue,.teacher-home-class.blue{--tone:#177bc6;--tone-bg:#e4f2ff}.teacher-home-lesson.rose{--tone:#db5b68;--tone-bg:#fff0f0}.teacher-home-lesson.mint,.teacher-home-class.mint{--tone:#098a73;--tone-bg:#e4f6ed}.teacher-home-lesson.violet,.teacher-home-class.violet{--tone:#8b52bd;--tone-bg:#f2eafd}.teacher-home-lesson.amber{--tone:#aa791d;--tone-bg:#fff5df}
@media(max-width:600px){.teacher-home-art{display:none}.teacher-home-welcome{gap:13px;margin-bottom:20px}.teacher-home-avatar .avatar{width:58px;height:58px;font-size:25px}.teacher-home-welcome h1{font-size:25px}.teacher-home-welcome p{font-size:14px}.teacher-home-datebar{flex-wrap:wrap;gap:8px;padding:10px;margin-bottom:20px}.teacher-home-day-tabs{flex:1}.teacher-home-day-tabs button{flex:1;font-size:14px;padding:9px}.teacher-home-date{order:3;flex-basis:100%;border:0;padding:5px 0 0;display:flex;align-items:center;justify-content:center;gap:8px}.teacher-home-date small{margin:0}.teacher-home-date b{font-size:17px}.teacher-home-picker{min-width:45px;height:45px}.teacher-home-section h2{font-size:22px}.teacher-home-lesson{grid-template-columns:62px 34px minmax(70px,.9fr) minmax(80px,1fr) 16px;gap:8px;padding:12px 10px}.teacher-home-time{font-size:13px;min-height:56px}.teacher-home-subject-icon{height:44px;border-radius:9px}.teacher-home-subject-icon .icon{width:23px;height:23px}.teacher-home-subject b{font-size:14px}.teacher-home-subject small{font-size:13px}.teacher-home-lesson-title{font-size:13px;padding-left:9px}.teacher-home-lesson-title small{font-size:11px}.teacher-home-shortcuts button{font-size:15px;gap:8px;min-height:60px;padding:10px 6px}.teacher-home-shortcuts .icon{width:25px;height:25px}.teacher-home-class{gap:12px;padding:13px 12px}.teacher-home-class-badge{width:62px;min-height:60px;font-size:23px}.teacher-home-class-copy b{font-size:16px}.teacher-home-class-copy small{font-size:13px}.teacher-home-class-status{font-size:12px;padding:9px;max-width:108px;gap:5px}.teacher-home-class-status .icon{width:19px;height:19px}}
@media(max-width:360px){.teacher-home-subject-icon{display:none}.teacher-home-lesson{grid-template-columns:57px minmax(78px,.9fr) minmax(76px,1fr) 14px}.teacher-home-class-status span{display:none}.teacher-home-class-status{padding:9px}.teacher-home-welcome h1{font-size:23px}}

/* Full-page platform administration, scalable directories and notifications. */
body[data-admin-detail="true"] #modal.admin-detail-dialog{display:block;position:static;inset:auto;width:100%;max-width:none;max-height:none;height:auto;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible}body[data-admin-detail="true"] #modal.admin-detail-dialog .modal-title{padding:12px 0 20px;background:transparent;border:0;position:static}body[data-admin-detail="true"] #modal.admin-detail-dialog .modal-title h1{font-size:28px;line-height:1.3;margin:0}body[data-admin-detail="true"] #modal.admin-detail-dialog .modal-content{padding:0;max-height:none;overflow:visible}.admin-list-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;padding:16px;border:1px solid #dbe6de;border-radius:16px;background:#fff;margin:0 0 18px}.admin-list-filters label{flex:1;min-width:160px;font-size:14px;font-weight:600;margin:0}.admin-list-filters input,.admin-list-filters select{display:block;margin:6px 0 0;font-size:16px;width:100%;min-height:44px}.admin-list-filters button{min-height:44px}.admin-data-list{border:1px solid #dde7df;border-radius:16px;background:white;overflow:hidden}.admin-data-row{display:flex;align-items:center;gap:16px;padding:18px;width:100%;border:0;border-bottom:1px solid #e7eee9;background:white;text-align:left;color:#23483e}.admin-data-row:last-child{border-bottom:0}.admin-data-row>div:first-child,.admin-data-row>span:first-child:not(.teacher-menu-icon){flex:1;min-width:0}.admin-data-row small{display:block;font-size:14px;font-weight:400;line-height:1.5;color:#637b70;margin-top:5px;overflow-wrap:anywhere}.admin-data-row b{font-size:17px;overflow-wrap:anywhere}.admin-data-row button{flex:none;min-height:44px}.admin-resource-row{cursor:pointer}.admin-resource-row:hover{background:#f4f9f4}.admin-resource-row>.teacher-menu-icon+span{flex:1;min-width:0}.admin-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0;font-size:14px;color:#587066}.admin-pagination button{min-height:44px}.admin-detail form textarea{font-size:16px;min-height:120px}.admin-detail form input,.admin-detail form select{font-size:16px;min-height:44px}.notification-reading>div{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;padding:20px 0;color:#294a41}.notification-reading h2{font-size:24px;overflow-wrap:anywhere}.header-notifications{position:relative}.notification-count{position:absolute;top:0;right:0;min-width:19px;height:19px;display:grid;place-items:center;padding:0 4px;background:#d74848;color:#fff;font-size:11px;border-radius:20px;font-weight:700}.admin-data-row.is-unread{border-left:4px solid #19816d;background:#f0f8f3}@media(max-width:600px){.admin-list-filters{padding:12px;gap:10px}.admin-list-filters label{min-width:100%;flex-basis:100%}.admin-data-row{flex-wrap:wrap;gap:10px;padding:15px}.admin-data-row>div:first-child{flex-basis:100%}.admin-data-row .badge{font-size:12px}.admin-data-row b{font-size:16px}body[data-admin-detail="true"] #modal.admin-detail-dialog .modal-title h1{font-size:25px}.admin-detail .teacher-personal-details div{grid-template-columns:1fr;gap:5px}}

.profile-menu-item[data-action="notifications"]{position:relative}.profile-menu-item[data-action="notifications"] .notification-count{top:50%;right:42px;transform:translateY(-50%)}

.daily-policy-summary{padding:18px;border:1px solid #d4e5da;background:#f0f8f2;border-radius:16px;margin:16px 0;color:#2b5b46}.daily-policy-summary b{font-size:18px}.daily-policy-summary p{margin:8px 0;line-height:1.6}.daily-policy-summary small{color:#5e7669}.daily-policy-toggle{display:flex!important;align-items:center;gap:10px;min-height:48px;font-weight:700;margin:16px 0!important}.daily-policy-toggle input{width:20px!important;height:20px!important;min-height:20px!important;flex:none;margin:0!important}.daily-policy-effective{padding:12px 15px;border-left:3px solid #70a68b;background:#f7faf6;line-height:1.6}.daily-recipient-section{margin:20px 0}.daily-recipient-section .section-title{gap:12px}.daily-recipient-section h3{font-size:18px;margin:0}.daily-weight{width:100px;flex:none;font-size:13px;margin:0!important}.daily-weight input{width:100%!important;font-size:16px;margin-top:5px!important;min-height:44px}.daily-preview{padding:14px;background:#eef6f1;border-radius:12px;line-height:1.7}body [data-daily-policy-form] input,body [data-daily-policy-form] select{font-size:16px}body [data-daily-policy-form] .form-actions{flex-wrap:wrap}body [data-daily-policy-form] .plan-form-grid>label{min-width:0}@media(max-width:600px){.daily-weight{width:95px}.daily-recipient-section .admin-data-row>div:first-child{flex:1;flex-basis:calc(100% - 115px)}.daily-recipient-section .section-title{align-items:flex-start;flex-wrap:wrap}.daily-recipient-section .section-title button{padding:4px 0;min-height:44px}}

/* Secondary pages use the same fixed header navigation on every screen size. */
body[data-admin-detail="true"] .topbar>.mobile-brand,body[data-admin-detail="true"] .topbar>.crumb{display:none}
.topbar>.admin-header-back{display:inline-flex;align-items:center;gap:8px;min-width:44px;min-height:44px;flex-shrink:0;padding:6px 8px 6px 0;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:16px;font-weight:600;cursor:pointer}
.admin-header-back svg{width:28px;height:28px;flex:none}.admin-header-back:hover{background:#ffffff12}.admin-header-back:focus-visible{outline:2px solid currentColor;outline-offset:4px}

.platform-credit-overview{padding:22px;margin:0 0 24px;border:1px solid #c8ded4;border-radius:20px;background:linear-gradient(130deg,#e8f5ee,#fff);color:#204c43}.platform-credit-totals{display:grid;grid-template-columns:1fr 1fr;gap:20px}.platform-credit-totals>div{display:flex;flex-direction:column;gap:7px;min-width:0}.platform-credit-totals span{font-size:14px;font-weight:600}.platform-credit-totals strong{font-size:34px;line-height:1.25;overflow-wrap:anywhere;letter-spacing:-.5px}.platform-credit-totals strong small{font-size:13px;font-weight:500;letter-spacing:0}.platform-credit-totals small{font-size:12px;color:#617b70}.platform-credit-forecast{margin-top:20px;padding-top:18px;border-top:1px solid #d1e4d9}.platform-credit-forecast h2{font-size:17px;margin:0 0 10px}.platform-credit-forecast p{font-size:14px;line-height:1.6;margin:8px 0}.platform-credit-status{padding:13px 15px;border-radius:12px;margin:12px 0;display:flex;flex-direction:column;gap:5px}.platform-credit-status b{font-size:17px}.platform-credit-status small{font-size:12px}.platform-credit-status.needs-funds{background:#fff1df;color:#825121}.platform-credit-status.funds-ready{background:#dff1e5;color:#246342}.platform-credit-limit-alert{color:#825121}.platform-credit-forecast-note{display:block;font-size:12px;line-height:1.6;color:#657a71}.platform-credit-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:17px}.platform-credit-actions button{min-height:44px;font-size:14px}.platform-credit-actions .primary{padding:10px 16px}@media(max-width:420px){.platform-credit-overview{padding:17px}.platform-credit-totals{gap:14px}.platform-credit-totals strong{font-size:28px}.platform-credit-totals span{font-size:13px}.platform-credit-totals small{font-size:11px}.platform-credit-actions{gap:9px}}

.student-credit-total{background:#e7f4ee;border:1px solid #cce0d7;padding:20px;border-radius:18px;margin:15px 0}.student-credit-total>span{font-size:15px}.student-credit-total>strong{display:block;font-size:32px;margin:8px 0}.student-credit-total strong small{font-size:16px}.student-credit-total p,.student-credit-explanation{font-size:13px;line-height:1.65}.student-credit-total button{margin-top:14px;min-height:44px}.student-credit-sources{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.student-credit-sources section{padding:17px;border:1px solid #d9e5dc;border-radius:14px;background:#fff}.student-credit-sources h3{font-size:15px;margin:0 0 10px}.student-credit-sources section>b{font-size:25px}.student-credit-sources b small{font-size:12px}.student-credit-sources p{font-size:13px;margin:8px 0;line-height:1.65}.student-credit-sources small{display:block;font-size:12px;line-height:1.6;color:#667b71}.student-credit-explanation{color:#60766a;margin:14px 0 22px}.credit-topup-list article{padding:17px 0;border-bottom:1px solid var(--line)}.credit-topup-list time,.credit-topup-list small{display:block;font-size:12px;color:#657a70;margin:6px 0;line-height:1.6}.credit-topup-list p{overflow-wrap:anywhere}.credit-topup-list .form-actions{flex-wrap:wrap}.credit-history small{display:block;line-height:1.6}@media(max-width:600px){.student-credit-sources{grid-template-columns:1fr}.student-credit-total>strong{font-size:29px}}

/* Platform overview: compact metrics, full explanations live on detail pages. */
.platform-credit-compact{margin:0 0 14px;border:1px solid #cee2d8;border-radius:16px;background:#edf6f0;overflow:hidden}.platform-credit-summary-link{display:block;width:100%;padding:14px 16px;background:transparent;text-align:left;color:#205247;cursor:pointer}.platform-credit-mini-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 16px;gap:12px;align-items:center}.platform-credit-mini-grid>span:not(.platform-credit-mini-arrow){display:flex;flex-direction:column;gap:3px;min-width:0}.platform-credit-mini-grid small{font-size:12px;color:#5e796d}.platform-credit-mini-grid b{font-size:25px;line-height:1.2;overflow-wrap:anywhere;letter-spacing:-.4px}.platform-credit-mini-grid em{font-style:normal;font-size:12px;font-weight:500;letter-spacing:0}.platform-credit-mini-arrow{font-size:27px;font-weight:400;color:#75988b}.platform-credit-mini-warning{display:block;margin-top:9px;padding-top:8px;border-top:1px solid #d8e6dc;font-size:12px;line-height:1.4;color:#8b723d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.platform-credit-summary-link:focus-visible,.platform-stats>.platform-stat:focus-visible{outline:2px solid #137c70;outline-offset:-4px}.platform-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.platform-stats>.platform-stat{flex-direction:row;align-items:center;justify-content:center;gap:7px;padding:12px 6px;min-height:52px;border-radius:12px;cursor:pointer}.platform-stats>.platform-stat>b{font-size:20px;line-height:1.1;overflow-wrap:anywhere;min-width:0}.platform-stats>.platform-stat>span{display:flex;flex:none}.platform-stats>.platform-stat .icon{width:19px;height:19px}.platform-stats>.platform-stat:hover,.platform-credit-summary-link:hover{background:#e4f1e9}@media(max-width:359px){.platform-stats{gap:5px}.platform-stats>.platform-stat{gap:5px;padding:11px 4px}.platform-stats>.platform-stat>b{font-size:18px}.platform-stats>.platform-stat .icon{width:17px;height:17px}}

/* Icon-only mobile navigation across roles; retain full accessible names. */
body[data-role]{--nav-height:56px}body[data-role] .bottom-nav{min-height:calc(56px + env(safe-area-inset-bottom,0px));padding:4px 5px calc(4px + env(safe-area-inset-bottom,0px));align-items:center}body[data-role] .bottom-nav button{min-height:48px;min-width:48px;gap:0;padding:4px 8px;border-radius:12px}body[data-role] .bottom-nav button>span{display:flex;align-items:center;justify-content:center;width:40px;height:36px;border-radius:12px}body[data-role] .bottom-nav .icon{width:24px;height:24px}body[data-role] .bottom-nav button.active>span{background:#e5f3ec}body[data-role] .bottom-nav button:focus-visible{outline:2px solid var(--teal);outline-offset:1px}

.login-card .auth-field-label{display:flex;align-items:center;gap:8px}.login-card .auth-field-label .icon{width:19px;height:19px;color:#518b78;flex:none}.login-card select:disabled{color:#809087;background:#f0f4ef}

.login-card .auth-input-icon{position:relative;display:flex;align-items:center}.login-card .auth-input-icon>svg{display:block;position:absolute;left:13px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:#628b7b;pointer-events:none}.login-card .auth-input-icon>input{padding-left:43px!important;min-width:0;width:100%}.student-pending-approval{padding:24px;background:#fff;border:1px solid #dce8de;border-radius:20px;margin:6px 0 20px}.pending-approval-icon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;background:#e7f3eb;color:#237a69;border-radius:18px;margin-bottom:16px}.pending-approval-icon .icon{width:28px;height:28px}.pending-approval-badge{font-size:12px;color:#28745b;background:#edf6ef;padding:5px 10px;border-radius:20px}.student-pending-approval h1{font-size:25px;line-height:1.35;margin:16px 0 12px}.student-pending-approval>p{font-size:14px;line-height:1.7;color:#62766c}.student-pending-approval dl{padding:14px 0;margin:14px 0;border-block:1px solid #e2eae4}.student-pending-approval dl>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:6px 0;font-size:14px}.student-pending-approval dt{color:#718477}.student-pending-approval dd{margin:0;overflow-wrap:anywhere}.pending-approval-guide{padding:16px;background:#f3f8f2;border-radius:14px;font-size:14px;line-height:1.7}.pending-approval-guide ol{padding-left:21px;margin:10px 0 0}.pending-approval-guide li+li{margin-top:10px}.pending-approval-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:18px}.pending-approval-actions button{min-height:44px;font-size:14px}@media(max-width:400px){.student-pending-approval{padding:19px}.student-pending-approval h1{font-size:23px}.student-pending-approval dl>div{grid-template-columns:95px minmax(0,1fr)}}

.class-member-summary{display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:#5d776a;margin:0 0 15px}.class-member-summary span+span{color:#94723b}.class-member-search{display:block;font-size:14px}.class-member-search input{display:block;width:100%;min-height:46px;margin-top:7px;font-size:16px}.class-member-order-note{font-size:12px;color:#7b8b80;margin:12px 0}.class-member-list{border:1px solid #dbe7df;border-radius:16px;padding:0 15px;background:white}.class-member-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e5ece7}.class-member-row:last-child{border-bottom:0}.class-member-avatar{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;background:#e6f1e7;color:#497863;font-size:15px;font-weight:700}.class-member-copy{flex:1;min-width:0}.class-member-copy b{display:block;font-size:16px;line-height:1.45;overflow-wrap:anywhere}.class-member-copy small{display:block;font-size:12px;color:#758579;margin-top:3px}.class-member-approve{font-size:13px;color:#137664;background:#e9f5ed;border:1px solid #cce1d4;border-radius:10px;padding:8px 13px;min-height:44px;flex:none}.class-member-state{display:grid;place-items:center;min-width:44px;min-height:44px;border-radius:50%;background:transparent;flex:none}.class-member-state.is-active{color:#26846a}.class-member-state.is-blocked{color:#9a7971}.class-member-state .icon{width:22px;height:22px}.class-member-state:hover{background:#f0f5ef}.class-member-state:focus-visible,.class-member-approve:focus-visible{outline:2px solid #137c70;outline-offset:2px}

.platform-fund-balance{padding:22px;border:1px solid #cce1d8;border-radius:20px;background:#eaf5f0;display:grid;gap:8px;color:#215448}.platform-fund-balance strong{font-size:32px;line-height:1.2}.platform-fund-balance strong small{font-size:16px;font-weight:600}.platform-fund-balance>small{color:#607b71}.platform-fund-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:10px;margin:16px 0 24px}.platform-fund-actions button{display:flex;align-items:center;justify-content:center;gap:7px;font-size:14px;padding:12px 8px;min-height:46px}.platform-fund-actions svg{width:19px;height:19px;flex-shrink:0}.platform-fund-form{max-width:650px;margin-inline:auto}.platform-fund-form label{display:block;margin:16px 0}.platform-fund-form h2{font-size:20px}.credit-history .credit-in{color:#14785b}.credit-history .credit-out{color:#775b3f}
