.hb [hidden]{display:none!important}.hb .hb-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:1.5rem;align-items:center}.hb .hb-weeknav,.hb .hb-actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.hb .hb-week-label{font-family:var(--mono);font-size:.85rem;min-width:11.5rem;text-align:center}.hb .hb-btn{font-family:var(--mono);font-size:.78rem;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.25rem .6rem;cursor:pointer}.hb .hb-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.hb .hb-btn:disabled{opacity:.4;cursor:default}.hb .hb-btn.hb-primary{color:var(--bg);background:var(--accent);border-color:var(--accent)}.hb .hb-btn.hb-primary:hover{color:var(--bg);filter:brightness(1.08)}.hb .hb-btn.hb-on{color:var(--accent);border-color:var(--accent)}.hb .hb-linkish{background:none;border:none;padding:0;margin-right:auto;text-decoration:underline}.hb .hb-status{font-family:var(--mono);font-size:.75rem;color:var(--muted);margin:.75rem 0 .5rem;min-height:1.2em}.hb .hb-status.hb-bad{color:#e5534b}.hb .hb-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.hb .hb-table{width:100%;border-collapse:collapse;font-size:.9rem}.hb .hb-table th,.hb .hb-table td{padding:.45rem .35rem;text-align:center;border-bottom:1px solid var(--line)}.hb .hb-table tr:last-child>*{border-bottom:none}.hb .hb-table thead th{font-family:var(--mono);font-size:.7rem;font-weight:500;color:var(--muted);line-height:1.3}.hb .hb-table thead th.hb-today{color:var(--accent)}.hb .hb-table th.hb-name{text-align:left;font-weight:500;padding-left:.9rem;min-width:9rem;position:sticky;left:0;background:var(--surface);z-index:1}.hb .hb-table thead th.hb-name{font-weight:500}.hb .hb-table tfoot td,.hb .hb-table tfoot th{font-family:var(--mono);font-size:.7rem;color:var(--muted)}.hb .hb-empty{color:var(--muted);padding:1.5rem!important}.hb .hb-streak{font-family:var(--mono);font-size:.75rem;color:var(--muted);white-space:nowrap}.hb .hb-streak b{color:var(--text);font-weight:600}.hb .hb-cell{width:1.9rem;height:1.9rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;line-height:1;font-weight:700;border:1.5px dashed var(--line);background:none;color:var(--muted);padding:0}.hb button.hb-cell{cursor:pointer}.hb button.hb-cell:hover{border-color:var(--accent)}.hb .hb-cell[data-mark=y]{background:var(--accent);border:1.5px solid var(--accent);color:var(--bg)}.hb .hb-cell[data-mark=n]{border:1.5px solid var(--muted);color:var(--muted)}.hb .hb-cell.hb-future{opacity:.3;border-style:dotted}.hb .hb-del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 .3rem}.hb .hb-del:hover{color:#e5534b}.hb .hb-add{display:flex;gap:.5rem;margin-top:.75rem}.hb .hb-add input,.hb .hb-dialog input{flex:1;font:inherit;font-size:.9rem;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.4rem .6rem}.hb .hb-add input:focus,.hb .hb-dialog input:focus{outline:none;border-color:var(--accent)}.hb .hb-charts{margin-top:2.5rem}.hb .hb-charts h2{margin-top:1.5rem}.hb .hb-sub{color:var(--muted);font-size:.85rem;margin:0 0 .75rem}.hb .hb-chart{width:100%}.hb .hb-chart svg,.hb .hb-heat svg{display:block;overflow:visible}.hb .hb-legend{white-space:nowrap;margin-left:.5rem;font-family:var(--mono);font-size:.72rem}.hb .hb-sw{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle;margin:0 .15rem 0 .5rem}.hb .hb-sw-y{background:var(--accent)}.hb .hb-sw-n{border:1px solid var(--line);background:linear-gradient(135deg,transparent 44%,var(--muted) 44% 56%,transparent 56%)}.hb .hb-sw-none{border:1px solid var(--line)}.hb .hb-heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1.25rem 1.5rem}.hb .hb-heat-name{font-family:var(--mono);font-size:.78rem;margin:0 0 .3rem;display:flex;justify-content:space-between;gap:.5rem}.hb .hb-heat-name span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hb .hb-heat-name span:last-child{color:var(--muted)}.hb .hb-axis{font-family:var(--mono);font-size:10px;fill:var(--muted)}.hb .hb-grid{stroke:var(--line);stroke-width:1}.hb .hb-bar{fill:var(--accent)}.hb .hb-hit{fill:transparent;cursor:default}.hb .hb-hit:hover+.hb-bar,.hb .hb-bar.hb-hover{filter:brightness(1.15)}.hb .hb-val{font-family:var(--mono);font-size:11px;fill:var(--text);font-weight:600}.hb .hb-day-y{fill:var(--accent)}.hb .hb-day-n,.hb .hb-day-none{fill:var(--bg);stroke:var(--line);stroke-width:1}.hb .hb-slash{stroke:var(--muted);stroke-width:1.3;pointer-events:none}.hb-tip{position:fixed;z-index:30;pointer-events:none;font-family:var(--mono);font-size:.75rem;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.35rem .55rem;box-shadow:0 8px 20px #0000004d;white-space:pre}.hb .hb-dialog{width:min(460px,calc(100vw - 2rem));background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:1.25rem 1.4rem;box-shadow:0 24px 60px #00000073}.hb .hb-dialog::backdrop{background:#00000080;backdrop-filter:blur(2px)}.hb .hb-dialog h3{margin:0 0 .6rem}.hb .hb-dialog label{display:flex;flex-direction:column;gap:.25rem;font-family:var(--mono);font-size:.75rem;color:var(--muted);margin-bottom:.7rem}.hb .hb-dialog-actions{display:flex;gap:.5rem;justify-content:flex-end;align-items:center;margin-top:.5rem}.hb .hb-err{color:#e5534b;font-size:.8rem;margin:0;min-height:1.1em}
