@property --label-color{syntax: "<color>"; inherits: false; initial-value: transparent;}.label-surface{background-color:var(--label-color);color:oklch(from var(--label-color) round(1.21 - l) 0 0)}@supports (color: contrast-color(red)){.label-surface{color:contrast-color(var(--label-color))}}:root{--bg-primary: #181818;--bg-secondary: #1f1f1f;--bg-surface: #252526;--bg-surface-hover: #2d2d2d;--bg-surface-active: #333333;--bg-surface-completed: #222225;--bg-input: #1f1f1f;--text-primary: #cccccc;--text-secondary: #a0a0a0;--text-muted: #6e6e6e;--text-heading: #e8e8e8;--accent: #7630b9;--accent-hover: #9333ea;--accent-subtle: rgba(168, 85, 247, .15);--success: #34d399;--success-subtle: rgba(52, 211, 153, .15);--warning: #fbbf24;--warning-subtle: rgba(251, 191, 36, .15);--danger: #f87171;--danger-subtle: rgba(248, 113, 113, .15);--border: #3c3c3c;--border-light: #4a4a4a;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "Cascadia Code", Consolas, monospace;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--transition-fast: .15s ease;--transition-normal: .25s ease;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{min-height:100dvh}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{max-width:600px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}html.task-gesture-scroll-lock,body.task-gesture-scroll-lock{overflow:hidden;overscroll-behavior:none;user-select:none;-webkit-user-select:none}html.dialog-scroll-lock,body.dialog-scroll-lock{overflow:hidden;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit}.btn{border-radius:var(--radius-md);font-size:14px;transition:background var(--transition-fast)}.btn--primary{padding:var(--space-sm) var(--space-md);border:none;background:var(--accent);color:#fff;font-weight:600}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:disabled{opacity:.5;cursor:default}.btn--primary.btn--sm{padding:var(--space-xs) var(--space-md);font-size:13px}.btn--secondary{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);background:transparent;color:var(--text-secondary)}.btn--secondary:hover{background:var(--bg-surface-hover)}.btn--danger{padding:var(--space-sm) var(--space-md);border:1px solid var(--danger-subtle);background:transparent;color:var(--danger)}.btn--danger:hover{background:var(--danger-subtle)}.btn--text{background:none;border:none;color:var(--text-muted);font-size:13px;padding:0}.btn--text:hover{color:var(--danger)}.btn--grow{flex:1}.form-field{display:flex;flex-direction:column;gap:var(--space-xs)}.form-field-body{display:flex;flex-direction:column;min-width:0;padding-left:var(--space-md)}.form-label{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.add-icon-btn{flex-shrink:0;align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.add-icon-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.form-input{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);outline:none;transition:border-color var(--transition-fast)}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text-muted)}.form-input--sm{padding:var(--space-xs) var(--space-sm);font-size:14px}.form-textarea{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);outline:none;resize:vertical;min-height:80px}.form-textarea:focus{border-color:var(--accent)}.form-select{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);outline:none}.form-select:focus{border-color:var(--accent)}.label-chip{display:inline-flex;align-items:center;justify-content:center;height:16px;min-width:30px;font-size:11px;padding:0 6px;border-radius:var(--radius-sm);box-sizing:border-box}button.label-chip{border:none;font:inherit;cursor:pointer}.label-marks{--label-mark-width: 22px;--label-mark-height: 3px;--label-mark-gap: 2px;display:flex;flex-wrap:wrap;gap:var(--label-mark-gap);min-width:0;margin-top:2px}.label-marks__bar{flex:0 0 auto;width:var(--label-mark-width);height:var(--label-mark-height);border-radius:1px;background:var(--label-color, currentColor)}.label-ring{position:absolute;inset:-4px;border-radius:50%;pointer-events:none;transform:rotate(0);transition:transform .72s linear}@property --label-visible-sweep{syntax: "<angle>"; inherits: false; initial-value: 0turn;}.label-ring__sector{position:absolute;inset:0;border-radius:50%;background:var(--label-color);opacity:1;transition:opacity .14s linear;transition-delay:var(--label-reverse-delay);-webkit-mask:conic-gradient(from calc(var(--label-start) + .5turn),#000 0 var(--label-sweep),transparent 0 1turn),radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));-webkit-mask-composite:source-in;mask:conic-gradient(from calc(var(--label-start) + .5turn),#000 0 var(--label-sweep),transparent 0 1turn),radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask-composite:intersect}.label-ring--single .label-ring__sector{--label-visible-sweep: var(--label-sweep);transition:--label-visible-sweep .52s ease var(--label-reverse-delay),opacity .14s linear var(--label-reverse-delay);-webkit-mask:conic-gradient(from calc(var(--label-start) + .5turn),#000 0 var(--label-visible-sweep),transparent 0 1turn),radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));-webkit-mask-composite:source-in;mask:conic-gradient(from calc(var(--label-start) + .5turn),#000 0 var(--label-visible-sweep),transparent 0 1turn),radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask-composite:intersect}.task-card--labels-visible .label-ring{transform:rotate(-360deg)}.task-card--labels-visible .label-ring__sector{opacity:0;transition-delay:var(--label-delay)}.task-card--labels-visible .label-ring--single .label-ring__sector{--label-visible-sweep: 0turn;transition:--label-visible-sweep .52s ease var(--label-delay),opacity .14s linear calc(var(--label-delay) + .38s)}@media(prefers-reduced-motion:reduce){.label-ring,.label-ring__sector{transition:none}}.color-picker{position:relative;flex-shrink:0}.color-picker__trigger{display:block;width:32px;height:32px;padding:0;border:1px solid var(--border-light);border-radius:var(--radius-sm);background-color:var(--swatch-color);cursor:pointer;anchor-name:--color-picker-trigger}.color-picker__trigger:hover{filter:brightness(.95)}.color-picker__trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.color-picker__popover{position:absolute;inset:unset;top:anchor(bottom);left:anchor(left);margin:var(--space-xs) 0 0;padding:var(--space-xs);border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-surface);box-shadow:0 4px 12px #00000026;position-anchor:--color-picker-trigger}.color-picker__grid{display:grid;grid-template-columns:repeat(5,32px);gap:var(--space-xs)}.color-picker__swatch{width:32px;height:32px;padding:0;border:2px solid transparent;border-radius:var(--radius-sm);background-color:var(--swatch-color);cursor:pointer}.color-picker__swatch--selected{border-color:var(--text-primary);box-shadow:0 0 0 1px var(--bg-surface)}.color-picker__swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dialog,.dialog:modal{position:fixed;inset:0;margin:0;padding:0;border:none;width:100%;max-width:none;height:100dvh;max-height:100dvh;overflow:hidden;background:transparent;display:grid;grid-template:1fr / 1fr;align-items:center;justify-items:center}@media(pointer:fine){.dialog{padding:var(--space-md)}}@media(pointer:coarse){.dialog{align-items:start}}.dialog:not([open]){display:none}.dialog::backdrop{background:#0009}.dialog__backdrop{grid-area:1 / 1;align-self:stretch;justify-self:stretch;margin:0;padding:0;border:none;background:transparent;cursor:default}.dialog__panel{grid-area:1 / 1;z-index:1;width:100%;min-width:0;min-height:0;max-width:600px;max-height:100%;overflow:hidden;background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);outline:none}@media(pointer:coarse){.dialog__panel{align-self:start;border-radius:0 0 var(--radius-lg) var(--radius-lg)}}.dialog__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);flex-shrink:0}.dialog__title-slot{flex:1;min-width:0}.dialog__body{flex:1 1 auto;min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--space-sm)}.dialog__title{margin:0;font-size:18px;font-weight:600;color:var(--text-heading)}.dialog__close{background:none;border:none;color:var(--text-muted);font-size:24px;line-height:1;padding:0 var(--space-xs);cursor:pointer}.dialog__close:hover{color:var(--text-primary)}.icon{display:inline-flex;flex-shrink:0;line-height:0;color:inherit}.icon svg{display:block;width:100%;height:100%}.labels-dialog__empty{margin:0 0 var(--space-sm);font-size:14px;color:var(--text-muted)}.labels-dialog__select-list,.labels-dialog__edit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.labels-dialog__select-item{display:flex;align-items:stretch;gap:var(--space-sm);cursor:pointer}.labels-dialog__select-item input{flex-shrink:0;align-self:center}.labels-dialog__select-chip{flex:1;display:flex;align-items:center;min-height:36px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:14px;line-height:1.3}.labels-dialog__select-chip--unnamed{min-width:32px}.labels-dialog__manage{width:100%;margin-top:var(--space-md)}.labels-dialog__edit-row{display:flex;align-items:center;gap:var(--space-sm)}.labels-dialog__name-input{flex:1;min-width:0}.labels-dialog__delete{flex-shrink:0;background:none;border:none;color:var(--text-muted);padding:var(--space-xs);cursor:pointer;display:flex;align-items:center;justify-content:center}.labels-dialog__delete:hover{color:var(--danger)}.labels-dialog__add{width:100%;margin-top:var(--space-sm);font-size:18px;line-height:1;padding:var(--space-sm)}.labels-dialog__error{margin:var(--space-sm) 0 0;font-size:13px;color:var(--danger)}.labels-dialog__actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.add-task{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md)}.add-task__input-wrap{position:relative;flex:1;min-width:0}.add-task__input{width:100%}.add-task__suggestions{position:absolute;z-index:30;top:calc(100% + var(--space-xs));right:0;left:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-surface);box-shadow:var(--shadow-lg)}.add-task__suggestion{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px var(--space-md);border:0;border-bottom:1px solid var(--border);color:var(--text-primary);font:inherit;text-align:left;background:transparent;cursor:pointer}.add-task__suggestion-summary{min-width:0}.add-task__suggestion:last-child{border-bottom:0}.add-task__suggestion:hover,.add-task__suggestion--active{background:var(--bg-surface-hover)}.add-task__suggestion:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.completion-ring__track,.completion-ring__progress{fill:none}.completion-ring__track{stroke:var(--border-light)}.completion-ring__progress{stroke-linecap:round;transition:stroke-dasharray var(--transition-fast),stroke var(--transition-fast)}@media(prefers-reduced-motion:reduce){.completion-ring__progress{transition:none}}.today-tab-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.today-tab-icon__svg{display:block}.today-tab-icon__progress{transition:stroke-dasharray var(--transition-fast),stroke var(--transition-fast)}.today-tab-icon__check{position:absolute;color:var(--completion-color);transition:color var(--transition-fast)}@media(prefers-reduced-motion:reduce){.today-tab-icon__progress,.today-tab-icon__check{transition:none}}.app-tabs{display:flex;align-items:flex-end;gap:2px;flex:1;margin-bottom:-1px}.app-tabs__tab{display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-bottom:none;border-radius:var(--radius-md) var(--radius-md) 0 0;color:var(--text-muted);padding:var(--space-sm) var(--space-md);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.app-tabs__tab:hover:not(.app-tabs__tab--active){color:var(--text-primary);background:var(--bg-surface);border-color:var(--border)}.app-tabs__tab--active{color:var(--accent);background:var(--bg-primary);border-color:var(--border);box-shadow:0 1px 0 var(--bg-primary);position:relative;z-index:1}.app-tabs__tab--active:hover{color:var(--accent-hover)}.segmented-control{display:inline-flex;min-width:0;padding:2px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-primary);margin:0}.segmented-control__legend{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.segmented-control__option{min-height:36px;padding:0 var(--space-sm);border:0;border-radius:calc(var(--radius-md) - 2px);color:var(--text-muted);background:transparent;font:inherit;font-size:var(--font-sm);cursor:pointer}.segmented-control__option--active{color:var(--text-primary);background:var(--bg-elevated);box-shadow:0 0 0 1px var(--border)}.task-card{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--bg-surface);transition:background var(--transition-fast);-webkit-user-select:none;user-select:none}.task-card:hover{background:var(--bg-surface-hover)}.task-card--completed{background:var(--bg-surface-completed)}.task-card--projected{border:1px dashed var(--text-secondary);opacity:.7}.task-card__check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-light);background:transparent;color:var(--text-muted);display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.task-card__check-shell{position:relative;flex-shrink:0;width:22px;height:22px;margin-top:1px}.task-card__check-ring{position:absolute;inset:0;display:block;pointer-events:none}.task-card__check-shell--ring .task-card__check{position:relative;z-index:1;border-color:transparent}.task-card__check-shell:not(.task-card__check-shell--ring) .task-card__check:hover{border-color:var(--text-secondary)}.task-card__check--inert{border-color:var(--text-secondary);border-style:dotted;cursor:default}.task-card__check--inert:hover{border-color:var(--text-secondary)}.task-card__check--done{border-color:var(--success);background:var(--success-subtle);color:var(--success)}.task-card__content{flex:1;min-width:0}.task-card__summary{display:block;font-size:15px;line-height:1.4;color:var(--text-primary)}.task-card--completed .task-card__summary{text-decoration:line-through;color:var(--text-muted)}.task-card__labels{display:grid;grid-template-rows:0fr;margin-top:0;opacity:0;transform:translateY(-2px);transition:grid-template-rows .72s ease,margin-top .72s ease,opacity .12s linear .6s,transform var(--transition-normal)}.task-card--labels-visible .task-card__labels{grid-template-rows:1fr;margin-top:var(--space-xs);opacity:1;transform:translateY(0);transition:grid-template-rows .72s ease,margin-top .72s ease,opacity var(--transition-fast),transform var(--transition-normal)}.task-card__labels-inner{display:flex;flex-wrap:wrap;gap:var(--space-xs);min-height:0;overflow:hidden}.task-card__label-item{display:inline-flex;max-width:0;overflow:hidden;opacity:0;transform:translate(-30px,-4px) scaleX(.2);transform-origin:left center;transition:max-width .52s ease var(--label-reverse-delay),opacity .12s linear calc(var(--label-reverse-delay) + .4s),transform .52s ease var(--label-reverse-delay)}.task-card--labels-visible .task-card__label-item{max-width:24ch;opacity:1;transform:translate(0) scaleX(1);transition:max-width .52s ease var(--label-delay),opacity .12s linear var(--label-delay),transform .52s ease var(--label-delay)}@media(prefers-reduced-motion:reduce){.task-card__labels,.task-card__label-item{transition:none}}.task-card__generator-indicator{display:inline-flex;flex-shrink:0;margin-top:3px;color:var(--text-muted)}.postpone-dialog{max-width:400px}.postpone-dialog__presets{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.postpone-dialog__preset{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--border);background:transparent;color:var(--text-primary);font-size:13px}.postpone-dialog__preset:hover{background:var(--bg-surface-hover);border-color:var(--accent)}.postpone-dialog__cal{display:flex;flex-direction:column;gap:var(--space-sm)}.postpone-dialog__caption{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;color:var(--text-heading)}.postpone-dialog__nav{width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:20px;line-height:1}.postpone-dialog__nav:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.postpone-dialog__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.postpone-dialog__dow{text-align:center;font-size:11px;color:var(--text-muted);padding:var(--space-xs) 0}.postpone-dialog__day{aspect-ratio:1;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:13px}.postpone-dialog__day:hover{background:var(--bg-surface-hover)}.postpone-dialog__day--muted{color:var(--text-muted)}.postpone-dialog__day--today{box-shadow:inset 0 0 0 1px var(--accent)}.postpone-dialog__day--selected{background:var(--accent);color:#fff}.task-row{position:relative;border-radius:var(--radius-md);overflow:hidden}.task-row__delete-slot{position:absolute;inset:0;display:flex;align-items:stretch;justify-content:flex-end;pointer-events:none}.task-row__delete-slot--hidden{visibility:hidden}.task-row__delete{flex-shrink:0;align-self:center;display:flex;align-items:center;justify-content:center;width:38px;height:calc(100% - 8px);max-height:38px;margin:0;padding:0;border:none;border-radius:var(--radius-md);background:var(--danger);color:#fff;pointer-events:auto;cursor:pointer;transition:background var(--transition-fast)}.task-row__delete:hover{background:#ef4444}.task-row__delete:active{transform:scale(.96)}.task-row__surface{position:relative;touch-action:pan-y;transition:transform var(--transition-fast);will-change:transform;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.task-row__surface--placeholder{visibility:hidden}.task-row__surface--interacting{transition:none}.task-row__strike{position:absolute;left:calc(var(--space-md) + 22px + var(--space-sm));top:50%;height:1px;margin-top:-.5px;background:var(--text-primary);pointer-events:none}.task-row__strike--completed{background:var(--text-muted)}.link-text{min-width:0;overflow-wrap:anywhere}.link-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:1px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-hover);color:var(--text-primary);font-size:.95em;line-height:1.4;text-decoration:none;vertical-align:baseline}.link-chip:hover{background:var(--bg-surface-active);border-color:var(--accent)}.link-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.link-chip__favicon{width:14px;height:14px;border-radius:2px;object-fit:contain}.link-chip__icon{color:var(--accent)}.link-chip__url{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-drag-overlay{position:fixed;top:0;left:0;z-index:150;pointer-events:none;box-sizing:border-box}.task-drag-overlay__card{box-shadow:var(--shadow-lg);border-radius:var(--radius-md);width:100%}.task-list{flex:1;padding:0 var(--space-md)}.task-list__items{display:flex;flex-direction:column;gap:var(--space-sm)}.task-list__items--dragging .task-list__item:not(.task-list__item--placeholder){transition:transform var(--transition-fast)}.task-list__item--dragging{z-index:10;transition:none}.task-list__item--placeholder{z-index:10}.task-list__item--placeholder .task-row__delete-slot,html[data-task-morph-active] .task-row__delete-slot,.task-list__item--hidden{visibility:hidden}.task-list__empty{text-align:center;color:var(--text-muted);padding:var(--space-xl) 0}.task-list__empty--error{color:var(--danger)}.checklist-editor{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.checklist-editor__body{display:flex;flex-direction:column;gap:var(--space-sm)}.checklist-editor__item{display:flex;align-items:center;gap:var(--space-sm);min-height:44px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary)}.checklist-editor__item--completed{color:var(--text-muted)}.checklist-editor__check{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:2px solid var(--text-muted);border-radius:50%;background:transparent;color:var(--bg-primary);cursor:pointer}.checklist-editor__check--done{border-color:var(--success);background:var(--success)}.checklist-editor__summary{min-width:0;overflow-wrap:anywhere}.checklist-editor__input{width:100%;min-width:0;padding:var(--space-xs) var(--space-sm);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none;background:var(--bg-input);color:var(--text-primary);font:inherit;user-select:text;-webkit-user-select:text}.checklist-editor__new-input{min-height:40px}.checklist-editor__strike{left:calc(var(--space-sm) + 22px + var(--space-sm))}.editable-summary-heading{display:block;width:100%;margin:0;padding:0;border:none;background:none;text-align:left;font-size:18px;font-weight:600;color:var(--text-heading);overflow-wrap:anywhere}.editable-summary-heading:hover{color:#fff}.editable-summary-heading__input{width:100%;margin:0;padding:var(--space-xs) var(--space-sm);border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-heading);font-size:18px;font-weight:600;outline:none}.task-fields__labels{display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:center;min-height:32px;align-content:center}.task-detail-editor__extras{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.task-detail-editor__extra{background:none;border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;padding:var(--space-xs) var(--space-sm)}.task-detail-editor__extra:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.task-editor__when{display:block;width:fit-content;max-width:100%;margin:0;padding:0;border:none;background:none;text-align:left;color:var(--text-primary);font-size:16px;font-weight:400;text-transform:none}.task-editor__when:hover{color:var(--text-heading)}.calendar-tab{--calendar-page-height: max(430px, calc(100dvh - 168px) );width:min(100dvw,1100px);margin-left:calc((100% - min(100dvw,1100px))/2);overflow:hidden}.calendar-toolbar{position:relative;z-index:15;display:grid;gap:var(--space-sm);padding:var(--space-sm);border-bottom:1px solid var(--border);background:var(--bg-primary)}.calendar-toolbar__headline,.calendar-toolbar__controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-width:0}.calendar-toolbar__headline h1,.calendar-toolbar__title{overflow:hidden;margin:0;color:var(--text-heading);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.calendar-toolbar__reel{position:relative;flex:1;min-width:0;height:1.25rem}.calendar-toolbar__reel-strip{display:flex;flex-direction:column}.calendar-toolbar__reel-item{overflow:hidden;height:1.25rem;line-height:1.25rem;text-overflow:ellipsis;white-space:nowrap}.calendar-toolbar__today{min-height:36px;padding:0 var(--space-sm)}.calendar-toolbar__controls{overflow-x:auto;scrollbar-width:none}.calendar-toolbar__controls::-webkit-scrollbar{display:none}.calendar-status{margin:0;padding:var(--space-lg);color:var(--text-muted);text-align:center}.calendar-month-view{display:grid;grid-template-rows:28px minmax(0,1fr);height:var(--calendar-page-height)}.calendar-month-scroller{height:100%;overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-type:y mandatory}.calendar-month-week-row{display:grid;grid-template-columns:26px repeat(7,minmax(0,1fr));height:calc((var(--calendar-page-height) - 28px) / 6);scroll-snap-align:start}.calendar-month-week-row--snap{scroll-snap-stop:always}.calendar-month-week-row:not(.calendar-month-week-row--snap){scroll-snap-align:none}.calendar-month-weekdays{display:grid;grid-template-columns:26px repeat(7,minmax(0,1fr));align-items:center;border-bottom:1px solid var(--border);color:var(--text-muted);font-size:.62rem;text-align:center;text-transform:uppercase}.calendar-week-number{display:grid;place-items:center;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:.65rem;font-variant-numeric:tabular-nums}.calendar-day-cell{position:relative;min-width:0;padding:3px;overflow:hidden;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text-primary);background:var(--bg-primary);text-align:left;touch-action:pan-y;transition:color .18s ease,background .18s ease,box-shadow .18s ease}.calendar-day-cell--outside{color:var(--text-muted);background:color-mix(in srgb,var(--bg-secondary) 55%,transparent)}.calendar-day-cell--today{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-subtle)}.calendar-day-cell__number{position:absolute;top:3px;left:3px;display:block;height:16px;font-size:.72rem;font-weight:650;line-height:16px}.calendar-day-cell__items{display:grid;gap:1px;padding-top:18px}.calendar-month-task{display:flex;flex-direction:column;min-width:0;padding:1px 3px;overflow:hidden;border-radius:2px;color:var(--text-primary);background:var(--bg-surface);font-size:.6rem;line-height:13px}.calendar-month-task__summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-month-task .label-marks{--label-mark-width: 10px;--label-mark-height: 2px;--label-mark-gap: 1px;margin-top:1px}.calendar-month-task--projected{border:1px dashed var(--border-light);opacity:.65}.calendar-month-task--more{border-left-color:transparent;color:var(--text-secondary);background:transparent}.calendar-week-scroller{display:flex;height:var(--calendar-page-height);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory}.calendar-week-page{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));flex:0 0 max(100%,840px);height:100%;scroll-snap-align:start;scroll-snap-stop:always}.calendar-week-day{min-width:0;overflow-y:auto;border-right:1px solid var(--border);background:var(--bg-primary)}.calendar-week-day--today{background:var(--accent-subtle)}.calendar-week-day__header{position:sticky;top:0;z-index:2;display:flex;align-items:baseline;justify-content:space-between;padding:var(--space-sm);border-bottom:1px solid var(--border);background:inherit}.calendar-week-day__header span{color:var(--text-muted);font-size:.7rem;text-transform:uppercase}.calendar-week-day__header strong{color:var(--text-heading);font-size:1.25rem}.calendar-week-day__tasks{display:grid;gap:var(--space-xs);padding:var(--space-xs)}.calendar-task-button{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:48px;border-radius:var(--radius-md);outline:none}.calendar-task-button__open{min-width:0;padding:0;border:0;color:inherit;background:transparent;text-align:left}.calendar-task-button__open:focus-visible,.calendar-task-button__check:focus-visible{box-shadow:0 0 0 2px var(--accent)}.calendar-task-button--compact{display:block;min-height:44px}.calendar-task-button--compact .calendar-task-button__open,.calendar-task-button--compact .task-card{width:100%;min-height:44px}.calendar-task-button--compact .task-card{padding:5px}.calendar-task-button--compact .task-card__summary{display:-webkit-box;overflow:hidden;font-size:.72rem;-webkit-box-orient:vertical;-webkit-line-clamp:3}.calendar-task-button__check{align-self:center;width:28px;height:28px;margin:0 var(--space-sm);border:2px solid var(--text-muted);border-radius:50%;color:var(--bg-primary);background:transparent}.calendar-task-button__check--done{border-color:var(--success);background:var(--success)}.calendar-projected-card{min-height:44px}.calendar-projected-card__open{width:100%;padding:0;border:0;color:inherit;background:transparent;text-align:left}.calendar-projected-card__open:focus-visible{border-radius:var(--radius-md);box-shadow:0 0 0 2px var(--accent)}.calendar-day-dialog{max-width:600px}.calendar-day-dialog .dialog__body{gap:var(--space-md)}.calendar-day-dialog .add-task{padding:0}.calendar-day-dialog__tasks,.calendar-day-dialog__projected{display:grid;gap:var(--space-sm)}@media(prefers-reduced-motion:reduce){.calendar-day-cell{transition:none}}@media(min-width:700px){.calendar-tab{--calendar-page-height: max(430px, calc(100dvh - 132px) )}.calendar-toolbar{grid-template-columns:minmax(180px,1fr) auto;align-items:center}.calendar-week-page{grid-template-columns:repeat(7,minmax(0,1fr));flex-basis:100%}.calendar-month-weekdays,.calendar-month-week-row{grid-template-columns:34px repeat(7,minmax(0,1fr))}.calendar-month-task{font-size:.68rem}}.gen-editor{display:flex;flex-direction:column;gap:var(--space-md)}.gen-editor__template-add{display:flex;gap:var(--space-sm);min-width:0}.gen-editor__template-add .form-input{flex:1;min-width:0}.gen-editor__active-toggle label{display:flex;align-items:center;gap:var(--space-sm);font-size:14px;color:var(--text-primary);cursor:pointer}.gen-editor__actions{display:flex;gap:var(--space-sm);padding-top:var(--space-sm)}.gen-editor__recurrence-row{display:flex;gap:var(--space-sm)}.gen-editor__interval-input{width:80px}.gen-editor__day-toggles{display:flex;gap:8px;flex-wrap:wrap}.gen-editor__day-toggle{display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer;width:32px;height:32px;border-radius:50%;background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);font-size:13px;font-weight:600;transition:all .2s ease}.gen-editor__day-toggle input{position:absolute;opacity:0;width:0;height:0}.gen-editor__day-toggle:has(input:checked){background:var(--accent);color:#fff;border-color:var(--accent)}.generators-tab{display:flex;flex-direction:column;flex:1}.generators-tab__header{display:flex;justify-content:flex-end;padding:var(--space-sm) var(--space-lg)}.generators-tab__add{background:none;border:none;color:var(--text-muted);padding:var(--space-xs);border-radius:var(--radius-sm);transition:color var(--transition-fast)}.generators-tab__add:hover{color:var(--accent)}.generators-tab__list{display:flex;flex-direction:column;gap:var(--space-xs);padding:0 var(--space-lg) var(--space-lg)}.generators-tab__item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-md);background:var(--bg-surface);cursor:pointer;font:inherit;text-align:left;transition:background var(--transition-fast)}.generators-tab__item:hover{background:var(--bg-surface-hover)}.generators-tab__item--inactive{opacity:.5}.generators-tab__item-main{display:flex;flex-direction:column;gap:2px;min-width:0}.generators-tab__item-name{font-size:14px;color:var(--text-primary)}.generators-tab__item-schedule,.generators-tab__item-count{font-size:12px;color:var(--text-muted)}.generators-tab__empty{text-align:center;color:var(--text-muted);padding:var(--space-md) 0}.install-banner{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border-top:1px solid var(--accent);z-index:200}.install-banner__text{font-size:14px;color:var(--text-primary)}.install-banner__actions{display:flex;align-items:center;gap:var(--space-sm)}.install-banner__dismiss{background:none;border:none;color:var(--text-muted);font-size:20px;line-height:1;padding:0 var(--space-xs)}.install-banner__dismiss:hover{color:var(--text-primary)}.offline-bar{position:fixed;bottom:0;left:0;right:0;background:var(--warning-subtle);color:var(--warning);text-align:center;padding:var(--space-xs) var(--space-md);font-size:13px;font-weight:600;z-index:200}.sync-trigger{position:relative;background:none;border:none;color:var(--text-muted);padding:var(--space-xs);border-radius:var(--radius-sm);transition:color var(--transition-fast)}.sync-trigger:hover{color:var(--accent)}.sync-trigger--attention{color:var(--warning)}.sync-trigger--active svg{animation:sync-pulse 1.2s ease-in-out infinite}@keyframes sync-pulse{0%,to{opacity:1}50%{opacity:.35}}.sync-trigger__badge{position:absolute;top:2px;right:2px;width:7px;height:7px;border-radius:50%;background:var(--warning)}.sync-trigger__badge--error{background:var(--danger)}.sync-trigger__badge--pending{background:var(--accent)}.sync-panel__connect{display:flex;flex-direction:column;gap:var(--space-sm)}.sync-panel__text{font-size:14px;color:var(--text-secondary);margin:0}.sync-panel__connected{display:flex;flex-direction:column;gap:var(--space-md)}.sync-panel__info{display:flex;flex-direction:column;gap:var(--space-xs)}.sync-panel__status{font-size:14px;font-weight:600;color:var(--text-secondary);margin:0}.sync-panel__status--ok{color:var(--success)}.sync-panel__status--error{color:var(--danger)}.sync-panel__status--pending{color:var(--warning)}.sync-panel__meta{font-size:12px;color:var(--text-muted);margin:0}.sync-panel__activity{font-size:13px;color:var(--warning);margin:0}.sync-panel__result{font-size:13px;margin:0;color:var(--text-secondary)}.sync-panel__result--ok{color:var(--success)}.sync-panel__result--error{color:var(--danger)}.sync-panel__disconnect{align-self:flex-start}.sync-panel__actions{display:flex;gap:var(--space-sm)}.sync-status-bar{position:fixed;bottom:0;left:0;right:0;width:100%;border:none;background:var(--danger-subtle);color:var(--danger);text-align:center;padding:var(--space-xs) var(--space-md);font-size:13px;font-weight:600;z-index:199;font-family:inherit;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.sync-status-bar--error{background:var(--danger-subtle);color:var(--danger)}.sync-status-bar--warning{background:var(--warning-subtle);color:var(--warning)}.task-label-toggle{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:13px;transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.task-label-toggle:hover{border-color:var(--border-light);background:var(--bg-surface);color:var(--text-primary)}.task-label-toggle--active{border-color:var(--accent);background:var(--accent-subtle);color:var(--accent)}@media(max-width:430px){.task-label-toggle__text{display:none}}.app{display:flex;flex-direction:column;flex:1;min-height:100dvh}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:flex-end;gap:var(--space-md);padding:var(--space-md) var(--space-lg) 0;border-bottom:1px solid var(--border);background:var(--bg-primary);flex-shrink:0}.app-main{flex:1 1 auto}.app-header .sync-trigger{margin-bottom:var(--space-sm)}.app-placeholder{text-align:center;color:var(--text-muted);padding:var(--space-xl) var(--space-lg);margin:0}
