@import url("https://fonts.googleapis.com/css2?family=Lexend+Exa:wght@100..900&display=swap");@import url("https://fonts.googleapis.com/css2?family=Fredoka:wght@300..700&display=swap");:root{--bg-gradient-from:#ebd6ff;--bg-gradient-to:#cab0e8;--accent:#4b335e;--accent-soft:#f3ecf8;--accent-strong:#5a4070;--accent-text:#4b335e}body,html{font-family:Lexend Exa,Helvetica,sans-serif;max-width:100vw;overflow-x:hidden}body{background:var(--bg-gradient-from);background:linear-gradient(135deg,var(--bg-gradient-from) 0,var(--bg-gradient-to) 100%);font-family:helvetica,arial,sans-serif;color:#333;transition:background .35s ease}*{box-sizing:border-box;padding:0;margin:0}a{color:inherit;text-decoration:none}nav{background:var(--accent);color:white;padding:1rem;display:flex;align-items:center;gap:1rem}#title{text-shadow:var(--accent) 1px 0 10px}#title,#title2{font-weight:700;font-size:1.6rem;flex-grow:1}#link,#title,#title2{font-family:Lexend Exa,sans-serif!important}#link{font-size:1.2rem;padding:.5rem 1rem;cursor:pointer}#link:hover{background:var(--accent-soft);color:var(--accent);border-radius:5px;transition:.3s ease}.themeToggleButton{position:fixed;bottom:1.5rem;right:1.5rem;z-index:40;width:3rem;height:3rem;border-radius:999px;border:none;background:var(--accent);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 25px rgba(0,0,0,.18);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .2s ease}.themeToggleButton:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.24);background:var(--accent-strong)}.themeToggleButton:active{transform:translateY(0) scale(.97);box-shadow:0 8px 18px rgba(0,0,0,.2)}.themeModalOverlay{position:fixed;inset:0;background:transparent;display:flex;align-items:flex-end;justify-content:flex-end;padding-right:1.5rem;padding-bottom:5rem;z-index:30}.themeModal{background:#fff;border-radius:16px;padding:1.1rem 1.2rem 1rem;max-width:420px;width:min(92vw,420px);box-shadow:0 18px 45px rgba(0,0,0,.25);transform-origin:bottom right;animation:scaleIn .18s ease-out}.themeModalHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.themeModalHeader h2{font-family:Lexend Exa,sans-serif;font-size:1.1rem;color:var(--accent-text)}.themeModalClose{border:none;background:transparent;font-size:1.4rem;cursor:pointer;color:var(--bg-gradient-to)}.themeModalSubtitle{font-size:.8rem;color:var(--bg-gradient-to);margin-bottom:.9rem}.themePaletteGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.7rem;gap:.7rem}.themePaletteTile{border-radius:12px;border:1px solid var(--bg-gradient-from);padding:.6rem .7rem;background:var(--accent-soft);cursor:pointer;display:flex;flex-direction:column;gap:.45rem;transition:border-color .16s ease,box-shadow .16s ease,transform .12s ease,background .16s ease}.themePaletteTile:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(75,51,94,.18)}.themePaletteTileActive{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background:#ffffff}.themePaletteSwatches{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.25rem;gap:.25rem}.themePaletteSwatches span{height:18px;border-radius:999px}.themePaletteName{font-family:Lexend Exa,sans-serif;font-size:.75rem;color:var(--accent-text)}@keyframes scaleIn{0%{opacity:0;transform:translateY(6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.welcome{font-family:Lexend Exa,sans-serif;font-size:2.5rem;color:var(--accent-text);margin-bottom:.25rem;animation:fadeInUp .5s ease-out both}.homePage{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 60px);padding:3rem 2rem}.homeSubtitle{font-family:Lexend Exa,sans-serif;font-size:1rem;color:var(--accent-strong);margin-bottom:2rem;animation:fadeInUp .5s ease-out .05s both}.homeSubtitle span{color:var(--accent-text);font-weight:600}.bentoGrid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1rem;gap:1rem;max-width:900px;width:100%}.bentoCard{background:white;border:1px solid #ede8f2;border-radius:12px;padding:1.25rem;transition:all .2s ease;animation:fadeInUp .4s ease-out both}.bentoCard:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(75,51,94,.08)}.bentoCardWide{grid-column:span 2}.bentoLabel{font-family:Lexend Exa,sans-serif;font-size:.7rem;color:var(--bg-gradient-to);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.75rem}.bentoLabelRow{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.bentoLabelRow a{font-family:Lexend Exa,sans-serif;font-size:.7rem;color:var(--accent-text);text-decoration:none}.bentoLabelRow a:hover{text-decoration:underline}.upcomingList{display:flex;gap:.5rem}.upcomingItem{flex:1 1;background:var(--accent-soft);border-radius:8px;padding:.6rem;min-width:0}.upcomingItemStrip{width:100%;height:3px;border-radius:2px;margin-bottom:.4rem}.upcomingItemTitle{font-family:Lexend Exa,sans-serif;font-size:.75rem;font-weight:600;color:var(--accent-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcomingItemDate{font-family:Lexend Exa,sans-serif;font-size:.65rem;color:var(--accent-strong);margin-top:.2rem}.progressCard{background:var(--accent);border:none;text-align:center;display:flex;flex-direction:column;justify-content:center;color:white}.progressCard:hover{background:var(--accent-strong)}.progressNumber{font-size:2.5rem;font-weight:700;line-height:1;margin:.25rem 0}.progressLabel,.progressNumber{font-family:Lexend Exa,sans-serif}.progressLabel{font-size:.65rem;opacity:.7;text-transform:uppercase;letter-spacing:.5px}.toolCard{text-align:center;cursor:pointer;text-decoration:none;color:inherit;display:block}.toolIcon{font-size:1.5rem;margin-bottom:.25rem}.toolLabel{font-family:Lexend Exa,sans-serif;font-size:.8rem;color:var(--accent-text);font-weight:500}.toolDescriptor{font-size:.6rem;font-weight:400;margin-top:.15rem}.emptyState,.toolDescriptor{font-family:Lexend Exa,sans-serif;color:var(--bg-gradient-to)}.emptyState{font-size:.85rem;text-align:center;padding:1rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.welcome{font-size:2rem}.bentoGrid{grid-template-columns:1fr}.bentoCardWide{grid-column:span 1}.upcomingList{flex-direction:column}}button{background:var(--accent);color:white;border:none;padding:.5rem 1rem;border-radius:5px;cursor:pointer}button:hover{background:var(--accent-strong)!important;transition:all .2s ease!important}h1{color:white}.assignmentCard{display:flex;flex-direction:column;flex:1 1;padding-left:1rem}.assignmentCardRoot{position:relative}.assignmentTopRow{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.assignmentLeft{flex:1 1;margin-right:1rem}.assignmentTitle{font-size:1.7rem;color:var(--accent-text);margin:0 0 .5rem;font-family:Lexend Exa,sans-serif;font-weight:700;transition:color 1s ease}.assignmentTitleCompleted{text-decoration:line-through}.assignmentSubjectChip{color:#fff;margin:0;border-radius:6px;display:inline-block;padding:3px 10px;font-size:1.1rem;font-family:Lexend Exa,sans-serif}.assignmentRight{text-align:right;flex-shrink:0}.assignmentDueDate{color:var(--accent-text);margin:0 0 .5rem;font-size:1.3rem;font-weight:700;font-family:Lexend Exa,sans-serif}.assignmentProgressText{color:#666;font-weight:400;margin:0;font-size:1.1rem;font-family:Lexend Exa,sans-serif}.assignmentProgressTextDone{color:#28a745;font-weight:700}.assignmentBottomRow{width:100%}.assignmentProgressRange{width:100%;height:8px;border-radius:4px;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}#blockAndInfo{display:flex;flex-direction:row;min-height:120px;align-items:stretch}#assignmentList:hover{transform:scale(1.01);transition:all .2s ease}.colorBlock{width:10px;min-height:100%;background-color:var(--accent);border-radius:5px;flex-shrink:0}#todopage{padding:2rem;max-width:800px;margin:0 auto;min-height:calc(100vh - 60px)}#todopage,.todoTitle{font-family:Lexend Exa,sans-serif!important}.todoTitle{font-size:2.3rem;color:var(--accent-text);margin-bottom:2rem;text-align:center}.todo-container{background:white;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px rgba(0,0,0,.1);margin-bottom:2rem}.todo-input-section{display:flex;gap:.5rem;margin-bottom:1.5rem}.todo-input-section input{flex:1 1;padding:.75rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}.todo-input-section button{padding:.75rem 1.5rem;background:var(--accent);color:white;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.todo-input-section button:hover{background:var(--bg-gradient-to)}.todo-list{list-style:none;padding:0}#todoitem{display:flex;align-items:center;padding:1rem;margin-bottom:.5rem;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s ease}#todoitem:hover{box-shadow:0 2px 8px rgba(0,0,0,.1);transform:translateY(-1px)}#todoitem input[type=checkbox]{margin-right:1rem;width:18px;height:18px;cursor:pointer}#todoitem p{flex:1 1;margin:0;font-size:1rem;color:#333;transition:all .2s ease}#todoitem:has(:checked){opacity:.7;background:var(--accent-soft)}#todoitem:has(:checked) p{text-decoration:line-through;color:#666}input[type=checkbox]{accent-color:var(--accent)}#addtask{display:flex;gap:.5rem;margin-top:1rem;width:100%}#tasktext{flex:1 1;padding:.75rem;border:1px solid #ccc;border-radius:4px;font-size:1rem;font-family:Lexend Exa,sans-serif}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid white;box-shadow:0 2px 4px rgba(0,0,0,.2)}#addbutton{padding:.75rem 1.5rem;background:var(--accent);color:white;border:none;border-radius:4px;cursor:pointer;font-size:1rem;font-family:Lexend Exa,sans-serif!important}#addbutton:hover{background:var(--accent-strong);transition:all .2s ease}#assignmentsTitle{font-family:Lexend Exa,sans-serif!important;font-size:2.3rem;color:var(--accent-text)}.wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 60px)}#pomotitle{font-family:Lexend Exa,sans-serif!important;font-size:2.3rem;color:#fff;margin-bottom:1rem;background:var(--accent);padding:1rem 2rem;border-radius:15px;box-shadow:0 4px 15px rgba(111,83,134,.3)}.mainTimerContainer{background-color:var(--accent-strong)}.breakTimerContainer,.mainTimerContainer{display:flex;flex-direction:column;align-items:center;justify-content:center;width:60vw;height:60vh;border-radius:10px;box-shadow:0 0 10px rgba(0,0,0,.1);margin:0 auto 1rem}.breakTimerContainer{background-color:rgb(120,161,224)}.longBreakTimerContainer{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgb(72,115,87);width:60vw;height:60vh;border-radius:10px;box-shadow:0 0 10px rgba(0,0,0,.1);margin:0 auto 1rem}.timerDisplay{font-size:3rem}#timerTitle,.timerDisplay{font-family:Lexend Exa,sans-serif!important;color:#fff;margin-bottom:1rem}#timerTitle{font-size:2rem}.wrapper button{font-family:Lexend Exa,sans-serif!important;font-size:1.2rem;padding:.5rem 1rem;background-color:var(--accent);color:#fff;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s ease}.wrapper button:hover{background-color:#fff;color:var(--accent)}.timerButtons{display:flex;gap:1rem;margin-top:1rem}#stats{font-family:Lexend Exa,sans-serif!important;font-size:1.5rem;color:var(--accent-text);text-align:center;margin-bottom:1rem}#addShowButtons{display:flex;align-items:right;gap:1.7rem}#showCompleted{background-color:var(--accent);color:white;border:none;border-radius:999px;padding:8px 14px;font-size:.95rem;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .15s ease;font-family:Lexend Exa,sans-serif}#lyric{font-family:Lexend Exa,sans-serif!important;font-weight:500;font-size:1.2rem;color:var(--accent-text);background:rgba(255,255,255,.8);padding:1rem 2rem;border-radius:20px;box-shadow:0 8px 32px rgba(255,255,255,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);line-height:1.6;animation:fadeIn 1s ease-out .4s both}.settingsPage{padding:2rem;max-width:600px;margin:0 auto}.settingsTitle{color:var(--accent-text);margin-bottom:1rem;font-family:Lexend Exa,sans-serif}.settingsCard{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:2rem;box-shadow:0 2px 4px rgba(0,0,0,.1)}.settingsSectionTitle{color:var(--accent-text);margin-bottom:1rem;font-family:Lexend Exa,sans-serif}.settingsSubtitle{color:#666;margin-bottom:2rem;font-family:Lexend Exa,sans-serif}.settingsAddClassRow,.settingsNameRow{display:flex;gap:.5rem;margin-bottom:1rem}.settingsTextInput{flex:1 1;padding:.75rem;border-radius:4px;border:1px solid #ccc;font-size:1rem;font-family:Lexend Exa,sans-serif}.settingsAddClassSection{margin-bottom:2rem}.settingsColorPickerWrapper,.settingsPrimaryButton{font-family:Lexend Exa,sans-serif}.settingsPrimaryButton{background-color:var(--accent);color:white;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem}.settingsPrimaryButton:hover{background-color:var(--accent-strong)}.settingsClassesHeader{color:var(--accent-text);margin-bottom:1rem;font-family:Lexend Exa,sans-serif}.settingsClassesList{list-style:none;padding:0}.settingsClassItem{display:flex;justify-content:space-between;align-items:center;padding:.75rem;margin:.5rem 0;background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;font-family:Lexend Exa,sans-serif}.settingsEditWrapper{display:flex;flex-direction:column;gap:1rem;flex:1 1}.settingsEditRow{display:flex;gap:.5rem;align-items:center}.settingsEditInput{flex:1 1;padding:.5rem;border-radius:4px;border:1px solid #ccc;font-family:Lexend Exa,sans-serif}.settingsEditButtonsRow{display:flex;gap:.5rem}.settingsSaveButton{background-color:#28a745}.settingsCancelButton,.settingsSaveButton{color:white;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-family:Lexend Exa,sans-serif}.settingsCancelButton{background-color:#6c757d}.settingsClassInfo{display:flex;align-items:center;gap:1rem}.settingsClassColorSwatch{width:20px;height:20px;border-radius:4px;border:1px solid #ccc;flex-shrink:0}.settingsClassName{font-size:1.1rem;color:#333}.settingsClassActions{display:flex;gap:.5rem}.settingsSecondaryButton{background-color:var(--accent-soft);color:var(--accent-text);border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-family:Lexend Exa,sans-serif}.settingsSecondaryButton:hover{background-color:var(--accent);color:#fff}.settingsDangerButton{background-color:var(--accent);color:white;border:none;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-family:Lexend Exa,sans-serif}.settingsDangerButton:hover{background-color:var(--accent-strong)}.settingsEmptyState{color:#999;text-align:center;padding:2rem;font-family:Lexend Exa,sans-serif}#addAssignment{color:#fff;border:none;border-radius:50%;width:50px;height:50px;font-size:24px;display:flex;align-items:center;justify-content:center}#addAssignment,#backButton{background-color:var(--accent);cursor:pointer}#backButton{color:#fff,;border:none;padding:.5rem 1rem;border-radius:4px;font-family:Lexend Exa,sans-serif}.feedbackButton{position:fixed;bottom:1.5rem;left:1.5rem;z-index:40;width:2.6rem;height:2.6rem;border-radius:999px;border:none;background:var(--accent-soft);color:var(--accent-text);font-size:1.35rem;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.16);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .2s ease,color .2s ease}.feedbackButton:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(0,0,0,.2);background:var(--accent);color:#fff}.feedbackButton:active{transform:translateY(0) scale(.96);box-shadow:0 6px 16px rgba(0,0,0,.18)}.feedbackOverlay{align-items:flex-end;justify-content:flex-start;padding-left:1.5rem;padding-right:unset}.feedbackModal{transform-origin:bottom left}.feedbackForm{display:flex;flex-direction:column;gap:.6rem}.feedbackForm textarea{width:100%;border-radius:10px;border:1.5px solid var(--accent-soft);padding:.7rem .8rem;font-family:inherit;font-size:.85rem;color:var(--accent-text);background:var(--bg-gradient-from);resize:vertical;outline:none;transition:border-color .2s ease;box-sizing:border-box}.feedbackForm textarea:focus{border-color:var(--accent)}.feedbackSubmitBtn{align-self:flex-end;padding:.45rem 1.2rem;border-radius:8px;border:none;background:var(--accent);color:#fff;font-family:Lexend Exa,sans-serif;font-size:.8rem;cursor:pointer;transition:opacity .15s ease,transform .1s ease}.feedbackSubmitBtn:hover{opacity:.88}.feedbackSubmitBtn:active{transform:scale(.97)}.feedbackSubmitBtn:disabled{opacity:.5;cursor:not-allowed}.feedbackSuccess{font-size:.9rem;color:var(--accent-text);text-align:center;padding:1rem 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}#addAssignmentButton{background-color:var(--accent)}#addAssignmentButton,#cancelButton{color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-family:Lexend Exa,sans-serif}#cancelButton{background-color:var(--bg-gradient-to)}