@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap");:root{--color-purple-600:#fefefe;--color-indigo-800:#f6f5f5;--color-white:#323131;--color-entries-table-tbody:#faf8f8;--color-black:#575757;--color-gray-50:#edecec;--color-gray-200:#dbdbdb;--color-gray-500:#5a5b5a;--color-gray-300:#a1a4a8;--color-gray-400:#c7c9ca;--color-no-entries-message:#5a5b5a;--color-edit-btn:#9bc8ed;--color-edit-btn-hoover:#6ab2ee;--color-delete-btn:#f08f8f;--color-delete-btn-hoover:#eb5a5a;--color-gray-700:#3f403f;--color-gray-600:#f0f0f0;--color-gray-800:#212121;--color-gray-900:#212121;--color-form-select-focus:#EF2E2E;--color-indigo-700:#d0f3ff;--color-indigo-900:#f1f0f2;--color-yellow-300:#c670eb;--color-blue-400:#f4e2af;--color-blue-600:#795ea9;--color-blue-700:#573298;--color-current-day-bg:#b8defc;--color-current-day-boarder:#EF2E2E;--color-calendar-day-bg:#f4f6f8;--color-calendar-day-hoover:#e9e9e9;--color-calendar-day-boarder:#c8c7c7;--color-add-new-entry-btn:#795ea9;--color-add-new-entry-text:#f7f3f3;--color-purple-600-darker:#795ea9;--color-icon-plus:#e7e2e2}body{margin:0;font-family:Inter,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.main-app-container{min-height:100vh;background:linear-gradient(to bottom right,var(--color-purple-600),var(--color-indigo-800));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;color:var(--color-white)}.content-wrapper{background-color:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:1rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);padding:2rem;max-width:42rem;width:100%;text-align:center;border:1px solid rgba(255,255,255,.2);margin-bottom:2rem}.main-title{font-size:2.25rem;font-weight:600;margin-bottom:1rem}.subtitle{font-size:1.125rem;margin-bottom:1.5rem;opacity:.9;background-color:#f0f8ff;padding:12px 20px;border-radius:8px}.week-navigation{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:20rem;box-sizing:border-box;margin:2rem auto 1rem}.nav-button{padding:.5rem;border-radius:9999px;background-color:rgba(255,255,255,.2);transition:background-color .2s ease-in-out;border:none;cursor:pointer;color:var(--color-white)}.nav-button:hover{background-color:rgba(255,255,255,.3)}.nav-button:focus{outline:none;box-shadow:0 0 0 2px rgba(255,255,255,.5)}.nav-button-disabled{cursor:not-allowed}.nav-button-disabled,.nav-button-disabled:hover{background-color:rgba(107,114,128,.4)}.week-number{font-size:1.25rem;font-weight:700;flex-grow:1;text-align:center}.nav-icon{height:1.5rem;width:1.5rem;stroke:currentColor}.calendar-grid{margin-top:2rem;display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:20rem;margin-left:auto;margin-right:auto}.calendar-day{display:flex;align-items:center;justify-content:space-between;padding:.75rem;border-radius:.75rem;cursor:pointer;transition:all .3s ease-in-out;background-color:var(--color-calendar-day-bg);border:1px solid var(--color-calendar-day-boarder)}.calendar-day:hover{background-color:var(--color-calendar-day-hoover)}.calendar-day-today{background-color:var(--color-current-day-bg);border:2px solid var(--color-current-day-boarder);transform:scale(1.05);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.day-info{display:flex;flex-direction:column;align-items:flex-start}.day-name{font-size:.875rem;font-weight:600}@media (min-width:768px){.week-navigation{max-width:28rem}}@media (min-width:640px){.calendar-grid{gap:1rem}}@media (min-width:768px){.calendar-grid{max-width:28rem}}@media (min-width:640px){.calendar-day{padding:1rem}.day-name{font-size:1rem}.day-date{font-size:.875rem}}.day-date{font-size:.75rem;opacity:.8}.day-badges{display:flex;align-items:center;gap:.5rem}.entry-count-badge{background-color:var(--color-blue-400);color:var(--color-white)}.entry-count-badge,.today-badge{padding:.25rem .75rem;font-size:.75rem;font-weight:700;border-radius:9999px}.today-badge{background-color:var(--color-yellow-300);color:var(--color-indigo-900)}.btn-add-day-entry{background-color:var(--color-blue-600);color:var(--color-white);border-radius:9999px;padding:.5rem;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:background-color .2s ease-in-out;margin-left:.5rem}.btn-add-day-entry .btn-icon{display:block;margin:auto;color:var(--color-icon-plus)}.btn-add-day-entry:hover{background-color:var(--color-blue-700)}.add-new-entry-text{color:var(--color-add-new-entry-text);font-weight:600;font-size:.875rem}.modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:3rem;z-index:50}.modal-content{background-color:rgba(255,255,255,.95);border-radius:1rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);padding:1.5rem;max-width:24rem;width:100%;text-align:center;border:1px solid rgba(255,255,255,.3);transform:scale(.95);transition:all .3s ease-out;color:var(--color-gray-800)}@media (min-width:640px){.modal-content{padding:2rem}}.modal-title{font-size:1.5rem;font-weight:700;color:var(--color-gray-800);margin-bottom:1.5rem}.entries-table-container{margin-bottom:1.5rem;margin-top:1rem;max-height:12rem;overflow-y:auto;border:1px solid var(--color-gray-200);border-radius:.5rem;box-shadow:inset 0 2px 4px 0 rgba(0,0,0,.06)}.entries-table{min-width:100%;border-collapse:collapse}.entries-table thead{background-color:var(--color-gray-50);position:-webkit-sticky;position:sticky;top:0;z-index:10}.table-header{padding:.5rem 1rem;text-align:left;font-size:.75rem;font-weight:500;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em}.entries-table tbody{background-color:var(--color-entries-table-tbody)}.entries-table tbody tr{border-top:1px solid var(--color-gray-200)}.table-data{padding:.5rem 1rem;white-space:nowrap;font-size:.875rem;color:var(--color-black);text-align:left}.actions-column{display:flex;gap:.5rem;justify-content:flex-end;padding-right:1rem}.btn-action{padding:.25rem .75rem;border-radius:.5rem;font-size:.75rem;font-weight:600;cursor:pointer;border:none;transition:background-color .2s ease-in-out}.btn-edit{background-color:var(--color-edit-btn)}.btn-edit:hover{background-color:var(--color-edit-btn-hoover)}.btn-delete{background-color:var(--color-delete-btn)}.btn-delete:hover{background-color:var(--color-delete-btn-hoover)}.no-entries-message{color:var(--color-no-entries-message);margin-bottom:1.5rem}.form-group{margin-bottom:1rem;text-align:left}.form-label{display:block;color:var(--color-gray-700);font-size:.875rem;font-weight:600;margin-bottom:.5rem}.form-input,.form-select{width:100%;padding:.75rem;border-radius:.5rem;border:1px solid var(--color-gray-300);color:var(--color-gray-900);background-color:var(--color-gray-50);transition:all .2s ease-in-out;box-sizing:border-box}.form-input:focus,.form-select:focus{outline:none;box-shadow:0 0 0 2px var(--color-form-select-focus);border-color:transparent}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.modal-actions-single{display:flex;justify-content:center;gap:.75rem;margin-top:1.5rem}.btn{padding:.75rem 1.5rem;border-radius:9999px;font-weight:600;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);transition:all .3s ease-in-out;border:none;cursor:pointer}.btn-primary{background-color:var(--color-purple-600);color:var(--color-white)}.btn-primary:hover{background-color:var(--color-purple-600-darker)}.btn-secondary{background-color:var(--color-gray-300);color:var(--color-gray-800)}.btn-disabled,.btn-secondary:hover{background-color:var(--color-gray-400)}.btn-disabled{color:var(--color-gray-600);cursor:not-allowed}.btn-add-entry{background-color:var(--color-add-new-entry-btn);display:flex;align-items:center;justify-content:center;margin-left:auto;margin-right:auto}.btn-add-entry:hover{background-color:var(--color-blue-700)}.btn-icon{height:1.25rem;width:1.25rem;margin-right:.5rem;stroke:currentColor}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalPopIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.animate-fade-in-down{animation:fadeInDown 1s ease-out forwards}.animate-fade-in-up{animation:fadeInUp 1s ease-out forwards;animation-delay:.3s}.animate-fade-in{animation:fadeIn 1s ease-out forwards;animation-delay:.6s}.animate-modal-pop-in{animation:modalPopIn .3s ease-out forwards}