.student-portal{min-height:100vh;background:linear-gradient(145deg,#f1f8f3,#f7f8fb 52%,#edf4ff);color:#17251d}
.student-header,.student-main,.student-footer{width:min(1040px,calc(100% - 32px));margin-inline:auto}
.student-header{display:flex;align-items:center;justify-content:space-between;padding:18px 0}
.student-header>a{color:#174f38;text-decoration:none;font-weight:700}
.student-brand{display:flex;align-items:center;gap:12px}
.student-brand img{width:42px;height:42px;border-radius:12px}
.student-brand span,.student-brand small{display:block}
.student-brand small{font-size:.78rem;color:#64736a;font-weight:500;margin-top:3px}
.student-main{padding:30px 0 56px}
.student-login-panel{width:min(470px,100%);margin:7vh auto;background:#fff;border:1px solid #e1e9e3;border-radius:24px;padding:clamp(24px,5vw,42px);box-shadow:0 20px 60px #163c2812}
.student-eyebrow{font-size:.72rem;letter-spacing:.13em;font-weight:800;color:#33825a}
.student-login-panel h1,.student-welcome h1{margin:.5rem 0;font-size:clamp(1.7rem,5vw,2.4rem)}
.student-login-panel>p,.student-welcome p{color:#637168;line-height:1.6}
.student-login-panel form,.student-admin-form{display:grid;gap:14px;margin:24px 0 16px}
.student-login-panel label,.student-admin-form label{display:grid;gap:7px;font-size:.9rem;font-weight:650}
.student-login-panel input,.student-admin-form input,.student-quiz select{width:100%;border:1px solid #d5dfd8;border-radius:10px;padding:12px;font:inherit;background:#fff}
.student-login-panel .button{width:100%;justify-content:center}
.student-login-panel>small,.student-privacy{color:#69776f}
.student-error,.student-global-error{color:#a12727}
.student-welcome{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0 28px}
.student-content{display:grid;gap:16px}
.student-activity,.student-quiz{background:#fff;border:1px solid #e0e8e2;border-radius:18px;padding:clamp(18px,3vw,26px);box-shadow:0 10px 32px #163c2809}
.student-activity h2,.student-quiz h2{margin:.25rem 0 .45rem}
.student-activity p,.student-quiz p{color:#647168;line-height:1.55}
.student-activity-meta{font-size:.82rem;color:#54715f}
.student-activity-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.student-result{padding:14px;border-radius:12px;background:#eaf6ed;color:#174f38;font-weight:700}
.student-learning-media{display:block;max-width:100%;max-height:360px;object-fit:contain;border-radius:14px;margin:18px auto;background:#f2f5f3}
.student-question{border:1px solid #e0e8e2;border-radius:14px;padding:16px;margin:14px 0}
.student-question legend{font-weight:700;padding:0 5px}
.student-question label{display:flex;gap:9px;align-items:flex-start;padding:8px 4px;cursor:pointer}
.student-question input{margin-top:4px}
.student-question-meta{display:block;color:#54715f;font-size:.78rem;font-weight:700;margin:4px 0 10px}
.student-essay-answer{display:grid!important;gap:8px!important;margin-top:12px}
.student-essay-answer textarea{width:100%;resize:vertical;border:1px solid #d5dfd8;border-radius:10px;padding:12px;font:inherit;line-height:1.55}
.student-quiz-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.student-empty{padding:30px;text-align:center;background:#fff;border:1px dashed #cbd9ce;border-radius:16px;color:#627167}
.student-privacy{margin-top:24px;font-size:.86rem;line-height:1.6}
.student-footer{text-align:center;padding:20px;color:#647168;font-size:.82rem}
@media(max-width:600px){.student-header,.student-main,.student-footer{width:min(100% - 24px,1040px)}.student-main{padding-top:12px}.student-welcome{align-items:flex-start}.student-welcome .button{flex:none}.student-login-panel{margin:4vh auto}}
.student-welcome-actions{display:flex;align-items:center;gap:8px;flex:none}.student-notification-badge{display:inline-grid;min-width:17px;height:17px;padding:0 4px;place-items:center;border-radius:20px;background:#b84338;color:#fff;font-size:10px;font-weight:750}.student-notification-panel{margin:-12px 0 18px;padding:16px;border:1px solid #dfe9e2;border-radius:16px;background:#fff;box-shadow:0 10px 30px #163c2809}.student-notification-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.student-notification-heading h2{margin:0;color:#20382b;font-size:1rem}.student-notification-heading p{margin:4px 0 0;color:#728078;font-size:.8rem}.student-notification-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:9px}.student-notification{padding:12px;border:1px solid #e8eee9;border-radius:11px;background:#fff}.student-notification.unread{border-left:3px solid #278458;background:#f8fbf9}.student-notification small,.student-notification-read{color:#7b887f;font-size:.72rem}.student-notification h3{margin:6px 0;color:#263b2e;font-size:.94rem}.student-notification p{margin:0 0 10px;color:#647168;font-size:.84rem;line-height:1.55;white-space:pre-wrap}.student-notification-read{font-weight:650}.student-notification .button{font-size:.75rem}
@media(max-width:600px){.student-welcome{gap:10px;flex-wrap:wrap}.student-welcome-actions{width:100%;justify-content:flex-end}.student-notification-heading{align-items:flex-start}.student-notification-list{grid-template-columns:1fr}}
.student-calendar{display:grid;gap:8px;padding:16px;border:1px solid #dfe9e2;border-radius:16px;background:#fff}.student-calendar h2{margin:4px 0;color:#20382b;font-size:1rem}.student-calendar>article{display:grid;gap:4px;padding:10px;border:1px solid #edf1ed;border-radius:9px}.student-calendar>article small{color:#7b887f;font-size:.72rem}.student-calendar>article strong{color:#2d4536;font-size:.9rem}.student-calendar>article p{margin:0;color:#647168;font-size:.82rem;line-height:1.5;white-space:pre-wrap}
.student-login-layout{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.82fr);align-items:center;gap:clamp(34px,7vw,100px);width:min(1120px,100%);min-height:min(690px,calc(100vh - 155px));margin:0 auto;padding:clamp(24px,5vw,62px);overflow:hidden;border:1px solid #deebe2;border-radius:32px;background:linear-gradient(125deg,#eff9f2 0%,#f6fbf7 50%,#fff8e9 100%);box-shadow:0 28px 80px #173a2812}
.student-login-story{position:relative;z-index:1;max-width:510px}
.student-story-label{display:inline-flex;align-items:center;gap:8px;color:#267254;font-size:.72rem;font-weight:850;letter-spacing:.13em}
.student-story-label>span{display:grid;width:26px;height:26px;place-items:center;border-radius:9px;background:#d9f0e2;color:#1b7651}
.student-login-story h1{max-width:530px;margin:20px 0 15px;color:#173c2c;font-size:clamp(2.4rem,5vw,4.7rem);line-height:1.04;letter-spacing:-.06em}
.student-login-story h1 em{color:#c17a36;font-family:Georgia,serif;font-weight:500}
.student-login-story>p{max-width:440px;margin:0;color:#61756a;font-size:1.02rem;line-height:1.75}
.student-story-art{position:relative;display:grid;width:min(100%,400px);height:190px;place-items:center;margin:15px 0 6px}
.student-art-orbit{position:absolute;width:190px;height:145px;border:1px dashed #b6d6c1;border-radius:50%;transform:rotate(-18deg)}
.student-art-book{position:relative;z-index:1;display:grid;width:138px;height:138px;place-items:center;border:1px solid #d9e8d9;border-radius:42% 58% 47% 53%;background:linear-gradient(145deg,#fff 8%,#e0f2e5);box-shadow:0 18px 34px #2c6e4930;font-size:4.7rem;transform:rotate(-8deg)}
.student-art-pencil{position:absolute;z-index:2;right:26%;bottom:23px;display:grid;width:44px;height:44px;place-items:center;border:4px solid #f1fbf3;border-radius:15px;background:#efb556;color:#fff;font-size:1.7rem;transform:rotate(12deg)}
.student-art-spark{position:absolute;z-index:2;color:#d89536}
.student-art-spark-one{top:12px;left:28%;font-size:1.7rem}
.student-art-spark-two{right:25%;top:30px;color:#49906c;font-size:1.35rem}
.student-story-perks{display:flex;flex-wrap:wrap;gap:9px}
.student-story-perks>span{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #dfebe1;border-radius:999px;background:#ffffffb8;color:#496452;font-size:.75rem}
.student-story-perks i{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:#e5f4e9;color:#28714e;font-size:.59rem;font-style:normal;font-weight:800}
.student-story-perks b{font-weight:700}
.student-login-panel{width:100%;max-width:410px;margin:0 auto;padding:clamp(24px,3vw,36px);border:1px solid #e4ebe4;border-radius:24px;background:#fff;box-shadow:0 18px 48px #163c2812}
.student-login-mark{display:grid;width:44px;height:44px;place-items:center;margin:0 0 19px;border-radius:15px;background:linear-gradient(145deg,#e1f4e7,#fff0cf);color:#367953;font-size:1.35rem}
.student-login-panel .student-eyebrow{letter-spacing:.1em}
.student-login-panel h2{margin:9px 0;color:#20392b;font-size:1.65rem;letter-spacing:-.04em}
.student-login-panel>p{margin:0;color:#6b786f;font-size:.89rem;line-height:1.6}
.student-login-panel form{gap:12px;margin:22px 0 14px}
.student-login-panel label{gap:7px;color:#394e40;font-size:.82rem;font-weight:750}
.student-login-panel input{height:48px;padding:0 13px;border:1px solid #dbe5dc;border-radius:11px;background:#fcfdfc;color:#20392b;font:inherit;transition:border-color .15s,box-shadow .15s}
.student-login-panel input:focus{border-color:#4b9b70;box-shadow:0 0 0 4px #3995641a;outline:0}
.student-login-panel input::placeholder{color:#a0aaa2}
.student-login-panel .button{min-height:48px;border-radius:11px;font-size:.9rem;font-weight:800}
.student-login-panel form .button{justify-content:space-between;padding-inline:16px}
.student-login-panel form .button span:last-child{font-size:1.15rem;transition:transform .15s}
.student-login-panel form .button:hover span:last-child{transform:translateX(3px)}
.student-login-panel>small{display:block;color:#6c7d70;font-size:.76rem;line-height:1.5}
.student-login-footnote{display:flex;align-items:center;gap:8px;margin-top:18px;padding:11px 12px;border-radius:10px;background:#f4f8f3;color:#65766a;font-size:.72rem;line-height:1.45}
.student-dashboard-hero{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:220px;padding:clamp(24px,4vw,40px);overflow:hidden;border:1px solid #d9ebe0;border-radius:24px;background:linear-gradient(112deg,#e5f6e9 0%,#f0f8e9 54%,#fff0d6 100%)}
.student-dashboard-copy{position:relative;z-index:1;max-width:540px}
.student-dashboard-copy h2{margin:13px 0 8px;color:#193e2c;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.045em}
.student-dashboard-copy>p{max-width:480px;margin:0;color:#5d7164;font-size:.92rem;line-height:1.65}
.student-hero-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:#216b4b;font-size:.82rem;font-weight:800;text-decoration:none}
.student-dashboard-stats{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(68px,1fr));gap:9px;min-width:min(100%,340px)}
.student-dashboard-stats article{display:grid;gap:6px;min-height:100px;align-content:center;justify-items:center;padding:11px 8px;border:1px solid #ffffffc7;border-radius:16px;background:#ffffffb5;text-align:center}
.student-dashboard-stats article>span{color:#36845c;font-size:1.12rem}
.student-dashboard-stats strong{color:#1d5238;font-size:1.45rem;line-height:1}
.student-dashboard-stats small{color:#64786a;font-size:.64rem;line-height:1.25}
.student-dashboard-decoration{position:absolute;z-index:0;right:35%;top:-47px;color:#ffffff99;font-size:12rem;line-height:1}
.student-section-heading{padding:9px 2px 0}
.student-section-heading h2{margin:7px 0;color:#213b2d;font-size:1.55rem;letter-spacing:-.035em}
.student-section-heading p{margin:0;color:#6a786e;font-size:.86rem}
.student-activity{transition:transform .16s ease,box-shadow .16s ease}
.student-activity:hover{transform:translateY(-2px);box-shadow:0 16px 38px #163c2810}
.student-activity-topline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.student-activity-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:999px;background:#fff3dc;color:#93621d;font-size:.7rem;font-weight:800}
.student-activity-badge.is-done{background:#e8f5eb;color:#287047}
.student-calendar{padding:20px;border-radius:18px;box-shadow:0 8px 28px #163c2808}
.student-calendar>article{padding:12px;border-radius:12px;background:#fbfdfb}
.student-result{display:inline-block;background:#eaf6ed}
@media(max-width:800px){.student-login-layout{grid-template-columns:minmax(0,1fr);gap:24px;min-height:0;padding:clamp(20px,5vw,38px)}.student-login-story{max-width:none}.student-login-story h1{max-width:640px;font-size:clamp(2.5rem,9vw,4rem)}.student-story-art{position:absolute;right:0;top:8px;width:210px;height:160px;opacity:.72}.student-art-book{width:110px;height:110px;font-size:3.6rem}.student-art-orbit{width:160px;height:120px}.student-art-pencil{right:20%;bottom:8px}.student-art-spark-one{left:15%}.student-art-spark-two{right:15%}.student-story-perks{position:relative;z-index:2}.student-login-panel{max-width:none}.student-dashboard-hero{align-items:flex-start;flex-direction:column}.student-dashboard-stats{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.student-login-layout{width:calc(100% + 24px);margin:0 -12px;padding:25px 18px;border-radius:0 0 26px 26px}.student-login-story h1{max-width:400px;margin-top:16px;font-size:2.45rem}.student-login-story>p{max-width:390px;font-size:.9rem}.student-story-art{right:-20px;top:48px;width:150px;height:115px;opacity:.38}.student-art-book{width:88px;height:88px;font-size:2.8rem}.student-art-orbit{width:125px;height:90px}.student-art-pencil{right:12%;bottom:2px;width:34px;height:34px}.student-story-perks{gap:6px}.student-story-perks>span{padding:6px 8px;font-size:.65rem}.student-story-perks i{width:18px;height:18px;font-size:.52rem}.student-login-panel{padding:24px 19px}.student-dashboard-hero{padding:23px 18px}.student-dashboard-stats{gap:6px}.student-dashboard-stats article{min-height:88px;padding:8px 5px}.student-dashboard-stats small{font-size:.58rem}.student-activity-topline{align-items:flex-start}.student-activity-badge{font-size:.64rem}}
@media(prefers-reduced-motion:reduce){.student-activity,.student-login-panel input,.student-hero-link{transition:none}}
