:root{--accent:#0f5257;--foreground:#1a1a1a;--background:#ffffff;--muted:#f4f6f6}*{box-sizing:border-box}body,html{padding:0;margin:0}body{color:var(--foreground);background:var(--background);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6}main{max-width:700px;margin:0 auto;padding:2rem 1.25rem}h1,h2,h3{line-height:1.2}a,h1,h2,h3{color:var(--accent)}a:hover{text-decoration:none}.hero{padding:2.5rem 0 2rem;text-align:center}.hero h1{font-size:2.25rem;margin:0 0 .5rem}.tagline{font-size:1.1rem;color:#444;margin:0}.section{padding:1.5rem 0;border-top:1px solid #e2e2e2}.section h2{font-size:1.4rem;margin-bottom:.75rem}.semester-list{padding-left:1.25rem;margin:0}.semester-list li{margin-bottom:.5rem}.footer{text-align:center;padding:1.5rem 1.25rem 2rem;color:#666;font-size:.9rem;border-top:1px solid #e2e2e2}.auth-links{margin:1rem 0 0}.auth-form{display:flex;flex-direction:column;gap:.5rem;max-width:320px;margin-bottom:1.5rem}.auth-form input{padding:.5rem;font:inherit;border:1px solid #ccc;border-radius:4px}button{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font:inherit;color:#fff;background:var(--accent);border:none;border-radius:4px;cursor:pointer}.auth-form button{margin-top:.5rem}.form-error{color:#b00020;margin:0}.add-card .form-error{margin-top:.75rem}.form-message{padding:.75rem;background:var(--muted);border-radius:4px}.button-secondary{color:var(--accent);background:#fff;border:1px solid #cfdcdc}.button-secondary:hover{background:var(--muted)}.muted{color:#666;margin:.25rem 0 0}.tasks-page h2{font-size:1.1rem;margin:0 0 .75rem}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-header h1{margin:0}.card{padding:1.25rem;background:#fff;border:1px solid #e2e8e8;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.add-card{margin-bottom:2rem}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.75rem;gap:.75rem}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.field-wide{grid-column:1/-1}.field label{font-size:.85rem;font-weight:600;color:#444}.field input,.field select{width:100%;padding:.5rem .6rem;font:inherit;background:#fff;border:1px solid #ccd5d5;border-radius:8px}.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px}.card-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.section-title{display:flex;align-items:center;gap:.5rem}.count{padding:0 .55rem;font-size:.8rem;color:var(--accent);background:var(--muted);border-radius:999px}.card-list{flex-direction:column;list-style:none;padding:0;margin:0 0 2rem}.card-list,.task-card{display:flex;gap:.75rem}.task-card{align-items:flex-start;padding:1rem;background:#fff;border:1px solid #e2e8e8;border-left:4px solid var(--accent);border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.task-card.editing{display:block}.task-card.overdue{background:#fff5f6;border-color:#f3c4ca #f3c4ca #f3c4ca #b00020}.task-card.done{background:#fafafa;border-left-color:#b5c4c4}.icon-button{padding:.25rem;color:#6b7b7b;background:transparent;border-radius:999px}.icon-button:hover{background:var(--muted)}.check-button,.icon-button:hover{color:var(--accent)}.card-body{flex:1 1;min-width:0}.card-title{margin:.1rem 0 .5rem;font-weight:600;overflow-wrap:anywhere}.task-card.overdue .card-title,.task-card.overdue .chip-date{color:#b00020}.task-card.done .card-title{color:#888;text-decoration:line-through}.card-meta{display:flex;flex-wrap:wrap;gap:.4rem}.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .6rem;font-size:.8rem;color:#444;background:#f1f3f3;border-radius:999px}.chip-skill{color:var(--accent);background:#e3efef}.chip-overdue{color:#fff;background:#b00020;font-weight:600}.empty{padding:1rem;margin:0 0 2rem;color:#666;text-align:center;border:1px dashed #ccd5d5;border-radius:12px}@keyframes card-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes nudge{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.task-card{animation:card-in .35s ease-out both;transition:transform .2s ease,box-shadow .2s ease,opacity .3s ease,background-color .3s ease,border-color .3s ease}.card-list>:nth-child(2){animation-delay:.04s}.card-list>:nth-child(3){animation-delay:.08s}.card-list>:nth-child(4){animation-delay:.12s}.card-list>:nth-child(n+5){animation-delay:.16s}.task-card:not(.editing):hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.08)}.task-card.moving{opacity:.4;transform:scale(.97);pointer-events:none}.pop{animation:pop .35s ease-out}.chip-overdue{animation:nudge .6s ease-in-out .3s 2}button{transition:transform .1s ease,background-color .2s ease,color .2s ease}button:active{transform:scale(.95)}.icon-button:active{transform:scale(.85)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}@media (max-width:480px){.field-grid{grid-template-columns:1fr}.hero h1{font-size:1.75rem}main{padding:1.5rem 1rem}}