:root{--bg: #f5f7fa;--bg-card: #ffffff;--bg-hover: #eef1f6;--text: #1a1d26;--text-muted: #6b7280;--border: #e2e6ed;--accent: #4f6ef7;--accent-hover: #3d5ce0;--accent-light: #eef2ff;--danger: #ef4444;--danger-light: #fef2f2;--warning: #f59e0b;--warning-light: #fffbeb;--success: #10b981;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 4px 12px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .1);--radius: 10px;--radius-sm: 6px;--priority-high: #ef4444;--priority-medium: #f59e0b;--priority-low: #10b981;--font: "Segoe UI", system-ui, -apple-system, sans-serif}[data-theme=dark]{--bg: #0f1117;--bg-card: #1a1d27;--bg-hover: #252836;--text: #e8eaed;--text-muted: #9ca3af;--border: #2d3142;--accent: #6b8aff;--accent-hover: #8aa4ff;--accent-light: #1e2540;--danger: #f87171;--danger-light: #2d1b1b;--warning: #fbbf24;--warning-light: #2d2617;--success: #34d399;--shadow: 0 1px 3px rgba(0, 0, 0, .3), 0 4px 12px rgba(0, 0, 0, .2);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;transition:background .2s,color .2s}#root{min-height:100vh}.app-layout{display:flex;min-height:100vh}.app-main{flex:1;min-width:0;max-width:860px;margin:0 auto;padding:24px 20px 48px;width:100%}.app{max-width:860px;margin:0 auto;padding:24px 20px 48px}.workspace-sidebar{position:relative;flex-shrink:0;width:56px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:12px 6px;gap:8px;transition:width .2s ease}.workspace-sidebar--expanded{width:180px;align-items:stretch}.workspace-sidebar__footer{margin-top:auto;width:100%;padding-top:8px;border-top:1px solid var(--border)}.workspace-sidebar__team-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-family:inherit;color:var(--text-muted);transition:background .15s}.workspace-sidebar__team-btn:hover{background:var(--bg-hover);color:var(--text)}.workspace-sidebar__team-btn-icon{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;background:var(--bg-hover)}.team-modal .team-panel{padding:0}.team-modal .team-panel__heading{display:none}.workspace-sidebar__avatar--emoji{background:var(--bg-hover);font-size:1.1rem}.team-panel{display:flex;flex-direction:column;gap:14px;padding:4px 4px 8px}.team-panel__heading{font-size:.9rem;font-weight:700;color:var(--text);padding:0 4px}.team-panel__section{display:flex;flex-direction:column;gap:8px}.team-panel__section-title{font-size:.78rem;font-weight:600;color:var(--text-muted);padding:0 4px}.team-panel__hint{font-size:.72rem;color:var(--text-muted);line-height:1.4;padding:0 4px}.team-panel__back{align-self:flex-start;background:none;border:none;color:var(--accent);font-family:inherit;font-size:.82rem;font-weight:500;cursor:pointer;padding:4px 4px 8px;border-radius:var(--radius-sm)}.team-panel__back:hover{background:var(--accent-light)}.team-panel__hero{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.team-panel__hero-avatar{flex-shrink:0;width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff}.team-panel__hero-avatar--emoji{background:var(--bg-hover);font-size:1.4rem}.team-panel__hero-title{font-size:.95rem;font-weight:700;line-height:1.3}.team-panel__hero-meta{font-size:.72rem;color:var(--text-muted);margin-top:2px}.team-panel__code-box{padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center}.team-panel__code{font-family:ui-monospace,Cascadia Code,monospace;font-size:.85rem;font-weight:600;letter-spacing:.08em;color:var(--accent)}.team-panel__actions{display:flex;flex-wrap:wrap;gap:6px}.team-panel__toggle{display:flex;align-items:flex-start;gap:8px;font-size:.78rem;color:var(--text);line-height:1.4;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.team-panel__toggle input{margin-top:2px;accent-color:var(--accent)}.team-panel__list{list-style:none;display:flex;flex-direction:column;gap:6px}.team-panel__list-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem}.team-panel__list-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.team-panel__list-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-panel__list-meta{font-size:.72rem;color:var(--text-muted)}.team-panel__manage-btn{flex-shrink:0;font-size:.75rem!important;padding:4px 8px!important}.team-panel__danger{width:100%;color:var(--danger)!important;border:1px solid var(--border)}.team-panel__danger:hover{background:var(--danger-light)!important}.team-panel__msg{font-size:.78rem;color:var(--success);padding:0 4px}.team-panel__err{font-size:.78rem;color:var(--danger);padding:0 4px}.team-avatar-picker{display:flex;flex-wrap:wrap;gap:6px}.team-avatar-picker__item{padding:0;border:2px solid transparent;border-radius:var(--radius-sm);background:none;cursor:pointer;transition:border-color .15s}.team-avatar-picker__item:hover{border-color:var(--border)}.team-avatar-picker__item--active{border-color:var(--accent)}.team-avatar-picker__preview{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;font-size:.8rem;font-weight:700;color:#fff}.team-avatar-picker__preview--emoji{background:var(--bg-hover);font-size:1rem}.team-panel .settings-add-category{flex-direction:column}.team-panel .settings-add-category input,.team-panel .settings-add-category .btn{width:100%}.workspace-sidebar__toggle{align-self:flex-end;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:4px;border-radius:var(--radius-sm)}.workspace-sidebar__toggle:hover{background:var(--bg-hover)}.workspace-sidebar__nav{display:flex;flex-direction:column;gap:6px;width:100%}.workspace-sidebar__item{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-family:inherit;color:var(--text-muted);transition:background .15s}.workspace-sidebar__item:hover{background:var(--bg-hover)}.workspace-sidebar__item--active{background:var(--accent-light);color:var(--accent)}.workspace-sidebar__avatar{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:#fff}.workspace-sidebar__avatar--personal{background:var(--bg-hover);font-size:1rem}.workspace-sidebar__label{font-size:.82rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-sidebar__badge{position:absolute;top:8px;right:6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center}.header__workspace{font-size:.75rem;color:var(--text-muted);margin-top:2px}.invite-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin-bottom:16px;background:var(--accent-light);border:1px solid var(--accent);border-radius:var(--radius);font-size:.85rem}.invite-banner__btn{flex-shrink:0;padding:6px 12px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-family:inherit;font-size:.8rem;cursor:pointer}.team-settings__block{margin-bottom:16px}.team-settings__back{background:none;border:none;color:var(--accent);font-family:inherit;font-size:.85rem;cursor:pointer;margin-bottom:12px;padding:0}.team-settings__code-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}.team-settings__code{font-family:ui-monospace,monospace;font-size:.9rem;padding:6px 10px;background:var(--bg);border-radius:var(--radius-sm);letter-spacing:.05em}.team-settings__toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;cursor:pointer}.team-settings__leave{margin-top:8px;color:var(--danger)}.team-settings__msg{color:var(--success);font-size:.8rem;margin-top:8px}.team-settings__err{color:var(--danger);font-size:.8rem;margin-top:8px}.team-card-list,.team-member-list,.team-invite-list{list-style:none;display:flex;flex-direction:column;gap:8px}.team-card,.team-member-item,.team-invite-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.team-card__name,.team-member-item__name{font-weight:600}.team-card__meta,.team-member-item__role,.team-invite-item__from{font-size:.75rem;color:var(--text-muted);display:block}.team-invite-item__actions{display:flex;gap:6px;flex-shrink:0}.participant-picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.participant-chip{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:20px;font-size:.8rem;cursor:pointer;background:var(--bg-card)}.participant-chip:has(input:checked){border-color:var(--accent);background:var(--accent-light)}.participant-chip input{accent-color:var(--accent)}.participant-chip--locked{opacity:.72;cursor:default;border-color:var(--border);background:var(--bg)}.participant-chip--locked:has(input:checked){border-color:var(--border);background:var(--bg)}.participant-chip--locked input:disabled{cursor:default}.todo-form__hint{font-size:.75rem;color:var(--text-muted);margin-top:4px}.todo-item__creator,.todo-item__participants{padding:2px 8px;border-radius:10px;background:var(--bg-hover);font-size:.7rem}.todo-item__participants--all{color:var(--text-muted)}@media(max-width:640px){.app-layout{flex-direction:column}.workspace-sidebar{width:100%;flex-direction:row;border-right:none;border-bottom:1px solid var(--border);overflow-x:auto;padding:8px}.workspace-sidebar--expanded{width:100%}.workspace-sidebar__nav{flex-direction:row}.workspace-sidebar__toggle{display:none}}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.header__actions{display:flex;align-items:center;gap:10px}.user-menu{position:relative}.user-chip{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--border);border-radius:20px;background:var(--bg-card);cursor:pointer;font-family:inherit;font-size:.85rem;color:var(--text);transition:background .15s,box-shadow .15s}.user-chip:hover{background:var(--bg-hover);box-shadow:var(--shadow)}.user-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;z-index:100}.user-dropdown__info{padding:10px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}.user-dropdown__name{font-weight:600;font-size:.9rem}.user-dropdown__hint{font-size:.75rem;color:var(--text-muted);margin-top:2px}.user-dropdown__btn{width:100%;padding:10px 12px;border:none;background:none;text-align:left;font-family:inherit;font-size:.85rem;color:var(--danger);cursor:pointer;border-radius:8px}.user-dropdown__btn:hover{background:var(--danger-light)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.auth-card{width:100%;max-width:380px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:36px 32px;box-shadow:var(--shadow-lg)}.auth-card__logo{width:56px;height:56px;margin:0 auto 16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;font-weight:700}.auth-card__title{text-align:center;font-size:1.4rem;font-weight:700;margin-bottom:4px;letter-spacing:-.02em}.auth-card__sub{text-align:center;font-size:.85rem;color:var(--text-muted);margin-bottom:24px}.auth-tabs{display:flex;background:var(--bg);border-radius:10px;padding:3px;margin-bottom:20px}.auth-tab{flex:1;padding:8px;border:none;background:transparent;border-radius:8px;font-family:inherit;font-size:.85rem;color:var(--text-muted);cursor:pointer;transition:all .15s}.auth-tab--active{background:var(--bg-card);color:var(--text);box-shadow:0 1px 3px #00000014;font-weight:500}.auth-field{margin-bottom:14px}.auth-field label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:6px;font-weight:500}.auth-field input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font-family:inherit;font-size:.95rem;box-sizing:border-box}.auth-field input:focus{outline:none;border-color:var(--accent)}.auth-submit{width:100%;padding:12px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;margin-top:6px}.auth-submit:hover{background:var(--accent-hover)}.auth-error{color:var(--danger);font-size:.8rem;text-align:center;margin-top:12px}.auth-success{color:var(--success);font-size:.8rem;text-align:center;margin-top:12px}.auth-hint{text-align:center;font-size:.75rem;color:var(--text-muted);margin-top:16px}.header__brand{display:flex;align-items:center;gap:12px}.header__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--accent);color:#fff;border-radius:var(--radius);font-size:1.2rem;font-weight:700}.header__title{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.theme-toggle{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:44px;height:44px;font-size:1.2rem;cursor:pointer;transition:background .15s,border-color .15s;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{background:var(--bg-hover)}.settings-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:44px;height:44px;font-size:1.15rem;cursor:pointer;transition:background .15s,border-color .15s;display:flex;align-items:center;justify-content:center}.settings-btn:hover{background:var(--bg-hover)}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:20px;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.settings-panel{width:100%;max-width:420px;max-height:85vh;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);padding:20px}.settings-panel__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.settings-panel__title{font-size:1.1rem;font-weight:700}.settings-panel__close{background:none;border:none;font-size:1.1rem;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm)}.settings-panel__close:hover{background:var(--bg-hover);color:var(--text)}.settings-tabs{display:flex;background:var(--bg);border-radius:10px;padding:3px;margin-bottom:16px}.settings-tab{flex:1;padding:8px;border:none;background:transparent;border-radius:8px;font-family:inherit;font-size:.85rem;color:var(--text-muted);cursor:pointer;transition:all .15s}.settings-tab--active{background:var(--bg-card);color:var(--text);box-shadow:0 1px 3px #00000014;font-weight:500}.settings-section{display:flex;flex-direction:column;gap:14px}.settings-hint{font-size:.78rem;color:var(--text-muted);line-height:1.4}.settings-subtitle{font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:8px}.settings-category-list{list-style:none;display:flex;flex-direction:column;gap:6px}.settings-category-list--scroll{max-height:220px;overflow-y:auto;padding-right:4px;scrollbar-width:thin}.settings-category-list--scroll::-webkit-scrollbar{width:6px}.settings-category-list--scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.settings-panel--wide{max-width:440px}.settings-category-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.settings-category-item--default{color:var(--text-muted)}.settings-category-remove{background:none;border:none;color:var(--danger);font-family:inherit;font-size:.78rem;cursor:pointer;padding:2px 6px;border-radius:4px}.settings-category-remove:hover{background:var(--danger-light)}.settings-empty{font-size:.8rem;color:var(--text-muted);padding:8px 0}.settings-add-category{display:flex;gap:8px;margin-top:4px}.settings-add-category input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:inherit;font-size:.9rem}.language-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.language-picker--auth{margin-bottom:20px}.language-picker__label{font-size:.85rem;font-weight:500;color:var(--text)}.language-picker select{flex:1;max-width:160px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font-family:inherit;font-size:.85rem}.month-stats{display:flex;flex-direction:column;gap:16px}.month-nav{display:flex;align-items:center;justify-content:space-between;padding:4px 0}.month-nav__btn{width:36px;height:36px;border:none;border-radius:50%;background:var(--bg);color:var(--accent);font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.month-nav__btn:hover:not(:disabled){background:var(--bg-hover)}.month-nav__btn:disabled{opacity:.3;cursor:default}.month-nav__label{font-size:1rem;font-weight:600;letter-spacing:-.02em}.month-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:var(--bg);border-radius:14px;padding:14px 10px}.month-summary__card{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.month-summary__value{font-size:1.5rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.month-summary__label{font-size:.68rem;color:var(--text-muted);font-weight:500}.chart-legend{display:flex;justify-content:center;gap:16px;font-size:.72rem;color:var(--text-muted)}.chart-legend__item{display:flex;align-items:center;gap:5px}.chart-legend__dot{display:inline-block;width:8px;height:8px;border-radius:50%}.chart-legend__dot--added{background:#007aff}.chart-legend__dot--active{background:#ff9500}.chart-legend__dot--completed{background:#34c759}.chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px 6px;scrollbar-width:thin}.chart-scroll::-webkit-scrollbar{height:6px}.chart-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.chart-bars{display:flex;align-items:flex-end;gap:3px;min-width:min-content;height:118px;padding-top:8px}.chart-day{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:20px;flex-shrink:0}.chart-day__bars{display:flex;align-items:flex-end;gap:2px;height:88px}.chart-bar{width:5px;border-radius:3px 3px 0 0;min-height:2px;transition:height .2s ease}.chart-bar--added{background:#007aff}.chart-bar--active{background:#ff9500}.chart-bar--completed{background:#34c759}.chart-day__label{font-size:.62rem;color:var(--text-muted);font-variant-numeric:tabular-nums}[data-theme=dark] .chart-bar--added{background:#0a84ff}[data-theme=dark] .chart-bar--active{background:#ff9f0a}[data-theme=dark] .chart-bar--completed{background:#30d158}.stats-panel{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow);transition:border-color .15s}.stat-card--overdue{border-color:var(--danger);background:var(--danger-light)}.stat-card__icon{font-size:1.3rem}.stat-card__value{display:block;font-size:1.4rem;font-weight:700;line-height:1.2}.stat-card__label{display:block;font-size:.75rem;color:var(--text-muted)}.todo-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.todo-form__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.todo-form__title{font-size:1rem;font-weight:600}.todo-form__row{margin-bottom:12px}.todo-form__row--inline{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}.todo-form__row--actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:0}.todo-form__input,.todo-form__textarea,.todo-form__field select,.todo-form__field input[type=date],.todo-form__new-category input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:inherit;font-size:.9rem;transition:border-color .15s;box-sizing:border-box}.todo-form__field select,.todo-form__field input[type=date]{height:42px;min-height:42px}.todo-form__input:focus,.todo-form__textarea:focus,.todo-form__field select:focus,.todo-form__field input[type=date]:focus,.todo-form__new-category input:focus{outline:none;border-color:var(--accent)}.todo-form__textarea{resize:vertical;min-height:72px}.todo-form__field{display:flex;flex-direction:column;gap:4px;min-width:0}.todo-form__label{font-size:.75rem;color:var(--text-muted);font-weight:500}.todo-form__checkbox{display:flex;align-items:center;gap:6px;font-size:.875rem;cursor:pointer;padding-bottom:10px}.todo-form__new-category{display:flex;gap:8px;align-items:center}.todo-form__new-category input{width:160px}.btn{padding:8px 16px;border-radius:var(--radius-sm);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost{background:transparent;color:var(--text-muted);border-color:var(--border)}.btn--ghost:hover{background:var(--bg-hover);color:var(--text)}.search-bar{position:relative;margin-bottom:16px}.search-bar__icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:.9rem;pointer-events:none}.search-bar__input{width:100%;padding:10px 36px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);font-family:inherit;font-size:.9rem;box-shadow:var(--shadow);transition:border-color .15s}.search-bar__input:focus{outline:none;border-color:var(--accent)}.search-bar__clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.85rem;padding:4px}.filter-bar{margin-bottom:16px}.filter-bar__tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.filter-tab{padding:6px 14px;border-radius:20px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-family:inherit;font-size:.8rem;cursor:pointer;transition:all .15s}.filter-tab:hover{background:var(--bg-hover);color:var(--text)}.filter-tab--active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-bar__controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-control{display:flex;align-items:center;gap:6px;font-size:.8rem}.filter-control__label{color:var(--text-muted);white-space:nowrap}.filter-control select{padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font-family:inherit;font-size:.8rem}.sort-order-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);font-size:1rem;cursor:pointer;transition:background .15s}.sort-order-btn:hover{background:var(--bg-hover)}.todo-list{list-style:none;display:flex;flex-direction:column;gap:10px}.todo-item{display:flex;align-items:flex-start;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s;position:relative;overflow:hidden}.todo-item:hover{box-shadow:var(--shadow-lg)}.todo-item--completed{opacity:.65}.todo-item--completed .todo-item__title{text-decoration:line-through;color:var(--text-muted)}.todo-item--overdue{border-color:var(--danger);background:var(--danger-light)}.todo-item--pinned{border-color:var(--accent)}.todo-item__status-bar{position:absolute;left:0;top:0;bottom:0;width:4px}.todo-item__status-bar--completed{background:#10b981}.todo-item__status-bar--active{background:#fde047}.todo-item__status-bar--week{background:#f59e0b}.todo-item__status-bar--overdue{background:#ef4444}.todo-item__checkbox{flex-shrink:0;width:22px;height:22px;border:2px solid var(--border);border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#fff;transition:all .15s;margin-top:2px}.todo-item__checkbox:hover{border-color:var(--accent)}.todo-item__checkbox--checked{background:var(--accent);border-color:var(--accent)}.todo-item__content{flex:1;min-width:0;position:relative}.todo-item--editing{border-color:var(--accent)}.todo-item--editing .todo-item__toolbar{display:none}.todo-item--editing .todo-item__inline-form{width:100%}.todo-item__toolbar{display:flex;align-items:flex-start;gap:4px;flex-shrink:0}.todo-item__tool-btn{min-width:28px;height:28px;padding:0 6px;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-muted);font-size:.8rem;font-weight:600;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center}.todo-item__follow-btn:hover,.todo-item__follow-btn--active,.todo-item__follow-btn--has,.todo-item__participants-btn:hover,.todo-item__participants-btn--active{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.todo-item__participants-btn{font-size:.9rem}.participants-modal{width:100%;max-width:400px;max-height:85vh;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}.participants-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.participants-modal__header--compact{justify-content:flex-end;padding:10px 12px 0;border-bottom:none}.participants-modal__header-main{min-width:0}.participants-modal__title{font-size:1.05rem;font-weight:700}.participants-modal__subtitle{font-size:.8rem;color:var(--text-muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.participants-modal__body{padding:16px 20px;overflow-y:auto}.participants-modal__hint{font-size:.78rem;color:var(--text-muted);line-height:1.4;margin-bottom:10px}.participants-modal__mode{font-size:.78rem;font-weight:500;color:var(--accent);margin-bottom:10px}.participants-modal__list{list-style:none;display:flex;flex-direction:column;gap:6px}.participants-modal__list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem}.participants-modal__list-item--all{color:var(--text-muted);justify-content:center}.participants-modal__role{font-size:.72rem;color:var(--text-muted)}.participants-modal__footer{padding:12px 20px 16px;border-top:1px solid var(--border)}.participants-modal__footer .btn{width:100%}.todo-item__inline-form{display:flex;flex-direction:column;gap:8px}.todo-item__inline-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:start}.todo-item__inline-field{display:flex;flex-direction:column;gap:4px;min-width:0}.todo-item__inline-label{font-size:.75rem;color:var(--text-muted)}.todo-item__inline-row select,.todo-item__inline-row input[type=date]{width:100%;height:42px;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-family:inherit;font-size:.85rem;box-sizing:border-box}.todo-item__inline-actions{display:flex;gap:8px}.followup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:20px;z-index:210;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.followup-modal{width:100%;max-width:520px;max-height:min(640px,88vh);display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}.followup-modal__header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 20px 16px;border-bottom:1px solid var(--border)}.followup-modal__header-main{min-width:0;flex:1}.followup-modal__title{font-size:1.05rem;font-weight:700;line-height:1.35;word-break:break-word}.followup-modal__subtitle{margin-top:4px;font-size:.78rem;color:var(--text-muted)}.followup-modal__close{flex-shrink:0;background:none;border:none;font-size:1.1rem;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm)}.followup-modal__close:hover{background:var(--bg-hover);color:var(--text)}.followup-modal__body{flex:1;min-height:0;overflow-y:auto;padding:16px 20px;scrollbar-width:thin}.followup-modal__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:160px;text-align:center;color:var(--text-muted);font-size:.85rem}.followup-modal__empty-icon{font-size:2rem;opacity:.5}.followup-comments{list-style:none;display:flex;flex-direction:column;gap:16px;margin:0}.followup-comment{display:flex;gap:12px;align-items:flex-start}.followup-comment__avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8rem;font-weight:700}.followup-comment__main{flex:1;min-width:0}.followup-comment__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin-bottom:4px}.followup-comment__author{font-size:.82rem;font-weight:600;color:var(--text)}.followup-comment__time{font-size:.72rem;color:var(--text-muted)}.followup-comment__delete{margin-left:auto;background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:.75rem;line-height:1;cursor:pointer;padding:2px 5px;border-radius:4px;opacity:0;transition:opacity .15s}.followup-comment:hover .followup-comment__delete{opacity:1}.followup-comment__delete:hover{color:var(--danger);background:var(--danger-light)}@media(hover:none){.followup-comment__delete{opacity:1}}.followup-comment__content{font-size:.88rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--text)}.followup-modal__footer{flex-shrink:0;display:flex;flex-direction:column;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--border);background:var(--bg)}.followup-modal__input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);color:var(--text);font-family:inherit;font-size:.9rem;line-height:1.45;resize:none;max-height:120px;overflow-y:auto}.followup-modal__input:focus{outline:none;border-color:var(--accent)}.followup-modal__actions{display:flex;justify-content:flex-end}.todo-item__header{display:flex;align-items:center;gap:6px}.todo-item__title{font-size:.95rem;font-weight:600;word-break:break-word}.todo-item__pin-badge{font-size:.8rem}.todo-item__description{font-size:.85rem;color:var(--text-muted);margin-top:4px;white-space:pre-wrap;word-break:break-word}.todo-item__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:.75rem}.todo-item__priority-label{padding:2px 8px;border-radius:10px;font-weight:500}.todo-item__priority-label--high{background:#ef444426;color:var(--priority-high)}.todo-item__priority-label--medium{background:#f59e0b26;color:var(--priority-medium)}.todo-item__priority-label--low{background:#10b98126;color:var(--priority-low)}.todo-item__category{padding:2px 8px;border-radius:10px;background:var(--accent-light);color:var(--accent)}.date-bubble{padding:3px 10px;border-radius:12px;font-weight:600;font-size:.75rem}.date-bubble--red{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.35)}.date-bubble--orange{background:#f59e0b26;color:#d97706;border:1px solid rgba(245,158,11,.35)}.date-bubble--green{background:#10b98126;color:#059669;border:1px solid rgba(16,185,129,.35)}[data-theme=dark] .date-bubble--red{color:#f87171}[data-theme=dark] .date-bubble--orange{color:#fbbf24}[data-theme=dark] .date-bubble--green{color:#34d399}.celebrate-particle{position:fixed;z-index:9999;pointer-events:none;font-size:1.1rem;animation:celebrate-fly .9s ease-out forwards}@keyframes celebrate-fly{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--tx),var(--ty)) scale(.4)}}.todo-item__checkbox--celebrate{animation:checkbox-pop .4s ease}@keyframes checkbox-pop{0%{transform:scale(1)}50%{transform:scale(1.35)}to{transform:scale(1)}}.todo-item__action{background:var(--bg-card);border:1px solid var(--border);opacity:.85;font-size:1rem;padding:0 4px;transition:opacity .15s,background .15s,border-color .15s}.todo-item__action:hover{opacity:1;background:var(--bg-hover)}.todo-item__action--delete:hover{background:var(--danger-light)}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state__icon{font-size:2.5rem;display:block;margin-bottom:12px}.empty-state__text{font-size:.95rem}.category-stats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.category-stat{padding:4px 12px;border-radius:20px;background:var(--bg-card);border:1px solid var(--border);font-size:.8rem;color:var(--text-muted)}.category-stat strong{color:var(--text);margin-left:4px}@media(max-width:700px){.stats-panel{grid-template-columns:repeat(3,1fr)}.stat-card:nth-child(4),.stat-card:nth-child(5){grid-column:span 1}}@media(max-width:480px){.app{padding:16px 12px 32px}.stats-panel{grid-template-columns:repeat(2,1fr)}.todo-form__row--inline,.todo-item__inline-row{grid-template-columns:1fr}.todo-item__toolbar{flex-direction:column}}@keyframes anim-ambient-glow{0%,to{transform:translate(0) scale(1);opacity:.45}33%{transform:translate(4%,-3%) scale(1.06);opacity:.55}66%{transform:translate(-3%,4%) scale(.96);opacity:.4}}@keyframes anim-page-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes anim-auth-enter{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes anim-header-enter{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes anim-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes anim-settings-overlay{0%{opacity:0}to{opacity:1}}@keyframes anim-settings-panel{0%{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes anim-todo-enter{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes anim-detail-expand{0%{opacity:0;max-height:0;transform:translateY(-6px)}to{opacity:1;max-height:400px;transform:translateY(0)}}@keyframes anim-dropdown-enter{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes anim-empty-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes anim-month-switch{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes anim-chart-bar-grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes anim-theme-flip{0%{transform:rotate(-90deg) scale(.6);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}@keyframes anim-search-glow{0%,to{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 3px #4f6ef726,var(--shadow)}}body:before,body:after{content:"";position:fixed;border-radius:50%;pointer-events:none;z-index:0;filter:blur(80px);animation:anim-ambient-glow 18s ease-in-out infinite}body:before{width:420px;height:420px;top:-120px;right:-80px;background:radial-gradient(circle,rgba(79,110,247,.18),transparent 70%)}body:after{width:360px;height:360px;bottom:-100px;left:-60px;background:radial-gradient(circle,rgba(118,75,162,.14),transparent 70%);animation-delay:-9s}#root,.app{position:relative;z-index:1}.auth-screen{animation:anim-page-enter .5s cubic-bezier(.22,1,.36,1) both}.auth-card{animation:anim-auth-enter .6s cubic-bezier(.22,1,.36,1) .08s both}.app--login-enter,.app-layout--login-enter .app-main{animation:anim-page-enter .55s cubic-bezier(.22,1,.36,1) both}.app--login-enter .header{animation:anim-header-enter .5s cubic-bezier(.22,1,.36,1) .05s both}.app--login-enter .stats-panel .stat-card{animation:anim-fade-up .45s cubic-bezier(.22,1,.36,1) both}.app--login-enter .stats-panel .stat-card:nth-child(1){animation-delay:.08s}.app--login-enter .stats-panel .stat-card:nth-child(2){animation-delay:.12s}.app--login-enter .stats-panel .stat-card:nth-child(3){animation-delay:.16s}.app--login-enter .stats-panel .stat-card:nth-child(4){animation-delay:.2s}.app--login-enter .stats-panel .stat-card:nth-child(5){animation-delay:.24s}.stat-card{transition:transform .25s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.app--login-enter .todo-form,.app--login-enter .search-bar,.app--login-enter .filter-bar{animation:anim-fade-up .5s cubic-bezier(.22,1,.36,1) .15s both}.settings-overlay{animation:anim-settings-overlay .25s ease both}.settings-panel{animation:anim-settings-panel .4s cubic-bezier(.22,1,.36,1) both}.todo-item{transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease,border-color .2s ease}.app--login-enter .todo-item{animation:anim-todo-enter .4s cubic-bezier(.22,1,.36,1) both}.app--login-enter .todo-list>li:nth-child(1) .todo-item{animation-delay:.02s}.app--login-enter .todo-list>li:nth-child(2) .todo-item{animation-delay:.05s}.app--login-enter .todo-list>li:nth-child(3) .todo-item{animation-delay:.08s}.app--login-enter .todo-list>li:nth-child(4) .todo-item{animation-delay:.11s}.app--login-enter .todo-list>li:nth-child(5) .todo-item{animation-delay:.14s}.app--login-enter .todo-list>li:nth-child(6) .todo-item{animation-delay:.17s}.app--login-enter .todo-list>li:nth-child(7) .todo-item{animation-delay:.2s}.app--login-enter .todo-list>li:nth-child(8) .todo-item{animation-delay:.23s}.todo-item:hover:not(.todo-item--editing){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.followup-overlay{animation:anim-settings-overlay .25s ease both}.followup-modal{animation:anim-settings-panel .4s cubic-bezier(.22,1,.36,1) both}.user-dropdown{animation:anim-dropdown-enter .28s cubic-bezier(.22,1,.36,1) both;transform-origin:top right}.empty-state__icon{animation:anim-empty-float 3s ease-in-out infinite}.app--login-enter .month-stats{animation:anim-month-switch .35s cubic-bezier(.22,1,.36,1) both}.app--login-enter .chart-bar{transform-origin:bottom center;animation:anim-chart-bar-grow .5s cubic-bezier(.22,1,.36,1) both}.app--login-enter .chart-day:nth-child(odd) .chart-bar{animation-delay:.02s}.app--login-enter .chart-day:nth-child(2n) .chart-bar{animation-delay:.05s}.theme-toggle{transition:transform .2s ease,background .15s}.theme-toggle:active,.settings-btn:active,.btn:active,.filter-tab:active,.auth-tab:active{transform:scale(.94);transition:transform .1s ease}.theme-toggle--spin{animation:anim-theme-flip .4s cubic-bezier(.22,1,.36,1) both}.filter-tab{transition:background .25s ease,color .25s ease,transform .2s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}.filter-tab--active{transform:scale(1.04)}.filter-tab:hover:not(.filter-tab--active){transform:translateY(-1px)}.search-bar__input:focus{animation:anim-search-glow 2s ease-in-out infinite}.settings-tab,.settings-period-tab,.month-nav__btn{transition:background .2s ease,color .2s ease,transform .2s cubic-bezier(.22,1,.36,1)}.settings-tab--active,.settings-period-tab--active{transform:scale(1.02)}.auth-tab{transition:all .25s cubic-bezier(.22,1,.36,1)}.auth-tab--active{transform:scale(1.02)}.btn,.auth-submit{transition:background .2s ease,transform .15s cubic-bezier(.22,1,.36,1),box-shadow .2s ease}.btn--primary:hover,.auth-submit:hover{transform:translateY(-1px);box-shadow:0 4px 14px #4f6ef740}.month-summary__card{transition:transform .25s ease}.month-summary__card:hover{transform:scale(1.04)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
