.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14142873;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-card{width:480px;max-width:95vw;border-radius:16px;padding:0;box-shadow:0 20px 60px #00000040;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px}.modal-day-label{font-size:13px;color:#555;font-weight:500;display:flex;align-items:center;gap:5px}.modal-cal-icon{font-size:14px}.modal-header-actions{display:flex;align-items:center;gap:8px}.modal-icon-btn{background:none;border:none;font-size:15px;cursor:pointer;padding:3px 5px;border-radius:6px;color:#666;opacity:.7}.modal-icon-btn:hover{opacity:1;background:#0000000f}.modal-color-wrap{position:relative}.modal-color-btn{width:20px;height:20px;border-radius:50%;border:2px solid rgba(0,0,0,.15);cursor:pointer;padding:0}.modal-palette{position:absolute;right:0;top:26px;background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:6px;display:flex;gap:5px;z-index:10;box-shadow:0 4px 16px #0000001f}.modal-swatch{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(0,0,0,.1);cursor:pointer;padding:0}.modal-swatch:hover{transform:scale(1.15)}.modal-swatch.clear{background:#f0f0f0;font-size:10px;color:#888;display:flex;align-items:center;justify-content:center;border-color:#ddd}.modal-title-row{display:flex;align-items:flex-start;gap:10px;padding:4px 16px 12px}.modal-title{flex:1;border:none;outline:none;background:transparent;font-size:22px;font-weight:700;color:#1a1a2e;resize:none;font-family:inherit;line-height:1.35}.modal-title::placeholder{color:#bbb;font-weight:400}.modal-done-btn{background:none;border:2px solid #bbb;border-radius:50%;width:28px;height:28px;font-size:14px;color:#888;cursor:pointer;flex-shrink:0;margin-top:4px;display:flex;align-items:center;justify-content:center;transition:all .15s}.modal-done-btn.checked{background:#6c63ff;border-color:#6c63ff;color:#fff}.modal-done-btn:hover{border-color:#6c63ff;color:#6c63ff}.modal-divider{height:1px;background:#00000014;margin:0 16px}.modal-toolbar{display:flex;gap:2px;padding:8px 16px 4px}.toolbar-btn{background:none;border:none;font-size:13px;font-weight:700;color:#888;padding:4px 8px;border-radius:5px;cursor:pointer;font-family:inherit}.toolbar-btn:hover{background:#00000012;color:#333}.toolbar-btn.bold{font-style:normal}.modal-notes{width:100%;border:none;outline:none;background:transparent;font-size:13.5px;color:#333;resize:none;padding:8px 16px 12px;font-family:inherit;line-height:1.6}.modal-notes::placeholder{color:#aaa}.modal-subtasks{padding:10px 16px;display:flex;flex-direction:column;gap:4px}.subtask-row{display:flex;align-items:center;gap:8px;padding:4px 0}.subtask-check{width:14px;height:14px;accent-color:#6c63ff;cursor:pointer;flex-shrink:0}.subtask-text{flex:1;font-size:13px;color:#333}.subtask-text.done{text-decoration:line-through;color:#bbb}.subtask-del{background:none;border:none;color:#ccc;font-size:15px;cursor:pointer;opacity:0;padding:0 2px}.subtask-row:hover .subtask-del{opacity:1}.subtask-del:hover{color:#e44}.subtask-add-row{display:flex;align-items:center;gap:8px;padding:4px 0}.subtask-icon{font-size:13px;opacity:.4}.subtask-input{flex:1;border:none;outline:none;background:transparent;font-size:13px;color:#555;font-family:inherit}.subtask-input::placeholder{color:#bbb}.modal-save-btn{margin:10px 16px 16px;background:#6c63ff;color:#fff;border:none;border-radius:10px;padding:10px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s}.modal-save-btn:hover{background:#574fd6}.auth-page{min-height:100vh;background:#080010;display:flex;align-items:center;justify-content:center;padding:20px;position:relative}.auth-card{position:relative;z-index:2;background:#fff;border-radius:20px;padding:40px 44px;width:100%;max-width:420px;box-shadow:0 24px 60px #0000004d}.auth-logo{font-size:28px;font-weight:700;color:#1a1a2e;letter-spacing:1px;margin-bottom:6px}.auth-logo-hub{color:#6c63ff}.auth-tagline{font-size:13px;color:#999;margin-bottom:28px}.auth-tabs{display:flex;border-bottom:2px solid #f0f0f0;margin-bottom:24px}.auth-tab{background:none;border:none;font-size:14px;font-weight:600;color:#bbb;padding:8px 0;margin-right:24px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;font-family:inherit}.auth-tab.active{color:#6c63ff;border-bottom-color:#6c63ff}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{font-size:12px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px}.auth-field input{border:1.5px solid #e8e8e8;border-radius:10px;padding:11px 14px;font-size:14px;color:#1a1a2e;outline:none;transition:border-color .15s;font-family:inherit}.auth-field input:focus{border-color:#6c63ff}.auth-error{font-size:13px;color:#e44;background:#fff0f0;padding:8px 12px;border-radius:8px;border:1px solid #ffcccc}.auth-submit{background:#6c63ff;color:#fff;border:none;border-radius:12px;padding:13px;font-size:15px;font-weight:700;cursor:pointer;margin-top:4px;transition:background .15s,transform .1s;font-family:inherit}.auth-submit:hover{background:#574fd6}.auth-submit:active{transform:scale(.98)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-forgot-link{background:none;border:none;font-size:12px;color:#6c63ff;cursor:pointer;padding:0;text-align:left;font-family:inherit;margin-top:-6px}.auth-forgot-link:hover{text-decoration:underline}.auth-back-row{display:flex;align-items:center;gap:10px;margin-bottom:20px}.auth-back-btn{background:none;border:none;font-size:13px;color:#999;cursor:pointer;padding:0;font-family:inherit}.auth-back-btn:hover{color:#555}.auth-step-title{font-size:16px;font-weight:700;color:#1a1a2e}.auth-info{font-size:13px;color:#6c63ff;background:#f4f3ff;padding:8px 12px;border-radius:8px;border:1px solid #d9d6ff;margin-bottom:8px}.code-inputs{display:flex;gap:8px}.code-cell{width:44px;height:52px;text-align:center;font-size:22px;font-weight:700;border:1.5px solid #e8e8e8;border-radius:10px;outline:none;font-family:inherit;color:#1a1a2e;transition:border-color .15s}.code-cell:focus{border-color:#6c63ff}.app{display:flex;flex-direction:column;height:100vh;background:#f4f5f7}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:58px;background:#1a1a2e;flex-shrink:0;box-shadow:0 2px 12px #0000002e}.logo{font-size:20px;font-weight:700;color:#fff;letter-spacing:1px}.logo-hub{color:#6c63ff;margin-left:1px}.header-center{display:flex;align-items:center;gap:14px}.week-nav-btn{background:#ffffff14;border:none;color:#fff;font-size:20px;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s}.week-nav-btn:hover{background:#ffffff2e}.week-info{display:flex;flex-direction:column;align-items:center;min-width:180px}.week-month{font-size:14px;font-weight:700;color:#fff;text-transform:capitalize}.week-range{font-size:11px;color:#ffffff80;margin-top:1px}.today-btn-wrap{width:100px;display:flex;align-items:center}.today-btn{background:#6c63ff;border:none;color:#fff;font-size:12px;padding:5px 12px;border-radius:20px;font-weight:600;transition:background .15s;white-space:nowrap;font-family:inherit}.today-btn:hover{background:#574fd6}.header-right{display:flex;align-items:center}.user-menu-wrap{position:relative}.user-avatar{width:34px;height:34px;border-radius:50%;background:#6c63ff;color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;user-select:none}.user-dropdown{position:absolute;right:0;top:42px;background:#fff;border-radius:12px;box-shadow:0 8px 30px #0000002e;padding:12px 0 8px;min-width:200px;z-index:100}.user-dropdown-name{font-size:14px;font-weight:700;color:#1a1a2e;padding:0 16px 2px}.user-dropdown-email{font-size:12px;color:#999;padding:0 16px 10px}.user-dropdown-divider{height:1px;background:#f0f0f0;margin-bottom:6px}.user-dropdown-logout{background:none;border:none;width:100%;text-align:left;padding:8px 16px;font-size:13px;color:#e44;cursor:pointer;font-family:inherit}.user-dropdown-logout:hover{background:#fff5f5}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);flex:1;overflow:hidden;gap:0;border-top:none}.day-col{display:flex;flex-direction:column;border-right:1px solid #e2e4e9;background:#fff;overflow:hidden}.day-col:last-child{border-right:none}.day-col.is-today{background:#fafbff}.day-col-header{padding:12px 12px 10px;border-bottom:2px solid #e2e4e9;background:inherit;position:sticky;top:0;z-index:1;display:flex;flex-direction:column;gap:2px;min-height:58px}.is-today .day-col-header{border-bottom-color:#6c63ff}.day-col-name{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#aaa}.is-today .day-col-name{color:#6c63ff}.day-col-date-row{display:flex;align-items:center;gap:6px}.day-col-date{font-size:13px;font-weight:600;color:#333;text-transform:capitalize}.today-badge{font-size:9px;background:#6c63ff;color:#fff;border-radius:10px;padding:1px 6px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}.day-col-body{flex:1;overflow-y:auto;padding:4px 0 12px}.day-col-body::-webkit-scrollbar{width:3px}.day-col-body::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}.task-row{display:flex;align-items:center;min-height:32px;padding:0 8px;border-bottom:1px solid #f0f1f4;transition:background .1s;position:relative;gap:4px}.task-row.empty{cursor:text}.task-row.empty:hover{background:#f7f8fc}.task-row.has-task{cursor:grab}.task-row.has-task:hover{filter:brightness(.97)}.task-row.has-task:active{cursor:grabbing}.task-row.has-task:hover .task-actions{opacity:1}.task-check-wrap{width:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.task-checkbox{width:13px;height:13px;cursor:pointer;accent-color:#6c63ff}.task-text-wrap{flex:1;min-width:0;padding:6px 2px}.task-text{font-size:12.5px;color:#222;line-height:1.35;display:block;cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-text.strikethrough{text-decoration:line-through;color:#bbb}.task-input{width:100%;border:none;outline:none;background:transparent;font-size:12.5px;color:#222;padding:0;line-height:1.35}.task-placeholder{display:block;height:18px}.task-actions{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .12s;flex-shrink:0}.task-delete-btn{background:none;border:none;font-size:15px;color:#ccc;padding:0 2px;line-height:1;display:flex;align-items:center}.task-delete-btn:hover{color:#e44}.color-picker-wrap{position:relative}.color-dot-btn{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(0,0,0,.12);padding:0;cursor:pointer}.color-palette{position:absolute;right:0;top:18px;background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:6px;display:flex;gap:5px;align-items:center;z-index:100;box-shadow:0 4px 16px #0000001f}.color-swatch{width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(0,0,0,.1);cursor:pointer;padding:0;transition:transform .1s}.color-swatch:hover{transform:scale(1.2)}.color-swatch.clear{background:#f0f0f0;font-size:10px;color:#999;display:flex;align-items:center;justify-content:center;border:1.5px solid #ddd}.add-more-btn{background:none;border:none;font-size:11px;color:#bbb;padding:6px 10px;width:100%;text-align:left}.add-more-btn:hover{color:#6c63ff;background:#f7f8fc}.task-num{font-size:10px;color:#ccc;font-weight:600;min-width:16px;flex-shrink:0;text-align:right;-webkit-user-select:none;user-select:none}.task-inline-input{flex:1;border:none;outline:none;background:transparent;font-size:12.5px;color:#222;padding:6px 2px;font-family:inherit;width:100%}.drag-overlay-item{background:#fff;box-shadow:0 8px 24px #0000002e;border-radius:6px;cursor:grabbing;padding:6px 10px}.undo-toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:#1a1a2e;color:#fff;font-size:13px;font-weight:600;padding:10px 22px;border-radius:24px;box-shadow:0 4px 20px #00000040;z-index:9999;pointer-events:none;animation:toast-in .2s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.mobile-day-strip{display:none}.mobile-day-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border:none;background:none;border-radius:12px;cursor:pointer;min-width:40px;flex:1;font-family:inherit;transition:background .15s}.mobile-day-name{font-size:10px;font-weight:700;color:#aaa;text-transform:uppercase;letter-spacing:.5px}.mobile-day-num{font-size:18px;font-weight:700;color:#333;line-height:1}.mobile-day-btn.today .mobile-day-num{color:#6c63ff}.mobile-day-btn.active{background:#6c63ff}.mobile-day-btn.active .mobile-day-name,.mobile-day-btn.active .mobile-day-num{color:#fff}@media (max-width: 768px){.mobile-day-strip{display:flex;background:#fff;border-bottom:1px solid #e2e4e9;padding:8px 12px;gap:2px;flex-shrink:0}.week-grid{grid-template-columns:1fr}.day-col{display:none}.day-col.mobile-selected{display:flex}.app-header{padding:0 14px;height:50px}.logo{font-size:17px}.week-month{font-size:12px}.week-range{display:none}.week-nav-btn{width:28px;height:28px;font-size:17px}.week-info{min-width:120px}.today-btn{font-size:11px;padding:4px 8px}.today-btn-wrap{width:auto}.task-row{min-height:44px;padding:0 12px}.task-text{font-size:13.5px}.modal-card{width:calc(100vw - 24px)!important;max-width:none!important;padding:18px 16px!important;border-radius:16px!important}.user-dropdown{right:0;min-width:170px}}.mobile-only{display:none}@media (max-width: 768px){.mobile-only{display:block;font-size:10px;padding:2px 8px;border-radius:10px;margin-top:2px}.today-btn-wrap{display:none}.header-left{display:flex;flex-direction:column;align-items:flex-start;gap:0}.app-header{height:auto;min-height:50px;padding:6px 14px}}@media (max-width: 768px){.task-delete-btn{font-size:20px;padding:0 4px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Century Gothic,CenturyGothic,Century,Trebuchet MS,Gill Sans,sans-serif;background:#f4f5f7;color:#1a1a2e;height:100vh;overflow:hidden}#root{height:100vh;display:flex;flex-direction:column}button{font-family:inherit;cursor:pointer}input{font-family:inherit}
