.heartbeat-backdrop{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.heartbeat-modal{background:var(--bg);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:min(640px,92vw);max-height:min(780px,92vh);display:flex;overflow:hidden;box-shadow:0 12px 40px #0000004d}.heartbeat-modal__header{border-bottom:1px solid var(--border);color:var(--fg);flex-shrink:0;align-items:center;gap:8px;padding:14px 16px;font-size:14px;font-weight:600;display:flex}.heartbeat-modal__back,.heartbeat-modal__close{width:26px;height:26px;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.heartbeat-modal__back:hover,.heartbeat-modal__close:hover{background:var(--hover-bg);color:var(--fg)}.heartbeat-modal__close{margin-left:auto}.heartbeat-modal__header-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.heartbeat-btn--mini{border:1px solid var(--border);width:28px;height:28px;color:var(--fg-dim);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.heartbeat-btn--mini:hover{background:var(--hover-bg);color:var(--fg)}.heartbeat-btn--mini-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.heartbeat-btn--mini-primary:hover{opacity:.88}.heartbeat-modal__body{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.heartbeat-settings{flex-direction:column;gap:12px;min-width:0;display:flex}.heartbeat-toolbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;display:flex}.heartbeat-toolbar__btn,.heartbeat-toolbar__search,.heartbeat-toolbar__status-btn{box-sizing:border-box;height:28px}.heartbeat-toolbar__btn{border:1px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer;white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;padding:0 10px;font-family:inherit;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.heartbeat-toolbar__btn--icon{justify-content:center;width:28px;padding:0}.heartbeat-toolbar__btn:hover{background:var(--hover-bg);color:var(--fg)}.heartbeat-toolbar__btn:disabled{opacity:.45;cursor:default}.heartbeat-toolbar__btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.heartbeat-toolbar__btn--primary:hover{opacity:.88}.heartbeat-toolbar__btn--select{min-width:76px;max-width:130px;padding:0 8px 0 10px}.heartbeat-toolbar__btn--select>span{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.heartbeat-toolbar__search{border:1px solid var(--border);background:var(--bg);min-width:120px;max-width:200px;color:var(--fg-muted);border-radius:6px;flex:1;align-items:center;gap:4px;padding:0 8px;transition:border-color .15s;display:flex}.heartbeat-toolbar__search:focus-within{border-color:var(--accent)}.heartbeat-toolbar__search-icon{flex-shrink:0}.heartbeat-toolbar__search-input{min-width:0;color:var(--fg);background:0 0;border:none;outline:none;flex:1;height:100%;font-family:inherit;font-size:12px}.heartbeat-toolbar__search-input::placeholder{color:var(--fg-faint)}.heartbeat-toolbar__search-clear{width:18px;height:18px;color:var(--fg-faint);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.heartbeat-toolbar__search-clear:hover{background:var(--hover-bg);color:var(--fg)}.heartbeat-toolbar__status{flex-shrink:0;gap:2px;display:flex}.heartbeat-toolbar__status-btn{border:1px solid var(--border);color:var(--fg-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:5px;padding:0 8px;font-family:inherit;font-size:11px;font-weight:500;transition:background .1s,border-color .1s,color .1s}.heartbeat-toolbar__status-btn:hover{background:var(--hover-bg);color:var(--fg)}.heartbeat-toolbar__status-btn--active{border-color:var(--accent);color:var(--accent);background:#80808014}.heartbeat-scope-filter{position:relative}.heartbeat-btn{border:1px solid var(--border);background:var(--card-bg);height:32px;color:var(--fg);cursor:pointer;white-space:nowrap;box-sizing:border-box;border-radius:7px;align-items:center;gap:6px;padding:0 14px;font-family:inherit;font-size:12.5px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.heartbeat-btn:hover{background:var(--hover-bg);border-color:var(--border-focus)}.heartbeat-btn:disabled{opacity:.45;cursor:default}.heartbeat-btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.heartbeat-btn--primary:hover{opacity:.88;background:var(--accent)}.heartbeat-btn--danger{border-color:var(--border);color:var(--err);background:0 0}.heartbeat-btn--danger:hover{background:color-mix(in srgb, var(--err) 10%, transparent);border-color:var(--err)}.heartbeat-editor__confirm-del{color:var(--fg-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.heartbeat-empty{color:var(--fg-muted);flex-direction:column;align-items:center;gap:12px;padding:40px 0;font-size:13px;display:flex}@keyframes heartbeat-keyframe-pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}.heartbeat-pulse{animation:1.2s ease-in-out infinite heartbeat-keyframe-pulse}@keyframes heartbeat-keyframe-spin{to{transform:rotate(360deg)}}.heartbeat-spin{animation:.8s linear infinite heartbeat-keyframe-spin}.heartbeat-filter-menu{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;min-width:120px;max-height:200px;padding:4px;display:flex;overflow-y:auto;box-shadow:0 4px 12px #00000026}.heartbeat-filter-menu__option{color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;width:100%;padding:6px 8px;font-size:12px;display:flex}.heartbeat-filter-menu__option:hover{background:var(--accent-soft,#8080801a)}.heartbeat-filter-menu__option--selected{color:var(--accent);font-weight:600}.heartbeat-filter-menu__check{flex-shrink:0;margin-left:auto}.heartbeat-tasklist{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.heartbeat-card{background:var(--card-bg);border:1px solid var(--border-soft);border-radius:10px;flex-direction:column;gap:6px;padding:10px 14px;transition:border-color .15s;display:flex}.heartbeat-card:hover{border-color:var(--border)}.heartbeat-card--disabled{opacity:.55}.heartbeat-card__head{align-items:center;gap:8px;display:flex}.heartbeat-card__dot{background:var(--fg-faint);border-radius:50%;flex-shrink:0;width:8px;height:8px}.heartbeat-card__dot--on{background:var(--ok);box-shadow:0 0 4px color-mix(in srgb, var(--ok) 50%, transparent)}.heartbeat-card__title{flex:1;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.heartbeat-card__title-text{text-overflow:ellipsis;white-space:nowrap;color:var(--fg);font-size:13.5px;font-weight:600;overflow:hidden}.heartbeat-card__title-btn{min-width:0;color:inherit;cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;border-radius:4px;flex:1;align-items:center;gap:6px;padding:2px 4px;transition:background .12s;display:flex;overflow:hidden}.heartbeat-card__title-btn:hover{background:var(--hover-bg)}.heartbeat-card__title-scope{color:var(--fg-faint);white-space:nowrap;flex-shrink:0;font-size:11.5px;line-height:1.5}.heartbeat-card__head-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.heartbeat-card:hover .heartbeat-card__head-actions .heartbeat-card__open-btn{opacity:1;pointer-events:auto}.heartbeat-card .heartbeat-card__head-actions .heartbeat-card__open-btn{opacity:0;pointer-events:none;transition:opacity .12s}.heartbeat-card .heartbeat-card__head-actions .heartbeat-card__toggle,.heartbeat-card:hover .heartbeat-card__head-actions .heartbeat-card__toggle{opacity:1;pointer-events:auto}.heartbeat-card__open-btn:not(:disabled){opacity:1!important;pointer-events:auto!important}.heartbeat-card__open-btn{border:1px solid var(--border);width:26px;height:26px;color:var(--fg-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.heartbeat-card__open-btn:hover:not(:disabled){background:var(--hover-bg);border-color:var(--accent);color:var(--accent)}.heartbeat-card__open-btn:disabled{opacity:.3;cursor:default}.heartbeat-card__badge{background:var(--border-soft);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:600}.heartbeat-card__badge--on{background:color-mix(in srgb, var(--ok) 15%, transparent);color:var(--ok)}.heartbeat-card__toggle{background:var(--border);cursor:pointer;border:none;border-radius:9px;flex-shrink:0;width:32px;height:18px;padding:0;transition:background .2s;position:relative}.heartbeat-card__toggle:hover{background:var(--fg-faint)}.heartbeat-card__toggle--on{background:var(--ok)}.heartbeat-card__toggle--on:hover{background:color-mix(in srgb, var(--ok) 82%, black)}.heartbeat-card__toggle-knob{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.heartbeat-card__toggle--on .heartbeat-card__toggle-knob{transform:translate(14px)}.heartbeat-card__meta-item--compact{color:var(--fg-faint);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:11px;display:inline-flex}.heartbeat-card__meta-sep{color:var(--border)}.heartbeat-card__btn{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:4px;padding:4px 10px;font-size:11.5px;font-weight:500;transition:background .1s,color .1s;display:inline-flex}.heartbeat-card__btn:hover{background:var(--hover-bg);color:var(--fg)}.heartbeat-card__btn--danger:hover{color:var(--err);background:#8080801a}.heartbeat-card__confirm{color:var(--err);align-items:center;gap:4px;font-size:11.5px;display:inline-flex}.heartbeat-editor{flex-direction:column;flex:1;min-height:0;padding:16px 16px 0;display:flex;overflow-y:auto}.heartbeat-editor__fields{flex-direction:column;gap:14px;display:flex}.heartbeat-editor__field{flex-direction:column;gap:5px;display:flex}.heartbeat-editor__field>label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;font-weight:600}.heartbeat-editor__input{border:1px solid var(--border);background:var(--bg);height:32px;color:var(--fg);box-sizing:border-box;border-radius:7px;padding:0 11px;font-family:inherit;font-size:13px;transition:border-color .15s}.heartbeat-editor__textarea{border:1px solid var(--border);background:var(--bg);color:var(--fg);box-sizing:border-box;border-radius:7px;padding:8px 11px;font-family:inherit;font-size:13px;transition:border-color .15s}.heartbeat-editor__input:focus,.heartbeat-editor__textarea:focus{border-color:var(--accent);outline:none}.heartbeat-editor__textarea{resize:none;min-height:80px;max-height:180px;overflow-y:auto}.heartbeat-editor__row{gap:12px;display:flex}.heartbeat-editor__row>.heartbeat-editor__field{flex:0}.heartbeat-editor__field--grow{min-width:0;flex:1!important}.heartbeat-editor__field--auto{flex:0 auto!important}.heartbeat-editor__field--toggle{min-width:180px}.heartbeat-editor__optional{text-transform:none;letter-spacing:normal;color:var(--fg-faint);font-size:10.5px;font-weight:400}.heartbeat-editor__mode-hint{color:var(--fg-muted);font-size:11px;line-height:1.4}.heartbeat-editor__tw-add{cursor:pointer;color:var(--fg-faint)}.heartbeat-editor__tw-sep{font-size:11px}.heartbeat-editor__tw-clear{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:13px;line-height:20px}.heartbeat-editor__freq-interval,.heartbeat-editor__cycle-row{align-items:center;gap:6px;display:flex}.heartbeat-editor__freq-label{color:var(--fg-dim);white-space:nowrap;font-size:13px}.heartbeat-editor__freq-input{border:1px solid var(--border);background:var(--bg);height:32px;color:var(--fg);font-size:13px;font-family:var(--mono);box-sizing:border-box;border-radius:7px;width:60px;padding:0 10px;transition:border-color .15s}.heartbeat-editor__freq-input:focus{border-color:var(--accent);outline:none}.heartbeat-editor__freq-input--time{width:100px;font-family:var(--font-ui)}.heartbeat-editor__freq-select{border:1px solid var(--border);background:var(--bg);height:32px;color:var(--fg);cursor:pointer;box-sizing:border-box;border-radius:7px;padding:0 10px;font-size:13px}.heartbeat-editor__freq-select:focus{border-color:var(--accent);outline:none}.heartbeat-editor__weekdays{flex-wrap:wrap;gap:4px;display:flex}.heartbeat-editor__weekday-btn{border:1px solid var(--border);min-width:38px;height:32px;color:var(--fg-muted);cursor:pointer;background:0 0;border-radius:6px;padding:0 8px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s}.heartbeat-editor__weekday-btn:hover{background:var(--hover-bg)}.heartbeat-editor__weekday-btn--on{background:var(--accent);border-color:var(--accent);color:#fff}.heartbeat-editor__weekday-btn--on:hover{opacity:.88}.heartbeat-editor__cycle-wrap{flex-direction:column;gap:8px;display:flex}.heartbeat-editor__toggle-row{align-items:center;gap:8px;padding-top:4px;display:flex}.heartbeat-editor__toggle{background:var(--border);cursor:pointer;border:none;border-radius:10px;flex-shrink:0;width:36px;height:20px;padding:0;transition:background .2s;position:relative}.heartbeat-editor__toggle:hover{background:var(--fg-faint)}.heartbeat-editor__toggle--on{background:var(--ok)}.heartbeat-editor__toggle--on:hover{background:color-mix(in srgb, var(--ok) 82%, black)}.heartbeat-editor__toggle-knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.heartbeat-editor__toggle--on .heartbeat-editor__toggle-knob{transform:translate(16px)}.heartbeat-editor__toggle-label{color:var(--fg-muted);white-space:nowrap;font-size:12px}.heartbeat-editor__actions{align-items:center;gap:8px;padding:24px 0 16px;display:flex}.heartbeat-editor__scope-row{align-items:center;gap:6px;display:flex}.heartbeat-scope-btn{border:1px solid var(--border);background:var(--bg);height:32px;color:var(--fg-muted);cursor:pointer;box-sizing:border-box;border-radius:7px;align-items:center;gap:5px;padding:0 12px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.heartbeat-scope-btn:hover{background:var(--hover-bg);border-color:var(--border-focus)}.heartbeat-scope-btn--active{border-color:var(--border);color:var(--fg);background:#80808014}.heartbeat-project-wrap{position:relative}.heartbeat-project-menu{z-index:10;background:var(--bg);border:1px solid var(--border);border-radius:8px;min-width:220px;max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 6px 20px #0003}.heartbeat-project-menu__item{width:100%;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;justify-content:space-between;align-items:center;padding:7px 10px;font-size:12.5px;display:flex}.heartbeat-project-menu__item:hover{background:var(--hover-bg)}.heartbeat-project-menu__item--active{color:var(--accent);background:#80808014}.heartbeat-project-menu__current{color:var(--fg-faint);margin-left:8px;font-size:10px}.heartbeat-project-menu__empty{text-align:center;color:var(--fg-faint);padding:12px;font-size:12px}.sidebar__hb-header{align-items:center;gap:2px;padding:0 12px;display:flex}.sidebar__hb-header--new{padding-top:2px;padding-bottom:0}.sidebar__hb-add{width:24px;height:24px;color:var(--fg-faint);cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.sidebar__hb-add:hover{background:var(--hover-bg);color:var(--fg)}.sidebar__hb-btn{width:100%;height:30px;color:var(--fg-dim);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:400;transition:color .12s,background .12s;display:flex}.sidebar__hb-btn:hover{background:var(--sidebar-hover);color:var(--fg)}.sidebar__project-section{flex-direction:column;flex:1;min-height:0;margin-top:8px;padding:0 12px;display:flex;position:relative}.sidebar__project-section .project-tree__header-title{display:none}.sidebar__project-section .project-tree__header{opacity:0;background:0 0;border:none;align-items:center;gap:2px;padding:0;transition:opacity .12s;display:flex;position:absolute;top:2px;right:12px}.sidebar__project-section:hover .project-tree__header{opacity:1}.sidebar__project-section .project-tree{--project-tree-edge-gap:12px}.sidebar__project-section .sidebar__section--projects{flex:1;min-height:0;overflow-y:auto}.sidebar__project-section .project-tree>.project-tree__list{margin:0;padding:0}:root .sidebar__project-section .project-tree__folder,:root .sidebar__project-section .project-tree__topic{margin-right:8px}:root .project-tree__search{margin:0 12px}:root .project-tree__topic{padding-right:0}:root .project-tree__topic-label,:root .project-tree__folder-label{font-size:13px;font-weight:400}.sidebar__project-section .project-tree__new-topic{opacity:0;pointer-events:none;transition:opacity .12s}.sidebar__project-section .project-tree__folder:hover .project-tree__new-topic,.sidebar__project-section .project-tree__folder:focus-within .project-tree__new-topic{opacity:1;pointer-events:auto}:root .project-tree__topic--active .project-tree__topic-label{color:var(--fg);font-weight:400}.sidebar__project-head{flex-shrink:0;align-items:center;gap:4px;height:30px;display:flex}.sidebar__project-header{height:30px;color:var(--fg-dim);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:0 8px;font-family:inherit;font-size:13px;font-weight:400;transition:color .12s;display:flex}.sidebar__project-header:hover{color:var(--fg)}.sidebar__hb-label{text-align:left;flex:1}.sidebar__hb-hint{color:var(--fg-faint);letter-spacing:normal;font-size:10px;font-weight:400}
