:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-dark-primary: #ffffff;--color-dark-bg: #242424;--color-dark-bg-hover: #2e2e2e;--color-dark-bg-accent: #333333;--color-dark-border: #5b5b5b;--color-dark-button-bg: #1a1a1a;--color-dark-button-text: #ffffff;--color-dark-button-border-hover: #646cff;--color-light-primary: #213547;--color-light-bg: #ffffff;--color-light-bg-hover: #fcfcfc;--color-light-bg-accent: #efefef;--color-light-border: #919191;--color-light-button-bg: var(--color-light-bg);--color-light-button-text: var(--color-light-primary);--color-light-button-border-hover: #646cff;--color-primary: var(--color-dark-primary);--color-bg: var(--color-dark-bg);--color-bg-hover: var(--color-dark-bg-hover);--color-bg-accent: var(--color-dark-bg-accent);--color-border: var(--color-dark-border);--color-button-text: var(--color-dark-button-text);--color-button-bg: var(--color-dark-button-bg);--color-button-border-hover: var(--color-dark-button-border-hover);--nav-height: 60px;--footer-height: 70px}*,*:before,*:after{box-sizing:border-box}body{margin:0;display:flex;place-items:center;min-width:320px}h1{font-size:2.8em;line-height:1.1}button{border-radius:8px;border:1px solid var(--color-border);padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;color:var(--color-button-text);background-color:var(--color-button-bg);cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.main-container{padding:20px;width:90%;background-color:var(--color-bg-accent);border:1px solid var(--color-border);border-radius:8px}@media (prefers-color-scheme: light){:root{--color-primary: var(--color-light-primary);--color-bg: var(--color-light-bg);--color-bg-hover: var(--color-light-bg-hover);--color-bg-accent: var(--color-light-bg-accent);--color-border: var(--color-light-border);--color-button-bg: var(--color-light-button-bg);--color-button-text: var(--color-light-button-text);--color-button-border-hover: var(--color-light-button-border-hover);color:var(--color-primary);background-color:var(--color-bg)}}body,html{margin:0;padding:0;justify-content:center;box-sizing:border-box;overflow-x:hidden}.app{margin-top:calc(var(--nav-height));min-height:calc(100vh - var(--nav-height) - var(--footer-height) - 2px);display:flex;flex-direction:column;justify-content:center;align-items:center;width:100vw;overflow-x:hidden;padding:1rem;box-sizing:border-box}.navbar{height:var(--nav-height);position:fixed;top:0;left:0;width:100%;background:var(--color-bg-accent);border-bottom:2px solid var(--color-border);color:var(--color-primary);z-index:1000;box-sizing:content-box}.navbar img{height:40px;width:auto;max-width:100%}a{font-weight:500;color:var(--color-primary);text-decoration:inherit}.navbar-content{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;box-sizing:border-box;height:100%}.logo{margin:5px 0}.auth-links{display:flex;align-items:center;margin-left:auto}.auth-links p{margin:0 10px}.hamburger{cursor:pointer;font-size:24px;width:40px;display:flex;align-items:center;justify-content:center}.nav-links{list-style:none;padding:0;margin:0;display:none;flex-direction:column;position:absolute;top:var(--nav-height);right:0;background-color:var(--color-bg-accent);border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-left:2px solid var(--color-border);border-bottom:2px solid var(--color-border);z-index:1000}.nav-links.open{display:flex}.nav-links li{padding:10px 20px;border-bottom:1px solid var(--color-border)}.nav-links li:last-child{border-bottom:none}.alert{position:fixed;top:70px;right:20px;max-width:300px;padding:20px;border-radius:5px;box-shadow:0 4px 6px #0000001a;display:flex;justify-content:space-between;align-items:center;font-size:16px;color:#fff;z-index:999;transition:opacity .3s ease-in-out}.alert p{margin:0}.alert.success{background-color:#4caf50}.alert.error,.alert.failure{background-color:#f44336}.alert.info{background-color:#2196f3}.close-btn{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;padding:0;margin-left:10px}.close-btn:hover{opacity:.7}.signup-container{max-width:400px;margin:20px auto;padding:20px;background-color:var(--color-bg-accent);border-radius:8px;box-shadow:0 4px 10px #00000080;box-sizing:border-box}h2{text-align:center;font-size:24px;margin-top:0;margin-bottom:20px}.signup-form{display:block}.form-columns{display:flex;flex-direction:row;gap:1rem}.form-column{flex:1;width:50%}.error-text{text-align:center;font-size:14px;color:#e74c3c;margin-top:10px}.password-requirements li{transition:color .3s ease}.password-requirements .valid{color:green}.password-requirements .invalid{color:inherit}.submit-button:disabled{cursor:not-allowed}.submit-button:disabled:hover{border-color:var(--color-border)}.login-container{max-width:400px;margin:20px auto;padding:20px;background-color:var(--color-bg-accent);border-radius:8px;box-shadow:0 4px 10px #00000080}h2{text-align:center;font-size:24px;margin-bottom:20px}.form-group{margin-bottom:15px}.form-group label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}.input-field{width:100%;padding:10px;font-size:16px;border:1px solid var(--color-border);color:#000;background-color:#fff;border-radius:4px;box-sizing:border-box}.input-field:focus{border-color:#4a90e2;outline:none}.submit-button{width:100%;padding:10px}.message{text-align:center;font-size:14px;color:#e74c3c;margin-top:10px}.signup-redirect{max-width:400px;margin:20px auto;padding:20px;background-color:var(--color-bg-accent);border-radius:8px;box-shadow:0 4px 10px #00000080;text-align:center}.signup-redirect p{margin-top:0;margin-bottom:10px;color:var(--color-text-secondary)}.gsi-material-button{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-appearance:none;background-color:var(--color-bg);background-image:none;border:1px solid var(--color-border);-webkit-border-radius:4px;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--color-primary);cursor:pointer;font-family:Roboto,arial,sans-serif;font-size:14px;height:40px;letter-spacing:.25px;outline:none;overflow:hidden;padding:0 12px;position:relative;text-align:center;-webkit-transition:background-color .218s,border-color .218s,box-shadow .218s;transition:background-color .218s,border-color .218s,box-shadow .218s;vertical-align:middle;white-space:nowrap;width:100%;max-width:400px;min-width:min-content}.gsi-material-button .gsi-material-button-icon{height:20px;margin-right:12px;min-width:20px;width:20px}.gsi-material-button .gsi-material-button-content-wrapper{-webkit-align-items:center;align-items:center;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;height:100%;justify-content:space-between;position:relative;width:100%}.gsi-material-button .gsi-material-button-contents{-webkit-flex-grow:1;flex-grow:1;font-family:Roboto,arial,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.gsi-material-button .gsi-material-button-state{-webkit-transition:opacity .218s;transition:opacity .218s;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.gsi-material-button:disabled{cursor:default;background-color:#ffffff61;border-color:#1f1f1f1f}.gsi-material-button:disabled .gsi-material-button-contents{opacity:38%}.gsi-material-button:disabled .gsi-material-button-icon{opacity:38%}.gsi-material-button:not(:disabled):active .gsi-material-button-state,.gsi-material-button:not(:disabled):focus .gsi-material-button-state{background-color:#303030;opacity:12%}.gsi-material-button:not(:disabled):hover{-webkit-box-shadow:0 1px 2px 0 rgba(60,64,67,.3),0 1px 3px 1px rgba(60,64,67,.15);box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.gsi-material-button:not(:disabled):hover .gsi-material-button-state{background-color:#303030;opacity:8%}.upload-status-popup{position:fixed;bottom:10px;right:10px;width:20vw;height:60vh;background-color:#fff;border:1px solid #ccc;padding:10px;box-shadow:0 0 10px #0000001a;color:#000;display:flex;flex-direction:column;overflow:hidden}.popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;border-bottom:1px solid #ccc}.upload-status-popup h2{margin:0}.upload-status-popup button{margin-bottom:10px}.upload-status-list{flex-grow:1;overflow-y:auto}.upload-status-popup ul{list-style-type:none;padding:0;margin:0}.upload-status-popup li{margin-bottom:5px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ccc;padding:5px 15px}.upload-status-popup .file-name{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status-popup .remove-file{cursor:pointer;color:#fff;background-color:#000;border-radius:50%;width:20px;height:20px;position:relative;margin-left:10px;display:none}.upload-status-popup .remove-file .x-mark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;font-size:12px}.upload-status-popup .file-item:hover .remove-file{display:flex}.resize-handle{position:absolute;width:10px;height:10px;background:transparent}.resize-handle.top-left{top:-5px;left:-5px;cursor:nwse-resize}.resize-handle.top{top:-5px;left:50%;transform:translate(-50%);cursor:ns-resize;width:100%;height:10px}.resize-handle.left{top:50%;left:-5px;transform:translateY(-50%);cursor:ew-resize;width:10px;height:100%}.card{border:2px solid var(--color-border);border-radius:8px;margin:8px 0;color:var(--color-primary);background-color:var(--color-bg);box-shadow:0 2px 4px #0000001a;width:200px;height:240px;display:flex;flex-direction:column}.card h3{margin:0 0 8px}.card-content{padding:16px}.card-buttons{display:flex;gap:16px;justify-content:center;margin-top:auto;width:100%;background-color:var(--color-bg-accent);border-top:1px solid var(--color-border);padding:8px;border-bottom-right-radius:8px;border-bottom-left-radius:8px}.card-buttons button{padding:4px 8px;border:none;border-radius:4px;cursor:pointer}.card-buttons .delete-button{background-color:#ff4d4f;color:#fff}#date{color:var("--color-primary");background-color:var("--color-bg-accent");border:1px solid var("--color-border");font-size:1rem;padding:3px}#button-container{display:flex;justify-content:space-between}.add-assignment{border:1px solid var(--color-border);padding:10px}.selected-items{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;margin-bottom:8px}.selected-item{display:flex;align-items:center;padding:4px 8px;border:1px solid var(--color-border);border-radius:4px;font-size:.8rem}.selected-item span{margin-right:8px}.remove-button{all:unset;color:red;font-size:.8rem}.remove-button:hover{color:#8b0000}.assignments-container h1{margin-top:0}.assignments-container h2{margin-bottom:0;text-align:left}.button{margin:10px}.cards-container{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:16px 0;justify-items:center}.notes-container{margin:16px;padding:16px;border:1px solid var(--color-border);border-radius:8px}.notes-container table{border:1px solid var(--color-border);gap:0}.notes-container table th{border:2px solid var(--color-border);text-align:left;padding:8px}.notes-container table td{border:1px solid var(--color-border);text-align:left;padding:8px}@media (max-width: 1024px){.cards-container{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.cards-container{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.cards-container{grid-template-columns:1fr}}.user-container{height:60vh;display:flex;flex-direction:column}.user-container h1{margin-top:10px;margin-bottom:20px;flex-shrink:0}.user-table-container{flex-grow:1;max-height:calc(100% - 60px);overflow-y:auto;box-shadow:inset 0 -10px 10px -10px #0003}.user-table{width:100%;border-collapse:separate;border-spacing:0}.user-table td{border:1px solid var(--color-border);padding:8px;text-align:left}.user-row{cursor:pointer}.user-row:hover{background-color:var(--color-bg-hover)}.user-table td{padding:12px 8px;background-color:var(--color-bg)}.user-table ul{list-style-type:none;padding:0;margin:0}.library-container{height:60vh;display:flex;flex-direction:column;overflow:hidden}.library-container h1{margin-top:10px;margin-bottom:20px;flex-shrink:0}.library-container input{margin-bottom:20px;flex-shrink:0}.documents-list{flex-grow:1;max-height:calc(100% - 60px);overflow-y:auto;box-shadow:inset 0 -10px 10px -10px #0003}.documents-list ul{list-style-type:none;padding:0;margin:0}.documents-list li{display:flex;justify-content:space-between;align-items:center;padding:10px;background-color:var(--color-bg);border-bottom:1px solid #ccc}.documents-list li:hover{background-color:var(--color-bg-hover);cursor:pointer}.documents-list li button{margin-left:10px;padding:0;width:30px;height:30px}.footer{background-color:var(--color-bg-accent);height:var(--footer-height);text-align:center;width:100%;color:var(--color-primary);font-size:14px;font-weight:500;border-top:2px solid var(--color-border)}.container{display:flex;justify-content:center;align-items:center;height:100%}
