*{box-sizing:border-box}body{color:#39424e;background:#fff;min-width:320px;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{cursor:pointer}.login-page{background:#fff;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.login-card{text-align:center;width:100%;max-width:360px}.login-card h1{color:#6f8fa8;letter-spacing:6px;margin:0 0 48px;font-size:34px;font-weight:600}.login-form{flex-direction:column;gap:12px;display:flex}.login-form input{color:#39424e;background:#fff;border:1px solid #dce3e8;border-radius:6px;outline:none;width:100%;height:48px;padding:0 16px;transition:border-color .2s,box-shadow .2s}.login-form input::placeholder{color:#a7b0b8}.login-form input:focus{border-color:#8ea8bb;box-shadow:0 0 0 3px #6f8fa81a}.login-form button{color:#fff;background:#6f8fa8;border:0;border-radius:6px;width:100%;height:48px;margin-top:6px;font-weight:600}.signup-button{color:#7d8992;background:0 0;border:0;margin-top:18px;padding:4px 8px;font-size:14px}.signup-button:hover{color:#6f8fa8}.login-switch{color:#8a959d;justify-content:center;align-items:center;gap:6px;margin-top:18px;font-size:14px;display:flex}.login-switch .signup-button{color:#6f8fa8;margin-top:0;padding:0;font-weight:600}.login-switch .signup-button:hover{color:#58788f}.login-subtitle{color:#6f7f8b;letter-spacing:1px;margin:-26px 0 16px;font-size:16px;font-weight:500}.calendar-page{color:#39424e;background:#fff;min-height:100vh;padding:40px 48px}.calendar-header{max-width:1200px;margin:0 auto 28px}.calendar-header h1{color:#6f8fa8;letter-spacing:5px;margin:0 0 10px;font-size:28px;font-weight:600}.calendar-month{justify-content:center;align-items:center;gap:18px;margin-bottom:20px;display:flex}.calendar-month h2{text-align:center;color:#39424e;min-width:150px;margin:0;font-size:22px;font-weight:600}.calendar-month button{color:#6f8fa8;background:0 0;border:0;width:34px;height:34px;font-size:26px;line-height:1}.calendar-categories{justify-content:center;gap:8px;display:flex}.calendar-categories button{color:#7d8992;background:#fff;border:1px solid #dce3e8;border-radius:999px;padding:8px 16px;font-size:14px}.calendar-categories button.active{color:#fff;background:#6f8fa8;border-color:#6f8fa8}.calendar{border-top:1px solid #dce3e8;border-left:1px solid #dce3e8;max-width:1200px;margin:0 auto}.calendar-weekdays{grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekdays div{text-align:center;color:#7d8992;background:#f8fafb;border-bottom:1px solid #dce3e8;border-right:1px solid #dce3e8;padding:14px 8px;font-size:14px;font-weight:600}.calendar-grid{grid-template-rows:repeat(6,1fr);grid-template-columns:repeat(7,1fr);height:calc(100vh - 330px);display:grid}.calendar-day{background:#fff;border-bottom:1px solid #dce3e8;border-right:1px solid #dce3e8;min-height:0;padding:8px 12px 12px;position:relative;overflow:hidden}.calendar-day span{color:#4f5b66;font-size:14px}.calendar-day.other-month span{color:#c4cbd1}.calendar-grid .calendar-day:nth-child(7n+1) span{color:#b98282}.calendar-grid .calendar-day:nth-child(7n) span{color:#7898b0}.calendar-grid .calendar-day.other-month span{color:#c4cbd1}.calendar-weekdays div:first-child{color:#b98282}.calendar-weekdays div:last-child{color:#7898b0}.calendar-top{justify-content:space-between;align-items:center;display:flex}.calendar-top h1{margin-bottom:12px}.user-area{color:#7d8992;align-items:center;gap:12px;margin-bottom:12px;font-size:14px;display:flex}.user-area button{color:#7d8992;background:#fff;border:1px solid #dce3e8;border-radius:6px;padding:6px 10px;font-size:13px}.user-area button:hover{color:#6f8fa8;border-color:#8ea8bb}.calendar-day span.today{color:#fff;background:#6f8fa8;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;margin:-5px;font-weight:600;display:inline-flex}.calendar-month .today-button{color:#6f8fa8;background:#fff;border:1px solid #dce3e8;border-radius:999px;width:auto;height:32px;margin-left:6px;padding:0 12px;font-size:13px}.calendar-month .today-button:hover{background:#f8fafb;border-color:#8ea8bb}.month-navigation{justify-content:center;align-items:center;gap:18px;display:flex}.category-modal{z-index:1000;background:#39424e2e;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.category-modal-content{text-align:center;background:#fff;border:1px solid #e1e7eb;border-radius:12px;width:100%;max-width:340px;padding:28px;box-shadow:0 18px 50px #39424e1f}.category-modal-content h3{color:#39424e;margin:0 0 24px;font-size:18px;font-weight:600}.category-modal-content button{color:#6f8fa8;background:#fff;border:1px solid #dce3e8;border-radius:6px;min-width:80px;height:38px;padding:0 16px;font-size:14px}.category-modal-content button:hover{background:#f8fafb;border-color:#8ea8bb}.category-form{text-align:left;flex-direction:column;gap:20px;display:flex}.category-form label,.category-color-field{flex-direction:column;gap:8px;display:flex}.category-form label>span,.category-color-field>span{color:#6f7882;font-size:13px}.category-form input{box-sizing:border-box;color:#39424e;background:#fff;border:1px solid #dce3e8;border-radius:6px;outline:none;width:100%;height:40px;padding:0 12px;font-size:14px}.category-form input:focus{border-color:#8ea8bb}.category-colors{gap:10px;display:flex}.category-colors .color-option{border:2px solid #0000;border-radius:50%;width:26px;min-width:0;height:26px;padding:0}.color-blue{background:#89a9bf!important}.color-purple{background:#aaa0c8!important}.color-pink{background:#d5a4aa!important}.color-green{background:#9db9a5!important}.color-yellow{background:#d7bf83!important}.category-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.category-modal-actions .category-save-button{color:#fff;background:#7898b0;border-color:#7898b0}.category-modal-actions .category-save-button:hover{color:#fff;background:#6f8fa8}.category-colors .color-option.selected{border-color:#fff;box-shadow:0 0 0 2px #7898b0}.calendar-categories .category-button.active.category-blue{color:#fff;background:#89a9bf;border-color:#89a9bf}.calendar-categories .category-button.active.category-purple{color:#fff;background:#aaa0c8;border-color:#aaa0c8}.calendar-categories .category-button.active.category-pink{color:#fff;background:#d5a4aa;border-color:#d5a4aa}.calendar-categories .category-button.active.category-green{color:#fff;background:#9db9a5;border-color:#9db9a5}.calendar-categories .category-button.active.category-yellow{color:#fff;background:#d7bf83;border-color:#d7bf83}.category-manage-list{border-bottom:1px solid #edf0f2;flex-direction:column;gap:8px;margin-bottom:24px;padding-bottom:20px;display:flex}.category-manage-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.category-manage-name{color:#59636d;align-items:center;gap:8px;min-width:0;font-size:14px;display:flex}.category-color-dot{border-radius:50%;flex:none;width:10px;height:10px}.category-manage-actions{gap:4px;display:flex}.category-manage-actions button{color:#929ba3;background:0 0;border:0;width:auto;min-width:0;height:28px;padding:0 8px;font-size:12px}.category-manage-actions button:hover{color:#6f8fa8;background:#f8fafb}.calendar-day span.today.today-blue{background:#89a9bf}.calendar-day span.today.today-purple{background:#aaa0c8}.calendar-day span.today.today-pink{background:#d5a4aa}.calendar-day span.today.today-green{background:#9db9a5}.calendar-day span.today.today-yellow{background:#d7bf83}.calendar-day.selected-day{background:#f6f9fb;box-shadow:inset 0 0 0 2px #c5d4df}.schedule-modal{z-index:1000;background:#313d482e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.schedule-modal-content{text-align:center;background:#fff;border-radius:14px;width:320px;padding:30px 28px;box-shadow:0 18px 45px #37465529}.schedule-modal-content h3{color:#27313a;margin:0 0 18px;font-size:18px}.schedule-modal-content p{color:#7890a3;margin:0 0 22px;font-size:14px}.schedule-modal-content button{color:#71889a;cursor:pointer;background:#fff;border:1px solid #d8e1e7;border-radius:7px;padding:9px 20px}.schedule-form{text-align:left;flex-direction:column;gap:16px;display:flex}.schedule-date{color:#6f8fa8;text-align:center;background:#f6f9fb;border-radius:8px;padding:10px 12px;font-size:14px}.schedule-form label{flex-direction:column;gap:7px;display:flex}.schedule-form label>span{color:#6f7882;font-size:13px}.schedule-form input,.schedule-form select,.schedule-form textarea{color:#39424e;width:100%;font:inherit;box-sizing:border-box;background:#fff;border:1px solid #dce3e8;border-radius:7px;outline:none;padding:10px 12px}.schedule-form input:focus,.schedule-form select:focus,.schedule-form textarea:focus{border-color:#8ea8bb}.schedule-form textarea{resize:vertical}.schedule-modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.schedule-modal-actions .schedule-save-button{color:#fff;background:#7898b0;border-color:#7898b0}.schedule-modal-actions .schedule-save-button:hover{background:#6f8fa8}.day-schedules{flex-direction:column;gap:3px;margin-top:5px;display:flex}.day-schedule{box-sizing:border-box;border-radius:5px;align-items:center;gap:4px;width:100%;padding:3px 5px;font-size:10px;line-height:1.2;display:flex;overflow:hidden}.day-schedule .schedule-time{opacity:.75;flex-shrink:0;font-size:10px}.day-schedule .schedule-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.day-schedule.category-blue{color:#4f748c;background:#cfe2ed}.day-schedule.category-purple{color:#8176a8;background:#f1eef8}.category-uncategorized{color:#7b848c;background:#f1f3f5}.day-schedule.category-pink{color:#a97880;background:#f8eeee}.day-schedule.category-green{color:#718e79;background:#eef5f0}.day-schedule.category-yellow{color:#9b824d;background:#f8f3e7}.schedule-modal-actions{justify-content:space-between}.schedule-modal-actions-right{gap:8px;display:flex}.schedule-modal-actions .schedule-delete-button{color:#b17c7c;background:#fff;border-color:#ead9d9}.schedule-modal-actions .schedule-delete-button:hover{background:#fbf5f5;border-color:#dfc6c6}.delete-confirm-overlay{z-index:1100;background:#313d4838;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.delete-confirm{text-align:center;background:#fff;border-radius:12px;width:280px;padding:26px;box-shadow:0 18px 45px #3746552e}.delete-confirm h4{color:#39424e;margin:0 0 8px;font-size:16px}.delete-confirm p{color:#929ba3;margin:0 0 22px;font-size:13px}.delete-confirm-actions{justify-content:center;gap:8px;display:flex}.delete-confirm-actions button{color:#71889a;background:#fff;border:1px solid #dce3e8;border-radius:6px;min-width:70px;height:36px}.delete-confirm-actions .confirm-delete-button{color:#fff;background:#b98282;border-color:#d8bcbc}.schedule-repeat-icon{opacity:.65;flex-shrink:0;margin-left:auto;font-size:11px}.more-schedules{color:#7f8a93;cursor:pointer;background:#f3f6f8;border:none;border-radius:999px;padding:2px 6px;font-family:inherit;font-size:10px;line-height:1.2;position:absolute;top:8px;bottom:auto;right:8px}.day-schedule-list{flex-direction:column;gap:8px;max-height:360px;padding-right:4px;display:flex;overflow-y:auto}.day-schedule-list-item{text-align:left;cursor:pointer;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;display:flex}.day-schedule-list-time{opacity:.7;flex-shrink:0;min-width:56px;font-size:11px}.day-schedule-list-title{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.login-message-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999;background:#ffffff8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-message-modal{text-align:center;background:#fff;border:1px solid #d9e3ea;border-radius:16px;width:min(360px,100% - 40px);padding:28px 24px 22px;box-shadow:0 18px 45px #50697d29}.login-message-modal p{color:#4f6574;white-space:pre-line;margin:0 0 22px;font-size:14px;line-height:1.7}.login-message-modal button{color:#fff;cursor:pointer;background:#789ab3;border:0;border-radius:8px;width:100%;padding:11px 16px;font-size:14px;font-weight:600}.login-message-modal button:hover{background:#6d8fa8}@media (width<=768px){.calendar-page{padding:28px 20px}.calendar-header{margin-bottom:24px}.calendar-header h1{letter-spacing:4px;text-align:center;white-space:nowrap;width:100%;margin-bottom:18px;font-size:24px}.calendar-month{gap:10px}.calendar-month h2{min-width:130px;font-size:20px}.calendar-categories{flex-wrap:wrap;gap:8px}.calendar-top{flex-direction:column;align-items:flex-start}.user-area{justify-content:space-between;width:100%;margin-bottom:16px}.user-area span,.user-area button{white-space:nowrap}.calendar-top{margin-bottom:8px}.user-area,.calendar-month{margin-bottom:24px}.calendar-categories{margin-bottom:28px}.month-navigation{justify-content:center;align-items:center;gap:18px;display:flex}@media (width<=600px){.calendar-month{justify-content:center;position:relative}.month-navigation{gap:14px}.calendar-month .today-button{margin-left:0;position:absolute;right:0}.calendar-categories{margin-bottom:28px}.day-schedule .schedule-time{display:none}.day-schedule{padding:3px 4px}.day-schedule .schedule-title{text-align:left;width:100%;font-size:9px}.schedule-modal{align-items:flex-start;padding:8px 0;overflow-y:auto}.schedule-modal-content{scrollbar-width:none;width:calc(100% - 32px);max-width:360px;max-height:calc(100dvh - 16px);padding:16px 20px;overflow-y:auto}.schedule-modal-content::-webkit-scrollbar{display:none}.calendar-day{padding:1px 5px 3px}.calendar-day .day-number{font-size:12px;line-height:1}.calendar-day .day-number.today{width:20px;height:20px;margin:-2px}.day-schedules{margin-top:1px}.more-schedules{padding:1px 4px;font-size:8px;line-height:1.2;top:2px;bottom:auto;right:3px}}}
