.loading,.empty-state{text-align:center;padding:40px;color:#7f8c8d;font-size:18px}.task-list{display:flex;flex-direction:column;gap:12px}.empty-state{text-align:center;padding:40px;color:#7f8c8d;font-size:18px}.error{color:#e74c3c;display:flex;flex-direction:column;gap:15px;align-items:center}.retry-button{padding:10px 20px;background-color:#3498db;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px}.retry-button:hover{background-color:#2980b9}.category-column{position:fixed;left:80px;top:0;bottom:0;width:240px;padding:1.5rem 1rem;z-index:100}.category-column__title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#2c3e50}.category-column__list{display:flex;flex-direction:column;gap:.5rem}.category-column__item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--light-color, #f8f9fa);border-radius:6px;cursor:pointer;transition:background .2s,transform .2s}.category-column__item:hover{background:var(--main-color, #e9ecef);transform:translate(4px)}.category-column__name{font-size:.9rem;font-weight:500;color:#2c3e50}.goal-column{position:fixed;left:320px;top:0;bottom:0;width:240px;background:#fff;border-right:1px solid #ecf0f1;padding:1.5rem 1rem;z-index:100;box-shadow:2px 0 8px #0000001a}.goal-column__title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#2c3e50}.goal-column__empty{padding:1rem;text-align:center;color:#95a5a6;font-size:.85rem}.goal-column__list{display:flex;flex-direction:column;gap:.5rem}.goal-column__item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--light-color, #f8f9fa);border-radius:6px;cursor:pointer;transition:background .2s,transform .2s}.goal-column__item:hover{background:var(--main-color, #e9ecef);transform:translate(4px)}.goal-column__name{font-size:.9rem;font-weight:500;color:#2c3e50;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-item{display:flex;align-items:center;gap:15px;padding:16px;border:1px solid;border-radius:8px;transition:all .2s ease;cursor:grab}.task-item:hover{box-shadow:0 2px 8px #0000001a}.task-item--dragging{opacity:.5;cursor:grabbing}.task-item--completed{opacity:.6}.task-item--completed .task-item__title{text-decoration:line-through;color:#95a5a6}.task-item__drag-handle{cursor:grab;-webkit-user-select:none;user-select:none;color:#95a5a6;font-size:18px;line-height:1;padding:4px;display:flex;align-items:center;justify-content:center}.task-item__drag-handle:active{cursor:grabbing}.task-item__checkbox{width:20px;height:20px;cursor:pointer}.task-item__content{flex:1}.task-item__title{font-size:16px;color:#2c3e50;margin-bottom:4px}.task-item__meta{font-size:12px;color:#95a5a6;display:flex;align-items:center;gap:6px}.task-item__goal{color:#3498db;font-weight:500}.task-item__separator{color:#dfe6e9}.task-input{margin-bottom:24px}.task-input-field{width:100%;padding:12px 16px;font-size:16px;border:2px solid #e0e0e0;border-radius:8px;outline:none;transition:border-color .2s ease;font-family:inherit}.task-input-field:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.task-input-field::placeholder{color:#95a5a6}.task-filter-select{position:sticky;top:1rem}.task-filter-select__section{margin-bottom:1rem}.task-filter-select__title{margin:0 0 .75rem;font-size:.9rem;font-weight:600;color:#2c3e50}.task-filter-select__list{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}.task-filter-select__divider{width:100%;height:1px;background-color:#d0d0d0;margin:.25rem 0}.task-filter-select__item--uncategorized{background:#515a64}.task-filter-select__item--uncategorized:hover{background:#2f3235}.task-filter-select__category-wrapper{display:inline-flex;gap:.5rem;align-items:flex-start;flex-wrap:wrap}.task-filter-select__item{display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;background:var(--light-color, #f8f9fa);border-radius:6px;cursor:pointer;transition:background .2s,transform .2s;white-space:nowrap}.task-filter-select__item:hover{background:var(--main-color, #e9ecef);transform:translate(2px)}.task-filter-select__item--selected{background:var(--main-color, #e9ecef);font-weight:600}.task-filter-select__name{font-size:.9rem;color:#2c3e50;word-break:break-word}.task-filter-select__expand{font-size:.75rem;color:#7f8c8d}.task-filter-select__goals{display:inline-flex;flex-wrap:wrap;gap:.35rem;align-items:center}.task-filter-select__goal{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .6rem;background:var(--light-color, #f8f9fa);border-radius:4px;cursor:pointer;transition:background .2s,transform .2s;font-size:.85rem;max-width:100%}.task-filter-select__goal:hover{background:var(--main-color, #e9ecef);transform:translate(2px)}.task-filter-select__goal--selected{background:var(--main-color, #e9ecef);font-weight:600}.task-filter-select__goal-icon{font-size:.75rem}.task-filter-display{display:flex;flex-direction:row;gap:.5rem;flex-wrap:wrap}.task-filter-display__item{display:flex;align-items:center;gap:.35rem;padding:.4rem .6rem;background:var(--light-color, #f8f9fa);border-radius:4px;cursor:pointer;transition:background .2s}.task-filter-display__item--uncategorized{background:#f8f9fa}.task-filter-display__item--uncategorized:hover{background:#e9ecef}.task-filter-display__item:hover{background:var(--main-color, #e9ecef)}.task-filter-display__label{font-size:.65rem;font-weight:600;color:#7f8c8d;text-transform:uppercase}.task-filter-display__name{font-size:.8rem;font-weight:500;color:#2c3e50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.task-filter-display__remove{background:none;border:none;font-size:1.2rem;line-height:1;color:#95a5a6;cursor:pointer;padding:0;margin-left:auto;transition:color .2s}.task-filter-display__remove:hover{color:#e74c3c}.tasks-page{width:100%;height:100vh;display:flex;background-color:#f5f5f5}.tasks-page__content{flex:1;margin-left:60px;overflow-y:auto;padding:40px}.tasks-page__layout{display:flex;gap:2rem;max-width:1200px;margin:0 auto}.tasks-page__main{flex:1;max-width:800px}.tasks-page__main h1{color:#2c3e50;margin:0;font-size:32px}.tasks-page__header{display:flex;align-items:center;gap:1.5rem;margin-bottom:30px;min-height:40px}.tasks-page__sidebar{width:400px;flex-shrink:0}.tasks-page__loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:18px;color:#7f8c8d}.goal-set-list{display:flex;flex-direction:column;height:100%}.goal-set-list__create-button{margin:16px;padding:12px 16px;background-color:#3498db;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.goal-set-list__create-button:hover{background-color:#2980b9}.goal-set-list__items{flex:1;overflow-y:auto}.goal-set-item{padding:16px;margin:0 12px 8px;background-color:#f8f9fa;border-radius:8px;cursor:pointer;transition:all .2s;border:2px solid transparent}.goal-set-item:hover{background-color:#e9ecef}.goal-set-item--active{background-color:#e3f2fd;border-color:#3498db}.goal-set-item__duration{font-size:16px;font-weight:600;color:#2c3e50;margin-bottom:4px}.goal-set-item__date{font-size:12px;color:#7f8c8d}.create-goal-set-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.create-goal-set-modal__backdrop{position:absolute;inset:0;background-color:#00000080}.create-goal-set-modal__content{position:relative;background-color:#fff;border-radius:12px;padding:24px;width:400px;max-width:90vw;box-shadow:0 4px 12px #00000026}.create-goal-set-modal__content h3{margin:0 0 20px;color:#2c3e50;font-size:20px}.create-goal-set-modal__field{margin-bottom:20px}.create-goal-set-modal__field label{display:block;margin-bottom:8px;color:#2c3e50;font-weight:500;font-size:14px}.create-goal-set-modal__input{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;box-sizing:border-box}.create-goal-set-modal__input:focus{outline:none;border-color:#3498db}.create-goal-set-modal__options{display:flex;flex-direction:column;gap:8px}.create-goal-set-modal__option{display:flex;align-items:center;gap:8px;cursor:pointer;padding:8px;border-radius:6px;transition:background-color .2s}.create-goal-set-modal__option:hover{background-color:#f8f9fa}.create-goal-set-modal__option input[type=radio]{width:18px;height:18px;cursor:pointer}.create-goal-set-modal__option span{font-size:16px;color:#2c3e50}.create-goal-set-modal__actions{display:flex;gap:12px;justify-content:flex-end}.button-primary,.button-secondary{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s}.button-primary{background-color:#3498db;color:#fff}.button-primary:hover{background-color:#2980b9}.button-secondary{background-color:#e0e0e0;color:#2c3e50}.button-secondary:hover{background-color:#d0d0d0}.goal-set-editor{background:#fff;border-radius:8px;padding:16px 20px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;width:100%;box-sizing:border-box}.goal-set-editor__info{display:flex;align-items:center;gap:24px;flex:1;min-width:0;flex-wrap:wrap}.goal-set-editor__field{display:flex;align-items:center;gap:8px}.goal-set-editor__field label{font-size:14px;font-weight:500;color:#2c3e50;white-space:nowrap}.goal-set-editor__input,.goal-set-editor__select{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit;background:#fff}.goal-set-editor__input:focus,.goal-set-editor__select:focus{outline:none;border-color:#3498db}.goal-set-editor__select{cursor:pointer}.goal-set-editor__period{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#f8f9fa;border-radius:4px}.goal-set-editor__period-label{font-size:14px;font-weight:500;color:#7f8c8d}.goal-set-editor__period-value{font-size:14px;color:#2c3e50;font-weight:500}.goal-set-editor__actions{display:flex;gap:10px}.goal-set-editor__button{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s;white-space:nowrap}.goal-set-editor__button--primary{background-color:#3498db;color:#fff}.goal-set-editor__button--primary:hover{background-color:#2980b9}.goal-set-editor__button--secondary{background-color:#e0e0e0;color:#2c3e50}.goal-set-editor__button--secondary:hover{background-color:#d0d0d0}.goals-board{padding:24px;height:100%;overflow-y:auto;overflow-x:hidden}.goals-board__loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:18px;color:#7f8c8d}.goals-board__categories{display:flex;gap:12px;flex-wrap:wrap}.goal-category{flex:1;min-width:200px;max-width:300px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column}.goal-category__header{padding:12px;border-radius:8px 8px 0 0;color:#fff}.goal-category__header h3{margin:0;font-size:16px;font-weight:600}.goal-category__goals{padding:12px;display:flex;flex-direction:column;gap:8px;flex:1}.goal-item{padding:12px;border-radius:6px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.goal-item:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000001a}.goal-item--inactive .goal-item__title{text-decoration:line-through;opacity:.6}.goal-item__checkbox{cursor:pointer;width:18px;height:18px;margin:0}.goal-item__title{flex:1;font-size:14px;word-break:break-word}.goal-item--new{padding:8px 12px;cursor:default}.goal-item--new:hover{transform:none;box-shadow:none}.goal-item__input{flex:1;border:none;background:transparent;outline:none;font-size:14px;font-family:inherit}.goal-item__input::placeholder{color:#95a5a6}.goal-category__add-button{padding:10px;border:2px dashed #bdc3c7;background:transparent;border-radius:6px;color:#7f8c8d;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;margin-top:4px}.goal-category__add-button:hover{border-color:#95a5a6;color:#2c3e50;background:#ecf0f1}.goals-page{width:calc(100vw - 60px);height:100vh;display:flex;background-color:#f5f5f5;margin-left:60px}.goals-page__sidebar{width:180px;flex-shrink:0;background-color:#fff;border-right:1px solid #e0e0e0;overflow-y:auto}.goals-page__content{flex:1;overflow-y:auto;padding:20px;min-width:0}.goals-page__loading,.goals-page__empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:18px;color:#7f8c8d}.goals-page__auth-required{display:flex;align-items:center;justify-content:center;height:100%}.color-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:.75rem;max-width:100%}.color-picker__item{width:100%;max-width:48px;height:48px;border-radius:8px;border:3px solid transparent;cursor:pointer;transition:transform .2s,border-color .2s;padding:0;justify-self:center}.color-picker__item:hover{transform:scale(1.1)}.color-picker__item--selected{border-color:#2c3e50;transform:scale(1.1)}.tag-add-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.tag-add-modal__backdrop{position:absolute;inset:0;background:#00000080}.tag-add-modal__content{position:relative;background:#fff;border-radius:12px;padding:2rem;width:90%;max-width:500px;box-shadow:0 4px 20px #00000026}.tag-add-modal__content h2{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600}.tag-add-modal__field{margin-bottom:1.5rem}.tag-add-modal__field label{display:block;margin-bottom:.5rem;font-weight:500;color:#2c3e50}.tag-add-modal__input{width:100%;padding:.75rem;border:1px solid #dfe6e9;border-radius:8px;font-size:1rem;transition:border-color .2s}.tag-add-modal__input:focus{outline:none;border-color:#3498db}.tag-add-modal__error{padding:.75rem;background:#fee;color:#c0392b;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.tag-add-modal__actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.tag-add-modal__button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s}.tag-add-modal__button--secondary{background:#ecf0f1;color:#2c3e50}.tag-add-modal__button--secondary:hover{background:#dfe6e9}.tag-add-modal__button--primary{background:#3498db;color:#fff}.tag-add-modal__button--primary:hover:not(:disabled){background:#2980b9}.tag-add-modal__button--primary:disabled{opacity:.5;cursor:not-allowed}.tags-page{flex:1;display:flex;flex-direction:column;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.tags-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.tags-page__header h1{margin:0;font-size:2rem;font-weight:600}.tags-page__add-button{padding:.75rem 1.5rem;background:#3498db;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s}.tags-page__add-button:hover{background:#2980b9}.tags-page__loading,.tags-page__empty{display:flex;align-items:center;justify-content:center;padding:4rem 2rem;color:#7f8c8d;font-size:1.1rem}.tags-page__content{flex:1}.tags-page__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.tag-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fff;border:1px solid #ecf0f1;border-radius:8px;transition:box-shadow .2s}.tag-item:hover{box-shadow:0 2px 8px #0000001a}.tag-item__color{width:36px;height:36px;border-radius:6px;flex-shrink:0}.tag-item__content{flex:1;min-width:0}.tag-item__title{font-size:1rem;font-weight:500;margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-item__meta{font-size:.85rem;color:#95a5a6}.tag-item__delete{padding:.4rem .75rem;background:#e74c3c;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background .2s;font-size:.85rem;flex-shrink:0}.tag-item__delete:hover:not(:disabled){background:#c0392b}.tag-item__delete:disabled{opacity:.5;cursor:not-allowed}.sidebar{position:fixed;left:0;top:0;height:100vh;width:60px;background-color:#2c3e50;display:flex;flex-direction:column;align-items:center;padding:20px 0;box-shadow:2px 0 8px #0000001a}.sidebar-user{margin-bottom:20px;display:flex;flex-direction:column;align-items:center;gap:8px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1);width:100%}.sidebar-user-icon{font-size:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background-color:#34495e;border-radius:50%}.sidebar-username{color:#ecf0f1;font-size:10px;text-align:center;word-break:break-word;max-width:50px;line-height:1.2}.sidebar-nav{display:flex;flex-direction:column;gap:15px;width:100%;align-items:center}.sidebar-item{width:40px;height:40px;border:none;background-color:#34495e;color:#ecf0f1;font-size:20px;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;text-decoration:none}.sidebar-item:hover:not(.disabled){background-color:#3498db;transform:scale(1.05)}.sidebar-item.active{background-color:#3498db;box-shadow:0 0 10px #3498db80}.sidebar-item.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.auth-widget{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.auth-modal{background-color:#fff;border-radius:12px;padding:32px;max-width:400px;width:90%;box-shadow:0 8px 32px #0003}.auth-modal h2{margin:0 0 8px;color:#2c3e50;font-size:24px}.auth-description{margin:0 0 24px;color:#7f8c8d;font-size:14px}.auth-error{background-color:#fee;color:#c00;padding:12px;border-radius:6px;margin-bottom:16px;font-size:14px}.auth-input{width:100%;padding:12px 16px;font-size:16px;border:2px solid #e0e0e0;border-radius:8px;outline:none;margin-bottom:16px;transition:border-color .2s ease}.auth-input:focus{border-color:#3498db}.auth-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.auth-button{width:100%;padding:12px 24px;font-size:16px;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;margin-bottom:12px}.auth-button:last-child{margin-bottom:0}.auth-button.primary{background-color:#3498db;color:#fff}.auth-button.primary:hover:not(:disabled){background-color:#2980b9}.auth-button.secondary{background-color:#ecf0f1;color:#2c3e50}.auth-button.secondary:hover:not(:disabled){background-color:#d5dbdb}.auth-button:disabled{opacity:.6;cursor:not-allowed}.telegram-link-button{display:block;width:100%;padding:12px 24px;font-size:16px;font-weight:500;background-color:#08c;color:#fff;text-align:center;text-decoration:none;border-radius:8px;margin-bottom:24px;transition:background-color .2s ease}.telegram-link-button:hover{background-color:#069}.auth-spinner{width:40px;height:40px;margin:0 auto;border:4px solid #e0e0e0;border-top-color:#3498db;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.base-layout{flex:1;display:flex;flex-direction:column}.base-layout__loading,.base-layout__auth-required{display:flex;align-items:center;justify-content:center;min-height:100vh}.base-layout__content{flex:1;display:flex;flex-direction:column}*{margin:0;padding:0;box-sizing:border-box}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;background-color:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{width:100%;height:100vh;margin:0;padding:0}
