:root{--accent:#e8a0bf;--text:#000000;--muted:#000000;--background-start:#dceeff;--background-end:#aed4f7;--max-width:720px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;padding:0;background:linear-gradient(135deg,var(--background-start),var(--background-end));min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6;font-size:18px}body,h1,h2,h3{color:var(--text)}h1,h2,h3{line-height:1.2}a{color:var(--text);text-decoration:underline}a:focus,a:hover{text-decoration:none}.hero{padding:4rem 1.5rem 2.5rem;max-width:var(--max-width);margin:0 auto;text-align:center}.hero h1{font-size:2.75rem;margin:0 0 .75rem}.hero .tagline{font-size:1.15rem;color:var(--muted);margin:0}main{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem 3rem}section{margin-bottom:2.5rem}section h2{font-size:1.5rem;margin-bottom:.75rem}.semester ul{padding-left:1.25rem;margin:0}.semester li{margin-bottom:.5rem}.footer{border-top:1px solid #e0e0e0;padding:1.5rem;text-align:center;color:var(--muted);font-size:.9rem}@media (max-width:480px){body{font-size:16px}.hero{padding:2.5rem 1.25rem 2rem}.hero h1{font-size:2.1rem}.hero .tagline{font-size:1rem}main{padding:0 1.25rem 2rem}}.site-header{justify-content:space-between;gap:.75rem;max-width:var(--max-width);margin:0 auto;padding:1rem 1.5rem;font-size:.95rem}.site-header,.site-header-right{display:flex;align-items:center;flex-wrap:wrap}.site-header-right{gap:1rem}.site-header form{margin:0}.auth-form{gap:1rem;max-width:360px}.auth-form,.auth-form label{display:flex;flex-direction:column}.auth-form label{gap:.25rem}.auth-form input{font:inherit;padding:.5rem;border:1px solid #7a9cc0;border-radius:6px}.auth-form .hint{margin:-.5rem 0 0;font-size:.9rem}.form-error{margin:0;color:#a40000;font-weight:600}button{font:inherit;padding:.5rem 1rem;border:1px solid #000000;border-radius:6px;background:#ffffff;cursor:pointer}button:disabled{cursor:wait;opacity:.6}.add-task-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.5rem}.add-task-form label{display:flex;flex-direction:column;gap:.25rem}.add-task-form input,.add-task-form select{font:inherit;padding:.5rem;border:1px solid #7a9cc0;border-radius:6px;background:#ffffff}.add-task-form .form-error{flex-basis:100%}.task-list{list-style:none;padding:0;margin:0}.task-list li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid #7a9cc0}.skill-label{flex-shrink:0;padding:.1rem .6rem;border:1px solid #000000;border-radius:999px;background:#ffffff;font-size:.85rem}.task-list li{flex-wrap:wrap}.task-list .task-title{flex-grow:1}.due-date,.due-date-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.95rem}.due-date-form input{font:inherit;padding:.4rem;border:1px solid #7a9cc0;border-radius:6px;background:#ffffff}.due-date-form .form-error{flex-basis:100%}.past-due{color:#a40000;font-weight:600}.priority,.priority-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.95rem}.priority-form select{font:inherit;padding:.4rem;border:1px solid #7a9cc0;border-radius:6px;background:#ffffff}.priority-form .form-error{flex-basis:100%}.priority-text{font-weight:600}.priority-low{color:#106b21}.priority-normal{color:#a34a00}.priority-high{color:#b00000}.task-list li{flex-direction:column;align-items:stretch;gap:.5rem}.task-top{justify-content:space-between;gap:1rem}.task-details,.task-top{display:flex;align-items:center}.task-details{flex-wrap:wrap;gap:.75rem 1.5rem;padding:.6rem .75rem;border:1px solid #7a9cc0;border-radius:6px;background:rgba(255,255,255,.5)}.task-notes{flex-basis:100%;font-size:.95rem}.task-notes summary{cursor:pointer;font-weight:600}.notes-empty,.notes-list{margin:.5rem 0}.notes-list{list-style:none;padding:0}.notes-list li{display:block;padding:.5rem 0;border-bottom:1px solid #c3d6ea}.notes-list time{display:block;font-size:.8rem}.notes-list p{margin:0;white-space:pre-wrap}.add-note-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.add-note-form textarea{flex:1 1 16rem;font:inherit;padding:.4rem;border:1px solid #7a9cc0;border-radius:6px;background:#ffffff}.add-note-form .form-error{flex-basis:100%}