.student-portal-root{flex-direction:column;min-height:100vh;display:flex}.student-container{width:100%;max-width:72rem;margin:0 auto;padding-left:1rem;padding-right:1rem}@media (min-width:640px){.student-container{padding-left:1.5rem;padding-right:1.5rem}}.student-header{z-index:2;background:#fff;position:relative;box-shadow:0 1px #0000000f}.student-header-bar-inner{align-items:center;gap:1rem;padding-top:.75rem;padding-bottom:.75rem;display:flex}.student-header-text{flex:1;min-width:0}.student-header-org{color:inherit;margin:0;font-size:.8125rem;font-weight:600;line-height:1.3}.student-header-label{color:#0000008c;margin:.1rem 0 0;font-size:.75rem}.student-header-help{white-space:nowrap;flex-shrink:0;font-size:.8125rem;font-weight:500;text-decoration:none}.student-header-help:hover{text-decoration:underline}.student-portal-bg{flex:1;position:relative;overflow:hidden}.student-portal-bg:before,.student-portal-bg:after{display:none}.student-main-area{z-index:1;justify-content:center;align-items:center;min-height:100%;padding:2rem 1rem 2.5rem;display:flex;position:relative}.student-login-card{width:100%;max-width:22rem;box-shadow:none;background:#fff;border:1px solid #e5e7eb;padding:1.5rem 1.25rem}@media (min-width:640px){.student-login-card{padding:1.75rem 1.5rem}}.student-login-title{text-align:center;margin:0;font-size:1.125rem;font-weight:700}.student-login-hint{text-align:center;color:#666;margin:.35rem 0 0;font-size:.8125rem}.student-login-card .student-form-stack{margin-top:1.25rem}.student-footer{z-index:2;margin-top:auto;position:relative}.student-footer-minimal{color:#6b7280;background:#fff;border-top:1px solid #e8e8e8}.student-footer-minimal-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding-top:.875rem;padding-bottom:.875rem;font-size:.75rem;display:flex}.student-footer-copy{margin:0}.student-footer-minimal-links{flex-wrap:wrap;gap:.35rem 1rem;margin:0;padding:0;list-style:none;display:flex}.student-footer-minimal-links a{color:inherit;text-decoration:none}.student-footer-minimal-links a:hover{text-decoration:underline}.student-footer-links{margin:0;padding:0;list-style:none}.student-footer-links li+li{margin-top:.4rem}.student-footer-links a{font-size:.875rem;font-weight:600;text-decoration:none}.student-footer-links a:hover{text-decoration:underline}.student-footer-base{padding:.75rem 0}.student-footer-base p{opacity:.85;margin:0;font-size:.6875rem}.student-form-stack{flex-direction:column;gap:1rem;display:flex}.student-label{color:#333;margin-bottom:.35rem;font-size:.8125rem;font-weight:600;display:block}.student-label-inline{margin-bottom:0}.student-label-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.student-input{box-sizing:border-box;background:#fff;border:1px solid #d4d4d4;border-radius:3px;outline:none;width:100%;min-height:2.625rem;padding:.5rem .75rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.student-btn-primary{color:#fff;cursor:pointer;border:none;border-radius:3px;width:100%;min-height:2.625rem;margin-top:.25rem;font-size:.9375rem;font-weight:600;transition:filter .15s}.student-btn-primary:hover{filter:brightness(.94)}.student-text-link{font-size:.8125rem;font-weight:600;text-decoration:none}.student-text-link:hover{text-decoration:underline}.student-login-demo-link{text-align:center;color:var(--student-accent,#333);margin-top:1rem;font-size:.8125rem;font-weight:600;text-decoration:none;display:block}.student-login-demo-link:hover{text-decoration:underline}@keyframes student-rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes student-sidebar-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes student-pulse-soft{0%,to{opacity:1}50%{opacity:.72}}.student-dashboard-main{z-index:1;padding:1.25rem 0 2rem;position:relative}.student-dashboard-layout-wrap{max-width:72rem}.student-dashboard-shell{gap:1.25rem;display:grid}@media (min-width:960px){.student-dashboard-shell{grid-template-columns:15rem minmax(0,1fr);align-items:start;gap:2rem}}.student-sidebar{background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;display:flex}@media (min-width:960px){.student-sidebar{position:sticky;top:1rem}}.student-sidebar-inner{flex:1;padding:1.25rem 1rem 1rem}.student-sidebar-profile{text-align:left;border-bottom:1px solid #eee;padding-bottom:1rem}.student-profile-avatar{background:var(--student-accent,#333);color:#fff;border-radius:6px;place-items:center;width:2.5rem;height:2.5rem;font-size:.75rem;font-weight:600;display:inline-grid}.student-sidebar-name{color:#111827;margin:.65rem 0 0;font-size:.9375rem;font-weight:600}.student-sidebar-fields{text-align:left;gap:.7rem;margin:1rem 0 0;font-size:.8125rem;display:grid}.student-sidebar-fields dt{color:#9ca3af;margin:0;font-size:.6875rem;font-weight:500}.student-sidebar-fields dd{color:#374151;word-break:break-word;margin:.2rem 0 0;font-weight:600}.student-sidebar-password{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.student-sidebar-link-btn{color:var(--student-accent,#333);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:700;text-decoration:underline;transition:opacity .15s}.student-sidebar-link-btn:hover{opacity:.8}.student-sidebar-subjects{padding-top:1rem}.student-sidebar-heading{color:#374151;margin:0;font-size:.75rem;font-weight:600}.student-subject-nav{flex-direction:column;gap:.4rem;margin:.65rem 0 0;padding:0;list-style:none;display:flex}.student-subject-nav-btn{text-align:left;cursor:pointer;background:0 0;border:none;border-left:2px solid #0000;border-radius:0;width:100%;padding:.5rem .5rem .5rem .65rem}.student-subject-nav-btn:hover{background:#f9fafb}.student-subject-nav-btn.is-active{border-left-color:var(--student-accent,#333);background:#f9fafb}.student-subject-nav-code{color:var(--student-accent,#333);font-size:.6875rem;font-weight:600;display:block}.student-subject-nav-name{color:#1f2937;margin-top:.2rem;font-size:.8125rem;font-weight:600;line-height:1.35;display:block}.student-form-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0 0 .75rem;padding:.65rem .75rem;font-size:.8125rem}.student-form-success{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;margin:0 0 .75rem;padding:.65rem .75rem;font-size:.8125rem}.student-submit-blocked{color:#6b7280;background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;margin:0;padding:.75rem;font-size:.8125rem}.student-submission-stack{flex-direction:column;gap:.65rem;display:flex}.student-file-input{width:100%;font-size:.8125rem}a.student-download-card{color:inherit;text-decoration:none}.student-file-selected{color:#4b5563;margin:.35rem 0 0;font-size:.75rem}.student-upload-progress{flex-direction:column;gap:.35rem;display:flex}.student-upload-progress-label{color:#374151;font-size:.75rem;font-weight:600}.student-upload-progress-track{background:#e5e7eb;border-radius:999px;height:.5rem;overflow:hidden}.student-upload-progress-bar{background:linear-gradient(90deg, var(--student-accent,#333), color-mix(in srgb, var(--student-accent,#333) 70%, #fff));border-radius:999px;height:100%;transition:width .15s ease-out}.student-upload-progress-bar.is-indeterminate{animation:1.1s ease-in-out infinite student-progress-indeterminate;width:40%!important}@keyframes student-progress-indeterminate{0%{transform:translate(-120%)}to{transform:translate(280%)}}.student-sidebar-signout{color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;gap:.45rem;min-height:2.25rem;margin:0 1rem 1rem;font-size:.8125rem;font-weight:500;text-decoration:none;display:flex}.student-sidebar-signout:hover{background:#f9fafb}.student-dashboard-panel{background:#fff;border:1px solid #e5e7eb;border-radius:6px;min-height:12rem}.student-panel-head{border-bottom:1px solid #eee;padding:1.25rem 1.25rem 1rem}.student-panel-code{color:var(--student-accent,#333);margin:0;font-size:.75rem;font-weight:500}.student-panel-title{color:#111827;margin:.2rem 0 0;font-size:1.125rem;font-weight:600}.student-panel-subtitle{color:#6b7280;margin:.35rem 0 0;font-size:.8125rem}.student-how-it-works{color:#4b5563;background:linear-gradient(#fafbfd 0%,#f4f6f9 100%);border:1px solid #e8ecf2;border-radius:8px;align-items:flex-start;gap:.65rem;margin:.75rem 1.25rem;padding:.75rem .85rem;font-size:.8125rem;line-height:1.5;display:flex}.student-how-it-works-icon{color:var(--student-accent,#333);flex-shrink:0;margin-top:.1rem}.student-how-it-works strong{color:#1f2937}.student-panel-empty{text-align:center;color:#666;padding:2rem 1.125rem}.student-table-scroll{padding:0 1.25rem 1rem;overflow-x:auto}.student-assignment-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;font-size:.8125rem}.student-col-question{width:24%}.student-col-remarks{width:26%}.student-col-deadline{width:24%}.student-col-submission{width:26%}.student-assignment-table th{text-align:left;vertical-align:middle;letter-spacing:.03em;text-transform:uppercase;color:#6b7280;white-space:nowrap;background:#fafbfc;border-bottom:1px solid #e8eaef;padding:.85rem .75rem;font-size:.6875rem;font-weight:700}.student-assignment-table th:first-child{padding-left:0}.student-assignment-table th:last-child{padding-right:0}.student-th-inner{align-items:center;gap:.4rem;display:inline-flex}.student-th-icon{color:var(--student-accent,#333);opacity:.85}.student-assignment-table tbody tr{transition:background .2s}.student-assignment-table tbody tr:hover{background:#fafbfc}.student-assignment-table td{vertical-align:top;color:#374151;border-bottom:1px solid #f0f1f4;padding:.85rem .75rem;line-height:1.5}.student-assignment-table td:first-child{padding-left:0}.student-assignment-table td:last-child{padding-right:0}.student-table-cell-fill{flex-direction:column;align-items:stretch;min-height:7.75rem;display:flex}.student-assignment-block{box-sizing:border-box;width:100%;min-height:7.75rem}.student-remarks-block{color:#374151;background:#fafbfc;border:1px solid #eef0f3;border-radius:10px;flex:1;align-items:center;width:100%;margin:0;padding:.85rem 1rem;font-size:.8125rem;line-height:1.55;display:flex}.student-download-card{box-sizing:border-box;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:flex-start;align-items:center;gap:.65rem;width:100%;padding:.65rem .75rem;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.student-download-card:hover{border-color:color-mix(in srgb, var(--student-accent,#333) 35%, #e5e7eb);transform:translateY(-2px);box-shadow:0 6px 18px #00000014}.student-download-card:active{transform:translateY(0)}.student-download-card-icon{border-radius:8px;flex-shrink:0;place-items:center;width:2.25rem;height:2.25rem;display:grid}.student-download-card-icon--question{background:color-mix(in srgb, var(--student-accent,#333) 10%, #fff);color:var(--student-accent,#333)}.student-download-card-icon--success{color:#15803d;background:#ecfdf3}.student-download-card-text{flex:1;min-width:0}.student-download-card-kicker{letter-spacing:.04em;text-transform:uppercase;color:#9ca3af;font-size:.625rem;font-weight:700;display:block}.student-download-card-name{color:#1f2937;word-break:break-word;margin-top:.15rem;font-size:.8125rem;font-weight:600;display:block}.student-download-card-action{color:var(--student-accent,#333);opacity:.7;flex-shrink:0;transition:opacity .2s,transform .2s}.student-download-card:hover .student-download-card-action{opacity:1;transform:translateY(2px)}.student-download-card--submitted{background:#fafffc;border-color:#bbf7d0}.student-submit-zone{border-top:1px solid #f0f0f0;flex-direction:column;gap:.5rem;margin-top:.25rem;padding-top:.75rem;display:flex}.student-submit-zone-head{display:block}.student-submit-zone-icon{display:none}.student-submit-zone-title{color:#374151;margin:0;font-size:.8125rem;font-weight:500}.student-submit-zone-hint{color:#9ca3af;margin:.2rem 0 0;font-size:.75rem}.student-submit-btn{border:1px solid var(--student-accent,#333);width:fit-content;min-height:2rem;color:var(--student-accent,#333);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:.35rem;padding:0 .85rem;font-size:.8125rem;font-weight:500;display:inline-flex}.student-submit-btn:hover{background:#f9fafb}.student-submit-btn-icon{width:1rem;height:1rem}.student-deadline-card{background:#fafbfc;border:1px solid #e8eaef;border-radius:10px;flex-direction:column;justify-content:space-between;gap:.55rem;padding:.65rem .75rem;transition:border-color .2s,box-shadow .2s;display:flex}.student-deadline-top{align-items:flex-start;gap:.55rem;display:flex}.student-deadline-card.is-pending{border-left:3px solid #f59e0b}.student-deadline-card.is-submitted{border-left:3px solid #22c55e}.student-deadline-card.is-overdue{background:snow;border-left:3px solid #ef4444}.student-deadline-icon-wrap{width:2rem;height:2rem;color:var(--student-accent,#333);background:#fff;border-radius:8px;place-items:center;display:grid;box-shadow:0 1px 3px #0000000f}.student-deadline-body{flex:1;min-width:0}.student-deadline-kicker{letter-spacing:.04em;text-transform:uppercase;color:#9ca3af;font-size:.625rem;font-weight:700;display:block}.student-deadline-date{color:#111827;letter-spacing:-.01em;margin-top:.2rem;font-size:.9375rem;font-weight:700;display:block}.student-deadline-time{color:#6b7280;margin-top:.1rem;font-size:.75rem;font-weight:600;display:block}.student-status-chip{letter-spacing:.03em;text-transform:uppercase;text-align:center;border-radius:6px;justify-content:center;align-items:center;width:100%;margin-top:auto;padding:.35rem .5rem;font-size:.625rem;font-weight:700;display:flex}.student-status-chip.is-pending{color:#b45309;background:#fffbeb;animation:2.5s ease-in-out infinite student-pulse-soft}.student-status-chip.is-submitted{color:#15803d;background:#ecfdf3}.student-status-chip.is-overdue{color:#b91c1c;background:#fef2f2}.student-lms-list{margin:0;padding:0;list-style:none}.student-lms-item{border-bottom:1px solid #eee;padding:1.25rem}.student-lms-item:last-child{border-bottom:none}.student-lms-item-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem 1rem;display:flex}.student-lms-item-title{color:#111827;margin:0;font-size:.9375rem;font-weight:600;line-height:1.35}.student-lms-status{white-space:nowrap;border-radius:4px;padding:.2rem .5rem;font-size:.6875rem;font-weight:500}.student-lms-status.is-pending{color:#92400e;background:#fef3c7}.student-lms-status.is-submitted{color:#166534;background:#dcfce7}.student-lms-status.is-overdue{color:#991b1b;background:#fee2e2}.student-lms-remarks{color:#4b5563;margin:.65rem 0 0;font-size:.8125rem;line-height:1.55}.student-lms-due{color:#374151;margin:.5rem 0 0;font-size:.8125rem}.student-lms-due-label{color:#9ca3af;margin-right:.35rem}.student-lms-actions{flex-direction:column;align-items:flex-start;gap:.35rem;margin-top:.75rem;display:flex}.student-lms-link{color:var(--student-accent,#333);font-size:.8125rem;font-weight:500;text-decoration:none}.student-lms-link:hover{text-decoration:underline}.student-lms-link--secondary{color:#15803d}.student-lms-muted{color:#9ca3af;font-size:.8125rem}@media (max-width:720px){.student-assignment-table thead{display:none}.student-assignment-table tr{border-bottom:1px solid #eee;padding:.75rem 0;display:block}.student-assignment-table td{border:none;grid-template-columns:7.75rem minmax(0,1fr);gap:.35rem .75rem;padding:.45rem 1rem;display:grid}.student-assignment-table td:before{content:attr(data-label);color:#888;text-transform:uppercase;font-size:.6875rem;font-weight:700}.student-table-scroll{padding-left:0;padding-right:0}.student-assignment-block{min-height:0}}@media (prefers-reduced-motion:reduce){.student-dashboard-shell,.student-sidebar,.student-dashboard-panel,.student-status-chip.is-pending{animation:none}.student-subject-nav-btn:hover,.student-download-card:hover,.student-submit-btn:hover,.student-sidebar-signout:hover{transform:none}}
