.calendar-view{display:flex;flex-direction:column}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.calendar-toolbar__title{margin:0;font-size:clamp(1.35rem,1.1rem + .8vw,1.75rem);font-weight:600}.calendar-toolbar__actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.calendar-view-toggle{display:inline-flex;align-items:center;gap:.5rem;border:1px solid #cbd5f5;border-radius:999px;padding:.25rem;background:#f1f5f9}.calendar-view-toggle__btn{border:none;background:transparent;padding:.4rem 1.25rem;border-radius:999px;font-size:.95rem;font-weight:600;color:#475569;cursor:pointer;transition:all .2s ease}.calendar-view-toggle__btn.is-active{background:#1d4ed8;color:#fff;box-shadow:0 5px 15px rgba(37,99,235,.3)}.calendar-add-btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.75rem;min-width:200px;margin:0 auto;border-radius:12px;border:none;background-color:#16a34a;color:#fff;font-weight:700;font-size:1rem;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease}.calendar-add-btn:hover:not(:disabled){background-color:#15803d;box-shadow:0 4px 10px rgba(22,163,74,.3)}.calendar-add-btn:disabled{opacity:.7;cursor:not-allowed}.calendar-add-form{border:1px solid #e2e8f0;border-radius:12px;padding:1rem;background-color:#fff;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:1rem}.calendar-add-form__header{display:flex;flex-direction:column;gap:.35rem}.calendar-add-form__title{margin:0;font-size:1.05rem;font-weight:700;color:#0f172a}.calendar-add-form__hint{margin:0;color:#475569;font-size:.95rem}.calendar-add-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.calendar-field{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:#475569}.calendar-field span{font-weight:600}.calendar-field input,.calendar-field select{border:1px solid #cbd5f5;border-radius:10px;padding:.5rem .65rem;font-size:.95rem;font-family:inherit;color:#0f172a;background-color:#fff}.calendar-field input:focus,.calendar-field select:focus{outline:2px solid #1d4ed8;outline-offset:1px}.calendar-add-form__actions{display:flex;justify-content:flex-end;gap:.75rem}.calendar-primary-btn,.calendar-secondary-btn{border-radius:10px;padding:.55rem 1.25rem;font-weight:600;border:none;cursor:pointer;transition:opacity .2s ease,box-shadow .2s ease}.calendar-primary-btn{background-color:#1d4ed8;color:#fff;box-shadow:0 4px 10px rgba(37,99,235,.3)}.calendar-primary-btn:hover:not(:disabled){opacity:.9}.calendar-secondary-btn{background-color:#e2e8f0;color:#1e293b}.calendar-secondary-btn:hover:not(:disabled){opacity:.85}.calendar-primary-btn:disabled,.calendar-secondary-btn:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.calendar-form-error{margin:0;color:#dc2626;font-weight:600}.calendar-inline-error{margin:0 0 1rem;color:#dc2626;font-weight:600}.calendar-upcoming{margin-top:1.5rem;margin-bottom:2.25rem}.calendar-upcoming__title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;background:none;border:none;padding:0;color:#1d4ed8;cursor:pointer;text-align:left;transition:color .2s ease}.calendar-upcoming__title:hover{color:#1e40af;text-decoration:underline}.calendar-upcoming__list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.calendar-upcoming__item{border:1px solid #e2e8f0;border-radius:12px;padding:.85rem 1rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;background-color:#fff}.calendar-upcoming__item-title{margin:0;font-weight:600}.calendar-upcoming__meta{display:block;margin-top:.15rem;color:#475569;font-size:.9rem}.calendar-category-pill{font-weight:600;color:#1d4ed8;white-space:nowrap}.calendar-upcoming__actions{display:flex;align-items:center;gap:.75rem}.calendar-edit-btn{border:1px solid #cbd5f5;background-color:#eef2ff;color:#1d4ed8;padding:.35rem .9rem;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s ease,color .2s ease,opacity .2s ease}.calendar-edit-btn:hover:not(:disabled){background-color:#dbeafe;color:#1e40af}.calendar-edit-btn:disabled{opacity:.7;cursor:not-allowed}.calendar-delete-btn{border:none;background-color:#ef4444;color:#fff;padding:.35rem .9rem;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.calendar-delete-btn:hover:not(:disabled){background-color:#dc2626}.calendar-delete-btn:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 1024px){.calendar-toolbar{flex-direction:column;align-items:flex-start}.calendar-toolbar__actions,.calendar-view-toggle{width:100%;justify-content:space-between}.calendar-view-toggle__btn{flex:1;text-align:center}}@media (max-width: 768px){.calendar-upcoming__item{flex-direction:column;align-items:flex-start}.calendar-category-pill{font-size:.9rem}.calendar-upcoming__actions{width:100%;justify-content:space-between}}@media (max-width: 600px){.calendar-view-toggle{gap:.35rem}.calendar-view-toggle__btn{padding:.45rem .75rem}.calendar-upcoming__list{gap:.6rem}.calendar-add-form__grid{grid-template-columns:1fr}.calendar-upcoming__actions{flex-direction:column;align-items:flex-start}}.todo-list{border:1px solid #e2e8f0;border-radius:16px;padding:1.25rem;background-color:#f8fafc;width:100%;box-shadow:inset 0 0 0 1px rgba(15,23,42,.02)}.todo-list__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.todo-list__eyebrow{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:#94a3b8}.todo-list__title{margin:.25rem 0 0;font-size:1.2rem;font-weight:600}.todo-list__count{border-radius:999px;background-color:#e2e8f0;padding:.15rem .75rem;font-weight:600;font-size:.85rem;color:#475569}.todo-list__form{display:flex;gap:.5rem;margin-bottom:1rem}.todo-list__form input{flex:1;border:1px solid #cbd5f5;border-radius:10px;padding:.55rem .75rem;font-size:.95rem;background-color:#fff}.todo-list__form input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.2)}.todo-list__form button{border:none;border-radius:10px;background-color:#1d4ed8;color:#fff;padding:.55rem 1.1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease}.todo-list__form button:disabled{background-color:#cbd5f5;cursor:not-allowed;box-shadow:none}.todo-list__form button:not(:disabled):hover{background-color:#1e40af;box-shadow:0 5px 12px rgba(30,64,175,.35)}.todo-list__status{margin:0;font-weight:600;color:#475569}.todo-list__error{margin:0;color:#dc2626;font-weight:600}.todo-list__retry{margin-top:.75rem;padding:.5rem 1rem;border-radius:10px;border:none;background-color:#1d4ed8;color:#fff;font-weight:600;cursor:pointer}.todo-list__items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem}.todo-list__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border:1px solid #e2e8f0;border-radius:12px;padding:.7rem .9rem;background-color:#fff;transition:border-color .2s ease,box-shadow .2s ease}.todo-list__item:hover{border-color:#cbd5f5;box-shadow:0 4px 12px rgba(15,23,42,.08)}.todo-list__item-label{display:flex;align-items:center;gap:.65rem;font-weight:500;cursor:pointer;flex:1;min-width:0}.todo-list__item-label input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:#1d4ed8}.todo-list__item-actions{display:flex;align-items:center;gap:.5rem}.todo-list__item.is-complete .todo-list__item-label span{text-decoration:line-through;color:#94a3b8}.todo-list__badge{border-radius:999px;background-color:#dcfce7;color:#15803d;padding:.2rem .65rem;font-size:.75rem;font-weight:600}.todo-list__empty-state{margin:1.25rem 0 0;text-align:center;color:#64748b;font-weight:500}.todo-list__form-error,.todo-list__inline-error{margin:0 0 .75rem;color:#dc2626;font-weight:600}.todo-list__delete-btn{border:none;border-radius:8px;padding:.35rem .9rem;background-color:#ef4444;color:#fff;font-weight:600;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.todo-list__delete-btn:hover:not(:disabled){background-color:#dc2626}.todo-list__delete-btn:disabled{opacity:.65;cursor:not-allowed}.todo-list__drag-handle{display:flex;align-items:center;cursor:grab;color:#94a3b8;padding:.25rem;border-radius:6px;transition:background-color .2s ease,color .2s ease}.todo-list__drag-handle:hover{background-color:#f1f5f9;color:#475569}.todo-list__drag-handle:active{cursor:grabbing}.todo-list__item.is-dragging{z-index:999;cursor:grabbing}.todo-list__item.is-dragging .todo-list__drag-handle{cursor:grabbing}@media (max-width: 600px){.todo-list{padding:1rem}.todo-list__form{flex-direction:column}.todo-list__form button{width:100%}.todo-list__item{flex-direction:column;align-items:flex-start}.todo-list__item-actions{width:100%;justify-content:space-between}.todo-list__drag-handle{padding:.5rem}}.login-card{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 25px 45px rgba(15,23,42,.12);display:flex;flex-direction:column;gap:1.5rem}.login-card__header h1{margin:.25rem 0 .5rem;font-size:clamp(1.8rem,1.5rem + 1vw,2.3rem);color:#0f172a}.login-card__eyebrow{margin:0;font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:#64748b}.login-card__description{margin:0;color:#475569}.login-form{display:flex;flex-direction:column;gap:.75rem}.login-form label{font-weight:600;color:#1e293b}.login-form input{border-radius:10px;border:1px solid #cbd5f5;padding:.85rem 1rem;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.login-form input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.15)}.login-form__error{margin:.25rem 0 0;color:#dc2626;font-weight:600}.login-form__submit{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;border:none;border-radius:12px;padding:.9rem 1.1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.login-form__submit:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(37,99,235,.25)}.login-form__submit:disabled{opacity:.7;cursor:not-allowed;box-shadow:none;transform:none}@media (max-width: 600px){.login-card{padding:1.5rem}}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;color:#0f172a;background-color:#f8fafc;color-scheme:light}*{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#f1f5f9}#root{min-height:100vh;width:100%}.app-shell{max-width:960px;width:100%;margin:0 auto;padding:1rem 2rem 3rem;display:flex;flex-direction:column;gap:.5rem}.app-header{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;margin-bottom:1.5rem;padding:1.75rem 2rem;border-radius:22px;background:linear-gradient(120deg,#1d4ed8,#3b82f6);color:#fff;box-shadow:0 25px 45px rgba(30,64,175,.25)}.app-header__content{display:flex;flex-direction:column;gap:.35rem}.app-header__eyebrow{font-size:.9rem;letter-spacing:.18em;text-transform:uppercase;margin:0;color:rgba(255,255,255,.75)}.app-header h2{margin:0;font-size:clamp(2.1rem,1.8rem + .8vw,2.6rem)}.app-header__welcome{margin:0;font-size:1rem;color:rgba(255,255,255,.9)}.logout-button{background:rgba(15,23,42,.25);border:1px solid rgba(255,255,255,.35);color:#fff;padding:.55rem 1.25rem;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s ease}.logout-button:hover{background:rgba(15,23,42,.35)}.app-card{background:#fff;border-radius:16px;box-shadow:0 10px 25px rgba(15,23,42,.1);padding:1.5rem}.tabs-list{display:inline-flex;border:1px solid #cbd5f5;border-radius:999px;padding:.25rem;background:#f1f5f9;margin-bottom:1.25rem}.tabs-trigger{border:none;background:transparent;padding:.4rem 1.25rem;border-radius:999px;font-size:.95rem;font-weight:600;color:#475569;cursor:pointer;transition:all .2s ease}.tabs-trigger[data-state=active]{background:#1d4ed8;color:#fff;box-shadow:0 5px 15px rgba(37,99,235,.3)}.calendar-wrapper{overflow:hidden;border-radius:12px;border:1px solid #e2e8f0;background-color:#fff}.fullcalendar{background:#fff}@media (max-width: 1024px){.app-shell{padding:2rem 1.5rem 2.5rem}.app-card{padding:1.4rem}.tabs-list{width:100%;justify-content:center}}@media (max-width: 768px){.app-shell{padding:1.5rem 1rem 2rem}.app-header h1{font-size:2rem}.app-card{padding:1.25rem;border-radius:14px}.tabs-list{flex-wrap:wrap;gap:.5rem}.tabs-trigger{flex:1;min-width:120px;text-align:center}.calendar-wrapper{border-radius:10px}}@media (max-width: 600px){.tabs-trigger{font-size:.9rem;padding:.35rem .9rem}}
