:root{--color-bg: #0d0f1a;--color-surface: #151824;--color-surface-raised: #1c2030;--color-surface-hover: #202435;--color-border: #252940;--color-border-hover: #3a3f5c;--color-text: #dde1f0;--color-text-secondary: #8890aa;--color-text-muted: #4a5070;--color-done: #34d399;--color-points: #fbbf24;--color-error: #f87171;--color-spinner: #6366f1;--member-color: #6366f1;--gap: 1rem;--pad-dashboard: 1rem;--pad-card-header: 1.25rem 1.5rem;--pad-card-body: .75rem 1rem 1.25rem;--pad-section: .625rem 0;--pad-task: .875rem 1rem;--radius-card: 1rem;--radius-task: .625rem;--radius-badge: 2rem;--font: "Inter", "Segoe UI", system-ui, sans-serif;--text-card-name: 1.2rem;--text-section-label: .8rem;--text-task: 1.05rem;--text-badge: .85rem;--text-points: .9rem;--transition: .15s ease;--shadow-card: 0 6px 28px rgba(0, 0, 0, .45)}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;font-family:var(--font);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.dashboard{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:var(--pad-dashboard);gap:var(--gap)}.dashboard__header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;padding:.25rem .25rem 0}.dashboard__title{font-size:1.1rem;font-weight:700;letter-spacing:.05em;color:var(--color-text-secondary);text-transform:uppercase}.dashboard__date{font-size:1rem;color:var(--color-text-muted)}.dashboard__grid{display:flex;flex:1;min-height:0;gap:var(--gap);overflow-x:auto}.dashboard__state{display:flex;align-items:center;justify-content:center;flex:1;color:var(--color-text-secondary);font-size:.9rem}.dashboard__state--error{color:var(--color-error)}.member-card{flex:1 1 0;min-width:240px;display:flex;flex-direction:column;min-height:0;background:var(--color-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;border-top:4px solid var(--member-color);transition:box-shadow var(--transition)}.member-card:hover{box-shadow:var(--shadow-card),0 0 0 1px color-mix(in srgb,var(--member-color) 40%,transparent)}.member-card__header{display:flex;align-items:center;gap:1rem;padding:var(--pad-card-header);background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);flex-shrink:0}.member-card__avatar{width:3rem;height:3rem;border-radius:50%;background:var(--member-color);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.member-card__avatar-img{width:100%;height:100%;object-fit:cover}.member-card__avatar-initials{font-size:1.2rem;font-weight:700;color:#fff;text-transform:uppercase;line-height:1}.member-card__info{flex:1;min-width:0}.member-card__name{margin:0;font-size:var(--text-card-name);font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-card__points{font-size:var(--text-points);color:var(--color-points);font-weight:500}.member-card__body{flex:1;overflow-y:auto;padding:var(--pad-card-body);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.member-card__body::-webkit-scrollbar{width:4px}.member-card__body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.member-card__state{display:flex;align-items:center;justify-content:center;min-height:6rem;height:100%;color:var(--color-text-muted);font-size:1rem}.member-card__state--error{color:var(--color-error)}.task-section{padding:var(--pad-section)}.task-section+.task-section{border-top:1px solid var(--color-border);margin-top:.75rem;padding-top:1rem}.task-section__title{display:flex;align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:var(--text-section-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.task-section__icon{font-size:.9rem}.task-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:var(--pad-task);min-height:3rem;border:none;background:transparent;border-radius:var(--radius-task);cursor:pointer;text-align:left;color:var(--color-text);transition:background var(--transition)}.task-item:hover{background:var(--color-surface-hover)}.task-item:focus-visible{outline:2px solid var(--member-color);outline-offset:1px}.task-item__checkbox{flex-shrink:0;width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid var(--color-border-hover);display:flex;align-items:center;justify-content:center;transition:background var(--transition),border-color var(--transition)}.task-item__checkbox svg{width:.8rem;height:.8rem;color:#fff;opacity:0;transition:opacity var(--transition)}.task-item__name{flex:1;font-size:var(--text-task);line-height:1.4;transition:color var(--transition);word-break:break-word}.task-item__points{flex-shrink:0;font-size:var(--text-badge);font-weight:700;color:var(--color-points);background:#fbbf241f;padding:.25rem .65rem;border-radius:var(--radius-badge);white-space:nowrap}.task-item--done .task-item__checkbox{background:var(--color-done);border-color:var(--color-done)}.task-item--done .task-item__checkbox svg{opacity:1}.task-item--done .task-item__name{color:var(--color-text-muted);text-decoration:line-through}.spinner{display:inline-block;width:1.25rem;height:1.25rem;border:2px solid var(--color-border);border-top-color:var(--color-spinner);border-radius:50%;animation:spin .75s linear infinite}.spinner--large{width:2.25rem;height:2.25rem;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.spinner--sm{width:.875rem;height:.875rem;border-width:2px}.btn-add{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-spinner);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition),transform var(--transition)}.btn-add svg{width:1.25rem;height:1.25rem;fill:none}.btn-add:hover{background:color-mix(in srgb,var(--color-spinner) 80%,#fff);transform:scale(1.1)}.btn-add:focus-visible{outline:2px solid var(--color-spinner);outline-offset:3px}.modal-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:modal-fade .15s ease}.modal-container{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:0 24px 64px #0009;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;animation:modal-up .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.125rem 1.5rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-title{margin:0;font-size:1.05rem;font-weight:600;color:var(--color-text)}.modal-close{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-task);flex-shrink:0;transition:background var(--transition),color var(--transition)}.modal-close svg{width:1.125rem;height:1.125rem}.modal-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.modal-close:focus-visible{outline:2px solid var(--color-spinner);outline-offset:1px}.modal-body{flex:1;overflow-y:auto;padding:1.5rem;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.modal-body::-webkit-scrollbar{width:4px}.modal-body::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.task-form{display:flex;flex-direction:column;gap:1.125rem}.form-field{display:flex;flex-direction:column}.form-label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);margin-bottom:.375rem}.form-required{color:var(--color-error)}.form-input,.form-textarea{width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-task);color:var(--color-text);font-family:var(--font);font-size:.875rem;padding:.6rem .875rem;transition:border-color var(--transition),box-shadow var(--transition);outline:none;appearance:none}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-input:focus,.form-textarea:focus{border-color:var(--color-spinner);box-shadow:0 0 0 2px #6366f12e}.form-input--error,.form-textarea--error{border-color:var(--color-error)!important;box-shadow:0 0 0 2px #f8717126!important}input[type=date].form-input{color-scheme:dark}input[type=number].form-input{max-width:120px}.form-textarea{resize:vertical;min-height:72px;line-height:1.5}.form-row{display:flex;gap:1rem}.form-row .form-field{flex:1}.form-error{font-size:.75rem;color:var(--color-error);margin-top:.25rem}.form-hint{font-size:.8rem;color:var(--color-text-muted)}.form-error-banner{padding:.625rem .875rem;background:#f8717114;border:1px solid var(--color-error);border-radius:var(--radius-task);color:var(--color-error);font-size:.825rem}.segment-group{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-task);overflow:hidden}.segment{flex:1;display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.5rem .25rem;font-size:.75rem;font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition),color var(--transition);text-align:center;white-space:nowrap;border-right:1px solid var(--color-border);-webkit-user-select:none;user-select:none}.segment:last-child{border-right:none}.segment:hover:not(.segment--active){background:var(--color-surface-hover);color:var(--color-text-secondary)}.segment--active{background:var(--color-spinner);color:#fff;font-weight:600}.form-toggle{display:inline-flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.form-toggle__track{position:relative;width:2.5rem;height:1.375rem;background:var(--color-border-hover);border-radius:1rem;transition:background var(--transition);flex-shrink:0}.form-toggle__thumb{position:absolute;top:.1875rem;left:.1875rem;width:1rem;height:1rem;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transition:transform var(--transition)}.form-toggle__label{font-size:.875rem;color:var(--color-text)}.form-toggle input:checked~.form-toggle__track{background:var(--color-spinner)}.form-toggle input:checked~.form-toggle__track .form-toggle__thumb{transform:translate(1.125rem)}.form-toggle input:focus-visible~.form-toggle__track{outline:2px solid var(--color-spinner);outline-offset:2px}.day-pills{display:flex;gap:.375rem;flex-wrap:wrap}.day-pill{padding:.375rem .75rem;border-radius:2rem;border:1px solid var(--color-border);background:transparent;font-family:var(--font);font-size:.75rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition)}.day-pill:hover:not(.day-pill--active){border-color:var(--color-border-hover);color:var(--color-text-secondary)}.day-pill--active{background:var(--color-spinner);border-color:var(--color-spinner);color:#fff}.day-pill:focus-visible{outline:2px solid var(--color-spinner);outline-offset:2px}.assignee-list{display:flex;gap:.5rem;flex-wrap:wrap}.assignee-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .75rem .3rem .3rem;border-radius:2rem;border:1.5px solid var(--color-border);background:transparent;font-family:var(--font);cursor:pointer;transition:all var(--transition)}.assignee-chip__avatar{width:1.625rem;height:1.625rem;border-radius:50%;background:var(--chip-color, #6366f1);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;text-transform:uppercase;flex-shrink:0;line-height:1}.assignee-chip__name{font-size:.8rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.assignee-chip--active{border-color:var(--chip-color, #6366f1);background:color-mix(in srgb,var(--chip-color, #6366f1) 15%,transparent)}.assignee-chip--active .assignee-chip__name{color:var(--color-text)}.assignee-chip:hover:not(.assignee-chip--active){border-color:var(--color-border-hover)}.assignee-chip:focus-visible{outline:2px solid var(--color-spinner);outline-offset:2px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;padding-top:.75rem;border-top:1px solid var(--color-border)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.25rem;border-radius:var(--radius-task);font-family:var(--font);font-size:.875rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all var(--transition)}.btn--primary{background:var(--color-spinner);color:#fff}.btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-spinner) 82%,#fff)}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.btn--ghost:hover{border-color:var(--color-border-hover);color:var(--color-text)}.btn:focus-visible{outline:2px solid var(--color-spinner);outline-offset:2px}.dashboard__actions{display:flex;align-items:center;gap:.5rem}.btn-icon-header{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-spinner);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition),transform var(--transition)}.btn-icon-header svg{width:1.2rem;height:1.2rem}.btn-icon-header:hover{background:color-mix(in srgb,var(--color-spinner) 80%,#fff);transform:scale(1.1)}.btn-icon-header:focus-visible{outline:2px solid var(--color-spinner);outline-offset:3px}.task-list-page{display:flex;flex-direction:column;height:100dvh;background:var(--color-bg);overflow:hidden}.tl-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.tl-header__title{font-size:1.3rem;font-weight:700;color:var(--color-text);margin:0}.btn-back{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--color-spinner);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition),transform var(--transition)}.btn-back svg{width:1.25rem;height:1.25rem}.btn-back:hover{background:color-mix(in srgb,var(--color-spinner) 80%,#fff);transform:scale(1.1)}.btn-back:focus-visible{outline:2px solid var(--color-spinner);outline-offset:3px}.tl-body{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.tl-state{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--color-text-secondary);font-size:1rem}.tl-state--error{color:var(--color-danger, #ef4444)}.tl-group{display:flex;flex-direction:column;gap:.5rem}.tl-group__title{font-size:1rem;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0;padding-bottom:.4rem;border-bottom:1.5px solid var(--color-border)}.tl-task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.tl-task-row{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-height:3.25rem;transition:border-color var(--transition)}.tl-task-row:hover{border-color:var(--color-border-hover)}.tl-task-row__icon{font-size:1.1rem;flex-shrink:0;line-height:1}.tl-task-row__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.tl-task-row__name{font-size:1.05rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-task-row__desc{font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-task-row__points{font-size:.85rem;font-weight:600;color:var(--color-text-secondary);flex-shrink:0;white-space:nowrap}.tl-task-row__assignees{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.tl-assignee{width:1.9rem;height:1.9rem;border-radius:50%;background:var(--assignee-color, #6366f1);color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--color-bg);flex-shrink:0}.tl-assignee--none{background:var(--color-border);color:var(--color-text-secondary);font-weight:400;font-size:1rem}.btn-icon{width:2.2rem;height:2.2rem;border-radius:var(--radius);background:transparent;border:1.5px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition),color var(--transition)}.btn-icon svg{width:1rem;height:1rem}.btn-icon:hover{background:var(--color-border);color:var(--color-text)}.btn-icon:focus-visible{outline:2px solid var(--color-spinner);outline-offset:2px}.form-actions--edit{flex-wrap:wrap;row-gap:.5rem}.form-actions__right{display:flex;gap:.5rem;margin-left:auto}.btn--danger-ghost{display:flex;align-items:center;gap:.4rem;padding:.5rem .75rem;border:1.5px solid var(--color-danger, #ef4444);border-radius:var(--radius);background:transparent;color:var(--color-danger, #ef4444);font-size:.9rem;font-weight:500;cursor:pointer;transition:background var(--transition)}.btn--danger-ghost:hover{background:color-mix(in srgb,var(--color-danger, #ef4444) 10%,transparent)}.btn--danger-ghost:focus-visible{outline:2px solid var(--color-danger, #ef4444);outline-offset:2px}.btn--danger{padding:.5rem .85rem;border:none;border-radius:var(--radius);background:var(--color-danger, #ef4444);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:background var(--transition)}.btn--danger:hover{background:color-mix(in srgb,var(--color-danger, #ef4444) 85%,#000)}.btn--danger:disabled{opacity:.6;cursor:not-allowed}.btn--danger:focus-visible{outline:2px solid var(--color-danger, #ef4444);outline-offset:2px}.delete-confirm{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .75rem;background:color-mix(in srgb,var(--color-danger, #ef4444) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-danger, #ef4444) 30%,transparent);border-radius:var(--radius);font-size:.9rem;color:var(--color-text);width:100%}
