*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}img{max-width:100%;height:auto}button{background:none;border:none;cursor:pointer;font:inherit}input{font:inherit}a{text-decoration:none;color:inherit}::selection{background:#667eea33}.ui-card{background:var(--color-bg-card);border-radius:12px;box-shadow:0 2px 4px #0000000d;transition:transform .2s,box-shadow .2s;overflow:hidden;border:1px solid var(--color-border)}.ui-card:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.ui-card-header{padding:20px 24px 12px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.ui-card-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text-dark);display:flex;align-items:center;gap:8px}.ui-card-content{padding:0 24px 24px;color:var(--color-text-light)}.ui-card-footer{padding:12px 24px 24px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}.ui-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;border:none;outline:none;font-size:.875rem;gap:8px;white-space:nowrap}.ui-button-primary{background-color:var(--color-primary);color:var(--color-white)}.ui-button-primary:hover{background-color:#2e64c8}.ui-button-primary:active{background-color:var(--color-primary-active)}.ui-button-secondary{background-color:#edf2f7;color:var(--color-text-medium)}.ui-button-secondary:hover{background-color:var(--color-border);color:var(--color-text-dark)}.ui-button-secondary:active{background-color:var(--color-secondary-active)}.ui-button-outline{background-color:transparent;border:1px solid var(--color-border);color:var(--color-text-medium)}.ui-button-outline:hover{background-color:var(--color-bg-light);border-color:#67a8ee}.ui-button-outline:active{background-color:var(--color-outline-active)}.ui-button-ghost{background-color:transparent;color:var(--color-text-medium)}.ui-button-ghost:hover{background-color:#edf2f7}.ui-button-ghost:active{background-color:var(--color-ghost-active)}.ui-button-danger{background-color:var(--color-danger);color:var(--color-white)}.ui-button-danger:hover{background-color:#c53030}.ui-button-danger:active{background-color:var(--color-danger-active)}.ui-button:disabled{opacity:.6;cursor:not-allowed}.ui-button-sm{padding:4px 8px;font-size:.75rem}.ui-button-md{padding:8px 16px;font-size:.875rem}.ui-button-lg{padding:12px 24px;font-size:1rem}.ui-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1}.ui-badge-success{background-color:#c6f6d5;color:#22543d}.ui-badge-warning{background-color:#feebc8;color:#744210}.ui-badge-error{background-color:#fed7d7;color:#742a2a}.ui-badge-info{background-color:#bee3f8;color:#2c5282}.ui-badge-neutral{background-color:#edf2f7;color:var(--color-text-medium)}.ui-input-wrapper{display:flex;flex-direction:column;margin-bottom:16px}.ui-label{margin-bottom:8px;font-size:.875rem;font-weight:500;color:var(--color-text-medium)}.ui-input{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;transition:border-color .2s,box-shadow .2s;outline:none;box-sizing:border-box}.ui-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.ui-input-error{border-color:var(--color-danger)}.ui-input-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #e53e3e1a}.ui-input-error-message{margin-top:4px;font-size:.75rem;color:var(--color-danger)}.ui-textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;transition:border-color .2s,box-shadow .2s;outline:none;box-sizing:border-box;min-height:80px;resize:vertical;font-family:inherit}.ui-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.ui-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ui-modal-container{background:var(--color-bg-card);border-radius:12px;box-shadow:0 10px 25px #0000001a;width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.ui-modal-header{padding:20px 24px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.ui-modal-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-dark)}.ui-modal-close{background:transparent;border:none;cursor:pointer;color:var(--color-text-light);padding:4px;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.ui-modal-close:hover{background-color:#edf2f7;color:var(--color-text-medium)}.ui-modal-content{padding:24px;overflow-y:auto;color:var(--color-text-medium);line-height:1.6}.ui-modal-footer{padding:16px 24px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:12px;background-color:var(--color-bg-light);border-bottom-left-radius:12px;border-bottom-right-radius:12px}.ui-toggle-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.9rem;white-space:nowrap;transition:all .2s}.ui-toggle-btn.toggled{color:var(--color-success);background-color:var(--color-success-bg)}.auth-container{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}.auth-card{width:100%;max-width:400px}.error-message{background:var(--color-danger-light);color:var(--color-danger-dark);padding:12px;border-radius:8px;margin-bottom:20px;text-align:center;font-size:14px}.switch-auth-link{margin-top:24px;text-align:center;font-size:.95rem;color:var(--color-text-light);display:flex;align-items:center;justify-content:center;gap:6px}.switch-auth-link a{color:var(--color-primary);font-weight:600;text-decoration:none;transition:all .2s ease}.switch-auth-link a:hover{color:var(--color-primary-active-border);text-decoration:underline}@media(max-width:480px){.auth-card{padding:0}}.schedule-container{height:100%;display:flex;flex-direction:column;max-width:1200px;margin:0 auto}.schedule-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.header-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.week-badge{font-size:.85rem;color:var(--color-neutral-700);background:var(--color-neutral-100);padding:6px 10px;border-radius:6px;border:1px solid var(--color-border)}.today-week-badge{display:none}.header-right{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.current-time{font-size:1.5rem;font-weight:700;color:var(--color-log-payload-link);font-family:monospace}.add-task-form{display:flex;flex-direction:column;gap:16px}.task-type-selector{display:flex;gap:10px;margin-bottom:10px}.time-inputs{display:flex;gap:16px}.time-inputs>.input-wrapper{flex:1}.timeline-view-wrapper{flex:1;overflow:hidden;padding:0 24px 24px}.timeline-view{height:100%;overflow-y:auto;padding-right:10px}.timeline-item{display:flex;margin-bottom:20px;position:relative}.timeline-item:before{content:"";position:absolute;left:60px;top:0;bottom:-20px;width:2px;background:var(--color-timeline-line)}.timeline-item:last-child:before{display:none}.time-column{width:60px;text-align:right;padding-right:15px;display:flex;flex-direction:column;color:var(--color-neutral-600)}.start-time{font-weight:700;font-size:1rem}.duration{font-size:.8rem;color:var(--color-neutral-500);margin-top:4px}.content-column{flex:1;padding-left:15px;position:relative}.content-column:before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--color-timeline-dot);border:2px solid var(--color-white);box-shadow:0 0 0 2px var(--color-timeline-line)}.status-active .content-column:before{background:var(--color-timeline-dot-active);box-shadow:0 0 0 2px var(--color-timeline-dot-active-shadow)}.status-completed .content-column:before{background:var(--color-timeline-dot-completed);box-shadow:0 0 0 2px var(--color-timeline-dot-completed-shadow)}.status-overdue .content-column:before{background:var(--color-timeline-dot-overdue);box-shadow:0 0 0 2px var(--color-timeline-dot-overdue-shadow)}.task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.task-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}@media(max-width:480px){.task-actions{flex-wrap:wrap;gap:6px;justify-content:flex-end}.task-actions .ui-button{padding:6px 8px;font-size:.8rem}.task-header h3{font-size:1rem}}.task-footer{margin-top:12px;display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}@media(max-width:480px){.task-footer{justify-content:flex-end;gap:6px}.task-footer .ui-button{padding:6px 8px;font-size:.8rem}}.task-header h3{margin:0;font-size:1.1rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.task-header .icon-completed,.task-header .icon-pending{flex-shrink:0}.task-desc{color:var(--color-neutral-600);font-size:.9rem;margin-bottom:10px;line-height:1.4}.task-card{background:var(--color-neutral-100);padding:15px;border-radius:8px;border-left:4px solid transparent;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.task-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.status-active .task-card{border-left-color:var(--color-timeline-dot-active);background:var(--color-task-card-active-bg)}.status-completed .task-card{border-left-color:var(--color-timeline-dot-completed);opacity:.7}.status-overdue .task-card{border-left-color:var(--color-timeline-dot-overdue)}.status-upcoming .task-card{border-left-color:var(--color-task-card-upcoming-border)}.task-meta{display:flex;gap:15px;font-size:.85rem;color:#888;flex-wrap:wrap}.meta-item{display:flex;align-items:center;gap:4px;min-width:0}.view-controls{display:flex;gap:10px}.date-navigation{display:flex;align-items:center;gap:15px}.current-date-label{font-size:1.1rem;font-weight:700;min-width:100px;text-align:center}.calendar-view-wrapper{flex:1;display:flex;flex-direction:column;padding:0 24px 24px;overflow:hidden}.calendar-view{flex:1;display:flex;flex-direction:column;overflow:hidden}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;padding:10px 0;border-bottom:1px solid var(--color-timeline-line);background:var(--color-neutral-100)}.calendar-body{flex:1;display:flex;flex-direction:column;overflow-y:auto}.calendar-row{display:grid;grid-template-columns:repeat(7,1fr);flex:1 0 auto;min-height:100px}.calendar-day{border-right:1px solid var(--color-timeline-line);border-bottom:1px solid var(--color-timeline-line);padding:8px;position:relative;transition:background .2s}.calendar-day:hover{background:#fcfcfc}.calendar-day.disabled{background:var(--color-neutral-100);color:var(--color-neutral-400)}.calendar-day.today{background:var(--color-task-card-active-bg)}.day-number{font-weight:700;font-size:.9rem;margin-bottom:4px;display:block}.today .day-number{color:var(--color-log-payload-link)}.day-tasks{display:flex;flex-direction:column;gap:2px}.mini-task{font-size:.75rem;padding:2px 4px;background:var(--color-mini-task-bg);color:var(--color-mini-task-text);border-radius:2px;white-space:normal;word-break:break-word;line-height:1.2;display:flex;align-items:flex-start;gap:4px}.mini-task.importance-high{background-color:#fee2e2;border-left:3px solid #ef4444;color:#991b1b}.mini-task.importance-normal{background-color:#dbeafe;border-left:3px solid #3b82f6;color:#1e40af}.mini-task.importance-low{background-color:#d1fae5;border-left:3px solid #10b981;color:#065f46}.mini-task.task-completed{background-color:#d1fae5;border-left-color:#10b981;color:#065f46;opacity:.8;text-decoration:line-through}.task-info{display:flex;flex-wrap:wrap;gap:4px;flex:1;min-width:0}.task-name{word-break:break-word}.task-time{font-size:.7rem;color:currentColor;opacity:.9;font-weight:700;white-space:nowrap}.task-dot{width:4px;height:4px;border-radius:50%;background:currentColor;flex-shrink:0;margin-top:4px}.more-tasks{font-size:.7rem;color:var(--color-neutral-600);text-align:center;margin-top:2px}.loading-overlay{display:flex;justify-content:center;align-items:center;height:100%;color:var(--color-neutral-600)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--color-neutral-500);gap:16px}.loading-state{text-align:center;padding:40px;color:var(--color-neutral-600)}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.day-view-container{position:relative;height:1440px;background:var(--color-bg-light);margin-top:20px;border-radius:8px;border:1px solid var(--color-border)}.time-slot{position:absolute;left:0;right:0;border-top:1px solid var(--color-border-light);display:flex;align-items:flex-start}.time-slot:first-child{border-top:none}.time-label{width:60px;text-align:right;padding-right:10px;color:var(--color-text-light);font-size:.8rem;transform:translateY(-50%);background:var(--color-bg-light)}.time-grid-line{flex:1;height:1px;background:transparent}.absolute-task{position:absolute;left:70px;right:10px;background:var(--color-primary-light);border-left:4px solid var(--color-primary);border-radius:4px;padding:4px 8px;overflow:hidden;cursor:pointer;transition:all .2s;z-index:10;box-shadow:0 2px 4px #0000001a}.absolute-task:hover{z-index:20;box-shadow:0 4px 8px #00000026}.absolute-task.completed{opacity:.6;background:var(--color-bg-secondary);border-left-color:var(--color-text-light)}.absolute-task-content{font-size:.85rem;font-weight:500;color:var(--color-text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.absolute-task-time{font-size:.75rem;color:var(--color-text-medium)}.current-time-line{position:absolute;left:60px;right:0;height:2px;background:#ef4444;z-index:30;pointer-events:none}.current-time-line:before{content:"";position:absolute;left:-6px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444}.timeline-current-time-indicator{display:flex;align-items:center;margin:10px 0;position:relative}.time-line-left{width:60px;text-align:right;padding-right:15px}.current-time-label{color:#ef4444;font-weight:700;font-size:.9rem;background:#fff;padding:2px 6px;border-radius:4px;border:1px solid #ef4444}.time-line-divider{flex:1;height:2px;background:#ef4444;position:relative}.time-line-divider:before{content:"";position:absolute;left:-6px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444}.active-task-indicator-line{position:absolute;left:0;right:0;height:2px;background:#ef444480;z-index:10;pointer-events:none}.active-time-dot{position:absolute;left:-6px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px #fff}.week-view-current-time-marker{position:absolute;left:0;right:0;height:2px;z-index:20;pointer-events:none}.marker-line{width:100%;height:2px;background:#ef4444}.marker-dot{position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444}.week-view-layout{height:100%;display:flex;flex-direction:column;background:var(--color-white)}.week-view-header{display:flex;border-bottom:2px solid var(--color-border);background:var(--color-bg-light);position:sticky;top:0;z-index:50}.time-axis-header{width:60px;flex-shrink:0;border-right:1px solid var(--color-border)}.week-header-day{flex:1;text-align:center;padding:12px 8px;border-right:1px solid var(--color-border);transition:background .2s}.week-header-day:last-child{border-right:none}.week-header-day.today{background:#fef3c7}.week-day-name{font-weight:600;font-size:.85rem;color:var(--color-text-medium);margin-bottom:4px}.week-day-date{font-size:1.2rem;font-weight:700;color:var(--color-text-dark)}.week-header-day.today .week-day-date{color:#d97706}.week-view-body{flex:1;display:flex;overflow-y:auto;position:relative}.time-axis{width:60px;flex-shrink:0;position:sticky;left:0;z-index:40;background:var(--color-bg-light);border-right:1px solid var(--color-border)}.time-axis .time-label{position:absolute;width:100%;height:60px;display:flex;align-items:flex-start;justify-content:flex-end;padding-right:8px;padding-top:2px}.time-axis .time-label span{font-size:.75rem;color:var(--color-text-light);transform:translateY(-50%);background:var(--color-bg-light);padding:2px 4px}.week-grid{flex:1;position:relative;display:flex;min-height:1440px}.grid-line-horizontal{position:absolute;left:0;right:0;height:1px;border-top:1px solid var(--color-border-light);pointer-events:none;z-index:1}.day-column{flex:1;position:relative;border-right:1px solid var(--color-border-light)}.day-column:last-child{border-right:none}.day-column.today-column{background:#fffbeb}.day-column .absolute-task{position:absolute;left:2px;right:2px;border-radius:4px;padding:5px 6px;cursor:pointer;z-index:10;box-shadow:0 1px 3px #0000001a;transition:all .2s;border-left-width:3px;display:flex;flex-direction:column;min-height:28px;box-sizing:border-box}.day-column .absolute-task.compact-task{padding:4px 5px;justify-content:center;align-items:flex-start}.day-column .absolute-task:hover{z-index:20;box-shadow:0 2px 8px #00000026;transform:scale(1.02)}.day-column .absolute-task .task-content-wrapper{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;width:100%}.day-column .absolute-task .task-name{font-size:.75rem;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-shrink:0;word-break:break-word}.day-column .absolute-task.compact-task .task-name{font-size:.7rem;line-height:1.3;-webkit-line-clamp:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-height:18px}.day-column .absolute-task .task-description{font-size:.7rem;opacity:.75;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;flex:1;min-height:0;word-break:break-word;margin-top:2px}.day-column .absolute-task .task-time-label{font-size:.65rem;opacity:.8;font-weight:600;margin-top:2px;flex-shrink:0}.day-column .absolute-task.compact-task .task-description,.day-column .absolute-task.compact-task .task-time-label{display:none}.current-time-marker-line{position:absolute;left:0;right:0;height:2px;background:#ef4444;z-index:30;pointer-events:none}.current-time-marker-line .marker-dot{position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 2px #fff}@media(max-width:768px){.date-subtitle,.current-date-label{display:none}.header-left{width:100%;justify-content:space-between}.header-right{width:100%;justify-content:flex-end}.today-header .header-left,.today-header .header-right{width:auto}.schedule-header .add-schedule-btn{padding:4px 8px;font-size:.75rem}.schedule-header .add-schedule-btn svg{width:16px;height:16px}.calendar-view-wrapper{padding:0 8px 8px}.calendar-day{padding:2px}.mini-task{font-size:.65rem;padding:1px 2px;border-left-width:0!important}.mini-task .task-dot{display:none}.time-axis-header,.time-axis{width:40px}.week-badge{display:none}.view-controls .filter-group{padding:2px}.view-controls .filter-btn{padding:4px 8px;font-size:.78rem;border-radius:6px}.view-controls .filter-btn svg{width:14px;height:14px}.today-week-badge{display:inline-block;margin-left:3px;font-size:.7rem;color:var(--color-neutral-700)}.time-axis .time-label{padding-right:4px}.date-navigation{margin-right:auto;margin-left:0}.time-axis .time-label span{font-size:.65rem;padding:1px 2px}.time-column,.time-line-left{width:40px;padding-right:10px}}@media(max-width:480px){.time-axis-header,.time-axis,.time-column,.time-line-left{display:none}.timeline-item:before{display:none}.content-column{padding-left:0}.content-column:before{display:none}.timeline-current-time-indicator{padding-left:0}.time-line-divider{margin-left:0}}.task-detail-content{padding:10px 0}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px}.task-title{margin:0;font-size:1.5rem;color:var(--color-text-primary);line-height:1.3}.task-title.completed{text-decoration:line-through;color:var(--color-text-medium)}.status-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.9rem;white-space:nowrap}.status-btn.completed{color:var(--color-success);background-color:var(--color-success-bg)}.detail-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;color:var(--color-text-secondary);font-size:1rem}.detail-icon{color:var(--color-text-medium);flex-shrink:0}.detail-description{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-border);color:var(--color-text-secondary);line-height:1.6}.edit-mode{display:flex;flex-direction:column;gap:16px}.error-banner{background-color:#fff5f5;color:#c53030;padding:10px;border-radius:6px;margin-bottom:16px;font-size:.9rem;border:1px solid #feb2b2}.search-controls{display:flex;gap:16px;margin-bottom:24px;align-items:center}.search-input-container{position:relative;flex:1}.search-input-container .ui-input-wrapper{margin-bottom:0}.search-input-container .ui-input{padding-left:40px;height:42px;transition:all .2s;box-shadow:none}.search-input-container .ui-input:focus{box-shadow:0 0 0 2px #4686e533}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-light);z-index:1;pointer-events:none}.filter-group{display:flex;background-color:var(--color-bg-light);padding:4px;border-radius:8px;border:1px solid var(--color-border)}.filter-btn{padding:6px 16px;border-radius:6px;font-size:.875rem;font-weight:500;color:var(--color-text-medium);background:transparent;border:none;cursor:pointer;transition:all .2s}.filter-btn:hover{color:var(--color-text-dark)}.filter-btn.active{background-color:var(--color-white);color:var(--color-primary);box-shadow:0 1px 3px #0000001a;font-weight:600}.task-item{padding:16px;border-bottom:1px solid var(--color-border);cursor:pointer;display:flex;align-items:flex-start;gap:16px;transition:background-color .2s;border-left:4px solid transparent}.task-item:hover{background-color:var(--color-bg-light)}.task-item:last-child{border-bottom:none}.task-item.importance-high{background-color:#fff5f5;border-left-color:#ef4444}.task-item.importance-high:hover{background-color:#fee2e2}.task-item.importance-normal{background-color:#f0f9ff;border-left-color:#3b82f6}.task-item.importance-normal:hover{background-color:#e0f2fe}.task-item.importance-low{background-color:#f0fdf4;border-left-color:#10b981}.task-item.importance-low:hover{background-color:#dcfce7}.task-item.completed{opacity:.7;background-color:var(--color-bg-light);border-left-color:var(--color-text-light)}.task-item.completed .task-name{text-decoration:line-through;color:var(--color-text-light)}.search-container .search-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.search-container .task-list{flex:1;overflow-y:auto;padding-right:4px}.current-time-display{font-family:Microsoft YaHei,sans-serif;font-size:1.7rem;font-weight:900;color:var(--color-neutral-500);min-width:80px;text-align:right;letter-spacing:.5px}@media(max-width:768px){.current-time-display{display:none}}.log-viewer-container{height:100%;display:flex;flex-direction:column;max-width:1000px;margin:0 auto}.log-header{display:flex;justify-content:space-between;align-items:center}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.log-content-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.logs-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:4px}.log-item{display:flex;gap:12px;padding:12px;border-radius:6px;background:var(--color-neutral-100);border-left:3px solid transparent;transition:background .2s}.log-item:hover{background:var(--color-neutral-200)}.log-icon{display:flex;align-items:flex-start;padding-top:2px}.log-content{flex:1;min-width:0}.log-message{font-weight:500;color:var(--color-neutral-700);margin-bottom:4px;word-break:break-word;white-space:pre-wrap}.log-meta{display:flex;gap:12px;font-size:.8rem;color:var(--color-neutral-600);align-items:center}.log-time{display:flex;align-items:center;gap:4px}.log-payload{margin-top:8px;font-size:.85rem}.log-payload summary{cursor:pointer;color:var(--color-log-payload-link);-webkit-user-select:none;user-select:none}.log-payload pre{background:var(--color-log-payload-bg);color:var(--color-log-payload-text);padding:10px;border-radius:4px;overflow-x:auto;margin:8px 0 0;white-space:pre-wrap;word-break:break-all}.empty-state{text-align:center;padding:40px;color:var(--color-neutral-500)}.error-banner{background:var(--color-danger-light);color:var(--color-danger);padding:10px;border-radius:4px;margin-bottom:16px}.loading-indicator{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px;color:var(--color-neutral-600)}.text-red-500{color:var(--color-danger)}.text-green-500{color:var(--color-success)}.text-orange-500{color:var(--color-warning)}.text-blue-500{color:var(--color-info)}:root{--color-primary: #467ee5;--color-primary-light: #6da1eb;--color-primary-active-border: #3182ce;--color-text-dark: #2d3748;--color-text-medium: #4a5568;--color-text-light: #718096;--color-bg-light: #f7fafc;--color-bg-hover: #f1f5f9;--color-bg-card: #ffffff;--color-border: #e2e8f0;--color-success: #10b981;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-danger-dark: #c33;--color-warning: #f97316;--color-info: #3b82f6;--color-gradient-start: #667eea;--color-gradient-end: #4b61a2;--color-neutral-100: #f9f9f9;--color-neutral-200: #f0f0f0;--color-neutral-300: #e0e0e0;--color-neutral-400: #ccc;--color-neutral-500: #999;--color-neutral-600: #666;--color-neutral-700: #333;--color-log-payload-bg: #2d2d2d;--color-log-payload-text: #e0e0e0;--color-log-payload-link: #0066cc;--color-timeline-line: #eee;--color-timeline-dot: #ddd;--color-timeline-dot-active: #0066cc;--color-timeline-dot-active-shadow: #cce0ff;--color-timeline-dot-completed: #22c55e;--color-timeline-dot-completed-shadow: #bbf7d0;--color-timeline-dot-overdue: #ef4444;--color-timeline-dot-overdue-shadow: #fecaca;--color-task-card-active-bg: #f0f7ff;--color-task-card-upcoming-border: #9ca3af;--color-mini-task-bg: #e0f2fe;--color-mini-task-text: #0369a1;--color-mini-task-time: #0284c7;--color-chat-user-bg: #3b82f6;--color-chat-assistant-bg: #f1f5f9;--color-chat-assistant-text: #334155;--color-chat-tool-header: #64748b;--color-chat-tool-output-bg: #1e293b;--color-chat-tool-output-text: #e2e8f0;--color-chat-loading-dot: #cbd5e1;--color-white: #ffffff;--color-primary-active: #376bc4;--color-secondary-active: #cbd5e0;--color-outline-active: #e2e8f0;--color-ghost-active: #e2e8f0;--color-danger-active: #b91c1c;--breakpoint-mobile: 768px;--breakpoint-tablet: 1024px}.ai-chat-container{display:flex;flex-direction:column;height:100%;max-width:1000px;margin:0 auto}.chat-header{display:flex;justify-content:space-between;align-items:center}.settings-panel{padding:20px;background:var(--color-bg-light);border-bottom:1px solid var(--color-border)}.settings-form{display:grid;gap:16px}.chat-messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:20px}.message{display:flex;gap:12px;max-width:85%}.message.user{align-self:flex-end;flex-direction:row-reverse}.message.assistant{align-self:flex-start}.message.tool{align-self:center;max-width:90%;font-size:.85rem;width:100%;justify-content:center}.avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.2rem}.user .avatar{background:var(--color-chat-user-bg);color:var(--color-white)}.assistant .avatar{background:var(--color-success);color:var(--color-white)}.message-content{padding:12px 16px;border-radius:12px;line-height:1.5;white-space:pre-wrap;font-size:.9rem}.user .message-content{background:var(--color-chat-user-bg);color:var(--color-white);border-bottom-right-radius:4px}.assistant .message-content{background:var(--color-chat-assistant-bg);color:var(--color-chat-assistant-text);border-bottom-left-radius:4px}.tool-result-container{background:var(--color-bg-light);border:1px solid var(--color-border);border-radius:8px;width:100%;overflow:hidden;transition:all .2s ease;margin:4px auto}.tool-result-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;background:#00000005;-webkit-user-select:none;user-select:none}.tool-result-header:hover{background:#0000000d}.tool-info{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-secondary)}.tool-name{font-weight:500;color:var(--color-text-primary)}.tool-toggle{color:var(--color-text-light);display:flex;align-items:center}.tool-result-body{padding:0;border-top:1px solid var(--color-border);background:var(--color-bg-white)}.tool-result-body pre{margin:0;padding:12px;overflow-x:auto;font-family:Consolas,Monaco,monospace;font-size:.8rem;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}.tool-call-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--color-text-secondary);background:#0000000d;padding:4px 8px;border-radius:4px;width:fit-content;margin-top:4px}.chat-input-area{padding:20px;border-top:1px solid var(--color-border)}.input-wrapper{display:flex;gap:12px;position:relative;align-items:flex-end}.input-wrapper .ui-input-wrapper{flex:1;margin-bottom:0}.loading-dots{display:flex;gap:4px;padding:8px}.dot{width:8px;height:8px;background:var(--color-chat-loading-dot);border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.tool-calls-preview{margin-top:8px;display:flex;flex-direction:column;gap:4px}.message-content.markdown-body{white-space:normal;overflow-wrap:break-word}.message-content p{margin:0 0 10px}.message-content p:last-child{margin-bottom:0}.message-content h1,.message-content h2,.message-content h3,.message-content h4{margin:16px 0 8px;font-weight:600;line-height:1.25}.message-content h1{font-size:1.25em}.message-content h2{font-size:1.15em}.message-content h3{font-size:1.05em}.message-content h4{font-size:1em}.message-content h1:first-child,.message-content h2:first-child,.message-content h3:first-child{margin-top:0}.message-content ul,.message-content ol{margin:0 0 10px;padding-left:20px}.message-content li{margin-bottom:4px}.message-content code{font-family:monospace;padding:2px 4px;border-radius:4px;font-size:.9em}.assistant .message-content code{background-color:#0000000d;color:#d63384}.user .message-content code{background-color:#fff3;color:inherit}.message-content pre{padding:12px;border-radius:6px;overflow-x:auto;margin:10px 0}.assistant .message-content pre{background-color:#f6f8fa;border:1px solid #e1e4e8}.user .message-content pre{background-color:#0000004d}.message-content pre code{background-color:transparent;padding:0;color:inherit;font-size:.85em}.message-content blockquote{margin:10px 0;padding-left:10px;border-left:4px solid;opacity:.8}.message-content table{border-collapse:collapse;width:100%;margin:10px 0}.message-content th,.message-content td{padding:6px 10px;border:1px solid}.assistant .message-content th,.assistant .message-content td{border-color:#d0d7de}.user .message-content th,.user .message-content td{border-color:#ffffff4d}.message-content a{text-decoration:underline}.assistant .message-content a{color:var(--color-primary)}.user .message-content a{color:inherit}.dashboard-layout{display:flex;height:100vh;transition:all .3s ease}.sidebar{width:250px;background-color:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;transition:width .3s ease;overflow:hidden}.sidebar-header{padding:1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e2e8f0}.sidebar-header h1{font-size:1.5rem;font-weight:700;color:#2d3748;white-space:nowrap}.app-logo{width:28px;height:28px;vertical-align:middle;margin-right:8px}.sidebar-toggle{background:none;border:none;cursor:pointer;color:#718096;transition:transform .3s ease}.sidebar-nav{flex-grow:1;padding:1rem 0}.nav-item{display:flex;align-items:center;padding:.8rem 1.5rem;width:100%;border:none;background:none;text-align:left;cursor:pointer;font-size:1rem;color:#4a5568;transition:background-color .2s ease,color .2s ease;white-space:nowrap}.nav-item:hover{background-color:#f1f5f9;color:#2d3748}.nav-item.active{background-color:#eef2ff;color:#4686e5;font-weight:600;border-right:4px solid #4686e5}.nav-item svg{margin-right:.75rem;flex-shrink:0}.sidebar-footer{padding:1rem 0;border-top:1px solid #e2e8f0}.dashboard-layout.sidebar-collapsed .sidebar{width:80px}.dashboard-layout.sidebar-collapsed .sidebar-header h1,.dashboard-layout.sidebar-collapsed .nav-text{opacity:0;visibility:hidden;width:0;transition:opacity .2s ease,visibility .2s ease,width .2s ease}.dashboard-layout.sidebar-collapsed .sidebar-header{justify-content:center}.dashboard-layout.sidebar-collapsed .sidebar-toggle{transform:rotate(180deg)}.dashboard-layout.sidebar-collapsed .nav-item{justify-content:center}.dashboard-layout.sidebar-collapsed .nav-item svg{margin-right:0}.main-content{flex-grow:1;padding:2rem;overflow-y:auto;background-color:#f7fafc;transition:margin-left .3s ease}.settings-page{display:grid;gap:24px;max-width:900px;margin:0 auto}.account-info .info-item{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:10px}.account-info .info-item:last-child{border-bottom:none}.account-info .info-item .info-label{font-weight:500;color:var(--color-text-medium)}.account-info .info-item .info-value{color:var(--color-text-dark)}.connection-action{margin-top:16px}.connection-action p{margin-bottom:16px}.dashboard-home{max-width:1200px;margin:0 auto}.welcome-banner{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:32px;color:#fff;margin-bottom:32px;box-shadow:0 4px 6px #0000001a}.welcome-banner h1{margin:0 0 8px;font-size:2rem}.welcome-banner p{margin:0;opacity:.9;font-size:1.1rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-bottom:32px}.card-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-right:12px}.card-icon.blue{background-color:#ebf8ff;color:#3182ce}.card-icon.green{background-color:#f0fff4;color:#38a169}.card-icon.purple{background-color:#faf5ff;color:#805ad5}.status-indicator{display:flex;align-items:center;margin-top:8px}.status-dot{width:8px;height:8px;border-radius:50%;margin-right:8px}.status-dot.connected{background-color:#48bb78}.status-dot.disconnected{background-color:#f56565}.connection-status-section{margin-bottom:30px;text-align:center}.status-container{display:flex;justify-content:center;gap:30px;margin-bottom:20px;flex-wrap:wrap}.status-item{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:8px;min-width:200px;justify-content:space-between;white-space:nowrap}.status-item.connected{background:#e8f5e9;border:1px solid #c8e6c9}.status-item.disconnected{background:#fff3e0;border:1px solid #ffe0b2}.status-label{font-weight:500;color:#333}.status-value{font-weight:600}.status-item.connected .status-value{color:#2e7d32}.status-item.disconnected .status-value{color:#ef6c00}.welcome-section{text-align:center;margin-bottom:40px}.fully-connected-content{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);padding:30px;border-radius:12px;border:2px solid #4caf50;text-align:center}.fully-connected-content h2{color:#2e7d32;margin-bottom:15px}.partial-connection-content{background:linear-gradient(135deg,#fff8e1,#ffe082);padding:30px;border-radius:12px;border:2px solid #ff9800;text-align:center}.partial-connection-content h2{color:#e65100;margin-bottom:15px}.no-connection-content{background:linear-gradient(135deg,#e3f2fd,#90caf9);padding:30px;border-radius:12px;border:2px solid #2196f3;text-align:center}.no-connection-content h2{color:#1565c0;margin-bottom:15px}.features-section{margin-top:25px;text-align:left;max-width:600px;margin-left:auto;margin-right:auto}.features-section h3{color:#2e7d32;margin-bottom:15px;font-size:18px}.features-section ul{list-style-type:none;padding:0}.features-section li{padding:8px 0 8px 25px;position:relative;color:#333}.features-section li:before{content:"✓";position:absolute;left:0;color:#4caf50;font-weight:700}.microsoft-section{display:flex;justify-content:center;margin-bottom:60px}.password-section{max-width:600px;margin:0 auto}.form-group{margin-bottom:20px}.success-message{background:#e8f5e9;color:#2e7d32;padding:12px;border-radius:8px;margin-bottom:20px;text-align:center;font-size:14px}.error-message{background:#fee;color:#c33;padding:12px;border-radius:8px;margin-bottom:20px;text-align:center;font-size:14px}.mcp-token-section{margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0;text-align:center}.mcp-token-section h4{margin:0 0 8px;color:#2d3748;font-size:1rem}.mcp-token-section p{margin:0 0 16px;color:#718096;font-size:.875rem}.dashboard-layout.mobile-layout{flex-direction:column}.mobile-header{background-color:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:100;width:100%;transition:all .3s ease}.mobile-header-top{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:#fff;position:relative;z-index:101}.mobile-header .logo-text{font-size:1.25rem;font-weight:700;color:#2d3748;margin:0}.mobile-menu-toggle{background:none;border:none;cursor:pointer;color:#4a5568;padding:4px;display:flex;align-items:center;justify-content:center}.mobile-nav{background-color:#fff;border-top:1px solid #e2e8f0;overflow:hidden;max-height:0;transition:max-height .3s ease-in-out,opacity .3s ease-in-out;opacity:0;position:absolute;width:100%;box-shadow:0 4px 6px -1px #0000001a}.mobile-nav.open{max-height:calc(100vh - 60px);opacity:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:0}.mobile-nav .nav-item{padding:1rem 1.5rem;border-bottom:1px solid #f7fafc}.mobile-nav-footer{border-top:1px solid #e2e8f0;margin-top:.5rem}.mobile-layout .main-content{padding:1rem;height:calc(100vh - 60px);overflow-y:auto}.control-section{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}.section-title{font-size:.9rem;font-weight:600;color:#4a5568;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:24px}.action-card{display:flex;align-items:center;padding:16px;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;transition:all .2s ease}.action-card:hover{border-color:#cbd5e0;background-color:#fff;box-shadow:0 2px 4px #0000000d}.action-card.danger{background-color:#fff5f5;border-color:#fed7d7}.action-card.danger:hover{border-color:#fc8181;background-color:#fff}.action-icon-wrapper{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0}.action-icon-wrapper.sync{background-color:#ebf8ff;color:#3182ce}.action-icon-wrapper.delete{background-color:#fed7d7;color:#e53e3e}.action-icon-wrapper.microsoft{background-color:#e6fffa;color:#319795}.action-icon-wrapper.ebridge{background-color:#faf5ff;color:#805ad5}.action-info{flex-grow:1;display:flex;flex-direction:column;margin-right:12px}.action-title{font-weight:600;color:#2d3748;font-size:.95rem}.action-desc{font-size:.8rem;color:#718096;margin-top:2px}.action-btn{white-space:nowrap}.global-actions{display:flex;justify-content:center;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}.status-item{justify-content:space-between;padding:16px}.status-badge{margin-left:auto}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}.app{min-height:100vh}.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}.auth-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.switch-auth{display:flex;align-items:center;gap:10px;margin-top:20px;color:#fff;font-size:14px}.switch-button{background:transparent;color:#fff;border:1px solid white;padding:6px 16px;border-radius:6px;cursor:pointer;font-size:14px;transition:all .3s ease}.switch-button:hover{background:#fff;color:#667eea}button,input{font-family:inherit;font-size:inherit;line-height:inherit}
