:root{display:flex;flex-direction:column}html,body,:root{height:100%}.body-content{display:flex;flex-direction:row}.page-content{width:100%;display:flex;flex-direction:column;justify-content:center;padding:1rem;overflow:auto;margin-left:250px}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.home-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f9fafb;padding:1rem}.home-card{background:#fff;padding:2rem 3rem;border-radius:1rem;box-shadow:0 8px 20px #0000001a;text-align:center;max-width:500px}.home-card h1{font-size:2rem;color:#2563eb;margin-bottom:1rem}.home-card p{font-size:1rem;color:#374151;margin:.5rem 0}.home-card .note{font-size:.875rem;color:#6b7280;margin-top:1.5rem}.navbar{display:flex;flex-direction:column;align-items:center;width:250px;height:100vh;gap:1rem;background-color:#fff;top:0;padding:1rem 0 1.5rem;z-index:100;border-right-width:2px;position:fixed}.navbar-header{display:flex;flex-direction:row;gap:1rem;justify-content:center;align-items:center}h2{color:#000;font-weight:700;font-size:1.1rem}.navbar-nav-items{width:100%;display:flex;flex-direction:column;list-style:none;margin:0;padding:0;flex-grow:1;justify-content:flex-start;align-items:flex-start}.navbar-text{list-style:none;width:100%;height:60px;padding:8px 0 8px 8px}.navbar-text a{color:#000;width:97%;height:100%;display:flex;align-items:center;justify-content:flex-start;gap:1rem;border-radius:5px;padding:0 0 0 .25rem}span{font-size:18px}.navbar-nav-items li a:hover,.active a{background:#000;color:#fff}.logout-button{color:#000}.login-page{height:100vh;margin:auto;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f4f8,#d9e2ec);font-family:sans-serif}h2{margin:0;padding:0}.login-box{display:flex;flex-direction:column;align-items:center;background:#fff;border-radius:8px;box-shadow:0 8px 20px #0000001a;padding:2rem;width:90vw;max-width:275px}.login-form{display:flex;flex-direction:column}.input-fields{display:flex;flex-direction:column;gap:1rem;padding:2rem 0}.meeting-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;padding:1.5rem}.meeting-card{background:#fff;border-radius:12px;padding:1rem 1.25rem;box-shadow:0 2px 6px #00000014;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;will-change:transform}.meeting-card:hover{transform:scale(1.03);box-shadow:0 4px 12px #00000026}.meeting-title{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:#222}.meeting-info{font-size:.95rem;color:#444}.meeting-label{font-weight:500;color:#666;margin-bottom:.2rem}.cohort-carousel-wrapper{display:flex;align-items:center;flex-direction:column;gap:1rem;padding:0 1.5rem}.carousel-title{font-size:1.25rem;font-weight:600;color:#222;margin:0;overflow:hidden;max-height:100px;transition:opacity .3s ease,transform .3s ease,max-height .3s ease}.carousel-title.visible{opacity:1;transform:translateY(0);max-height:100px}.carousel-title.hidden{opacity:0;transform:translateY(-10px);pointer-events:none;max-height:0}.cohort-carousel-container{display:flex;align-items:center;justify-content:center;gap:1rem;overflow-x:auto;padding:.5rem 0;scrollbar-width:none}.cohort-carousel-container::-webkit-scrollbar{display:none}.cohort-item{cursor:pointer;padding:.5rem 1rem;border-radius:.5rem;white-space:nowrap;background-color:#e5e7eb;color:#1f2937;transition:background-color .2s ease}.cohort-item:hover{background-color:#d1d5db}.cohort-item.selected{background-color:#2563eb;color:#fff}.cohort-item.presenting{border:2px solid #f97316;background-color:#fff7ed}.cohort-item.presenting.selected{background-color:#f97316;color:#fff}.presenting-indicator{margin-left:.5rem;font-size:1rem;vertical-align:middle}.editable-input-wrapper{position:relative;display:inline-block;overflow:visible}.editable-input{border:1.5px solid #d1d5db;border-radius:4px;padding:4px 8px;font-size:.9rem;width:100%;box-sizing:border-box;outline:none;transition:border-color .2s ease}.editable-input.calculation{border:1px solid #805ad5;background-color:#faf5ff;position:relative}.editable-input.input-error{border-color:#e53e3e;background-color:#ffe5e5}.input-tooltip{position:absolute;visibility:hidden;opacity:0;top:-10%;right:80px;margin-top:4px;color:#fff;padding:4px 8px;font-size:.875rem;border-radius:4px;white-space:nowrap;z-index:100;transition:transform .3s ease,opacity .3s ease}.input-tooltip.error{background-color:#e53e3e}.input-tooltip.calculation{color:#805ad5;background-color:#faf5ff}.editable-input-wrapper:hover .input-tooltip{visibility:visible;opacity:1}.editable-input:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb4d}.module-card{display:flex;flex-direction:column;background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;padding:1rem;transition:box-shadow .2s ease,transform .1s ease}.module-card.decision{border:2px dashed #facc15;box-shadow:0 0 0 2px #facc1533}.module-card.expanded{opacity:0;transform:translateY(5px);animation:fadeInUp .3s ease forwards;grid-column:1 / -1}.module-card.expanded:hover{box-shadow:0 4px 8px #0000001f;transform:translateY(-1px);cursor:default}.module-card:hover{box-shadow:0 4px 8px #0000001f;transform:translateY(-1px);cursor:pointer}.module-card-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.module-card-title{font-size:1.2rem;font-weight:700;color:#1f2937;margin:0;flex:1;min-width:200px}.status-pill{align-self:end;display:inline-block;padding:.25rem .6rem;font-size:.8rem;font-weight:600;border-radius:9999px;background-color:#e5e7eb;color:#374151;width:fit-content}.status-pill.passed{background-color:#d1fae5;color:#065f46}.status-pill.decision{background-color:#fef9c3;color:#92400e}.decision-dropdown-wrapper{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;color:#374151}.decision-dropdown{padding:.4rem .6rem;border-radius:.5rem;border:1px solid #d1d5db;background-color:#fff;color:#111827}.custom-select{padding:.5rem;font-size:1rem;border-radius:6px;border:1px solid #d1d5db;background-color:#fff;color:#111827;min-width:160px}.custom-select:disabled{background-color:#f9fafb;color:#9ca3af;border-color:#e5e7eb;cursor:not-allowed}.custom-select.final{border-color:#f59e0b}.custom-select.editable{border-color:#10b981}.tooltip-wrapper{position:relative;display:inline-block}.tooltip-text{visibility:hidden;opacity:0;width:200px;background-color:#1f2937;color:#fff;text-align:center;border-radius:6px;padding:.5rem;position:absolute;z-index:10;bottom:125%;left:50%;transform:translate(-50%);transition:opacity .2s ease;font-size:.875rem;pointer-events:none}.tooltip-wrapper.active:hover .tooltip-text{visibility:visible;opacity:1}.override-button{margin-left:1rem;padding:.4rem .75rem;font-size:.875rem;border:1px solid #f59e0b;border-radius:4px;background-color:#fff;color:#f59e0b;cursor:pointer}.override-button:hover{background-color:#fef3c7}.expand-toggle{background:none;border:none;cursor:pointer;padding:.25rem;display:flex;align-items:center;color:#374151;transition:color .2s ease}.expand-toggle:hover{color:#2563eb}.module-body-min{display:flex;flex-direction:column;gap:.5rem}.module-body-min>.credit-points{font-weight:600;color:#111827;font-size:1rem}.module-body-min p{margin:.25rem 0;font-size:.95rem;color:#4b5563}.grade-info{display:flex;flex-direction:column;gap:.5rem;font-size:.95rem;color:#374151;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.grade-info.expanded{flex-direction:row;justify-content:end}.grade-info .label{font-weight:600}.grade-info .value{font-weight:400}.module-body-expanded{margin-top:1rem}.attempt-section{margin-bottom:1.5rem}.attempt-section h2{font-size:1rem;font-weight:600;color:#1f2937;margin-bottom:.5rem}.module-card table{width:100%;border-collapse:collapse;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden;background-color:#fff;table-layout:fixed;min-width:600px}.module-card thead{background-color:#f3f4f6}.module-card th,.module-card td{padding:.5rem .75rem;text-align:left;font-size:.9rem;border-bottom:1px solid #e5e7eb}.module-card th{font-weight:600;color:#374151}.module-card tr:last-child td{border-bottom:none}.module-card .ReactTable{width:100%;overflow-x:auto}.module-card .ReactTable table{width:100%}.student-module-view{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;background-color:#f9fafb;border-radius:.5rem;box-shadow:0 2px 6px #0000001a}.content-row{display:flex;flex-direction:row;gap:1.5rem}.main-column{flex:1;display:flex;flex-direction:column}.student-module-view .student-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-bottom:.75rem;border-bottom:2px solid #e5e7eb}.student-header .student-status{display:flex;flex-direction:row;align-items:end;justify-content:center;gap:2rem;min-width:150px}.student-module-view .student-info{display:flex;flex-direction:column;align-items:start}.student-header .student-details{display:flex;flex-direction:row;justify-content:center;align-items:baseline;gap:.25rem}.student-header .status-item{display:flex;flex-direction:row;gap:1rem;align-items:center;font-size:.85rem}.student-header .attendance-value{background-color:#e5e7eb;border-radius:.375rem;padding:.3rem .6rem;font-weight:500;text-align:center;width:fit-content;color:#1f2937}.student-header .nec-link{background:none;border:none;color:#2563eb;cursor:pointer;padding:0;font-weight:500;text-decoration:underline}.student-header .nec-link:hover{color:#1d4ed8}.student-header .close-button{position:absolute;top:.5rem;right:.5rem;background:transparent;border:none;cursor:pointer;color:#374151;transition:color .2s ease}.student-header .close-button:hover{color:#2563eb}.student-module-view .student-name{font-size:1.5rem;font-weight:600;color:#1f2937}.student-module-view .student-id{font-size:.9rem;color:#6b7280;margin-top:.25rem}.student-module-view .module-list{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-flow:row}.submit-button-wrapper{position:relative;display:inline-block}.student-module-view .submit-button{background-color:#2563eb;color:#fff;padding:.5rem 1rem;font-size:.9rem;border:none;border-radius:.375rem;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.student-module-view .submit-button:disabled{background-color:#ccc;cursor:not-allowed}.student-module-view .submit-button:hover{background-color:#1d4ed8}.student-module-view .submit-button:active{transform:scale(.97)}.student-module-view .submit-button:disabled{background-color:#9ca3af;cursor:not-allowed}.submit-tooltip{position:absolute;opacity:0;visibility:hidden;transform:translateY(10%) translate(-25%);transition:opacity .2s ease;top:100%;left:0;margin-top:4px;background-color:#e53e3e;color:#fff;padding:6px 10px;border-radius:4px;font-size:.875rem;white-space:nowrap;box-shadow:0 2px 6px #00000026;z-index:10}.submit-button-wrapper:hover .submit-tooltip{visibility:visible;opacity:1}.button-container{display:flex;gap:.5rem;align-items:center}.cancel-button{background-color:#e5e7eb;color:#1f2937;padding:.5rem 1rem;font-size:.9rem;border:none;border-radius:.375rem;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.cancel-button:hover{background-color:#d1d5db}.cancel-button:active{transform:scale(.97)}.sidebar{display:flex;flex-direction:column;align-items:center;width:250px;background-color:#f3f4f6;border-left:1px solid #e5e7eb;padding:1rem;border-radius:.5rem;box-shadow:0 0 4px #0000000d}.sidebar-title{font-size:1.2rem;font-weight:700;margin-bottom:1rem}.sidebar-item{margin-bottom:1rem;display:flex;flex-direction:column;align-items:center;font-size:.95rem}.sidebar-label{font-weight:600;margin-bottom:.25rem;color:#374151}.grade-box{padding:.4rem .6rem;background-color:#e5e7eb;border-radius:.375rem;font-weight:500;font-size:1rem;color:#111827;text-align:center;width:fit-content}.grade-box.fail{background-color:#fee2e2;color:#b91c1c;position:relative;cursor:help}.grade-box.fail:after{content:"Includes failing module";position:absolute;bottom:125%;left:50%;transform:translate(-50%);background-color:#b91c1c;color:#fff;padding:.25rem .5rem;border-radius:.25rem;white-space:nowrap;font-size:.75rem;opacity:0;pointer-events:none;transition:opacity .2s ease-in-out;z-index:10}.grade-box.fail:before{content:"";position:absolute;bottom:115%;left:50%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:transparent transparent #b91c1c transparent;opacity:0;pointer-events:none;transition:opacity .2s ease-in-out;z-index:10}.grade-box.fail:hover:after,.grade-box.fail:hover:before{opacity:1;pointer-events:auto}.sidebar select{width:100%;padding:.4rem;font-size:1rem;border-radius:.375rem;border:1px solid #d1d5db}.course-section{background-color:#f9fafb;border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000001a}.course-section .course-title{font-size:1.25rem;font-weight:600;color:#111827;margin-bottom:.75rem;border-bottom:2px solid #e5e7eb;padding-bottom:.25rem}.course-section .student-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.course-section .student-item{display:flex;justify-content:start;align-items:center;gap:1rem;padding:.5rem .75rem;background-color:#fff;border-radius:.375rem;border:1px solid #e5e7eb;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.course-section .student-item:hover{background-color:#f3f4f6;transform:translateY(-2px)}.course-section .student-id{font-size:.875rem;color:#6b7280}.course-section .student-name{font-weight:500;color:#1f2937}.fade-in{opacity:0;transform:translateY(10px);animation:fadeInUp .3s ease forwards}.cohort-tabs{margin-top:1rem}.tab-header{display:flex;justify-content:center;border-bottom:2px solid #e5e7eb;margin-bottom:1rem}.tab-button{padding:.5rem 1rem;border:none;background:none;cursor:pointer;font-weight:500;color:#374151;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease}.tab-button:hover{color:#111827}.tab-button.active{color:#2563eb;border-bottom:2px solid #2563eb}.tab-content{padding:.5rem 0}.presentation-container{padding:1rem;border-radius:12px;background-color:#fff;box-shadow:0 4px 12px #0000001a}.navigation-header{display:flex;justify-content:space-between;margin-bottom:1rem;gap:1rem}.course-name{flex:1;text-align:center;font-size:1.1rem;font-weight:600;color:#334155}.nav-button{padding:.6rem 1.2rem;background-color:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s ease;white-space:nowrap}.nav-button:hover:not(:disabled){background-color:#1d4ed8}.nav-button:disabled{background-color:#cbd5e1;cursor:not-allowed;color:#64748b}.cohort-tabs-wrapper{transition:opacity .3s ease,transform .3s ease;pointer-events:auto}.cohort-tabs-wrapper.visible{opacity:1;transform:translateY(0)}.cohort-tabs-wrapper.hidden{opacity:0;transform:translateY(10px);pointer-events:none}
