/* ==== v47.css ==== */
.v39-or-join{margin-inline-start:auto;padding:var(--dj-space-1) var(--dj-space-2);border:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);border-radius:var(--dj-radius-popup-row);color:var(--accent);font-size:var(--dj-text-caption-size);font-weight:var(--dj-text-heading-weight);cursor:copy;opacity:.62}.v39-or-join:hover,.v39-or-target .v39-or-join{background:var(--accent);color:#fff;opacity:1}.v39-or-row[draggable=true]{cursor:grab}.v47-ritual-existing .task-title{text-decoration:none}.v47-ritual-existing .task-title.done{color:var(--green)}.v47-ritual-existing .task-title.failed{color:var(--red)}.v47-ritual-task-mini{width:min(520px,calc(100vw - 24px))}.v28-ritual-delete.v30-icon-only span{display:none}.v47-priority-popover{position:fixed!important;z-index:220!important;width:174px!important;padding:var(--dj-space-1)!important}.v47-priority-popover .v17-priority-grid{grid-template-columns:repeat(4,36px);gap:var(--dj-space-1)}.v47-priority-popover button{width:36px;height:36px;padding:var(--dj-space-2)}.v47-priority-popover .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
/* Suggestions must not resize/recenter the editor while the user is typing. */
.modal.v47-ritual-task-mini{position:relative;overflow:visible!important;margin:0!important;max-width:100%!important;box-sizing:border-box}
.v47-artifact-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:2;display:flex;flex-wrap:wrap;gap:var(--dj-space-1);margin:0;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel);box-shadow:var(--shadow);max-height:150px;overflow:auto;overscroll-behavior:contain;box-sizing:border-box}.v47-artifact-suggestions[hidden]{display:none}.v47-artifact-suggestions button{border:0;background:transparent;font:inherit;padding:var(--dj-space-2);max-width:100%;overflow-wrap:anywhere}
@media(max-width:1024px){
  /* Top anchoring also prevents recentering when the Android keyboard opens. */
  .modal-backdrop.v47-ritual-task-backdrop{align-items:start!important;align-content:start!important;padding-top:var(--dj-space-3)!important}
  .v47-artifact-suggestions{max-height:min(150px,max(44px,calc(100dvh - var(--v77-mobile-header-height,62px) - 230px)))}
}

/* ==== v48.css ==== */
.v48-repeat-icon{display:inline-flex;align-items:center;justify-content:center;inline-size:15px;block-size:15px;flex:0 0 15px;color:var(--accent);vertical-align:-2px}.v48-repeat-icon svg{inline-size:100%;block-size:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.task-meta>.v48-repeat-icon,.habit-history-caption>.v48-repeat-icon,.section-note>.v48-repeat-icon{margin-inline-end:var(--dj-space-1)}.section-note:has(.v48-repeat-icon),.habit-history-caption:has(.v48-repeat-icon){display:flex;align-items:center}.v35-tag-task-row .task-meta{align-items:center}

/* ==== v49.css ==== */
.grid-2:has(.v49-ritual-row){grid-template-columns:1fr;gap:0}.v49-ritual-row{border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:var(--dj-space-3) var(--dj-space-3)}.v49-ritual-row .section-head{align-items:center;margin:0}.v49-ritual-expand{border:0;background:transparent;color:var(--muted);font-size:var(--dj-text-heading-size);inline-size:26px;cursor:pointer}.v49-ritual-row>.v17-ritual-items,.v49-ritual-row>.habit-grid,.v49-ritual-row>[class*="feed"]{overflow:hidden;max-height:0;opacity:0;transition:max-height .22s ease,opacity .16s ease}
.v49-ritual-row.expanded>.v17-ritual-items,.v49-ritual-row.expanded>.habit-grid,.v49-ritual-row.expanded>[class*="feed"]{max-height:2000px;opacity:1}
@media (prefers-reduced-motion: reduce){.v49-ritual-row>.v17-ritual-items,.v49-ritual-row>.habit-grid,.v49-ritual-row>[class*="feed"]{transition:none}}.v49-ritual-row.expanded{padding-block-end:var(--dj-space-4)}.v49-ritual-irrelevant{opacity:.45;filter:grayscale(1)}.v49-mixed-popup{position:fixed;z-index:1200;inset:auto 18px 18px auto;width:min(390px,calc(100vw - 36px));padding:var(--dj-space-4);display:grid;gap:var(--dj-space-3)}.v49-mixed-list{display:grid;gap:var(--dj-space-1)}.v49-mixed-list .done{color:var(--green)}.v49-mixed-list .failed{color:var(--red)}.v49-mixed-actions{display:flex;justify-content:flex-end;gap:var(--dj-space-2)}

/* ==== v50.css ==== */
.v50-ritual-task-list{position:relative;margin:var(--dj-space-2) 0 0;padding:0;list-style:none}.v50-ritual-step{position:relative;display:block;margin:0;padding:0}.v50-ritual-step>.v15-task-node{margin:0}.v50-ritual-step .task-row-v11{border-radius:0;border-inline:0}.v50-or-step{padding-inline-start:calc(var(--dj-space-8) + var(--dj-space-1))}.v50-or-tasks{display:grid;gap:0}.v50-or-task{min-width:0}.v50-or-marker{position:absolute;z-index:2;inset-inline-start:1px;top:50%;transform:translateY(-50%);inline-size:28px;block-size:28px;border:1.5px solid var(--accent);border-radius:var(--dj-radius-circle,50%);background:var(--surface);color:var(--accent);font-size:var(--dj-text-caption-size);font-weight:var(--dj-text-heading-weight);line-height:var(--dj-text-heading-line-height);cursor:pointer}.v50-or-drop{position:absolute;z-index:3;inset-inline-start:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;inline-size:22px;block-size:22px;border:1px dashed var(--accent);border-radius:var(--dj-radius-circle,50%);background:var(--surface);color:var(--accent);font-size:var(--dj-text-caption-size);font-weight:var(--dj-text-heading-weight);opacity:0;cursor:copy}.v50-ritual-step:hover>.v50-or-drop,.v50-ritual-step.or-target>.v50-or-drop{opacity:.72}.v50-ritual-step.or-target>.v50-or-drop{background:var(--accent);color:#fff;opacity:1}.v50-ritual-step.drag-over{box-shadow:inset 0 2px var(--accent)}.v50-ritual-step.dragging{opacity:.48}.v50-or-step .task-row-v11{padding-inline-start:var(--dj-space-2)}.v50-ritual-task-list .task-comment-button span{display:none}
.v50-ritual-task-list [data-v15-task-row].v50-ritual-other-date{opacity:1}.v50-ritual-task-list [data-v15-task-row].v50-ritual-exhausted{opacity:.42}.v50-ritual-task-list [data-v15-task-row].v50-ritual-exhausted .task-title,.v50-ritual-task-list [data-v15-task-row].v50-ritual-exhausted .v15-task-title{color:var(--muted)!important;text-decoration:none}
.v50-ritual-task-list [data-v15-task-row].v50-ritual-occurrence-done .task-title,.v50-ritual-task-list [data-v15-task-row].v50-ritual-occurrence-done .task-row-title{color:var(--green)!important;text-decoration:none}.v50-ritual-task-list [data-v15-task-row].v50-ritual-occurrence-failed .task-title,.v50-ritual-task-list [data-v15-task-row].v50-ritual-occurrence-failed .task-row-title{color:var(--accent)!important;text-decoration:none}.v50-ritual-task-list [data-v15-task-row].v50-ritual-occurrence-done .task-state-check,.v50-ritual-task-list [data-v15-task-row].v50-ritual-occurrence-failed .task-state-check{background:currentColor;box-shadow:inset 0 0 0 3px #fff}
.v50-ritual-task-list [data-v15-task-row].v50-ritual-current:not(.v50-ritual-occurrence-done):not(.v50-ritual-occurrence-failed){opacity:1!important;filter:none!important}.v50-ritual-task-list [data-v15-task-row].v50-ritual-current:not(.v50-ritual-occurrence-done):not(.v50-ritual-occurrence-failed) .task-title,.v50-ritual-task-list [data-v15-task-row].v50-ritual-current:not(.v50-ritual-occurrence-done):not(.v50-ritual-occurrence-failed) .task-row-title,.v50-ritual-task-list [data-v15-task-row].v50-ritual-current:not(.v50-ritual-occurrence-done):not(.v50-ritual-occurrence-failed) .v15-task-title{color:var(--ink)!important;text-decoration:none!important}

/* ==== v51.css ==== */
.v51-capacity-main{display:flex;overflow:hidden}.v51-capacity-main .v51-segment{position:relative;display:block;flex:0 0 auto;height:100%;border-radius:0}.v51-capacity-main .v51-segment.done{filter:saturate(1.08);box-shadow:inset 0 2px rgba(0,0,0,.18)}.v51-capacity-main .stone{background:#df8c37}.v51-capacity-main .task{background:#4f8c6d}.v51-capacity-main .noise{background:#9ac8e8}.v51-capacity-failed{height:5px;margin-top:var(--dj-space-1);display:flex;justify-content:flex-end;background:transparent}.v51-capacity-failed[hidden]{display:none}.v51-capacity-failed i{display:block;height:4px;background:var(--red);border-radius:4px 0 0 4px}.v51-capacity-legend{display:flex;align-items:center;justify-content:space-between}.v51-capacity-legend>span{display:flex;align-items:center;gap:var(--dj-space-3)}.v51-capacity-legend .v22-icon{width:20px;height:20px}.v51-capacity-legend .stone{color:#df8c37}.v51-capacity-legend .task{color:#4f8c6d}.v51-capacity-legend .noise{color:#9ac8e8}.v51-capacity-legend>b{color:var(--red);margin-inline-start:auto}
.v51-capacity-main{display:flex;overflow:hidden}.v51-capacity-main .v51-segment{position:relative;display:block;flex:0 0 auto;height:100%;border-radius:0}.v51-capacity-main .v51-segment.done{filter:saturate(1.08);box-shadow:inset 0 2px rgba(0,0,0,.18)}.v51-capacity-main .stone{background:#df8c37}.v51-capacity-main .task{background:#4f8c6d}.v51-capacity-main .noise{background:#9ac8e8}.v51-capacity-failed{height:5px;margin-top:var(--dj-space-1);display:flex;justify-content:flex-end;background:transparent}.v51-capacity-failed[hidden]{display:none}.v51-capacity-failed i{display:block;height:4px;background:var(--red);border-radius:4px 0 0 4px}.v51-capacity-legend{display:flex;align-items:center;justify-content:space-between}.v51-capacity-legend>span{display:flex;align-items:center;gap:var(--dj-space-3)}.v51-capacity-legend .v22-icon{width:20px;height:20px}.v51-capacity-legend .stone{color:#df8c37}.v51-capacity-legend .task{color:#4f8c6d}.v51-capacity-legend .noise{color:#9ac8e8}.v51-capacity-legend>b{color:var(--red);margin-inline-start:auto}.v51-period-filter{display:flex;gap:var(--dj-space-2);flex-wrap:wrap;margin:var(--dj-space-2) 0 var(--dj-space-4)}.v51-section-title{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;padding:var(--dj-space-3) var(--dj-space-4);color:var(--text);font-size:var(--dj-text-body-size,15px);text-align:left}.v51-section-title:hover{background:#faf8f5}.v51-analytics-section{overflow:hidden}.v51-analytics-section.collapsed .v51-section-body{display:none}.v51-chart-scroll{overflow-x:auto}.v51-period-grid{grid-template-columns:repeat(var(--v51-cols),minmax(58px,1fr))!important;min-width:max(100%,calc(var(--v51-cols) * 68px))}.v51-stone-chart{display:grid;gap:var(--dj-space-3);align-items:end;min-height:150px;padding:var(--dj-space-3) calc(var(--dj-space-4) + var(--dj-space-1))}.v51-stone-chart>div{text-align:center;font-size:var(--dj-text-caption-size);color:var(--muted)}.v51-stone-bars{height:105px;display:flex;align-items:flex-end;justify-content:center;gap:var(--dj-space-1)}.v51-stone-bars i,.v51-stone-bars b{display:block;width:12px;min-height:0;border-radius:4px 4px 0 0;background:#df8c37}.v51-stone-bars b{background:#f0b879}

/* ==== v52.css ==== */
/* V3.4.0-alpha.1 — Actions */
.v52-action-section{margin:var(--dj-space-6) 0}.v52-action-section>h2{display:flex;align-items:center;gap:var(--dj-space-2);font-size:var(--dj-text-body-size)}.v52-action-table{padding:0;overflow:hidden}.v52-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto 34px 34px;align-items:center;gap:var(--dj-space-2)}.v52-action-row .entity-link{text-align:left;min-width:0}.v52-action-row .filter-code{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v52-action-kind{font-size:var(--dj-text-secondary-size);color:var(--muted);white-space:nowrap}.v52-archive-toggle{margin-top:calc(var(--dj-space-4) + var(--dj-space-1))}.v52-results{margin-top:calc(var(--dj-space-4) + var(--dj-space-1))}.v52-query-error,.v52-query-feedback.error{color:#b52828}.v52-transaction{display:flex;justify-content:space-between;align-items:center;gap:var(--dj-space-3);margin:var(--dj-space-4) 0;padding:var(--dj-space-3) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-card,10px)}.v52-transaction.changed{border-color:var(--accent)}
.v52-action-editor{width:min(620px,calc(100vw - 24px));padding:var(--dj-space-4)}.v52-editor-head{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:var(--dj-space-2);align-items:start}.v52-editor-head>input{font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);border:0;outline:0;min-width:0}.v52-action-editor textarea{width:100%;resize:vertical;min-height:52px;margin:var(--dj-space-2) 0}.v52-editor-row{display:grid;grid-template-columns:1fr 1fr 1fr 38px;gap:var(--dj-space-2);align-items:center}.v52-editor-row>*{min-width:0}.v52-color{width:36px;height:36px;border:1px solid var(--line);border-radius:var(--dj-radius-chip,8px);background:#fff;position:relative}.v52-color:after{content:"";position:absolute;inset:8px;border-radius:var(--dj-radius-circle,50%);background:var(--v52-color)}.v52-color.v27-color-button:after{content:none}.v52-palette{position:absolute;z-index:40;display:grid;grid-template-columns:repeat(4,28px);gap:var(--dj-space-1);padding:var(--dj-space-2);background:#fff;border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);box-shadow:0 10px 30px #0002}.v52-palette[hidden]{display:none}.v52-palette button{width:28px;height:28px;border:0;border-radius:var(--dj-radius-chip)}.v52-query-feedback{min-height:20px;padding-top:var(--dj-space-2);color:var(--muted);font-size:var(--dj-text-secondary-size)}.v52-help code{display:inline-block;padding:var(--dj-space-1) var(--dj-space-1);background:var(--surface-2,#f3f1ee);border-radius:var(--dj-radius-detail)}
@media(max-width:720px){.v52-action-row{grid-template-columns:minmax(0,1fr) auto 32px 32px}.v52-action-kind{grid-column:1/3}.v52-editor-row{grid-template-columns:1fr 1fr}.v52-editor-row .v52-color{grid-column:2;justify-self:end}}

/* ==== v53.css ==== */
/* V3.4.0-alpha.2 — Action icon, Action editor and five-second bulk Undo. */
.v53-search-icon{display:inline-grid;place-items:center;width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);line-height:1;color:var(--accent);flex:0 0 auto}.v53-search-icon .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v53-icon-action{min-width:38px}.v53-action-section{margin:var(--dj-space-6) 0}.v53-action-section>h2{display:flex;align-items:center;gap:var(--dj-space-2);font-size:var(--dj-text-body-size)}.v53-action-table{padding:0;overflow:hidden}.v53-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(100px,auto) 34px 34px;align-items:center;gap:var(--dj-space-2)}.v53-action-row .entity-link{display:grid;grid-template-columns:24px minmax(0,1fr);text-align:left;min-width:0}.v53-row-action-icon{grid-row:1/3;align-self:center}.v53-row-action-icon .v22-icon{width:20px;height:20px}.v53-action-row .filter-code{grid-column:2;display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v53-action-kind{font-size:var(--dj-text-secondary-size);color:var(--muted);white-space:nowrap}.v53-results{margin-top:calc(var(--dj-space-4) + var(--dj-space-1))}.v53-query-error,.v53-query-feedback.error{color:#b52828}
.v53-popup{position:fixed!important;z-index:1600!important}.v53-choice-list{display:grid;max-height:min(360px,60vh);overflow:auto;min-width:230px}.v53-choice-icon{display:inline-grid;width:24px}.v53-choice-icon .v22-icon{width:20px;height:20px}.v53-priority .v17-priority-grid{display:grid;grid-template-columns:repeat(4,36px);gap:var(--dj-space-1)}.v53-status{display:grid!important;grid-template-columns:repeat(5,36px);gap:var(--dj-space-1);min-width:auto!important;padding:var(--dj-space-2)!important}.v53-status>button{width:36px;height:36px;padding:var(--dj-space-2)!important}.v53-palette{display:grid!important;grid-template-columns:repeat(7,26px);gap:var(--dj-space-1);min-width:auto!important;padding:var(--dj-space-2)!important}.v53-swatch{width:26px!important;height:26px!important;border:2px solid transparent!important;border-radius:var(--dj-radius-detail)!important;padding:0!important}.v53-swatch.selected{border-color:var(--ink)!important}
.v53-editor{width:min(590px,calc(100vw - 24px));padding:var(--dj-space-3)}.v53-editor-head{display:grid;grid-template-columns:30px minmax(0,1fr) 38px 38px 38px;gap:var(--dj-space-2);align-items:start}.v53-editor-action{display:grid;place-items:center;color:var(--accent);height:38px}.v53-editor-action .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v53-editor-head>input{font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);border:0;outline:0;min-width:0;height:38px}.v53-editor textarea{width:100%;min-height:38px;max-height:120px;resize:vertical;margin:var(--dj-space-2) 0;border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);padding:var(--dj-space-2)}.v53-color{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:var(--dj-radius-chip,8px);background:#fff;color:var(--v53-color)}.v53-color .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v53-editor-action-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:var(--dj-space-2);align-items:center}.v53-editor-action-row>[data-v53-editor-mutation]{display:flex;align-items:center;gap:var(--dj-space-2);min-height:38px;color:var(--muted)}.v53-editor-action-row>[data-v53-editor-mutation]>span:first-child{color:var(--accent);display:grid}.v53-editor-action-row [data-v53-clear-mutation]{margin-left:auto;border:0;background:transparent;color:var(--muted);width:30px;height:30px}.v53-find-only{font-size:var(--dj-text-secondary-size)}.v53-query-feedback{min-height:18px;margin-top:var(--dj-space-1);color:var(--muted);font-size:var(--dj-text-secondary-size)}
.v53-undo{position:fixed;z-index:1900;left:50%;bottom:20px;transform:translateX(-50%);display:grid;grid-template-columns:minmax(0,1fr) 28px 38px;align-items:center;gap:var(--dj-space-2);width:min(620px,calc(100vw - 24px));padding:var(--dj-space-2) var(--dj-space-3) var(--dj-space-2) var(--dj-space-4);border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:var(--dj-radius-popup,10px);background:var(--surface,#fff);box-shadow:0 16px 45px #0003}.v53-undo>b{display:grid;place-items:center;color:var(--accent);font-variant-numeric:tabular-nums}.v53-undo .btn{width:38px;height:38px;padding:var(--dj-space-2)}
@media(max-width:720px){.v53-action-row{grid-template-columns:minmax(0,1fr) auto 32px 32px}.v53-action-kind{grid-column:1/3}.v53-editor-head{grid-template-columns:26px minmax(0,1fr) repeat(3,34px)}.v53-color,.v53-editor-head .btn{width:34px;height:34px}.v53-palette{grid-template-columns:repeat(7,24px)}.v53-swatch{width:24px!important;height:24px!important}}

/* ==== v54.css ==== */
.v54-today-list .v15-task-row.status-done .task-row-title,
.v54-today-list .v15-task-row.status-done .task-title{color:#34845f!important;text-decoration:none}
.v54-today-list .v15-task-row.status-failed .task-row-title,
.v54-today-list .v15-task-row.status-failed .task-title{color:#c8413d!important;text-decoration:none}
.v54-today-list .v15-task-row.status-done .task-meta{color:#5d9978}
.v54-today-list .v15-task-row.status-failed .task-meta{color:#ca625f}
.v54-today-list .v34-occurrence-circle{align-self:flex-start;margin-top:var(--dj-space-1)}
.v54-today-list .task-row-main{min-width:0}
.v54-today-list .v38-today-time{white-space:nowrap}

/* Владелец, 2026-09-22: "Закрыть день" переехала из шапки вкладки в свою строку, справа, сразу
   над полем "Главная задача" (v54.js todayMarkup) — маленькая кнопка, не конкурирует с заголовком
   вкладки за размер/выравнивание. */
.v54-close-day-row{display:flex;justify-content:flex-end;margin-bottom:var(--dj-space-2)}

/* Владелец, 2026-09-23 (разбор по скриншоту, доп. п.1): убрали текст "Успех дня пока не
 * рассчитывается"/"Успех дня · N/M" рядом с "Цели дня" (v54.js todayMarkup — .section-note
 * для этой секции больше не рендерится). Кружок с числом (.chip) должен всегда быть на одной
 * строке с надписью "Цели дня", не переноситься под неё — nowrap+overflow:hidden вместо
 * обычного переноса текста; если совсем не помещается, кружок обрежется, а не свалится строкой
 * ниже (тот же эффект, что "не показывать", раз он и так почти никогда не будет настолько
 * длинным, чтобы не влезть). */
.v54-daily-title:not(.r24-today-section>.section-head>.section-title){display:flex!important;align-items:center;gap:var(--dj-space-2);white-space:nowrap;overflow:hidden}
.v54-daily-title .chip{flex:0 0 auto}

/* ==== v55-minimal-theme.css ==== */
/* ==========================================================================
   Dolojane — v55-minimal-theme.css
   Минималистичная тема поверх текущего каскада (styles.css … v54.css).

   ПРИНЦИП: это ДОБАВОЧНЫЙ слой в вашей же архитектуре, а не замена. Ничего
   не переписывает JS/разметку — только визуальный язык поверх существующих
   классов (card, btn, task-row, nav-item, chip, settings-row и т.д.),
   которые я проверил на актуальность в v41–v54.

   НАПРАВЛЕНИЕ: Basecamp (много воздуха, почти монохромная палитра, акцент
   работает только там, где реально нужно внимание, минимум теней/рамок,
   иерархия через типографику и отступы, а не цветные заливки) + Todoist
   (компактные однострочные списки, акцентный цвет только на самых редких
   и самых важных элементах — приоритет, статус, счётчик).

   КАК ПОДКЛЮЧИТЬ: добавить одну строку в index.html после последнего
   <link rel="stylesheet" href="v54.css">:
     <link rel="stylesheet" href="v55-minimal-theme.css">
   Это единственное изменение, которое требуется в HTML. Полностью
   отключается удалением этой одной строки.

   ЧЕСТНОЕ ОГРАНИЧЕНИЕ: у меня нет браузера в этой среде, чтобы увидеть
   рендер — правки основаны на чтении style.css/v0x.css и разметки, которую
   эти правила таргетируют, а не на визуальной проверке. Возможны точечные
   промахи по совсем новым/редким экранам — дайте знать, какие именно, и я
   поправлю прицельно, не трогая остальное.
   ========================================================================== */

:root{
  /* Было: --bg:#f7f6f3 (тёплый серо-бежевый), насыщенный терракотовый
     акцент, тяжёлая тень --shadow:0 12px 40px rgba(...,.08).
     Минимализм Basecamp/Todoist держится на: (1) почти белом/светло-сером
     фоне без "дизайнерского" тона, (2) одном акценте, используемом скупо,
     (3) тенях толщиной в 1px-рамку, а не в размытие. */
  --bg:#fafafa;
  --panel:#fff;
  --ink:#1a1a1a;
  --muted:#717171;
  --muted-2:#717171;
  /* Decor that must stay pale (circle borders, timeline dots, schedule bars): not text, DS-A11Y-02 does not apply. */
  --muted-decor:#b3b3b3;
  --line:#eaeaea;
  --line-strong:#dcdcdc;
  /* --accent and --accent-soft come from the selected application colour. */
  --shadow:none;
  --shadow-modal:0 8px 24px rgba(0,0,0,.10);
  --radius:6px;
  --radius-lg:8px;
}

/* ---------- База: типографика и ритм ---------- */

body{
  background:var(--bg);
  color:var(--ink);
  font:var(--dj-text-secondary-size)/var(--dj-text-secondary-line-height) Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
/* Basecamp/Todoist не используют жирность 750 почти нигде — иерархия идёт
   через размер и цвет, не через вес. Снижаю самые тяжёлые начертания. */
.page-title{font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);letter-spacing:-.01em;margin:var(--dj-space-1) 0 var(--dj-space-1)}
.brand{font-weight:var(--dj-text-heading-weight)}
.section-title{font-size:var(--dj-text-secondary-size,12px);font-weight:var(--dj-text-heading-weight);color:var(--ink)}
.settings-label{font-weight:var(--dj-text-body-weight)}
.project-name{font-weight:var(--dj-text-body-weight)}
.focus-title{font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-body-size)}
.metric-value{font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-heading-size);letter-spacing:-.01em}
.eyebrow{
  color:var(--muted);            /* было var(--accent) — акцент теперь не
                                     на служебных надписях, а на действиях */
  font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-caption-size);letter-spacing:.06em;
}

/* ---------- Раскладка: больше воздуха ---------- */

.main{padding:calc(var(--dj-space-8) + var(--dj-space-2)) clamp(calc(var(--dj-space-6) + var(--dj-space-1)),6vw,calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-4) + var(--dj-space-1))) calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-6) + var(--dj-space-1))}
.topbar{margin-bottom:calc(var(--dj-space-8) + var(--dj-space-1))}
.section{margin:var(--dj-space-8) 0}
.section-head{margin-bottom:var(--dj-space-3)}

/* ---------- Карточки: рамка вместо тени ---------- */

.card,.focus-card,.help-card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:none;
}
.focus-card{border-left:1px solid var(--line);border-left-width:3px;border-left-color:var(--accent);padding:calc(var(--dj-space-4) + var(--dj-space-1)) var(--dj-space-6)}
.focus-label{color:var(--accent);font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-caption-size,11px);letter-spacing:.06em}

/* ---------- Сайдбар: тише, без «активной» тени ---------- */

.sidebar{
  background:var(--bg);
  border-right:1px solid var(--line);
}
.nav-item{
  color:#5a5a5a;
  border-radius:var(--radius);
  font-weight:var(--dj-text-body-weight);
}
.nav-item:hover{background:#f0f0f0;color:var(--ink)}
.nav-item.active{
  background:#fff;
  color:var(--ink);
  box-shadow:none;
  border:1px solid var(--line);
  font-weight:var(--dj-text-heading-weight);
}
.nav-title{color:var(--muted-2);font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-caption-size,11px)}
.nav-item .count{color:var(--muted-2)}
.search{background:var(--bg);border:1px solid var(--line);box-shadow:none}

/* ---------- Кнопки: акцент только на первичном действии ---------- */

.btn{
  border:1px solid var(--line-strong);
  background:#fff;
  border-radius:var(--dj-radius-button);
  font-weight:var(--dj-text-body-weight);
  color:var(--ink);
  box-shadow:none;
}
.btn:hover{border-color:#b8b8b8;background:#f7f7f7}
.btn.primary{
  background:var(--accent);
  border-color:var(--accent);
  font-weight:var(--dj-text-heading-weight);
}
.btn.primary:hover{background:#c1453e;border-color:#c1453e}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:#f0f0f0}
.btn.icon-only{border-color:transparent;background:transparent;color:var(--muted)}
.btn.icon-only:hover{background:#f0f0f0;color:var(--ink)}
.icon-btn{color:var(--muted-2)}
.icon-btn:hover{background:#f0f0f0;color:var(--ink)}

/* ---------- Чипы: текст важнее заливки ---------- */

/* Было: заметные цветные "таблетки" с насыщенным фоном на каждый статус —
   в списке из десятков задач это превращается в визуальный шум. Basecamp/
   Todoist кодируют статус в основном цветом текста + тонкой точкой/рамкой,
   не сплошной заливкой. */
.chip{
  background:transparent;
  border:1px solid var(--line-strong);
  color:var(--muted);
  font-weight:var(--dj-text-body-weight);
}
.chip.red{background:transparent;color:var(--accent);border-color:var(--accent-soft)}
.chip.green{background:transparent;color:#2f7a56;border-color:#d9ece3}
.chip.blue{background:transparent;color:#3d5f8a;border-color:#dde7f2}
.chip.amber{background:transparent;color:#93611f;border-color:#f0e2c8}

/* ---------- Списки задач: компактнее, тише ---------- */

.task-row{
  padding:var(--dj-space-2) var(--dj-space-1);
  border-bottom:1px solid var(--line);
  align-items:center;
}
.task-row:hover{background:#f7f7f7}
.check{border-color:var(--muted-decor)}
.check:hover{border-color:var(--accent);background:var(--accent-soft)}
.task-title{font-weight:var(--dj-text-body-weight);color:var(--ink)}
.task-title.done{color:var(--muted-2)}
.task-meta{color:var(--muted-2)}
.subtasks{border-left-color:var(--line)}

/* Приоритетный флаг и статусный кружок — единственные места, где яркий
   цвет оправдан (это сигнал, не декор), поэтому их не глушу. */
.priority-flag,.task-state-check{opacity:1}

/* ---------- Проекты / объекты ---------- */

.project-row,.object-row,.settings-row{
  padding:var(--dj-space-3) var(--dj-space-1);
  border-bottom:1px solid var(--line);
}
.settings-note,.section-note{color:var(--muted-2)}

/* Настройки уже сгруппированы в карточки по промпту (§6) — просто убираю
   лишний вес рамки между секциями. */
.settings-section{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  margin-bottom:var(--dj-space-4);
}

/* ---------- Модалки: без градиента/тяжёлой тени ---------- */

.modal-backdrop{background:rgba(20,20,20,.32)}
.modal{
  box-shadow:var(--shadow-modal);
  border-radius:var(--dj-radius-popup);
  border:1px solid var(--line);
}
.modal h2{font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-body-size)}
.field input,.field select,.field textarea,
select,input[type=number],input[type=time],input[type=date],
input[type=datetime-local],textarea{
  border:1px solid var(--line-strong);
  border-radius:var(--radius);
}
.field input:focus,.field select:focus,.field textarea:focus,
select:focus,input:focus,textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}

/* ---------- Hero / Cathedral: убрать градиент-декор ---------- */

.hero{
  background:var(--panel);
  border:1px solid var(--line);
  box-shadow:none;
}
.hero h2{font-family:Georgia,serif;font-weight:var(--dj-text-reading-weight);color:var(--ink)}

/* ---------- Прогресс-бары / метрики: тоньше ---------- */

.progress{height:4px;background:#f0f0f0}
.progress>i{background:var(--accent);border-radius:0}
.v17-capacity-progress i.done{opacity:1}

/* ---------- Календарь: спокойнее ---------- */

.calendar{border-color:var(--line);background:var(--line)}
.day{background:#fff}
.day-head{color:var(--muted-2)}
.event{background:transparent;border:1px solid #dde7f2;color:#3d5f8a}
.event.red{background:transparent;border-color:var(--accent-soft);color:var(--accent)}

/* ---------- Аналитика: столбцы без лишнего декора ---------- */

.bar{background:#2f7a56;border-radius:2px 2px 0 0}
.bar.negative{background:var(--accent);border-radius:0 0 2px 2px}
.bar-label{color:var(--muted-2)}

/* ---------- Wall / Stone карточки ---------- */

.wall-card{border:1px solid var(--line);box-shadow:none}
.stone{border:1px solid var(--line);background:#fff}
.stone:before{color:var(--accent)}

/* ---------- Привычки ---------- */

.habit-day{background:#eee}
.habit-day.ok{background:#2f7a56}
.habit-day.fail{background:var(--accent)}

/* ---------- Feed / комментарии ---------- */

.feed-item,.feed-entry{border-bottom-color:var(--line)}
.feed-date,.feed-entry-time{color:var(--muted-2)}

/* ---------- Тост / уведомления ---------- */

.toast{background:var(--ink);box-shadow:var(--shadow-modal)}

/* ---------- Правый rail (Today) ---------- */

.rightbar{background:var(--bg);border-left-color:var(--line)}
.right-title{font-weight:var(--dj-text-heading-weight)}
.timeline{border-left-color:var(--line)}
.time-block:before{background:var(--muted-decor);border-color:var(--bg)}
.time{color:var(--muted-2)}

/* ---------- Skeleton-плейсхолдер для пустых состояний ---------- */

.empty,.empty-inline{color:var(--muted-2)}

/* ---------- Иконки (v22-icon): наследуют акцент, не трогаю логику стиля,
   только убеждаюсь, что они не выбиваются толщиной из общей тишины ---- */
.v22-icon{opacity:.86}
.v22-icon-large{opacity:1}

@media(max-width:599px){
  .main{padding:var(--dj-space-6) var(--dj-space-4) calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-2))}
}

/* ==== v56.css ==== */
/* Dolojane V3.4.0-alpha.3 — functional polish over the minimal theme. */
.task-state-check.p1,.check.p1{background:#fff1ef}.task-state-check.p2,.check.p2{background:#fff4e5}.task-state-check.p3,.check.p3{background:#edf6ff}.task-state-check.p4,.check.p4{background:#f3f3f3}
.task-state-check.closed,.task-state-check.done,.check.done{background:currentColor}
.v56-subtask-count{font-size:var(--dj-text-caption-size);color:var(--muted);font-weight:var(--dj-text-heading-weight);white-space:nowrap;margin-left:var(--dj-space-2)}
.v56-project-ref,.v56-artifact{display:inline-flex;align-items:center;gap:var(--dj-space-1);border:0;background:transparent;padding:0;font:inherit;color:var(--artifact-color,currentColor);vertical-align:middle}.v56-project-ref .v22-icon,.v56-artifact .v22-icon{color:inherit;width:16px;height:16px}
.project-dot{display:none!important}.v56-project-icon{display:inline-flex;margin-right:var(--dj-space-1);vertical-align:-3px;font-size:var(--dj-icon-standard);font-weight:var(--dj-text-heading-weight);line-height:1}.v56-project-icon .v22-icon{width:16px;height:16px}
.v56-due-ok{color:#2f7a56!important}.v56-due-overdue{color:#c84439!important}.v56-due-neutral{color:var(--ink)!important}
.v38-add-subtask{font-size:0}.v38-add-subtask:after{content:none}.v38-add-subtask .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v56-help-button{padding:var(--dj-space-2)!important}
.v56-calendar-shell{display:grid;gap:var(--dj-space-3)}.v56-month-nav{display:grid;grid-template-columns:38px 1fr auto 38px;align-items:center;gap:var(--dj-space-2)}.v56-month-title{border:0;background:transparent;font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight);padding:var(--dj-space-2);cursor:pointer}.v56-week-grid,.v56-month-grid{display:grid;grid-template-columns:repeat(7,minmax(34px,1fr));gap:var(--dj-space-1)}.v56-month-grid{grid-template-rows:auto repeat(6,minmax(44px,auto));padding-bottom:var(--dj-space-1);box-sizing:border-box}.v56-weekday{text-align:center;color:var(--muted);font-size:var(--dj-text-caption-size);padding:var(--dj-space-1)}.v56-day{min-height:32px;border:0;background:#fff;border-radius:var(--dj-radius-detail);color:var(--ink);position:relative}.v56-day:hover{background:#f1f1f1}.v56-day.selected{box-shadow:inset 0 0 0 2px var(--accent)}.v56-day.today{color:var(--accent);font-weight:var(--dj-text-heading-weight)}.v56-day.muted{color:var(--muted-2,#717171)}.v56-day.has-tasks{font-weight:var(--dj-text-heading-weight)}.v56-day.weekend{color:#c84439}.v56-calendar-agenda{max-height:55vh;overflow:auto;overscroll-behavior:contain;border-top:1px solid var(--line);padding-top:var(--dj-space-2)}.v56-calendar-toolbar{display:flex;gap:var(--dj-space-2)}
.v56-settings-section{margin-top:var(--dj-space-4)}.v56-switch{appearance:none;width:38px!important;height:22px!important;border-radius:var(--dj-radius-pill,999px)!important;background:#d7d7d7!important;position:relative;cursor:pointer;border:0!important}.v56-switch:after{content:'';position:absolute;width:16px;height:16px;background:white;border-radius:var(--dj-radius-circle,50%);left:3px;top:3px;transition:.18s}.v56-switch:checked{background:var(--accent)!important}.v56-switch:checked:after{transform:translateX(16px)}.v56-weekdays{display:flex;gap:var(--dj-space-1);flex-wrap:wrap}.v56-weekday-toggle{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--dj-radius-circle,50%);border:1px solid var(--line-strong);background:#fff;font-size:var(--dj-text-caption-size)}.v56-weekday-toggle.active{background:var(--accent);border-color:var(--accent);color:#fff}
.v56-streak{font-size:var(--dj-text-secondary-size);color:var(--muted)}
.v56-actions .v56-section{margin:var(--dj-space-6) 0}.v56-section-head{width:100%;display:flex;align-items:center;gap:var(--dj-space-2);border:0;background:transparent;padding:var(--dj-space-1) var(--dj-space-1);font-weight:var(--dj-text-heading-weight);text-align:left}.v56-section-head .count{margin-left:auto;color:var(--muted)}.v56-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:var(--dj-space-2);align-items:center}.v56-action-main{min-width:0;text-align:left}.v56-action-title{display:block;font-weight:var(--dj-text-heading-weight);color:var(--action-color,var(--ink))}.v56-expression,.v56-mutations{display:flex;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap;color:var(--muted);font-size:var(--dj-text-secondary-size);margin-top:var(--dj-space-1)}.v56-expression .v56-artifact,.v56-mutations .v56-artifact{font-size:var(--dj-text-secondary-size)}.v56-action-editor{width:min(560px,calc(100vw - 24px));padding:var(--dj-space-4)}.v56-editor-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--dj-space-2);align-items:start}.v56-editor-head input{font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);border:0;padding:var(--dj-space-1);min-width:0}.v56-query{width:100%;min-height:42px;resize:none;margin-top:var(--dj-space-2)}.v56-query.invalid{color:#c84439;border-color:#c84439}.v56-editor-ok:disabled{opacity:.35;cursor:not-allowed}.v56-mutation-bar{display:flex;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap;margin-top:var(--dj-space-2)}.v56-editor-artifacts{display:flex;gap:var(--dj-space-1);flex-wrap:wrap}.v56-editor-artifact{display:inline-flex;gap:var(--dj-space-1);align-items:center;border:1px solid var(--line);border-radius:var(--dj-radius-chip);padding:var(--dj-space-1) var(--dj-space-2);background:#fff;color:var(--artifact-color,var(--ink))}.v56-editor-artifact button{border:0;background:transparent;color:inherit;padding:0}.v56-popup{position:fixed;z-index:10040;min-width:190px;max-width:min(330px,calc(100vw - 16px));max-height:340px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);box-shadow:var(--shadow-modal);padding:var(--dj-space-1)}.v56-popup>button,.v56-popup>label{display:flex;width:100%;min-height:var(--dj-minheight-popup-row,36px);align-items:center;gap:var(--dj-space-2);border:0;background:#fff;padding:var(--dj-space-2);border-radius:var(--dj-radius-popup-row,7px);text-align:left}.v56-popup>button:hover,.v56-popup>label:hover{background:var(--accent-soft)}.v56-popup .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v56-new-tag{display:flex;gap:var(--dj-space-1);border-top:1px solid var(--line);padding-top:var(--dj-space-1)}.v56-new-tag input{min-width:0;flex:1}.v56-tag-actions{margin-left:auto;display:flex;gap:var(--dj-space-1);opacity:0}.v56-popup label:hover .v56-tag-actions{opacity:1}.v56-empty-action{width:100%;min-height:46px;display:flex;align-items:center;justify-content:flex-start;gap:var(--dj-space-3);color:var(--muted);text-align:left}.v56-empty-action .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent)}
.v56-popup.v56-priority-picker{display:flex;gap:var(--dj-space-1);width:max-content;min-width:0;max-width:calc(100vw - 16px);overflow:visible}.v56-popup.v56-priority-picker>button{width:38px!important;flex:0 0 38px;justify-content:center}
.v56-undo{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:11000;background:#1d1d1d;color:#fff;border-radius:var(--dj-radius-button);padding:var(--dj-space-3) var(--dj-space-3);display:flex;align-items:center;gap:var(--dj-space-3);box-shadow:var(--shadow-modal);max-width:min(720px,calc(100vw - 24px))}
.v56-close-day{width:min(390px,calc(100vw - 24px));padding:var(--dj-space-4)}.v56-choice-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--dj-space-2);margin:var(--dj-space-3) 0}.v56-choice-pair .selected{background:var(--accent);color:#fff;border-color:var(--accent)}
.v56-help{display:grid;gap:var(--dj-space-3)}.v56-help section{scroll-margin-top:20px}.v56-help h2{font-size:var(--dj-text-body-size);margin:0 0 var(--dj-space-2)}.v56-help code{background:#f2f2f2;padding:0 var(--dj-space-1);border-radius:var(--dj-radius-detail,3px)}.v56-help ul{margin:var(--dj-space-2) 0;padding-left:calc(var(--dj-space-4) + var(--dj-space-1))}
.v56-status-menu{display:grid;gap:var(--dj-space-1)}.v56-status-menu button{justify-content:flex-start}.v56-status-dot{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:var(--dj-radius-detail)}.v56-status-dot.active{background:#fff}.v56-status-dot.laid{background:#e2f3e8;color:#2f7a56}.v56-status-dot.postponed{background:#fff1cc;color:#93611f}
.v56-stone-row .task-meta .v56-description,.v56-stone-row .chip{display:none}.v56-wall-visuals{display:grid;gap:var(--dj-space-2);margin-top:var(--dj-space-3)}.v56-wall-visual-row{display:flex;align-items:center;gap:var(--dj-space-1)}.v56-wall-visual-row .count{margin-left:auto;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);width:25px;height:25px;display:grid;place-items:center;font-weight:var(--dj-text-heading-weight)}
.habit-history-cell:empty:before{content:none!important}.habit-head span>i,.habit-head span>.info{display:none!important}
.v56-feed-entry{position:relative;padding:var(--dj-space-3) calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-3)) var(--dj-space-3) 0}.v56-feed-actions{position:absolute;right:0;top:7px;display:flex;gap:var(--dj-space-1)}.v56-feed-actions button{border:0;background:transparent;color:var(--muted);padding:var(--dj-space-1)}.v56-feed-toggle{transform:none}.v56-feed.collapsed .compact-feed-last{display:none}.v56-feed.collapsed .v56-feed-toggle{transform:none}
.v56-empty-state{text-align:center;padding:calc(var(--dj-space-8) + var(--dj-space-2)) calc(var(--dj-space-4) + var(--dj-space-1));color:var(--muted)}.v56-empty-state .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);color:var(--accent);margin-bottom:var(--dj-space-2)}
@media(max-width:900px){.v56-action-row{grid-template-columns:minmax(0,1fr) auto auto}}
.v56-day.today{overflow:hidden;isolation:isolate}.v56-day.today::after{content:"";position:absolute;inset:0;border-radius:inherit;box-sizing:border-box;pointer-events:none;border:1px solid rgba(255,255,255,.96);box-shadow:inset 0 0 5px 2px rgba(255,255,255,.98),inset 0 0 13px 5px color-mix(in srgb,var(--accent) 62%,transparent);z-index:2}
.v56-editor-head{grid-template-columns:minmax(0,1fr) repeat(3,36px);align-items:center}.v56-popup.v58-action-palette>button{min-height:24px}
@media(max-width:760px){.v56-calendar-toolbar{display:none}}

/* ==== focus-fixed.css ==== */
/* The Focus sidebar owns one scrollport below its frozen day summary. */
.rightbar{overflow:hidden!important;display:flex;flex-direction:column;min-height:0}
.rightbar-frozen{flex:0 0 auto;position:relative;z-index:1;background:inherit;padding-bottom:var(--dj-space-3)}
.rightbar-focus-actions{display:flex;align-items:center;gap:var(--dj-space-2);min-height:0}
.rightbar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--dj-space-1) var(--dj-space-1) calc(var(--dj-space-6) + var(--dj-space-1))}
.rightbar-schedule-title{margin-top:var(--dj-space-3)}
[data-focus-start]{cursor:pointer;}[data-focus-start]:focus-visible{outline:2px solid #fff;outline-offset:4px;}
.focus-controls .extend-control{display:inline-flex;align-items:center;gap:var(--dj-space-2);min-height:44px;padding:0 var(--dj-space-3);box-sizing:border-box;white-space:nowrap}.focus-controls .extend-control>span{padding:0!important;line-height:var(--dj-text-heading-line-height);white-space:nowrap}.focus-controls .extend-control input{min-width:3ch;width:4ch}.focus-controls .extend-control button{min-height:44px;margin-left:var(--dj-space-1);white-space:nowrap;font:inherit;line-height:var(--dj-text-title-line-height)}
/* The extension row stays readable at 150% text on a 320px phone. */
.focus-controls .extend-control{gap:var(--dj-space-1);padding-inline:var(--dj-space-2);max-width:100%;min-width:0;}
.focus-controls .extend-control input{box-sizing:border-box;width:44px;min-width:44px;min-height:44px;flex:0 0 44px;padding-inline:var(--dj-space-1);}
.focus-controls .extend-control button{margin-left:0;padding-inline:var(--dj-space-2);}
@media(max-width:1024px){.rightbar{display:none}}

/* ==== v57.css ==== */
/* Dolojane V3.4.0-alpha.7 */
.v36-artifacts{display:flex!important;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap;min-height:30px}.v36-artifact{border:0!important;background:transparent!important;padding:var(--dj-space-1) var(--dj-space-1)!important}.v36-artifact[style*="var(--muted)"]{opacity:.58}.v36-artifact:hover{opacity:1!important;background:var(--surface-soft,#f5f3f0)!important}
.v38-add-subtask,.v36-new-subtasks [data-v36-save-add-subtask]{display:inline-flex!important;align-items:center;gap:var(--dj-space-1);font-size:0!important}.v38-add-subtask>span,.v36-new-subtasks [data-v36-save-add-subtask]>span{font-size:var(--dj-text-body-size)}.v38-add-subtask .v22-icon,.v36-new-subtasks [data-v36-save-add-subtask] .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}
.v23-task-circle.p1,.task-state-check.p1,.check.p1{background:#fff1ef!important}.v23-task-circle.p2,.task-state-check.p2,.check.p2{background:#fff4e5!important}.v23-task-circle.p3,.task-state-check.p3,.check.p3{background:#edf6ff!important}.v23-task-circle.p4,.task-state-check.p4,.check.p4{background:#f3f3f3!important}.v23-task-circle.done,.v23-task-circle.failed,.task-state-check.done,.task-state-check.failed{background:currentColor!important}
.v57-palette{position:fixed;z-index:12000;width:218px;display:grid;grid-template-columns:repeat(9,18px);gap:var(--dj-space-1);padding:var(--dj-space-2);background:#fff;border:1px solid var(--line);border-radius:var(--dj-radius-popup);box-shadow:var(--shadow-modal)}.v57-palette button{width:18px;height:18px;border:1px solid rgba(0,0,0,.12);border-radius:var(--dj-radius-chip);padding:0}.v57-system-tag-color{margin-left:auto;color:inherit}.v57-system-tag-color .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.v57-section-head{display:flex!important;align-items:center;gap:var(--dj-space-2);cursor:pointer;color:var(--ink)!important;font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-heading-weight)}.v57-count{margin-left:0;color:var(--muted);font-size:var(--dj-text-secondary-size,12px);font-weight:var(--dj-text-heading-weight)}.v57-section-kind{display:inline-flex;color:var(--accent)}.v57-section-kind .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.v57-object-description{font-size:var(--dj-text-secondary-size);color:var(--muted);min-height:20px;margin-top:var(--dj-space-1);outline:none;white-space:pre-wrap}.v57-object-description:empty:before{content:' ';display:inline-block}.v57-object-description:focus{color:var(--ink)}
.v57-retrieve{font-size:0;color:var(--accent)!important}.v57-retrieve .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.v43-goal-row{grid-template-columns:auto minmax(0,1fr) auto!important}.v57-goal-state{align-self:start;margin:var(--dj-space-3) 0 0 var(--dj-space-3);width:20px;height:20px;padding:0;border:0;background:transparent;color:var(--p4,#888);display:grid;place-items:center}.v57-goal-state.p1{color:var(--p1,#d55242)}.v57-goal-state.p2{color:var(--p2,#d18d34)}.v57-goal-state.p3{color:var(--p3,#568bb0)}.v57-goal-state .v22-icon{width:20px;height:20px}.v57-goal-recurrence{display:inline-flex;margin-left:var(--dj-space-1);vertical-align:-3px}.v57-goal-recurrence .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);color:#2f7a56}
.v57-long-description{margin-top:var(--dj-space-3);border-top:1px solid var(--line);padding-top:var(--dj-space-3)}.v57-long-description summary{cursor:pointer;color:var(--muted);font-size:var(--dj-text-secondary-size)}.v57-long-description [contenteditable]{font-size:var(--dj-text-reading-size);line-height:var(--dj-text-secondary-line-height);outline:none;margin-top:var(--dj-space-3);white-space:pre-wrap}.v57-wall-long{font-size:var(--dj-text-heading-size);line-height:var(--dj-text-caption-line-height);margin-bottom:var(--dj-space-4)}.v57-wall-long [contenteditable]{min-height:34px;outline:none;white-space:pre-wrap}
.v56-help li{margin:var(--dj-space-1) 0}.v56-help p{line-height:var(--dj-text-secondary-line-height)}
@media(max-width:720px){.v57-palette{grid-template-columns:repeat(9,18px)}.v57-wall-long{font-size:var(--dj-text-heading-size)}.v36-artifact span{max-width:120px;overflow:hidden;text-overflow:ellipsis}}
.v57-unified-head:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--dj-radius-button)}.v57-section-toggle{width:25px;height:25px;flex:0 0 25px;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);display:grid;place-items:center;color:var(--muted);background:var(--surface,#fff)}.v57-section-toggle .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v57-unified-head>.v57-count{margin-left:0;min-width:25px;height:25px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-pill,999px);display:inline-grid;place-items:center;background:var(--surface,#fff);font-weight:var(--dj-text-heading-weight)}.v56-section>.v57-unified-head,.v53-action-section>.v57-unified-head,.v52-action-section>.v57-unified-head{margin-bottom:var(--dj-space-3)}
.v17-stone-editor{width:min(620px,calc(100vw - 24px))!important;max-height:calc(100vh - 24px);overflow:visible!important;align-self:center}.v17-stone-editor .v17-entity-title-row{align-items:flex-start}.v57-stone-heading{display:flex;align-items:center;gap:var(--dj-space-2)}.v57-stone-page-status{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--dj-radius-chip);background:#fff;padding:var(--dj-space-2)}.v57-stone-page-status .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v57-stone-status-menu{position:fixed;z-index:12020;display:grid;grid-template-columns:36px;gap:var(--dj-space-1);padding:var(--dj-space-2);background:#fff;border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);box-shadow:var(--shadow-modal)}.v57-stone-status-menu button{width:36px;height:36px;display:grid;place-items:center;border:1px solid transparent;border-radius:var(--dj-radius-popup-row);padding:var(--dj-space-2)}.v57-stone-status-menu .laid{background:#e2f3e8;color:#2f7a56}.v57-stone-status-menu .active{background:#fff;border-color:var(--line)}.v57-stone-status-menu .postponed{background:#fff1cc;color:#93611f}.v57-stone-status-menu .confirm{margin-top:var(--dj-space-1);background:var(--accent);color:#fff}.v57-stone-status-menu [data-v57-stone-choice].selected{outline:2px solid var(--ink);outline-offset:1px}.v57-stone-status-menu .v22-icon{width:20px;height:20px}
.v40-artifacts>button{display:inline-flex;align-items:center;gap:var(--dj-space-1);border:0;background:transparent;padding:var(--dj-space-1) var(--dj-space-1);font:inherit;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight);color:inherit}.v40-artifacts>button:hover{background:var(--surface-soft,#f5f3f0);border-radius:var(--dj-radius-button)}.v40-artifact-popup>button.selected{background:var(--surface-soft,#f5f3f0);font-weight:var(--dj-text-heading-weight)}
.v56-action-detail .v56-mutations{width:100%}.v56-action-detail .v56-mutations>[data-v56-run-action]{margin-left:auto}.v56-task-properties{display:inline-flex;align-items:center;gap:var(--dj-space-1);flex-wrap:wrap}.v57-priority-meta{display:inline-flex;align-items:center;gap:var(--dj-space-1)}.v57-priority-meta .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v57-priority-meta.p1{color:var(--p1,#d55242)}.v57-priority-meta.p2{color:var(--p2,#d18d34)}.v57-priority-meta.p3{color:var(--p3,#568bb0)}.v57-priority-meta.p4{color:var(--muted)}
.section .empty [data-v56-dg],.section .empty [data-v56-rest]{border:0;background:transparent;padding:0;color:var(--accent);font:inherit;font-weight:var(--dj-text-heading-weight);text-decoration:none;}.v56-rest-day{display:flex;align-items:center;justify-content:center;gap:var(--dj-space-3);min-height:86px;color:var(--muted)}.v56-rest-day>span{font-size:var(--dj-text-title-size)}.v56-rest-day strong{font-weight:var(--dj-text-heading-weight)}
.compact-feed-head{display:flex!important;align-items:center;justify-content:flex-end;min-height:40px}.compact-feed-actions{display:flex;align-items:center;gap:var(--dj-space-1);margin-left:auto!important;flex:0 0 auto}.compact-feed-last{width:100%;padding:0 var(--dj-space-3) var(--dj-space-3);box-sizing:border-box}.v56-feed.collapsed>.compact-feed-last{display:none}.v56-feed-toggle{transform:none!important}.compact-feed-actions .btn{flex:0 0 auto}

/* ==== v58.css ==== */
/* Dolojane V3.4.0-alpha.8 */
.v58-task-inline-icons,.v58-goal-inline-icons,.v58-focus-inline-icons{display:inline-flex;align-items:center;gap:var(--dj-space-1);margin-left:var(--dj-space-2);vertical-align:middle;white-space:nowrap}.v58-task-inline-icons .v39-cumulative-mark,.v58-task-inline-icons .v56-day-goal,.v58-focus-inline-icons .v39-cumulative-mark{margin:0}.v58-task-inline-icons .v22-icon,.v58-goal-inline-icons .v22-icon,.v58-focus-inline-icons .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v58-task-inline-icons .v48-repeat-icon,.v58-goal-inline-icons .v48-repeat-icon,.v58-focus-inline-icons .v48-repeat-icon{margin:0}.v44-goal-meta>.v58-goal-recurrence-date{display:inline-flex;margin:0 var(--dj-space-1) 0 0;vertical-align:-3px}
.v58-priority-flag{display:inline-flex;align-items:center;color:var(--muted)}.v58-priority-flag .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v58-priority-flag.p1{color:var(--p1,#d55242)!important}.v58-priority-flag.p2{color:var(--p2,#d18d34)!important}.v58-priority-flag.p3{color:var(--p3,#568bb0)!important}.v58-priority-flag.p4{color:var(--p4,#7b7b7b)!important}
.v16-tag-section.system>.v57-unified-head{width:100%;justify-content:flex-start!important;text-align:left!important}.v57-unified-head>.v57-count{order:initial}.v57-section-kind{flex:0 0 auto}.v57-section-kind>.v48-repeat-icon{margin:0}.v58-section-repeat{display:inline-flex}.v16-system-tag-row>.v24-favorite-toggle{margin-left:auto!important}.v16-system-tag-row>.v57-system-tag-color{margin-left:var(--dj-space-1)!important}
.v58-stone-lay{background:#e2f3e8!important;border-color:#c6e4d1!important;color:#2f7a56!important}.v58-stone-lay:hover{background:#d4ecdc!important}.v58-stone-lay .v22-icon,.v57-retrieve .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.v56-action-detail .v56-mutations{align-items:center;min-height:34px}.v56-action-detail .v58-action-apply{margin-left:auto!important;margin-right:var(--dj-space-2);align-self:center;display:inline-grid;place-items:center}.v58-icon-only{width:34px;height:34px;padding:var(--dj-space-2)!important;display:inline-grid!important;place-items:center}.v58-icon-only .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.section .empty:has(.v56-rest-day){min-height:0!important;box-sizing:border-box;display:grid;place-items:center;padding-block:var(--dj-space-2)!important}.v56-rest-day{width:100%;min-height:0!important;padding:var(--dj-space-2) var(--dj-space-3);box-sizing:border-box}.v56-rest-day>span{font-size:var(--dj-text-title-size)}
.v56-expression .v56-artifact,.v56-mutations .v56-artifact{color:var(--artifact-color,currentColor)}
.rightbar .time-block .time-title{display:inline!important;width:auto!important;vertical-align:middle}.rightbar .v58-focus-inline-icons{margin-left:var(--dj-space-1);vertical-align:middle}
.v58-tag-chip{display:inline-flex;align-items:center;gap:var(--dj-space-1)}.v58-tag-chip>.v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);color:currentColor}.v58-action-palette{display:grid!important;grid-template-columns:repeat(9,22px);gap:var(--dj-space-2);min-width:0!important;width:auto!important;padding:var(--dj-space-2)!important}.v58-action-palette>button{display:block!important;width:22px!important;height:22px!important;padding:0!important;border:1px solid rgba(0,0,0,.12)!important;border-radius:var(--dj-radius-popup-row)!important}.v56-action-editor [data-v56-action-color]{color:inherit}.v56-action-editor [data-v56-action-color] .v22-icon{color:currentColor}
[data-v56-action-archive],.v18-habit-archive-button,.archive-panel>.btn{display:inline-flex!important;align-items:center;gap:var(--dj-space-2);width:auto!important;min-width:max-content!important}.v56-actions>[data-v56-action-archive] .v22-icon{flex:0 0 auto}
.v19-wall-stones{margin-top:var(--dj-space-2)!important}.v19-wall-stones button{width:26px;height:24px}.v19-wall-stones .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}

/* ==== v59.css ==== */
/* Dolojane V3.4.0-alpha.10 */
.v59-wall-visuals{display:grid;gap:var(--dj-space-2);margin-top:var(--dj-space-3)}.v59-wall-visuals .v56-wall-visual-row{display:flex;align-items:center;gap:var(--dj-space-2);min-height:26px}.v59-wall-visuals .count{order:0;margin:0!important;width:23px;height:23px;flex:0 0 23px}.v59-wall-stones{display:flex;align-items:center;gap:var(--dj-space-1);min-width:0;flex-wrap:wrap}.v59-wall-stone{display:inline-flex;align-items:center;gap:var(--dj-space-1);border:0;background:transparent;padding:0;color:var(--artifact-color);font-weight:var(--dj-text-heading-weight)}.v59-wall-stone .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v59-wall-stone img{display:block;width:24px;height:20px;object-fit:contain}
.v17-stone-editor .form-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(250px,280px)!important;align-items:end!important;column-gap:var(--dj-space-3)!important}.v17-stone-editor .v59-stone-wall{grid-column:1;justify-self:start!important;width:100%!important;text-align:left!important}.v17-stone-editor .v59-stone-wall .v38-wall-picker{margin-left:0!important;margin-right:auto!important}.v17-stone-editor .v59-stone-date{grid-column:2;justify-self:end!important;width:100%!important}.v17-stone-editor .v59-stone-date .v30-stone-deadline-row{grid-template-columns:minmax(0,1fr) auto!important;gap:var(--dj-space-2)!important}.v17-stone-editor .v59-stone-no-date{white-space:nowrap;max-width:106px;margin-left:auto!important}.v17-stone-editor .v59-stone-wall select,.v17-stone-editor .v59-stone-date input{width:100%;min-width:0}.v59-stone-project-row{display:flex!important;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap!important;overflow:visible!important;padding:var(--dj-space-2)!important}.v59-stone-project-row>[data-project]{width:auto!important;min-width:max-content;border:1px solid var(--line);border-radius:var(--dj-radius-chip);padding:var(--dj-space-2) var(--dj-space-2)}
.v50-or-step{position:relative;padding-inline-start:calc(var(--dj-space-8) + var(--dj-space-3))!important}.v50-or-step::before{content:"";position:absolute;inset-inline-start:20px;top:22px;bottom:22px;border-inline-start:2px solid color-mix(in srgb,var(--accent) 70%,transparent)}.v50-or-task{position:relative}.v50-or-task::before{content:"";position:absolute;z-index:1;inset-inline-start:-21px;top:50%;width:21px;border-top:2px solid color-mix(in srgb,var(--accent) 70%,transparent)}.v50-or-marker{inset-inline-start:5px!important;width:31px!important;height:25px!important;border-radius:var(--dj-radius-detail)!important;background:var(--panel)!important;box-shadow:0 0 0 4px var(--panel);font-size:var(--dj-text-caption-size)!important}.v50-or-tasks{gap:0!important}.v50-or-task .task-row-v11{margin:0!important}.v50-ritual-task-list .v56-task-properties>.v58-priority-flag,.v50-ritual-task-list .v57-priority-meta{display:none!important}
.v56-task-properties .v56-artifact[data-v17-stone-route]{color:var(--artifact-color)!important}.v56-task-properties .v56-artifact[data-v17-stone-route] .v22-main>*{stroke:currentColor!important}.v56-task-properties .v56-artifact[data-v17-stone-route] .v22-icon{color:currentColor!important}.v56-action-detail .v56-expression,.v56-action-detail .v56-mutations{min-height:38px;align-items:center;color:var(--ink)}.v56-action-detail .v59-action-label{color:var(--ink)!important;font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-secondary-size)}.v56-action-detail .v59-action-plain{color:var(--ink);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight)}.v56-action-detail .v59-action-apply{margin-left:auto!important;margin-right:var(--dj-space-2)!important;align-self:center!important;display:grid!important;place-items:center!important}.v59-action-title-wrap{display:grid!important;grid-template-columns:50px minmax(0,1fr);column-gap:var(--dj-space-2);align-items:center}.v59-action-title-wrap>.v59-action-large-icon{grid-column:1;grid-row:1/3}.v59-action-title-wrap>.page-title,.v59-action-title-wrap>.subtitle{grid-column:2}.v59-action-title-wrap>.page-title{grid-row:1;margin-bottom:0}.v59-action-title-wrap>.subtitle{grid-row:2}.v59-action-large-icon{display:inline-flex;align-items:center;justify-content:center;width:45px;height:45px;color:var(--accent)}.v59-action-large-icon .v22-icon{width:var(--dj-icon-accent,52px);height:var(--dj-icon-accent,52px)}.v56-expression .v58-priority-flag.p1,.v56-mutations .v58-priority-flag.p1{color:#d55242!important}.v56-expression .v58-priority-flag.p2,.v56-mutations .v58-priority-flag.p2{color:#d18d34!important}.v56-expression .v58-priority-flag.p3,.v56-mutations .v58-priority-flag.p3{color:#568bb0!important}.v56-expression .v58-priority-flag.p4,.v56-mutations .v58-priority-flag.p4{color:#7b7b7b!important}.v56-action-detail~[data-v15-task-row] .v58-priority-flag,html[data-dj-action-detail] main [data-v15-task-row] .v57-priority-meta,html[data-dj-action-detail] main [data-v15-task-row] .v58-task-inline-icons>.v58-priority-flag,html[data-dj-action-detail] main [data-v15-task-row] .v56-task-properties>.v58-priority-flag{display:none!important}
.v19-wall-card>.entity-link{height:auto!important}.v19-wall-stones{position:relative;z-index:2;display:flex!important;align-items:center;gap:var(--dj-space-2);min-height:27px!important;margin:var(--dj-space-2) calc(var(--dj-space-4) + var(--dj-space-1)) var(--dj-space-4)!important}.v59-cathedral-stone{display:grid!important;place-items:center;width:27px!important;height:25px!important;padding:0!important;border:0;background:transparent}.v59-cathedral-stone .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important;color:currentColor}.v59-cathedral-stone img{display:block;width:26px;height:22px;object-fit:contain}.v43-goal-main>.v22-icon,.v43-goal-main>.v43-inline-cumulative{display:none!important}
@media(max-width:720px){.v17-stone-editor .form-grid{grid-template-columns:1fr!important}.v17-stone-editor .v59-stone-wall,.v17-stone-editor .v59-stone-date{grid-column:1}}

/* ==== v60.css ==== */
/* Dolojane V3.4.0-alpha.10 */
.v60-mutation-remove{text-decoration:line-through 2px currentColor!important;text-decoration-skip-ink:none;opacity:.72}.v60-artifact-choice{display:grid;grid-template-columns:22px minmax(110px,1fr) auto;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2) var(--dj-space-2)}.v60-artifact-choice>.v22-icon{color:currentColor}.v60-artifact-choice .v56-tag-actions{display:flex;gap:var(--dj-space-1);margin-left:auto}.v60-artifact-choice .v56-tag-actions button{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:currentColor}
.v56-feed-toggle.v60-feed-down,.v56-feed.collapsed .v56-feed-toggle.v60-feed-down,.v56-feed-toggle.v60-feed-up,.v56-feed:not(.collapsed) .v56-feed-toggle.v60-feed-up{transform:none!important}.v56-feed-toggle .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:currentColor}
[data-v38-tag-artifact],.v56-project-ref,.v39-task-project,.v58-tag-chip{color:var(--artifact-color,currentColor)!important}[data-v38-tag-artifact] .v22-icon *,[data-v15-task-row] .v58-tag-chip .v22-icon *,[data-v15-task-row] .v56-project-ref .v22-icon *,[data-v15-task-row] .v39-task-project .v22-icon *{stroke:currentColor!important;color:currentColor!important}
.v60-wall-head{display:inline-flex;align-items:center;gap:var(--dj-space-2);white-space:nowrap}.v60-wall-head>.count{margin:0!important}.v59-wall-stone.laid .v19-stone-icon{width:29px!important;height:23px!important}.v60-laid-wall-stone{display:block;width:29px;height:23px;background:var(--artifact-color);-webkit-mask:url('assets/v17/laid-stone.png') center/contain no-repeat;mask:url('assets/v17/laid-stone.png') center/contain no-repeat}
.v56-action-detail>.v56-expression,.v56-action-detail>.v56-mutations{padding-left:var(--dj-space-3)!important}.v56-action-detail .v58-priority-flag .v22-icon *,.v56-expression .v58-priority-flag .v22-icon *,.v56-mutations .v58-priority-flag .v22-icon *{stroke:currentColor!important;color:currentColor!important}.v56-expression .v58-priority-flag.p1,.v56-mutations .v58-priority-flag.p1{color:#d55242!important}.v56-expression .v58-priority-flag.p2,.v56-mutations .v58-priority-flag.p2{color:#d18d34!important}.v56-expression .v58-priority-flag.p3,.v56-mutations .v58-priority-flag.p3{color:#568bb0!important}.v56-expression .v58-priority-flag.p4,.v56-mutations .v58-priority-flag.p4{color:#7b7b7b!important}
.v50-or-step{padding-inline-start:calc(var(--dj-space-8) + var(--dj-space-4))!important}.v50-or-step::before{inset-inline-start:23px!important;top:20px!important;bottom:20px!important;border-inline-start:2px solid var(--accent)!important}.v50-or-task::before{inset-inline-start:-25px!important;width:25px!important;border-top:2px solid var(--accent)!important}.v50-or-marker{inset-inline-start:7px!important;border:1px solid var(--accent)!important;color:var(--accent)!important;font-weight:var(--dj-text-heading-weight)!important}
.v43-goal-main>.v22-icon,.v43-goal-main .v43-inline-cumulative{display:none!important}.v43-goal-progress[data-v60-number]{cursor:pointer}
.v60-artifact-choice-hint{margin:var(--dj-space-1) var(--dj-space-2) var(--dj-space-1);color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}.v60-artifact-choice{grid-template-columns:22px minmax(90px,1fr) auto}.v60-artifact-choice .v56-tag-actions button{display:inline-flex;align-items:center;justify-content:center;gap:var(--dj-space-1,var(--dj-space-1));width:auto;height:auto;min-height:44px;padding:0 var(--dj-space-2,var(--dj-space-2));border-radius:var(--dj-radius-popup-row,7px);white-space:nowrap}.v60-artifact-choice .v56-tag-actions .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}

/* ==== v61.css ==== */
/* Dolojane V3.4.0-alpha.11 */
.v56-calendar-agenda{max-height:none!important;overflow:visible!important;overscroll-behavior:auto!important}
.v56-month-nav{grid-template-columns:38px minmax(0,1fr) 38px!important}.v61-month-center{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:var(--dj-space-2);min-width:0}.v61-month-center .v56-month-title{grid-column:2;padding-inline:0;white-space:nowrap}.v61-month-center .v56-today-jump{grid-column:3;justify-self:start;white-space:nowrap}
.calendar-task-v11>div{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:var(--dj-space-1);text-align:left}.calendar-task-v11 .calendar-task-main{order:-20;margin:0!important;text-align:left!important}.calendar-task-v11>div>.v39-cumulative-mark,.calendar-task-v11>div>.v43-inline-cumulative,.calendar-task-v11>div>.v48-repeat-icon{order:-10}.calendar-task-v11 .calendar-project-link{margin-left:0!important}.agenda-tasks,.calendar-task-v11{justify-items:stretch;text-align:left!important}
.v56-streak{color:var(--ink)!important}
.v56-expression .v61-query-operator{color:var(--ink);font-weight:var(--dj-text-heading-weight)}
.v56-popup button{pointer-events:auto}.v60-artifact-choice{pointer-events:auto}.v60-artifact-choice .v56-tag-actions{opacity:1!important;visibility:visible!important}
.v17-stone-editor .v59-stone-wall{justify-self:start!important;text-align:left!important}.v17-stone-editor .v59-stone-date{justify-self:end!important}.v17-stone-editor .v59-stone-no-date{margin-left:auto!important}

.v50-or-step{isolation:isolate}.v50-or-step::before{z-index:0!important;top:18px!important;bottom:18px!important;border-inline-start:2px solid var(--accent)!important}.v50-or-task::before{z-index:0!important;border-top:2px solid var(--accent)!important}.v50-or-marker{z-index:3!important;background:var(--panel)!important;box-shadow:0 0 0 4px var(--panel)!important}

/* ==== v62.css ==== */
/* Dolojane V3.4.0-alpha.12 */
.v56-day.today{inline-size:100%!important;block-size:32px;min-height:32px;justify-self:stretch!important;border-radius:var(--dj-radius-detail)!important;color:var(--accent)!important;font-weight:var(--dj-text-heading-weight)!important}.v56-day.today:hover{filter:brightness(.98)}.v56-day.today.selected{box-shadow:inset 0 0 0 2px var(--accent)!important}
.calendar-task-v11.main,.calendar-task-v11.v62-main-goal{display:grid!important;grid-template-columns:8px minmax(0,1fr) auto!important;align-items:center!important;justify-items:stretch!important;inline-size:100%!important;min-width:0!important;min-height:0!important;padding:var(--dj-space-2) var(--dj-space-2)!important;margin:0!important;text-align:left!important}.calendar-task-v11.main>div,.calendar-task-v11.v62-main-goal>div{display:flex!important;align-items:center!important;justify-content:flex-start!important;align-content:center!important;flex-wrap:wrap!important;min-width:0!important;gap:var(--dj-space-1)!important;padding:0!important;margin:0!important;text-align:left!important}.calendar-task-v11 .v62-calendar-main-star{display:inline-flex;align-items:center;flex:0 0 auto;order:-15;color:var(--accent)}.calendar-task-v11 .v62-calendar-main-star .v22-icon{width:16px;height:16px}
[data-v15-task-row] .task-meta{display:flex!important;align-items:center!important;align-content:center!important;flex-wrap:wrap!important;min-width:0!important;overflow:visible!important}[data-v15-task-row] .v56-task-properties{display:inline-flex!important;align-items:center!important;flex:1 1 auto!important;flex-wrap:wrap!important;min-width:0!important;gap:var(--dj-space-1)!important}[data-v15-task-row] .v56-task-properties>*{flex:0 0 auto}
.v56-action-detail [data-v62-artifact],.v56-action-editor [data-v62-artifact],.v56-popup [data-v62-artifact]{color:var(--artifact-color,currentColor)!important}.v56-popup .priority-flag{display:grid!important;place-items:center!important;inline-size:38px!important;block-size:36px!important;padding:0!important;color:var(--artifact-color,currentColor)!important}.v56-popup .priority-flag .v22-icon{inline-size:var(--dj-icon-standard,20px);block-size:var(--dj-icon-standard,20px)}
.v17-stone-editor .v59-stone-date .v30-stone-deadline-row{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:var(--dj-space-2)!important;width:100%!important}.v17-stone-editor .v59-stone-date .v30-stone-deadline-row input{flex:0 1 154px!important;min-width:106px!important;width:154px!important}.v17-stone-editor .v59-stone-no-date{flex:0 0 auto!important;margin-left:0!important;white-space:nowrap!important}


/* ==== v63.css ==== */
/* Dolojane V3.4.0-alpha.13 */
.v57-stone-heading>[data-v57-stone-status]{display:none!important}.v63-stone-page-status{display:grid!important;flex:0 0 34px!important}.v57-stone-status-menu [data-v57-stone-confirm]{display:none!important}
[data-v15-task-row] .task-meta{display:flex!important;align-items:center!important;align-content:center!important;flex-wrap:wrap!important;column-gap:var(--dj-space-2)!important;row-gap:var(--dj-space-1)!important;min-width:0!important;overflow:visible!important}[data-v15-task-row] .v56-task-properties{display:contents!important}[data-v15-task-row] .task-meta .v56-artifact,[data-v15-task-row] .task-meta .v56-project-ref,[data-v15-task-row] .task-meta .v58-tag-chip,[data-v15-task-row] .task-meta .v39-task-project{flex:0 0 auto!important;max-width:100%!important}
.v56-expression [data-v62-artifact="priority:1"],.v56-mutations [data-v62-artifact="priority:1"]{--artifact-color:#d55242!important;color:#d55242!important}.v56-expression [data-v62-artifact="priority:2"],.v56-mutations [data-v62-artifact="priority:2"]{--artifact-color:#d18d34!important;color:#d18d34!important}.v56-expression [data-v62-artifact="priority:3"],.v56-mutations [data-v62-artifact="priority:3"]{--artifact-color:#568bb0!important;color:#568bb0!important}.v56-expression [data-v62-artifact="priority:4"],.v56-mutations [data-v62-artifact="priority:4"]{--artifact-color:#7b7b7b!important;color:#7b7b7b!important}.v56-expression [data-v62-artifact] .v22-icon *,.v56-mutations [data-v62-artifact] .v22-icon *{stroke:currentColor!important;color:currentColor!important}
.v56-wall-visual-row.laid{display:flex!important;align-items:flex-start!important;flex-wrap:wrap!important;min-width:0!important}.v56-wall-visual-row.laid>.v59-wall-stones{display:flex!important;align-items:center!important;align-content:center!important;flex:1 1 180px!important;max-width:100%!important;min-width:0!important;flex-wrap:wrap!important;gap:var(--dj-space-1)!important}.v56-wall-visual-row.laid .v59-wall-stone{display:inline-flex!important;flex:0 0 auto!important;margin:0!important}
.v50-or-drop{display:none!important}.v63-global-suggest{z-index:13000!important}.v63-global-suggest>button{color:inherit!important}.v63-global-suggest .v22-icon *{stroke:currentColor!important;color:currentColor!important}

/* ==== v64.css ==== */
/* Dolojane V3.4.0-alpha.14 — Calendar, Ritual OR and Artifact flow fixes. */
.v61-month-center .v56-today-jump{display:grid!important;place-items:center!important}

.v26-ritual-task-list>.v2-or-group{margin:0!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;padding:0!important;min-width:0!important}
.v26-ritual-task-list>.v2-or-group:last-child{border-bottom:0!important}
.v26-ritual-task-list>.v2-or-group>legend{margin:0 var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-1) var(--dj-space-1)}
.v26-ritual-task-list>.v2-or-group>label{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:var(--dj-space-4)!important;padding:var(--dj-space-3) var(--dj-space-3)!important;border-bottom:1px solid var(--line)!important;min-width:0!important}
.v26-ritual-task-list>.v2-or-group>label:last-child{border-bottom:0!important}
.v26-ritual-task-list>.v2-or-group>label>span{display:flex!important;align-items:center!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:var(--dj-space-2)!important;min-width:0!important}
.v26-ritual-task-list>.v2-or-group>label>span>.v22-icon{flex:0 0 18px!important}
.v26-ritual-task-list>.v2-or-group>label>span>span{min-width:0!important}

.v17-ritual-items:not(.v50-ritual-task-list)>li[data-v17-ritual-order]>span:first-child{display:none!important}
.v50-or-drop{display:none!important}

[data-v15-task-row] .task-row-main{width:100%!important;max-width:100%!important;min-width:0!important}
[data-v15-task-row] .task-meta{display:flex!important;align-items:center!important;align-content:flex-start!important;flex-flow:row wrap!important;gap:var(--dj-space-1) var(--dj-space-2)!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important}
[data-v15-task-row] .task-meta>.v56-task-properties{display:contents!important}
[data-v15-task-row] .task-meta :is(.v56-artifact,.v56-project-ref,.v58-tag-chip,.v39-task-project,[data-v38-tag-artifact]){display:inline-flex!important;align-items:center!important;flex:0 0 auto!important;width:max-content!important;max-width:100%!important;white-space:nowrap!important;margin:0!important}
[data-v15-task-row] .task-meta :is(.v56-artifact,.v56-project-ref,.v58-tag-chip,.v39-task-project,[data-v38-tag-artifact])>span{min-width:0;overflow:hidden;text-overflow:ellipsis}

.v63-global-suggest.v64-priority-suggestions{display:grid!important;grid-template-columns:repeat(4,38px)!important;gap:var(--dj-space-1)!important;width:max-content!important;min-width:0!important;padding:var(--dj-space-1)!important}
.v63-global-suggest>button{color:var(--artifact-color,currentColor)!important}
.v63-global-suggest>.v64-priority-suggestion{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;min-height:38px!important;padding:var(--dj-space-2)!important}
.v63-global-suggest>.v64-priority-suggestion .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important;margin:0!important}
.v63-global-suggest>.v64-priority-suggestion .v22-icon *{stroke:currentColor!important;color:currentColor!important}

/* ==== v65.css ==== */
/* Dolojane V3.4.0-alpha.15 — full-width Artifact flow and priority fidelity. */

/* Task tools float over the title only; lower Artifact lines may use the full card width. */
[data-v15-task-row]{grid-template-columns:18px 18px minmax(0,1fr)!important;position:relative!important}
[data-v15-task-row]:has(>.v17-select-box){grid-template-columns:18px 18px minmax(0,1fr)!important}
[data-v15-task-row]>.task-row-main,[data-v15-task-row]:has(>.v17-select-box)>.task-row-main{grid-column:3/-1!important;grid-row:1!important;width:100%!important;max-width:100%!important;min-width:0!important}
[data-v15-task-row]>.task-row-tools,[data-v15-task-row]:has(>.v17-select-box)>.task-row-tools{position:absolute!important;z-index:3;inset-inline-end:12px;top:10px;display:flex!important;width:auto!important;min-width:0!important}
[data-v15-task-row]:has(>.task-row-tools)>.task-row-main>.task-row-title{display:inline-block!important;max-width:calc(100% - 78px)!important;white-space:normal!important}
[data-v15-task-row] .task-meta{box-sizing:border-box!important;width:100%!important;max-width:100%!important;padding-inline:0!important;display:flex!important;flex-flow:row wrap!important;align-items:center!important;align-content:flex-start!important;justify-content:flex-start!important;gap:var(--dj-space-1) var(--dj-space-2)!important}
[data-v15-task-row] .task-meta>.v56-task-properties{display:contents!important}
[data-v15-task-row] .task-meta :is(.v56-artifact,.v56-project-ref,.v58-tag-chip,.v39-task-project,[data-v38-tag-artifact]){display:inline-flex!important;flex:0 0 auto!important;width:max-content!important;max-width:100%!important;margin:0!important;white-space:nowrap!important}

/* Every Calendar Task starts with the current priority color. */
.calendar-task-v11>.priority-bar,.calendar-task>.priority-bar{background:#7b7b7b!important}
.calendar-task-v11>.priority-bar.p1,.calendar-task>.priority-bar.p1{background:#d55242!important}
.calendar-task-v11>.priority-bar.p2,.calendar-task>.priority-bar.p2{background:#d18d34!important}
.calendar-task-v11>.priority-bar.p3,.calendar-task>.priority-bar.p3{background:#568bb0!important}
.calendar-task-v11>.priority-bar.p4,.calendar-task>.priority-bar.p4{background:#7b7b7b!important}

/* The date shortcut is an invariant, including when Today is already selected. */
.v61-month-center>.v56-today-jump{display:grid!important;visibility:visible!important;opacity:1!important;place-items:center!important}

/* Keep only obsolete standalone markers hidden. The SVG inside a Task state button is its visible state. */
[data-v17-ritual-sort]>li[data-v17-ritual-order]:not(.v39-or-row)>span:first-child{display:none!important}
.v50-or-drop{display:none!important}

/* Priority autocomplete: hard colors prevent theme/system color inheritance. */
.v63-global-suggest>.v64-priority-suggestion.p1{--artifact-color:#d55242!important;color:#d55242!important}
.v63-global-suggest>.v64-priority-suggestion.p2{--artifact-color:#d18d34!important;color:#d18d34!important}
.v63-global-suggest>.v64-priority-suggestion.p3{--artifact-color:#568bb0!important;color:#568bb0!important}
.v63-global-suggest>.v64-priority-suggestion.p4{--artifact-color:#7b7b7b!important;color:#7b7b7b!important}
.v63-global-suggest>.v64-priority-suggestion>.v22-icon{color:inherit!important;stroke:currentColor!important}
.v63-global-suggest>.v64-priority-suggestion>.v22-icon *{color:inherit!important;stroke:currentColor!important}

@media(max-width:650px){
  [data-v15-task-row]{grid-template-columns:17px 17px minmax(0,1fr)!important}
  [data-v15-task-row]:has(>.v17-select-box){grid-template-columns:17px 17px minmax(0,1fr)!important}
  [data-v15-task-row]>.task-row-tools{inset-inline-end:5px}
  [data-v15-task-row]:has(>.task-row-tools)>.task-row-main>.task-row-title{max-width:calc(100% - 38px)!important}
}

/* ==== v66.css ==== */
/* Dolojane V3.4.0-alpha.16 — Daily Focus, Calendar, Ritual OR and History. */

/* Daily Focus schedule marker follows the Task priority. */
.rightbar .time-block.v66-priority-1::before{background:#d55242!important}
.rightbar .time-block.v66-priority-2::before{background:#d18d34!important}
.rightbar .time-block.v66-priority-3::before{background:#568bb0!important}
.rightbar .time-block.v66-priority-4::before{background:#7b7b7b!important}

/* The Today shortcut is useful only while another Calendar date is selected. */
.v56-month-nav.v66-calendar-is-today .v56-today-jump{display:none!important}
.v56-month-nav:not(.v66-calendar-is-today) .v61-month-center>.v56-today-jump{display:grid!important;visibility:visible!important;opacity:1!important}

/* The open-state glyph remains visible while the OR split popup is open. */
.v50-ritual-task-list .task-state-check:not(.closed)>.v22-icon{display:inline-flex!important}

/* ==== v67.css ==== */
/* Dolojane V3.5.0-alpha.1 — priority schedule markers and stable Ritual OR circles. */

/* Use the same palette as Task priority circles, including after every Rightbar re-render. */
.rightbar .timeline .time-block::before{
  background:var(--v67-schedule-priority,var(--muted-decor,var(--muted-2)))!important;
  border-color:var(--bg)!important;
}

/* Only the modern Task state control remains in Ritual rows. */
.v50-ritual-task-list [data-v15-task-row]>.task-state-check{
  visibility:visible!important;
  border:2.4px solid currentColor!important;
  border-radius:var(--dj-radius-circle,50%)!important;
  box-shadow:none!important;
}
.v50-ritual-task-list [data-v15-task-row]>.task-state-check.closed{
  background:currentColor!important;
  box-shadow:inset 0 0 0 3px #fff!important;
}

/* Reserve the exact width of the floating Task controls on every content line. */
[data-v15-task-row]:has(>.task-row-tools)>.task-row-main{
  box-sizing:border-box!important;
  padding-inline-end:var(--v67-task-tools-space,calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-4) + var(--dj-space-1)))!important;
}
[data-v15-task-row]:has(>.task-row-tools)>.task-row-main>.task-row-title{
  max-width:100%!important;
  overflow-wrap:anywhere!important;
}
[data-v15-task-row] .task-meta{
  min-width:0!important;
}
[data-v15-task-row] .task-meta>*{
  max-width:100%!important;
}

@media(max-width:650px){
  [data-v15-task-row]:has(>.task-row-tools)>.task-row-main{
    padding-inline-end:var(--v67-task-tools-space,calc(var(--dj-space-8) + var(--dj-space-3)))!important;
  }
}

/* ==== v68.css ==== */
/* Dolojane V3.5.0-alpha.1 — optional Modern habit-cell geometry. */
html[data-v68-modern="true"] .v16-habit-row .habit-history-cell,
html[data-v68-modern="true"] .v16-habit-row .weight-day,
html[data-v68-modern="true"] .v17-ritual-card .ritual-square{
  border-radius:var(--design-radius-tl,var(--v68-radius-tl,6px)) var(--design-radius-tr,var(--v68-radius-tr,6px)) var(--design-radius-br,var(--v68-radius-br,6px)) var(--design-radius-bl,var(--v68-radius-bl,6px))!important;
  transform:translateY(calc(-1 * var(--design-square-lift,0px))) rotate(var(--design-square-angle,var(--v68-angle,0deg)));
  transform-origin:center;
}

/* The Main Goal action is text, not a native raised button. */
.v14-aimless [data-v56-aim]{
  appearance:none;
  border:0;
  outline:0;
  background:transparent;
  box-shadow:none;
  padding:0;
  color:var(--accent);
  font:inherit;
  font-weight:var(--dj-text-heading-weight);
  text-decoration:none;
  cursor:pointer;
}
.v14-aimless [data-v56-aim]:focus-visible{
  outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);
  outline-offset:3px;
  border-radius:3px;
}

/* Weight keeps its values and click targets, but Modern renders every day as a bathroom scale. */
html[data-v68-modern="true"] .v68-weight-row .habit-weight-grid{
  gap:var(--dj-space-2);
  align-items:flex-end;
}
html[data-v68-modern="true"] .v68-weight-row .weight-day{
  --v68-scale-needle:#336a4e;
  position:relative;
  box-sizing:border-box;
  width:46px;
  min-width:46px;
  height:40px;
  padding:var(--dj-space-4) var(--dj-space-1) var(--dj-space-1);
  overflow:hidden;
  border:1px solid color-mix(in srgb,#2f7853 35%,transparent)!important;
  border-radius:12px 12px 6px 6px!important;
  box-shadow:inset 0 -3px 0 rgba(24,74,48,.14),0 1px 2px rgba(24,55,39,.12);
  line-height:var(--dj-text-heading-line-height);
}
html[data-v68-modern="true"] .v68-weight-row .weight-day::before{
  content:"";
  position:absolute;
  top:4px;
  left:50%;
  width:17px;
  height:10px;
  border:1px solid rgba(255,255,255,.92);
  border-radius:50% 50% 42% 42%;
  background:rgba(255,255,255,.82);
  transform:translateX(-50%);
}
html[data-v68-modern="true"] .v68-weight-row .weight-day::after{
  content:"";
  position:absolute;
  top:7px;
  left:50%;
  width:2px;
  height:7px;
  border-radius:2px;
  background:var(--v68-scale-needle);
  transform:translateX(-50%) rotate(24deg);
  transform-origin:50% 100%;
}
html[data-v68-modern="true"] .v68-weight-row .weight-day.transparent{
  --v68-scale-needle:#817d77;
  border-color:#aaa59e!important;
  background:rgba(174,170,163,.14)!important;
  box-shadow:inset 0 -3px 0 rgba(80,76,72,.08),0 1px 2px rgba(50,47,44,.08);
}
html[data-v68-modern="true"] .v68-weight-row .weight-day.transparent::before{
  border-color:#aaa59e;
  background:rgba(255,255,255,.8);
}

/* Matisse: soft, deliberately asymmetric paper-cut silhouette. */
html[data-v68-modern="true"][data-icon-style="matisse"] .v68-weight-row .weight-day{
  border-radius:17px 12px 15px 9px!important;
  box-shadow:inset 3px -4px 0 rgba(24,74,48,.13),1px 2px 0 rgba(24,55,39,.11);
}
html[data-v68-modern="true"][data-icon-style="matisse"] .v68-weight-row .weight-day::before{
  top:4px;
  width:18px;
  height:11px;
  border-radius:58% 42% 54% 46%;
  transform:translateX(-50%) rotate(-7deg);
}
html[data-v68-modern="true"][data-icon-style="matisse"] .v68-weight-row .weight-day::after{
  transform:translateX(-50%) rotate(-29deg);
}

/* Van Gogh: energetic layered outline and a slightly whirling dial. */
html[data-v68-modern="true"][data-icon-style="vangogh"] .v68-weight-row .weight-day{
  border-width:2px!important;
  border-radius:11px 16px 8px 14px!important;
  background-image:repeating-radial-gradient(circle at 52% 17%,rgba(255,255,255,.18) 0 2px,transparent 3px 5px)!important;
  box-shadow:inset -4px -3px 0 rgba(24,74,48,.14),3px 2px 0 color-mix(in srgb,currentColor 16%,transparent);
}
html[data-v68-modern="true"][data-icon-style="vangogh"] .v68-weight-row .weight-day::before{
  top:3px;
  width:19px;
  height:12px;
  border-width:2px;
  border-radius:44% 56% 49% 51%;
  transform:translateX(-50%) rotate(8deg);
}
html[data-v68-modern="true"][data-icon-style="vangogh"] .v68-weight-row .weight-day::after{
  width:3px;
  transform:translateX(-50%) rotate(41deg);
}

/* Architectural pencil: precise trapezoid, ruler-straight dial and needle. */
html[data-v68-modern="true"][data-icon-style="architect"] .v68-weight-row .weight-day{
  border-radius:4px 4px 2px 2px!important;
  clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);
  box-shadow:inset 0 -2px 0 rgba(24,74,48,.18);
}
html[data-v68-modern="true"][data-icon-style="architect"] .v68-weight-row .weight-day::before{
  top:4px;
  width:18px;
  height:10px;
  border-radius:2px;
}
html[data-v68-modern="true"][data-icon-style="architect"] .v68-weight-row .weight-day::after{
  width:1px;
  border-radius:0;
  transform:translateX(-50%) rotate(18deg);
}

html[data-v68-modern="false"] .v16-habit-row .habit-history-cell,
html[data-v68-modern="false"] .v16-habit-row .weight-day,
html[data-v68-modern="false"] .v17-ritual-card .ritual-square{
  transform:none!important;
}

html[data-v68-weight="false"] .v16-habit-row:has(.weight-day){
  display:none!important;
}

.v68-modern-setting>.v41-switch,
.v68-weight-setting>.v41-switch{
  justify-self:end;
}

/* ==== v69.css ==== */
/* Dolojane V3.5.0-alpha.1 — local backup controls. */
#data-recovery-screen{position:fixed;inset:0;z-index:2147483646;background:#faf9f7;color:#222;overflow:auto;padding:clamp(calc(var(--dj-space-4) + var(--dj-space-1)),6vw,calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-4)));font:var(--dj-text-body-size)/var(--dj-text-caption-line-height) system-ui,sans-serif}
#data-recovery-screen p{max-width:48em}
#data-recovery-screen button,#data-recovery-screen input{display:block;max-width:100%;margin:calc(var(--dj-space-4) + var(--dj-space-1)) 0;padding:var(--dj-space-3);font:inherit}
.v69-backup-actions{
  display:flex;
  grid-column:1;
  width:100%;
  justify-content:flex-start;
  align-items:center;
  gap:var(--dj-space-2);
  min-width:0;
  flex-wrap:wrap;
}
.v69-backup-setting{grid-template-columns:minmax(0,1fr)!important;align-items:start!important}
.v69-backup-actions .btn{
  min-height:34px;
  max-width:100%;
  white-space:normal;
}
@media(max-width:520px){
  .v69-backup-actions{align-items:stretch}
  .v69-backup-actions .btn{flex:1 1 180px}
}

/* ==== v70.css ==== */
/* Dolojane V3.5.0-alpha.1 — issue/improvement log. */
main[data-v70-settings] .v70-header-record{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:var(--dj-radius-button);background:transparent;color:var(--accent);cursor:pointer}
main[data-v70-settings] .v70-header-record:hover,main[data-v70-settings] .v70-header-record:focus-visible{background:var(--accent-soft)}
main[data-v70-settings] .v70-header-record [data-utility-symbol=bug]{color:var(--accent)}
main[data-v70-settings]>.topbar h1>.v22-icon,main[data-v70-settings]>.topbar h1>.v22-nav-icon{display:none}
html body [data-v70-issue-modal]{z-index:100040;visibility:visible;inset:0;height:var(--dolijane-viewport-height,100dvh);min-height:0;padding:var(--dj-space-3);box-sizing:border-box;display:grid;place-items:center;align-content:center;overflow:hidden}
html body [data-v70-issue-modal]>.v70-issue-modal{max-height:calc(var(--dolijane-viewport-height,100dvh) - 24px);overflow:hidden}
.v70-issue-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--dj-space-2);min-width:0;flex-wrap:wrap}
.v70-issue-actions .btn{min-height:34px;white-space:nowrap}
.v70-issue-modal{width:min(600px,calc(100vw - 24px));display:flex;flex-direction:column;max-height:calc(var(--dolijane-viewport-height,100dvh) - 24px);overflow:hidden;padding:var(--dj-space-4)}
.v70-issue-modal .v70-issue-head{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:var(--dj-space-3);margin:0 0 var(--dj-space-3)}
.v70-issue-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.v70-issue-modal .v70-issue-head h2{margin:0;min-width:0}
.v70-issue-controls{display:flex;gap:var(--dj-space-2);flex:none}
.v70-issue-modal .v70-icon-action{display:grid;place-items:center;width:44px;min-width:44px;height:44px;padding:0;font-size:0}
.v70-issue-modal .v70-icon-action::before,.v70-issue-modal .v70-icon-action::after{content:none}
.v70-issue-modal .v70-icon-action .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:currentColor}
.v70-issue-modal .field{display:grid;gap:var(--dj-space-1);margin-top:var(--dj-space-3);color:var(--muted);font-size:var(--dj-text-body-size)}
.v70-issue-modal select,.v70-issue-modal textarea{box-sizing:border-box;width:100%;border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);background:var(--panel);color:var(--ink);padding:var(--dj-space-2);font:inherit}
.v70-issue-modal textarea{min-height:150px;resize:vertical;line-height:var(--dj-text-caption-line-height)}
.v70-dictation-row{display:flex;align-items:center;gap:var(--dj-space-2);margin-block:var(--dj-space-2);font-size:var(--dj-text-secondary-size)}
.v70-dictation-row>button{display:inline-flex;align-items:center;gap:var(--dj-space-2);flex:none;min-height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);font:inherit;padding:var(--dj-space-2)}
.v70-dictation-row>button[aria-pressed=true]{background:var(--accent-soft)}
.v70-dictation-row [role=status]{min-width:0;overflow-wrap:anywhere}
@media(max-width:520px){.v70-issue-setting{grid-template-columns:1fr}.v70-issue-actions{grid-column:1;justify-content:flex-start}}

/* ==== v71.css ==== */
/* Dolojane V3.5.0-alpha.1 — per-Task Action application report. */
.v71-action-report{margin:var(--dj-space-4) 0;padding:0;overflow:hidden}
.v71-action-report-head{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3);padding:var(--dj-space-3) var(--dj-space-3);border-bottom:1px solid var(--line)}
.v71-action-report-head span{color:var(--muted);font-size:var(--dj-text-secondary-size)}
.v71-action-report-row{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(0,1.5fr);gap:var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);border-bottom:1px solid var(--line)}
.v71-action-report-row:last-child{border-bottom:0}
.v71-action-report-task{display:flex;align-items:flex-start;gap:var(--dj-space-2);min-width:0;font-weight:var(--dj-text-heading-weight)}
.v71-action-report-task>.v22-icon{inline-size:16px;block-size:16px;flex:0 0 auto;margin-top:2px}
.v71-action-report-row.changed .v71-action-report-task>.v22-icon{color:var(--green)}
.v71-action-report-row.skipped .v71-action-report-task>.v22-icon{color:var(--muted)}
.v71-action-report-result{display:flex;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap;min-width:0}
.v71-action-report-applied,.v71-action-report-skipped{display:inline-flex;align-items:center;gap:var(--dj-space-1);min-width:0}
.v71-action-report-applied small{color:var(--green)}
.v71-action-report-skipped{opacity:.72}
.v71-action-report-skipped small{color:var(--muted)}
.v71-action-report .v56-artifact{font-size:var(--dj-text-secondary-size)}
@media(max-width:680px){.v71-action-report-row{grid-template-columns:1fr}.v71-action-report-head{align-items:flex-start;flex-direction:column;gap:var(--dj-space-1)}}

/* ==== sync/account.css ==== */
@import url('sync/mcp-access-ui.css');
/* Dolijane Sync — account section (Settings). Uses the app's own tokens with safe fallbacks. */
.sync-account h4 { margin: var(--dj-space-3,var(--dj-space-3)) 0 var(--dj-space-2,var(--dj-space-2)); font-size: var(--dj-text-body-size); font-weight: var(--dj-text-body-weight); }
.sync-account .sync-field { display: grid; gap: var(--dj-space-1); align-items: stretch; }
.sync-account .sync-field input,
.sync-account .sync-field textarea { width: 100%; box-sizing: border-box; padding: var(--dj-space-2) var(--dj-space-3); font: inherit;
  border: 1px solid var(--line, #d8d4cc); border-radius: var(--dj-radius-field); background: var(--panel, #fff); color: inherit; }
.sync-account .sync-actions { display: flex; flex-wrap: wrap; gap: var(--dj-space-2); margin: var(--dj-space-3) 0 var(--dj-space-1); }
.sync-account .sync-actions .btn.primary { background: var(--accent); color: #fff; border-color: transparent; }
.sync-account .sync-actions .btn,.sync-approval-dialog button{min-height:44px;min-width:44px;width:auto;height:auto;padding:var(--dj-space-3) var(--dj-space-4);border-radius:var(--dj-radius-button,8px);font:var(--dj-text-body-weight) var(--dj-text-body-size,15px)/var(--dj-text-body-line-height) var(--font-ui,inherit);white-space:normal;box-sizing:border-box;}
.sync-conflict-dialog .sync-actions,.sync-conflict-dialog .sync-conflict-actions{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);}
.sync-conflict-dialog .sync-choice{padding-block:var(--dj-space-3,var(--dj-space-3));border-bottom:1px solid var(--line);overflow-wrap:anywhere;}
.sync-conflict-dialog button{min-height:44px;max-width:100%;white-space:normal;}
.sync-conflict-dialog [data-selected="true"]{background:var(--accent-soft);border:2px solid var(--accent);box-shadow:inset 0 0 0 1px var(--accent);font-weight:var(--dj-text-heading-weight);}
.sync-conflict-dialog>.modal{box-sizing:border-box;display:flex;flex-direction:column;width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden;}
.sync-conflict-dialog .sync-conflict-list{min-height:0;overflow:auto;overscroll-behavior:contain;}
.sync-conflict-dialog .sync-conflict-footer{flex:none;padding-top:var(--dj-space-2,var(--dj-space-2));border-top:1px solid var(--line);background:var(--panel);}
.sync-conflict-dialog .sync-conflict-footer .sync-conflict-actions{position:static;justify-content:flex-end;margin:0;}
.sync-conflict-dialog .sync-conflict-footer [role="status"]{margin:0 0 var(--dj-space-2,var(--dj-space-2));}
.sync-conflict-dialog .sync-conflict-version{overflow-wrap:anywhere;}
/* The native dialog is in the top layer, above the fixed app header and mobile dock. */
html body dialog.sync-conflict-dialog{box-sizing:border-box;position:fixed;inset:0;z-index:100200;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:calc(var(--dj-space-3) + env(safe-area-inset-top)) var(--dj-space-3) calc(var(--dj-space-3) + env(safe-area-inset-bottom));overflow:hidden;place-items:center;background:rgba(30,27,24,.48);}
html body dialog.sync-conflict-dialog::backdrop{background:transparent;}
html body dialog.sync-conflict-dialog>.sync-conflict-panel{display:flex;flex-direction:column;width:min(680px,100%);max-height:100%;min-height:0;overflow:hidden;padding:var(--dj-space-4);}
html body dialog.sync-conflict-dialog .sync-conflict-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;}
html body dialog.sync-conflict-dialog .sync-conflict-footer{flex:0 0 auto;padding-bottom:env(safe-area-inset-bottom,0px);}
.sync-conflict-differences{display:grid;gap:var(--dj-space-2);margin-block:var(--dj-space-3);}
.sync-conflict-field{display:grid;gap:var(--dj-space-1);}
.sync-conflict-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-2);}
.sync-conflict-side{min-width:0;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-chip);background:var(--panel);}
.sync-conflict-side-title{display:block;margin-bottom:var(--dj-space-1);color:var(--muted);font:var(--dj-text-caption-weight) var(--dj-text-caption-size)/var(--dj-text-caption-line-height) var(--dj-font-functional,inherit);}
.sync-conflict-value{white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dj-text-reading-weight) var(--dj-text-reading-size)/var(--dj-text-reading-line-height) var(--dj-font-functional,inherit);}
.sync-conflict-change{padding:0;background:var(--accent-soft);color:var(--ink);box-shadow:0 0 0 1px var(--accent);}
@media(max-width:599px){.sync-conflict-pair{grid-template-columns:minmax(0,1fr);}}
.sync-approval-dialog .sync-approval-body{display:grid;gap:var(--dj-space-3);min-width:0;}.sync-approval-dialog .sync-field{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--dj-space-2);align-items:stretch;width:100%;margin:0;}.sync-approval-dialog .sync-field textarea{display:block;grid-column:1;justify-self:stretch;width:100%;min-height:110px;padding:var(--dj-space-3);font:inherit;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--dj-radius-input,8px);color:var(--ink);background:var(--panel);}.sync-approval-dialog .sync-approval-hint{margin:0;}.sync-approval-dialog .sync-approval-actions{display:flex;flex-wrap:nowrap;align-items:stretch;gap:var(--dj-space-2);margin-top:var(--dj-space-4);padding-top:var(--dj-space-3);border-top:1px solid var(--line);}.sync-approval-dialog .sync-approval-actions .btn{flex:0 1 auto;}.sync-approval-dialog .sync-approval-actions .btn.primary{flex:1 1 auto;}
.sync-account .btn:disabled { opacity: .5; cursor: default; }
.sync-account .sync-warn { margin: var(--dj-space-2) 0; padding: var(--dj-space-2) var(--dj-space-3); border-radius: var(--dj-radius-card); font-size: var(--dj-text-secondary-size); line-height: var(--dj-text-secondary-line-height);
  background: #fff4e0; border: 1px solid #e6b866; color: #6b4a00; }
.sync-account .sync-error { margin: var(--dj-space-2) 0; padding: var(--dj-space-2) var(--dj-space-3); border-radius: var(--dj-radius-card); font-size: var(--dj-text-secondary-size);
  background: #fdeceb; border: 1px solid #d9827a; color: #7a1f17; }
.sync-account .sync-fingerprint { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--dj-text-body-size); letter-spacing: .04em; }
.sync-account .sync-phrase { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: var(--dj-space-2) var(--dj-space-3);
  margin: var(--dj-space-3) 0; padding: var(--dj-space-3) var(--dj-space-3) var(--dj-space-3) calc(var(--dj-space-8) + var(--dj-space-1)); border: 1px dashed var(--line, #b9b3a6); border-radius: var(--dj-radius-card); font-size: var(--dj-text-body-size); }
.sync-account .sync-phrase li { padding: var(--dj-space-1) 0; }
.sync-account .sync-device { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--dj-space-2) var(--dj-space-3); padding: var(--dj-space-2) 0;
  border-bottom: 1px solid var(--line, #e7e3db); font-size: var(--dj-text-body-size); }
.sync-account .sync-pending { margin: var(--dj-space-3) 0; padding: var(--dj-space-2) var(--dj-space-3); border-radius: var(--dj-radius-card); background: #eef6ee; border: 1px solid #a9cfa9; }
.sync-profile-switcher { margin: 0 0 calc(var(--dj-space-4) + var(--dj-space-1)); padding: var(--dj-space-3); border: 1px solid var(--line, #ddd8cf); border-radius: var(--dj-radius-chip); }
.sync-profile-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--dj-space-3); min-width: 0; padding: var(--dj-space-2) 0; border-bottom: 1px solid var(--line, #e7e3db); }
.sync-profile-row:last-of-type { border-bottom: 0; }
.sync-profile-row > div:first-child { min-width: 0; overflow-wrap: anywhere; }
.sync-profile-row small { display: block; margin-top: var(--dj-space-1); opacity: .65; overflow-wrap: anywhere; }
.sync-profile-actions { display: flex; align-items: center; justify-self: end; flex-wrap: nowrap; gap: var(--dj-space-2); }
.sync-profile-actions .btn { white-space: nowrap; }
.sync-profile-actions .danger { color: #9a2c23; }
.sync-account .sync-toggle { grid-template-columns: minmax(0, 1fr) auto; }
.sync-account .sync-toggle > span { min-width: 0; }
.sync-account .sync-toggle > input[type=checkbox] { justify-self: end; flex: 0 0 auto; margin: 0; }
.sync-management-dialog{box-sizing:border-box;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:var(--dj-space-4);border:1px solid var(--line);border-radius:var(--dj-radius-card,12px);background:var(--panel);color:var(--ink);font:var(--dj-text-reading-weight) var(--dj-text-body-size,15px)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);overflow:hidden}
.sync-management-dialog[open]{display:flex;flex-direction:column}
.sync-management-dialog::backdrop{background:#0004}
.sync-management-dialog>header{display:flex;align-items:center;gap:var(--dj-space-3)}
.sync-management-dialog h2{flex:1;min-width:0;margin:0;font:var(--dj-text-heading-weight) var(--dj-text-section-size,18px)/var(--dj-text-body-line-height) var(--font-ui,system-ui)}
.sync-management-controls{display:flex;gap:var(--dj-space-2)}
.sync-management-body{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:none}
.sync-management-body .sync-device{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3);flex-wrap:wrap;padding:var(--dj-space-3) 0;border-bottom:1px solid var(--line)}
.sync-management-body .sync-device-text{display:flex;flex-direction:column;gap:var(--dj-space-1,var(--dj-space-1));flex:1 1 12rem;min-width:0}
.sync-management-body .sync-device-text>span{min-width:0;white-space:normal;overflow-wrap:anywhere}
.sync-management-body .sync-device-details{color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.sync-management-body input,.sync-management-body select{box-sizing:border-box;width:100%;min-height:44px;padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);background:var(--bg);color:var(--ink);font:inherit}
.sync-management-body [hidden]{display:none!important}
.sync-management-body .destructive{border:1px solid var(--accent);background:transparent;color:var(--accent)}
.sync-management-body .sync-actions{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin-block:var(--dj-space-3)}
.sync-management-body .btn{min-height:44px;font:inherit;white-space:normal}
html body .sync-icon-action{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;flex:0 0 44px;padding:0;background:transparent!important;border:0!important;box-shadow:none!important;color:var(--accent);font-size:0}
html body .sync-icon-action .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px)}
.sync-switching { position: fixed; inset: 0; z-index: 100000; display: grid; place-content: center; padding: var(--dj-space-6); background: var(--panel, #faf9f7); color: var(--ink, #222); font: var(--dj-text-heading-weight) var(--dj-text-body-size) system-ui; }
@media (prefers-color-scheme: dark) {
  .sync-account .sync-warn { background: #3a2f17; border-color: #8a6a24; color: #f1d9a0; }
  .sync-account .sync-error { background: #3b1c1a; border-color: #8a3f39; color: #f3c2bd; }
  .sync-account .sync-pending { background: #1f3322; border-color: #4d7a53; }
}
/* Shared freshness indicator; text carries the state as well as colour. */
[data-sync-health]{--sync-health-color:#8b651b}
[data-sync-health="current"]{--sync-health-color:#2f7d4f}
[data-sync-health="partial"]{--sync-health-color:#d69a22}
[data-sync-health="auth"],[data-sync-health="error"]{--sync-health-color:#bb4035}
[data-sync-health="offline"],[data-sync-health="paused"],[data-sync-health="local"]{--sync-health-color:#74716b}
[data-sync-signal="red"]{--sync-health-color:#bb4035}
[data-sync-signal="orange"]{--sync-health-color:#d97820}
[data-sync-signal="yellow"]{--sync-health-color:#d69a22}
[data-sync-signal="green"]{--sync-health-color:#2f7d4f}
[data-sync-signal="blue"]{--sync-health-color:#337bb5}
[data-sync-signal="gray"]{--sync-health-color:#74716b}
.brand-mark[data-sync-tooltip]::after,.v76-rose-button[data-sync-tooltip]::after{content:attr(data-sync-tooltip);left:0;translate:none;width:min(300px,80vw);box-sizing:border-box;white-space:pre-line;overflow-wrap:anywhere;text-align:left;font:var(--dj-text-reading-weight) var(--dj-text-secondary-size)/var(--dj-text-caption-line-height) var(--dj-font-functional,system-ui);border-inline-start:3px solid var(--sync-health-color);padding:var(--dj-space-3) var(--dj-space-3)}
.sync-menu-info{white-space:pre-line;line-height:var(--dj-text-caption-line-height)!important;font-size:var(--dj-text-secondary-size)!important;overflow-wrap:anywhere;border-inline-start:3px solid var(--sync-health-color)!important}
.sync-dashboard-status{padding:var(--dj-space-3);border-inline-start:3px solid var(--sync-health-color);background:color-mix(in srgb,var(--sync-health-color) 16%,var(--panel));color:var(--ink);margin-bottom:var(--dj-space-4)}
.sync-dashboard-status h3{font:var(--dj-text-heading-weight) var(--dj-text-secondary-size)/var(--dj-text-reading-line-height) var(--dj-font-functional,system-ui);margin:0 0 var(--dj-space-2)}
.sync-dashboard-status p{font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-caption-line-height);white-space:pre-line;overflow-wrap:anywhere;margin:0}
.sync-status-legend{margin-top:var(--dj-space-2)}
.sync-status-legend>summary{display:inline-flex;align-items:center;justify-content:flex-start;gap:var(--dj-space-2);width:auto;min-height:44px;padding:0 var(--dj-space-3);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--dj-radius-button);color:var(--ink);cursor:pointer;font:inherit;list-style:none}
.sync-status-legend>summary>:is(svg,.v22-icon){color:var(--accent)}
.sync-status-legend>summary::-webkit-details-marker{display:none}
.sync-status-legend>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sync-status-legend-body{padding-top:var(--dj-space-2)}
.sync-dashboard-status .sync-status-legend-body p{display:flex;align-items:baseline;gap:var(--dj-space-2);margin-bottom:var(--dj-space-2);white-space:normal}
.sync-status-swatch{display:inline-block;flex:0 0 12px;width:12px;height:12px;border-radius:var(--dj-radius-circle);background:var(--sync-health-color)}
[data-sync-health-details]{white-space:pre-line;line-height:var(--dj-text-caption-line-height)}
/* One plain line about synchronisation; what needs a decision follows as cards with a button. */
.sync-plain-status{margin:var(--dj-space-2,var(--dj-space-2)) 0;font-size:var(--dj-text-body-size,15px);color:var(--ink)}
.sync-plain-status:is([data-sync-plain-status="attention"],[data-sync-plain-status="error"],[data-sync-plain-status="auth"]){color:var(--p1,#ab392f)}
.sync-plain-status[data-sync-plain-status="partial"]{color:#8b651b}
.sync-account .sync-choice{margin:var(--dj-space-3,var(--dj-space-3)) 0;padding:var(--dj-space-3,var(--dj-space-3));border:1px solid var(--line);border-radius:var(--dj-radius-card,10px)}
.sync-account .sync-choice>p{margin:0 0 var(--dj-space-2,var(--dj-space-2))}.sync-attention-title{font-weight:var(--dj-text-heading-weight)}
.sync-diagnostics{margin:var(--dj-space-4,var(--dj-space-4)) 0;border-top:1px solid var(--line)}
.sync-diagnostics:not([open])>:not(summary){display:none!important}
.sync-diagnostics>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--muted);font-size:var(--dj-text-secondary-size,13px)}
.sync-queue-record{overflow-wrap:anywhere}
/* Freshness markers never occupy a slot or move the navigation controls. */
.sidebar .brand-mark[data-sync-tooltip],.v76-rose-button[data-sync-tooltip]{position:relative}
.sync-age-marker{position:absolute;pointer-events:none;background:var(--sync-health-color,#74716b)}
.sync-age-marker[hidden]{display:none!important}
.sidebar .brand-mark>.sync-age-marker{left:0;right:0;bottom:-5px;height:3px;border-radius:2px}
.v76-rose-button>.sync-age-marker,.dj-system-dock[data-ws-mobile="true"] [data-ws-action="sections"]>.sync-age-marker{top:2px;right:2px;width:7px;height:7px;border-radius:50%}
@media(min-width:600px){
 html[data-dj-workspace-controls] .sidebar .brand{position:sticky!important;top:var(--sync-brand-top,0px)!important;z-index:22;background:var(--panel)}
 html[data-dj-workspace-controls] .sidebar .search{position:sticky!important;top:var(--sync-search-top,72px)!important;z-index:21;background:var(--panel)}
/* The pinned brand and search form one opaque block: the list never shows in the gaps around them. */
/* Where the rail has a top padding the brand is pinned below it (the padding plus an equal sticky offset): the second layer closes that strip up to the rail edge. */
html .sidebar :is(.brand,.search){box-shadow:0 0 0 var(--dj-space-2,8px) var(--panel),0 calc(-2*var(--sync-brand-top,0px)) 0 var(--dj-space-2,8px) var(--panel)!important}
}
/* Заголовок статуса на серой заливке — цветом текста (DS-A11Y-02); класс удвоен, чтобы перебить серый заголовок блока Обзора. */
.sync-dashboard-status.sync-dashboard-status h3{color:var(--ink)}

/* ==== mail-agent.css ==== */
.mail-inbox-entry { display:flex; align-items:center; justify-content:space-between; gap:var(--dj-space-4); margin-bottom:var(--dj-space-4); padding:var(--dj-space-4) var(--dj-space-4); }
.mail-results { display:grid; gap:var(--dj-space-3); }
.mail-candidate { padding:var(--dj-space-4); }
.mail-candidate-head { display:flex; align-items:flex-start; justify-content:space-between; gap:var(--dj-space-3); }
.mail-candidate-head h3 { margin:var(--dj-space-1) 0 0; font-size:var(--dj-text-heading-size); }
.mail-candidate-facts { display:flex; flex-wrap:wrap; align-items:center; gap:var(--dj-space-2) var(--dj-space-4); margin:var(--dj-space-3) 0 var(--dj-space-2); }
.mail-candidate-facts strong { font-size:var(--dj-text-heading-size); }
.mail-evidence { margin:var(--dj-space-3) 0; }
.mail-evidence summary { cursor:pointer; color:var(--muted,#6f6b63); }
.mail-evidence blockquote { margin:var(--dj-space-2) 0; padding:var(--dj-space-2) var(--dj-space-3); border-left:3px solid var(--accent,#4f9b88); background:color-mix(in srgb,var(--accent,#4f9b88) 8%,transparent); }
.mail-actions { display:flex; flex-wrap:wrap; gap:var(--dj-space-2); margin-top:var(--dj-space-3); }
.mail-edit { display:grid; grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) minmax(150px,1fr); gap:var(--dj-space-3); margin:var(--dj-space-3) 0; }
.mail-edit label { display:grid; gap:var(--dj-space-1); font-size:var(--dj-text-secondary-size); }
.mail-edit input { width:100%; box-sizing:border-box; padding:var(--dj-space-2) var(--dj-space-3); border:1px solid var(--line,#d8d4cc); border-radius:var(--dj-radius-field,8px); background:var(--panel,#fff); color:inherit; }
.mail-edit .mail-actions { grid-column:1/-1; margin-top:0; }
.mail-candidate-warning { color:#8a5a00; }
.sync-account .mail-range-setup { align-items:flex-start; }
.sync-account .mail-range-setup > div:first-child,
.sync-account .mail-range-setup .sync-actions { flex:1 1 100%; }
.sync-account .mail-range-setup input[type="date"] { box-sizing:border-box; padding:var(--dj-space-2) var(--dj-space-3); border:1px solid var(--line,#d8d4cc); border-radius:var(--dj-radius-field,8px); background:var(--panel,#fff); color:inherit; }
@media(max-width:640px){.mail-inbox-entry{align-items:flex-start;flex-direction:column}.mail-edit{grid-template-columns:1fr}.mail-edit .mail-actions{grid-column:auto}.mail-actions .btn{flex:1 1 auto}}

/* ==== design/controls.css ==== */
html[data-interface-design]:not([data-interface-design="classic"]) button[data-design-control="true"]{
  border-radius:var(--design-control-radius-tl,6px) var(--design-control-radius-tr,6px) var(--design-control-radius-br,6px) var(--design-control-radius-bl,6px)!important;
}
/* Historical Drunk art moves inside the stable hit target. */
html[data-interface-design="drunk"] button[data-design-control-turn="true"]{rotate:0deg!important;transform:none!important}
html[data-interface-design="drunk"] .dj-drunk-visual{display:inline-flex;align-items:center;justify-content:inherit;gap:inherit;max-width:100%;transform:rotate(var(--design-control-angle,0deg));transform-origin:center;pointer-events:none}
html[data-interface-design="modern"] button[data-design-borderless="true"]{background:transparent!important;border-color:transparent!important;border-radius:0!important;box-shadow:none!important;rotate:0deg!important;transform:none!important}
html[data-interface-design="modern"] [data-v56-feed-toggle]{background:transparent!important;border-color:transparent!important;border-radius:0!important;box-shadow:none!important;outline:0!important;rotate:0deg!important;transform:none!important}

/* ==== v72.css ==== */
/* V3.5 visual adapters. */
.v25-project-picker [data-v17-project-choice]{color:var(--artifact-color,currentColor)!important}.v25-project-picker [data-v17-project-choice]>.v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:currentColor}.v25-project-picker [data-v17-project-choice]>.v22-icon *{stroke:currentColor!important}
.v25-stone-form label>span{display:inline-flex;align-items:center;gap:var(--dj-space-2);color:var(--artifact-color,currentColor)!important}.v25-stone-form label>span>.v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);color:currentColor}.v25-stone-form label>span>.v22-icon *{stroke:currentColor!important}
.v35-goal-picker [data-v35-role]>.v22-icon{color:var(--accent);width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.v72-priority-artifact{display:inline-grid!important;place-items:center!important;min-width:18px!important;width:18px!important;height:18px!important;padding:0!important;border:0!important;background:transparent!important}.v72-priority-artifact .v22-icon{width:var(--dj-icon-compact,16px)!important;height:var(--dj-icon-compact,16px)!important;color:currentColor!important}.v72-priority-artifact .v22-icon *{stroke:currentColor!important}
.v56-action-editor>.v53-query-feedback{display:none!important}
.v56-feed .v56-feed-toggle[data-v56-feed-toggle].v60-feed-up,.v56-feed .v56-feed-toggle[data-v56-feed-toggle].v60-feed-down,[data-v56-feed-toggle]{transform:none!important;rotate:0deg!important;color:var(--accent)!important}[data-v56-feed-toggle]>.v22-icon,.v72-section-arrow>.v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:currentColor}[data-v56-feed-toggle]>.v22-icon .v22-main>*{color:inherit!important;stroke:currentColor!important}
.v72-section-arrow{display:grid;place-items:center;width:20px;height:20px;color:var(--accent)!important}.v72-section-arrow>.v22-icon,.v72-section-arrow>.v22-icon .v22-main>*{color:inherit!important;stroke:currentColor!important}
.v72-direction-button{display:grid!important;place-items:center!important;transform:none!important;rotate:0deg!important;color:var(--accent)!important}.v72-direction-button>.v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:inherit!important}.v72-direction-button>.v22-icon .v22-main>*{stroke:currentColor!important}.v17-stone-projects [data-project]{color:var(--artifact-color,currentColor)!important}.v17-stone-projects .v56-project-icon,.v17-stone-projects .v56-project-icon>.v22-icon{color:var(--artifact-color,currentColor)!important}
.project-tree-head [data-project] .v56-project-icon,.project-row[data-project] .v56-project-icon{color:var(--artifact-color,currentColor)!important}.project-tree-head [data-project] .v56-project-icon .v22-icon,.project-row[data-project] .v56-project-icon .v22-icon{color:inherit!important}.project-tree-head [data-project] .v56-project-icon .v22-icon .v22-main>*,.project-row[data-project] .v56-project-icon .v22-icon .v22-main>*{stroke:currentColor!important}

/* ==== v73.css ==== */
/* V3.5 installable Android/Windows shell and phone layout. */
.v73-install-actions{display:flex;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap;justify-content:flex-end}.v73-install-state{font-size:var(--dj-text-secondary-size);color:var(--muted)}
@media(max-width:599px){
  html,body{min-width:0;overflow-x:hidden}.app-shell{padding-bottom:calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-2))}.main{padding:calc(var(--dj-space-4) + var(--dj-space-1)) var(--dj-space-3) calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-6))!important}.rightbar{display:none!important}
  .sidebar{position:fixed!important;inset:auto 0 0!important;height:66px!important;z-index:120!important;display:flex!important;align-items:stretch!important;gap:var(--dj-space-1)!important;padding:var(--dj-space-1) var(--dj-space-2) calc(var(--dj-space-1) + env(safe-area-inset-bottom))!important;background:color-mix(in srgb,var(--panel) 96%,transparent)!important;border:0!important;border-top:1px solid var(--line)!important;overflow-x:auto!important;overflow-y:hidden!important;box-shadow:0 -5px 20px rgba(20,20,20,.07);scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}
  .sidebar .brand,.sidebar .search,.sidebar .nav-title{display:none!important}.sidebar .nav-group{display:contents!important}.sidebar .nav-item{flex:0 0 58px!important;width:58px!important;min-height:54px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:var(--dj-space-1)!important;padding:var(--dj-space-1) var(--dj-space-1)!important;text-align:center!important;font-size:var(--dj-text-caption-size)!important;line-height:var(--dj-text-heading-line-height)!important;white-space:normal!important}.sidebar .nav-item .v22-nav-icon,.sidebar .nav-item>.v22-icon{margin:0!important}.sidebar .nav-item .count{display:none!important}.sidebar .nav-item .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
  .topbar{gap:var(--dj-space-3)!important;margin-bottom:var(--dj-space-4)!important}.topbar .actions{width:100%;justify-content:flex-end}.page-title{font-size:var(--dj-text-title-size)!important}.modal-backdrop:not([data-v70-issue-modal]):not(.sync-conflict-dialog,.r21-entity-backdrop){padding:0!important;place-items:end center!important}.modal:not(.v70-issue-modal,.entity-menu-v2):not(.sync-conflict-panel){width:100%!important;max-height:94dvh!important;border-radius:var(--dj-radius-popup,10px)!important;padding:var(--dj-space-4) var(--dj-space-4) calc(calc(var(--dj-space-4) + var(--dj-space-1)) + env(safe-area-inset-bottom))!important}.modal button,.topbar button{min-width:44px;min-height:44px}.form-grid{grid-template-columns:1fr!important}
  [data-v15-task-row]{padding-inline:var(--dj-space-2)!important}.v56-action-row{grid-template-columns:minmax(0,1fr) auto auto!important}.v56-action-editor{width:100%!important}.v56-editor-head{grid-template-columns:minmax(0,1fr) repeat(3,44px)!important}.v56-popup{max-width:calc(100vw - 12px)!important}
  .settings-row,.v41-settings-row{align-items:flex-start!important;gap:var(--dj-space-3)!important;padding-inline:var(--dj-space-3)!important}.v69-backup-actions,.v70-issue-actions,.v73-install-actions{justify-content:flex-end}
}

/* ==== v74.css ==== */
/* V3.5 visual corrections: compact stable Feed and centered Task editor heading. */
.v56-feed:has(>.compact-feed-all[hidden]) {
  position:relative;
  height:auto;
  min-height:28px;
  overflow:hidden;
}
.v56-feed:has(>.compact-feed-all[hidden])>.compact-feed-head {
  height:28px;
  min-height:28px!important;
}
.v56-feed:has(>.compact-feed-all[hidden])>.compact-feed-last {
  position:static;
  inset:auto;
  width:auto;
  min-height:16px;
  padding:0!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.v56-feed.collapsed:has(>.compact-feed-all[hidden])>.compact-feed-last {display:none!important}
.v56-feed [data-v56-feed-toggle],
.v56-feed [data-v56-feed-toggle]:is(:hover,:focus,:focus-visible,:active) {
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:0!important;
  rotate:0deg!important;
  transform:none!important;
}

.task-modal-v10 .task-head-v09,
.task-modal-v09 .task-head-v09 {align-items:center!important}
.task-modal-v10 .task-head-v09>:is(.task-focus-mini,[data-priority-flag],.priority-flag,.task-state-check),
.task-modal-v09 .task-head-v09>:is(.task-focus-mini,[data-priority-flag],.priority-flag,.task-state-check) {
  align-self:center!important;
  margin-top:0!important;
}
.task-modal-v10 .task-head-v09>:is(.task-title-v09,.v35-title-editor),
.task-modal-v09 .task-head-v09>:is(.task-title-v09,.v35-title-editor) {align-self:center!important}

.v68-design-controls {display:flex;align-items:center;justify-content:flex-end;gap:var(--dj-space-3);flex-wrap:wrap}
.v68-design-controls select {min-width:150px;max-width:100%}

html[data-v74-route="today"] [data-v15-task-row] :is(.v57-priority-meta,.v58-priority-flag),
html[data-v74-route="inbox"] [data-v15-task-row] :is(.v57-priority-meta,.v58-priority-flag) {display:none!important}

@media(max-width:760px){.v68-design-controls{width:100%;justify-content:flex-start}}

/* ==== v75.css ==== */
/* Dolijane V3.5.0-alpha.7 — Android composition and final visual corrections. */
.v46-streak-explain{display:none!important}
.rightbar .v51-capacity-failed,.rightbar .v35-capacity-failed,.rightbar .v17-capacity-legend{display:none!important}.rightbar .capacity>:not(.capacity-row,.v17-capacity-progress,.v51-capacity-legend){display:none!important}

.v56-close-day{width:min(410px,calc(100vw - 24px))}.v56-close-label{margin-top:var(--dj-space-4);color:var(--muted);font-size:var(--dj-icon-compact);font-weight:var(--dj-text-heading-weight)}.v56-close-day .v56-choice-pair{gap:0;margin:var(--dj-space-2) 0 var(--dj-space-4);border:1px solid var(--line);border-radius:var(--dj-radius-chip);overflow:hidden}.v56-close-day .v56-choice-pair>button{min-height:46px;border:0;border-radius:0;background:var(--panel,#fff);color:var(--ink);font:inherit;font-weight:var(--dj-text-heading-weight)}.v56-close-day .v56-choice-pair>button+button{border-left:1px solid var(--line)}.v56-close-day .v56-choice-pair>button.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--panel,#fff));color:var(--accent)}.v56-close-day .v56-close-status-options>button{display:flex;align-items:center;justify-content:center;gap:var(--dj-space-2)}.v56-close-day .v56-close-status-options>button:first-child.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:var(--green-soft);color:var(--green)}.v56-close-day .v56-close-status-options>button:last-child.selected{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red);background:var(--red-soft,#fff0ee);color:var(--red)}.v56-close-day .v56-close-status-options .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v56-close-day .modal-actions{min-height:42px}.v56-close-day [data-v56-close-cancel]{background:var(--accent)!important;color:#fff!important;border:1px solid var(--accent)!important;transform:none!important;rotate:0deg!important}.v56-close-day [data-v56-close-cancel] .v22-icon{color:currentColor!important}.v56-close-day [data-v56-close-cancel]::before,.v56-close-day [data-v56-close-cancel]::after{content:none!important}.v56-close-day [data-v56-close-cancel]>.v22-icon:not(:first-child){display:none!important}.v56-close-day .v56-single-cancel .detail,.v56-close-day .v56-single-cancel .v22-echo{display:none!important}

.v75-mobile-more,.v75-mobile-sheet{display:none}

@media(max-width:1024px){
  html{--v75-mobile-bar:calc(68px + env(safe-area-inset-bottom))}
  .app-shell{inline-size:100%!important;max-inline-size:100vw!important;padding-bottom:var(--v75-mobile-bar)!important;overflow-x:hidden!important}
  .main{inline-size:100%!important;max-inline-size:100vw!important;min-inline-size:0!important;padding:var(--dj-space-4) var(--dj-space-3) calc(var(--v75-mobile-bar) + calc(var(--dj-space-4) + var(--dj-space-1)))!important;overflow-x:hidden!important}

  /* Four daily destinations stay one tap away; everything else is grouped in “More”. */
  .sidebar{
    inset-inline:0!important;inline-size:100vw!important;max-inline-size:100vw!important;min-inline-size:0!important;
    height:var(--v75-mobile-bar)!important;display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:var(--dj-space-1)!important;
    overflow:visible!important;padding:var(--dj-space-1) var(--dj-space-2) calc(var(--dj-space-1) + env(safe-area-inset-bottom))!important
  }
  .sidebar .nav-group{display:contents!important}
  .sidebar .nav-item[data-route]{display:none!important}
  .sidebar .nav-item[data-route="today"],
  .sidebar .nav-item[data-route="inbox"],
  .sidebar .nav-item[data-route="projects"],
  .sidebar .nav-item[data-route="calendar"],
  .sidebar .v75-mobile-more{
    display:flex!important;inline-size:100%!important;min-inline-size:0!important;
    block-size:44px!important;min-block-size:44px!important;flex:initial!important
  }
  .sidebar .v75-mobile-more.active{background:var(--panel);color:var(--ink)}

  .v75-mobile-backdrop{
    position:fixed;inset:0;z-index:119;background:rgba(26,24,22,.34);
    display:grid;align-items:end;padding:0
  }
  .v75-mobile-backdrop[hidden]{display:none!important}
  .v75-mobile-sheet{
    display:block;max-block-size:min(78dvh,680px);overflow:auto;
    padding:var(--dj-space-4) var(--dj-space-4) calc(calc(var(--dj-space-4) + var(--dj-space-1)) + env(safe-area-inset-bottom));
    background:var(--panel);border-radius:var(--dj-radius-window) var(--dj-radius-window) 0 0;box-shadow:0 -12px 40px rgba(20,18,16,.16)
  }
  .v75-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3);margin-block-end:var(--dj-space-2)}
  .v75-mobile-sheet-head strong{font-size:var(--dj-text-heading-size)}
  .v75-mobile-sheet-close{inline-size:44px;block-size:44px;border:0;border-radius:var(--dj-radius-circle,50%);background:transparent;font-size:var(--dj-icon-standard)}
  .v75-mobile-group{padding-block:var(--dj-space-2)}
  .v75-mobile-group-title{margin:0 var(--dj-space-1) var(--dj-space-2);color:var(--muted);font-size:var(--dj-text-caption-size);font-weight:var(--dj-text-heading-weight);text-transform:uppercase;letter-spacing:.06em}
  .v75-mobile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dj-space-2)}
  .v75-mobile-route{
    min-block-size:68px;min-inline-size:0;border:1px solid var(--line);border-radius:var(--dj-radius-button);
    background:transparent;color:var(--ink);display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:var(--dj-space-1);padding:var(--dj-space-2) var(--dj-space-1);text-align:center;font-size:var(--dj-text-caption-size);line-height:var(--dj-text-heading-line-height)
  }
  .v75-mobile-route.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
  .v75-mobile-route .v22-icon{inline-size:var(--dj-icon-standard,20px);block-size:var(--dj-icon-standard,20px)}
  .v75-mobile-route .count{display:none!important}

  /* Phone task card: primary action/title/menu on top; compact metadata below. */
  [data-v15-task-row]{
    grid-template-columns:16px 20px minmax(0,1fr) 38px!important;
    gap:var(--dj-space-1)!important;align-items:start!important;padding:var(--dj-space-3) var(--dj-space-2)!important
  }
  [data-v15-task-row]>.task-row-main{min-inline-size:0!important}
  [data-v15-task-row]>.task-row-tools{inline-size:38px!important;display:grid!important;grid-template-columns:38px!important;gap:var(--dj-space-1)!important}
  [data-v15-task-row]>.task-row-tools .task-comment-button,
  [data-v15-task-row]>.task-row-tools .v38-today-time{display:none!important}
  [data-v15-task-row]>.task-row-tools [data-row-menu]{inline-size:38px!important;block-size:38px!important;padding:var(--dj-space-2)!important}
  [data-v15-task-row] .task-row-title{font-size:var(--dj-text-body-size);line-height:var(--dj-text-body-line-height)}
  [data-v15-task-row] .task-meta{display:flex!important;flex-wrap:nowrap!important;overflow:hidden;white-space:nowrap;margin-top:var(--dj-space-1)}
  [data-v15-task-row] .v56-task-properties{display:flex!important;flex-wrap:nowrap!important;min-inline-size:0;overflow:hidden}
  [data-v15-task-row] .v56-artifact{max-inline-size:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  .topbar{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
    flex-direction:initial!important;align-items:start!important;inline-size:100%!important;min-inline-size:0!important
  }
  .topbar>div:first-child{min-inline-size:0;grid-column:1;grid-row:1}
  .topbar .actions{grid-column:2;grid-row:1;width:auto!important;max-inline-size:96px;margin-inline-start:0!important;justify-content:flex-end!important}
  .topbar .subtitle{max-inline-size:34ch}
  .card,.hero{max-inline-size:100%;overflow-x:hidden}
}

@media(max-width:390px){
  .v75-mobile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sidebar .nav-item,.sidebar .v75-mobile-more{font-size:var(--dj-text-caption-size)!important}
  .main{padding-inline:var(--dj-space-2)!important}.page-title{font-size:var(--dj-text-heading-size)!important}
}

/* ==== v76.css ==== */
/* Dolijane V3.5 — mobile composition and Habit interaction. */
.v76-habit-task-title{display:flex;align-items:center;gap:var(--dj-space-3);min-width:0}.v76-habit-task-title .entity-link{min-width:0}.v76-habit-head{align-items:center}.v76-settings-chevron{display:inline-grid;place-items:center;margin-left:auto}.v76-settings-chevron .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);color:var(--accent)}.v41-settings-section>h3[data-v76-settings-toggle],.v19-settings-section>h3[data-v76-settings-toggle]{display:flex;align-items:center;gap:var(--dj-space-2);min-height:30px;cursor:pointer}.v76-settings-collapsed>:not(h3){display:none!important}.v76-settings-collapsed{padding-bottom:var(--dj-space-1)!important}
.v76-mobile-header{display:none}
.v41-settings-section>h3[data-v76-settings-toggle],.v19-settings-section>h3[data-v76-settings-toggle]{padding-inline-end:var(--dj-space-4,var(--dj-space-4));min-height:44px;box-sizing:border-box;}
.v76-header-menu[data-v76-anchored]{position:fixed;z-index:150;box-sizing:border-box;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel);box-shadow:var(--shadow);overflow:auto;translate:none!important;transform:none!important;}
.v76-header-menu[data-v76-anchored][hidden]{display:none!important;}
.v76-header-menu[data-v76-anchored] button{width:100%;min-height:44px;border:0;border-radius:var(--dj-radius-popup-row,7px);background:transparent;color:var(--ink);display:grid;grid-template-columns:var(--dj-icon-standard) minmax(0,1fr);align-items:center;gap:var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);text-align:left;}
.v76-header-menu[data-v76-anchored] .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent);}
.v76-header-menu[data-v76-anchored] button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.v76-system-shade{position:fixed;inset:0;z-index:100140;background:color-mix(in srgb,var(--ink) 42%,transparent)}
.v76-system-menu[data-v76-system-sheet]{position:fixed;inset:auto 0 0;z-index:100141;box-sizing:border-box;width:100%;max-width:100vw!important;max-height:min(60dvh,480px);overflow:auto;padding:var(--dj-space-2) var(--dj-space-3) max(var(--dj-space-2),env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:var(--dj-radius-window) var(--dj-radius-window) 0 0;background:var(--panel);box-shadow:var(--shadow-modal);animation:v76-system-rise .18s ease-out both}
.v76-system-menu[data-v76-system-sheet] button{display:flex;align-items:center;gap:var(--dj-space-3);width:100%;min-height:44px;padding:var(--dj-space-2) var(--dj-space-3);border:0;background:transparent;color:var(--ink);font:inherit;text-align:left}
.v76-system-menu[data-v76-system-sheet] button{font-family:var(--dj-font-ui,var(--font,inherit));font-size:var(--dj-text-body-size);line-height:var(--dj-text-body-line-height)}
@keyframes v76-system-rise{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.v76-system-menu[data-v76-system-sheet]{animation:none}}
.brand-mark[data-v76-account],[data-v76-rose][data-v76-account],.v76-rose-button[data-v76-account]{position:relative}
.brand-mark[data-v76-account]::after,[data-v76-rose][data-v76-account]::after,.v76-rose-button[data-v76-account]::after{content:attr(data-v76-account);position:absolute;z-index:1000;left:50%;top:calc(100% + 7px);translate:-50% 0;max-width:min(300px,80vw);padding:var(--dj-space-2) var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup);background:var(--panel);color:var(--ink);box-shadow:var(--shadow);font:var(--dj-text-body-weight) var(--dj-text-secondary-size)/var(--dj-text-body-line-height) system-ui;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}
.brand-mark[data-v76-account]:is(:hover,:focus-visible)::after,[data-v76-rose][data-v76-account]:is(:hover,:focus-visible)::after,.v76-rose-button[data-v76-account]:is(:hover,:focus-visible)::after{opacity:1;visibility:visible}

@media(max-width:599px){
  /* A phone dialog stays centered and keeps its full outline. */
  .modal-backdrop:not([data-v70-issue-modal],.r21-entity-backdrop){padding:var(--dj-space-3)!important;place-items:center!important;align-items:center!important}
  .modal:not(.v70-issue-modal,.entity-menu-v2){width:min(620px,calc(100vw - 24px))!important;max-height:calc(100dvh - 24px)!important;border-radius:var(--dj-radius-popup,10px)!important;padding:var(--dj-space-4) var(--dj-space-4)!important}
  .time-menu{padding:var(--dj-space-3)!important;place-items:center!important}.time-menu-card{width:min(560px,calc(100vw - 24px))!important;max-height:calc(100dvh - 24px);overflow:auto;border-radius:var(--dj-radius-popup,10px)!important}

  .main{padding-top:0!important}
  .v76-mobile-header{position:sticky;top:0;z-index:112;display:block;isolation:isolate;margin:0 calc(0px - var(--dj-space-3)) var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3) var(--dj-space-2);background:var(--panel);border-bottom:1px solid var(--line)}
  .v76-mobile-main-row{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 44px 44px;align-items:center;gap:var(--dj-space-1);min-height:46px}
  .v76-rose-button,.v76-header-button{box-sizing:border-box;inline-size:44px!important;block-size:44px!important;min-inline-size:44px!important;min-block-size:44px!important;aspect-ratio:1;border:0;border-radius:var(--dj-radius-circle,50%)!important;background:transparent;color:var(--accent);display:grid;place-items:center;padding:var(--dj-space-2)}
  .v76-rose-button img{width:32px;height:32px;object-fit:contain}.v76-header-button .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px)}
  .v76-active-route{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0}.v76-active-route>.v22-icon,.v76-active-route>.v22-nav-icon .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);color:var(--accent)}.v76-active-route strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-block:var(--dj-space-1);font-size:var(--dj-text-title-size);font-weight:var(--dj-text-title-weight);line-height:var(--dj-text-title-line-height)}
  .v76-header-menu{position:absolute;top:48px;z-index:150;min-width:210px;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel);box-shadow:var(--shadow)}.v76-rose-menu{left:0}.v76-system-menu{right:0}.v76-header-menu[hidden]{display:none!important}.v76-header-menu>button{width:100%;min-height:44px;border:0;border-radius:var(--dj-radius-popup-row,7px);background:transparent;color:var(--ink);display:flex;align-items:center;gap:var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);text-align:left}.v76-header-menu>button:active{background:var(--soft)}.v76-header-menu .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent)}
  .v76-mobile-actions{display:flex;justify-content:flex-end;gap:var(--dj-space-2);min-height:0}.v76-mobile-actions:empty{display:none}.v76-mobile-actions>.actions{display:flex!important;width:100%!important;max-width:none!important;justify-content:flex-end!important;gap:var(--dj-space-2)!important;margin:var(--dj-space-1) 0 0!important}.v76-mobile-actions button{min-width:44px;min-height:44px}
  main.main>.topbar{display:none!important}

  .v75-mobile-sheet{border-radius:var(--dj-radius-window) var(--dj-radius-window) 0 0}.v76-plan-menu{display:grid!important;grid-template-columns:1fr!important;gap:var(--dj-space-1)!important}.v76-plan-menu .v75-mobile-route{min-height:50px!important;display:flex!important;flex-direction:row!important;justify-content:flex-start!important;gap:var(--dj-space-3)!important;padding:var(--dj-space-2) var(--dj-space-3)!important;text-align:left!important;font-size:var(--dj-text-secondary-size)!important}.v76-plan-menu .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent)}

  /* Preserve circles under every icon even in narrow flex/grid cells. */
  .task-state-check,.check,.v22-icon-button,.v56-help-button,.v76-header-button,.v76-rose-button{flex-shrink:0!important;aspect-ratio:1!important}
  .task-state-check,.check{min-width:18px!important;max-width:18px!important;min-height:18px!important;max-height:18px!important;border-radius:var(--dj-radius-circle,50%)!important}

  .task-head-v09{grid-template-columns:32px 22px minmax(0,1fr)!important;align-items:center!important}.task-head-v09>.task-focus-mini,.task-head-v09>.task-state-check,.task-head-v09>.v35-title-editor{align-self:center!important;margin-top:0!important}.task-head-v09>.v35-title-editor{padding-top:0!important}
  .v76-mobile-task-artifacts:not(.tm20-active *){position:relative;display:flex!important;align-items:center;flex-wrap:wrap;gap:var(--dj-space-2);margin:0 0 var(--dj-space-3);padding:var(--dj-space-1) 0;min-height:34px}.v76-mobile-task-artifacts>:is([data-v38-tag-artifact],[data-v36-artifact]),.v76-mobile-task-artifacts>.v76-mobile-priority{display:inline-flex;align-items:center;gap:var(--dj-space-1);min-width:30px;min-height:30px;padding:var(--dj-space-1);border:0;background:transparent;color:var(--artifact-color,currentColor)}.v76-mobile-task-artifacts .v22-icon{width:20px;height:20px}.v76-mobile-priority{position:static!important;order:-20;font-size:0!important}.v76-mobile-priority .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v76-mobile-task-artifacts .priority-menu{top:34px!important;left:0!important;z-index:30}
  [data-task-form]>.form-grid .v36-artifacts:is([hidden],:empty){display:none!important}
  .v76-task-state-wrap{position:relative;margin-left:auto}.v76-task-state-toggle{width:36px;height:36px;border:0;border-radius:var(--dj-radius-circle,50%);background:transparent;color:var(--accent);display:grid;place-items:center}.v76-task-state-toggle .v22-icon{width:20px;height:20px}.v76-task-state-popover{position:absolute;top:39px;right:0;z-index:40;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel);box-shadow:var(--shadow)}.v76-task-state-popover[hidden]{display:none!important}.v76-task-state-popover .task-state-actions{display:grid!important;grid-template-columns:repeat(4,34px);gap:var(--dj-space-1);margin:0!important}.v76-task-state-popover .task-state-action{width:34px;height:34px}
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v56-artifact>span,
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v56-project-ref>span,
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v58-tag-chip>span,
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v57-priority-meta>span,
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v39-task-project>span,
  html[data-v76-mobile-artifact-labels="false"] .v76-mobile-task-artifacts :is([data-v38-tag-artifact],[data-v36-artifact])>span{display:none!important}
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v56-artifact,
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v56-project-ref,
  html[data-v76-mobile-artifact-labels="false"] [data-v15-task-row] .v58-tag-chip{max-width:28px!important;width:24px;overflow:visible!important;justify-content:center}

  .v56-week-grid{touch-action:pan-y;overscroll-behavior-inline:contain}
  [data-v15-task-row]{touch-action:pan-y;will-change:transform;transition:transform .16s ease,box-shadow .16s ease}[data-v15-task-row].v76-task-swiping{transform:translateX(var(--v76-task-swipe-x,0));transition:none;box-shadow:0 5px 16px rgba(35,31,28,.12)}[data-v15-task-row][data-v76-swipe-direction="right"]{background:color-mix(in srgb,var(--green-soft,#eaf5ee) 70%,var(--panel))!important}[data-v15-task-row][data-v76-swipe-direction="left"]{background:color-mix(in srgb,var(--red-soft,#fff0ee) 70%,var(--panel))!important}
  html[data-v74-route="today"] main .section{margin-block:var(--dj-space-2)!important}html[data-v74-route="today"] main .section+.section{margin-top:0!important}html[data-v74-route="today"] main [data-v38-today-section] .card{margin-bottom:0!important}
}

@media(max-width:599px){.v76-rose-button::after,[data-v76-system]::after{display:none!important;content:none!important}}
@media(min-width:600px) and (max-width:1024px){html[data-v76-navigation-menu="rose"] .sidebar{width:var(--r26-tablet-rail,64px)!important;transition:none!important;}}

@media(min-width:600px){
 .sidebar .nav-group{margin-block:var(--dj-space-2)}
 .sidebar .nav-item[data-route]{block-size:44px;min-block-size:44px}
 .sidebar .v78-sidebar-project-tree.dj-fold:not(.dj-open){padding-block:0}
 .sidebar .dj-rail-more{position:absolute;left:6px;bottom:6px;align-self:flex-start;flex:0 0 44px;display:grid;place-items:center;width:50px;min-height:44px;padding:var(--dj-space-2);margin:0;border:0;background:transparent;color:var(--accent);cursor:pointer}
 .sidebar .dj-rail-more :is(.v22-icon,.dj-utility-symbol){width:var(--dj-icon-standard);height:var(--dj-icon-standard)}
}
@media(min-width:600px) and (max-width:1024px){
 .sidebar:not(.r25-rail-open) .dj-rail-secondary-slot{display:none}
 .sidebar>.r25-sidebar-scroll{margin-bottom:calc(var(--dj-space-8) + var(--dj-space-3))}
 .sidebar .v76-tablet-nav-group:has(.dj-rail-secondary-slot){margin-block:var(--dj-space-2)}
}
@media(max-width:1024px){
 .tp-row[data-tp-task]{touch-action:pan-y;will-change:transform;position:relative;transition:transform .16s ease,box-shadow .16s ease}
 .tp-row.v76-task-swiping{transform:translateX(var(--v76-task-swipe-x,0));transition:none;box-shadow:var(--shadow)}
 .tp-row[data-v76-swipe-direction="right"]{background:color-mix(in srgb,var(--green-soft) 70%,var(--panel))}
 .tp-row[data-v76-swipe-direction="left"]{background:color-mix(in srgb,var(--red-soft) 70%,var(--panel))}
 .v76-task-swipe-glyph{position:absolute;top:50%;width:32px;height:32px;display:grid;place-items:center;transform:translateY(-50%);border-radius:var(--dj-radius-circle);background:var(--panel);color:var(--ink);pointer-events:none;box-shadow:var(--shadow)}
 .v76-task-swipe-glyph>:is(.v22-icon,.dj-utility-symbol){width:var(--dj-icon-standard);height:var(--dj-icon-standard);--dj-icon-size:var(--dj-icon-standard)}
 .tp-row[data-v76-swipe-direction="right"]>.v76-task-swipe-glyph{left:-44px}
 .tp-row[data-v76-swipe-direction="left"]>.v76-task-swipe-glyph{right:-44px}
}

/* ==== v77.css ==== */
/* Dolojane V3.5 — habits and phone interaction polish. */
.habit-history-cell.v46-current-streak:before{content:""!important;position:absolute!important;inset:50% auto auto 50%!important;width:clamp(5px,38%,10px)!important;height:clamp(5px,38%,10px)!important;border-radius:var(--dj-radius-circle,50%)!important;background:#fff!important;transform:translate(-50%,-50%)!important;box-shadow:0 1px 1px rgba(0,0,0,.14)!important;pointer-events:none}
.v77-weight-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);background:var(--panel);padding-right:var(--dj-space-3);color:var(--muted);font-weight:var(--dj-text-heading-weight)}.v77-weight-input input{min-width:0;width:100%;border:0!important;background:transparent!important;box-shadow:none!important}.weight-v11-periods .selected{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}

@media(max-width:599px){
  :root{--v77-mobile-header-height:62px}
  .v76-mobile-header{position:sticky!important;top:0!important;z-index:112!important}
  .v76-mobile-actions>.actions{flex-wrap:nowrap!important;overflow-x:auto!important;overscroll-behavior-inline:contain;scrollbar-width:none}.v76-mobile-actions>.actions::-webkit-scrollbar{display:none}.v76-mobile-actions>.actions>button{flex:0 0 auto!important;white-space:nowrap}
  .v75-mobile-sheet.v77-plan-sheet{padding-bottom:calc(calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-4) + var(--dj-space-1)) + env(safe-area-inset-bottom))!important;max-height:calc(100dvh - var(--v77-mobile-header-height) - 8px)!important;overflow-y:auto!important}.v77-plan-sheet .v76-plan-menu{margin-top:0!important}
  .sidebar .nav-item,.sidebar [data-v75-mobile-more]{font-size:0!important}.sidebar .nav-item .v22-nav-icon,.sidebar [data-v75-mobile-more] .v22-nav-icon{margin:0!important}.sidebar .nav-item .count{display:none!important}

  .modal-backdrop:not([data-v70-issue-modal],.r21-entity-backdrop),.time-menu{top:var(--v77-mobile-header-height)!important;bottom:0!important;height:auto!important;min-height:0!important;padding-top:var(--dj-space-3)!important;padding-bottom:calc(calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-3)) + env(safe-area-inset-bottom))!important}.modal-backdrop:not([data-v70-issue-modal],.r21-entity-backdrop)>.modal,.time-menu>.time-menu-card{max-height:calc(100dvh - var(--v77-mobile-header-height) - 92px)!important}
  .habit-v11-popup,.v17-action-picker,.v56-popup,.priority-menu,.feed-compose-popup{overscroll-behavior:contain}

  [data-task-form] .task-top-actions{display:flex!important;align-items:center!important;gap:var(--dj-space-1)!important}.task-top-actions>.v76-task-state-wrap{order:-20!important;margin:0 var(--dj-space-1) 0 0!important}.task-top-actions>.v76-task-state-wrap .v76-task-state-popover{right:auto!important;left:0!important}

  .v56-calendar-shell{height:calc(100dvh - var(--v77-mobile-header-height) - 76px);min-height:360px;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden}.v56-week-grid,.v56-month-grid{overflow:hidden;will-change:transform,opacity}.v56-calendar-agenda{height:100%;max-height:none!important;min-height:0;overflow-y:auto!important;overscroll-behavior-y:contain;padding-bottom:var(--dj-space-6)}.v56-week-grid{touch-action:pan-y}.v56-calendar-agenda{touch-action:pan-y}
  .v56-week-grid.v77-calendar-carousel{display:block!important;position:relative;overflow:hidden!important;width:100%;padding:0!important}.v77-calendar-day-track{display:flex;width:max-content;will-change:transform;transform:translateZ(0)}.v77-calendar-slide{display:grid;grid-template-rows:auto minmax(34px,auto);flex:0 0 var(--v77-calendar-cell);width:var(--v77-calendar-cell);min-width:0;padding:0 var(--dj-space-1);box-sizing:border-box;text-align:center}.v77-calendar-slide .v56-weekday{min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap}.v77-calendar-slide .v56-day{width:100%;min-width:0}
  .v56-calendar-agenda.v77-agenda-flow{scroll-behavior:auto;scroll-snap-type:none;overflow-anchor:none;will-change:scroll-position}.v77-agenda-day{box-sizing:border-box;width:100%;margin:0;padding-bottom:0}

  .v43-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--dj-space-1)!important}.v43-metric{min-width:0;padding:var(--dj-space-2) var(--dj-space-2)!important;text-align:center}.v43-metric>span{display:block;overflow:hidden;text-overflow:ellipsis;font-size:var(--dj-text-caption-size);white-space:nowrap}.v43-metric>b{font-size:var(--dj-text-heading-size)!important;line-height:var(--dj-text-body-line-height)}

  html[data-interface-design="claude"] button[data-v77-circle]{inline-size:var(--v77-circle-size)!important;min-inline-size:var(--v77-circle-size)!important;max-inline-size:var(--v77-circle-size)!important;block-size:var(--v77-circle-size)!important;min-block-size:var(--v77-circle-size)!important;max-block-size:var(--v77-circle-size)!important;flex:0 0 var(--v77-circle-size)!important;border-radius:var(--dj-radius-circle,50%)!important}
}
/* Shared calendar: fixed chrome and one scrolling day flow on every screen. */
html[data-v77-calendar-layout],html[data-v77-calendar-layout] body{height:100%;overflow:hidden!important}
html[data-v77-calendar-layout] .app-shell{height:100dvh;min-height:0!important}
html[data-v77-calendar-layout] main.main{height:100dvh;min-height:0!important;overflow:hidden!important;box-sizing:border-box}
html[data-v77-calendar-layout] :is(.sidebar,.rightbar){max-height:100dvh;overflow-y:auto}
html[data-v77-calendar-layout] .v56-calendar-shell{height:var(--v77-calendar-height,70dvh)!important;min-height:0!important;box-sizing:border-box;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden}
html[data-v77-calendar-layout] .v56-calendar-agenda{height:100%;min-height:0;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain!important;touch-action:pan-y;scrollbar-width:none}
html[data-v77-calendar-layout] .v56-calendar-agenda::-webkit-scrollbar{display:none}
.v56-week-grid.v77-calendar-carousel{display:block!important;position:relative;overflow:hidden!important;width:100%;padding:0!important;touch-action:pan-y}
.v77-calendar-day-track{display:flex;width:max-content;will-change:transform}.v77-calendar-slide{display:grid;grid-template-rows:auto minmax(34px,auto);flex:0 0 var(--v77-calendar-cell);width:var(--v77-calendar-cell);min-width:0;padding:0 var(--dj-space-1);box-sizing:border-box;text-align:center}.v77-calendar-slide .v56-day{width:100%;min-width:0}
.v56-month-grid{touch-action:pan-y}.v56-calendar-agenda.v77-agenda-flow:not(.three){display:block!important;scroll-behavior:auto;scroll-snap-type:none;overflow-anchor:none}.v77-agenda-day{box-sizing:border-box;width:100%;margin:0;padding-bottom:0}
html[data-v77-calendar-layout] .v56-calendar-shell>.v56-month-grid[hidden]{display:none}
.v77-grid-motion{position:relative;width:100%;min-height:0;overflow:hidden;transition:height 190ms cubic-bezier(.2,.8,.2,1)}
.v77-grid-motion>.v56-month-grid,.v77-grid-motion>.v56-week-grid{position:absolute;inset:0 auto auto 0;width:100%;box-sizing:border-box;transition:opacity 170ms ease,transform 190ms cubic-bezier(.2,.8,.2,1)}
.v77-grid-motion>.v56-week-grid{opacity:0;transform:translateY(8px);pointer-events:none}
.v77-grid-motion.is-week>.v56-month-grid{opacity:0;transform:translateY(-8px);pointer-events:none}
.v77-grid-motion.is-week>.v56-week-grid{opacity:1;transform:translateY(0);pointer-events:auto}
@media(prefers-reduced-motion:reduce){.v77-grid-motion,.v77-grid-motion>.v56-month-grid,.v77-grid-motion>.v56-week-grid{transition:none}}
.v56-calendar-agenda .v77-agenda-day{display:flow-root;margin:0!important}
.v77-calendar-empty{margin:0 0 var(--dj-space-4);color:var(--muted);font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-reading-line-height)}

/* ==== v78.css ==== */
/* Dolojane V3.5 — project navigation and adaptive Android interaction. */
.v78-sidebar-project-wrap{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center}.v78-sidebar-project-wrap>.nav-item{min-width:0}.v78-projects-toggle,.v78-sidebar-project-toggle{width:44px;height:44px;border:0;background:transparent;color:var(--accent);display:grid;place-items:center;padding:0}.v78-sidebar-project-toggle-spacer{width:28px}.v78-projects-toggle .v22-icon,.v78-sidebar-project-toggle .v22-icon{width:var(--dj-icon-compact);height:var(--dj-icon-compact)}.v78-project-nav-count{margin-left:auto}.v78-sidebar-project-tree{grid-column:1/-1;display:grid;gap:var(--dj-space-1);padding:var(--dj-space-1) 0 var(--dj-space-2) var(--dj-space-2)}.v78-sidebar-project-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;padding-left:calc(var(--v78-project-level,0)*var(--dj-space-3))}.v78-sidebar-project-link{min-width:0;border:0;background:transparent;color:var(--muted);display:flex;gap:var(--dj-space-2);align-items:center;text-align:left;padding:var(--dj-space-2) var(--dj-space-1);border-radius:var(--dj-radius-chip);font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-body-line-height);writing-mode:horizontal-tb}.v78-sidebar-project-glyph{flex:0 0 17px;display:grid;place-items:center}.v78-sidebar-project-glyph .v22-icon{width:16px;height:16px;stroke:currentColor}.v78-sidebar-project-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v78-sidebar-project-link>b{flex:0 0 auto;font-size:var(--dj-text-caption-size);color:var(--muted)}.v78-sidebar-project-link:hover,.v78-sidebar-project-link.active{background:var(--panel);color:var(--ink)}

@media(max-width:1024px){
  main.main>.v76-mobile-header{position:sticky!important;top:0!important;z-index:115!important}.v76-mobile-main-row{position:relative}.task-modal-v09 [data-task-focus]{display:none!important}
  .v78-downward-state-menu{top:calc(100% + 4px)!important;right:auto!important;left:0!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-popup,10px)!important;background:var(--panel)!important;padding:var(--dj-space-1)!important;box-shadow:var(--shadow)!important}.v78-downward-state-menu .task-state-actions{display:flex!important;flex-direction:column!important;gap:var(--dj-space-1)!important;border:0!important;background:transparent!important}.v78-downward-state-menu :is(.task-state-action,[data-task-state]){border:0!important;box-shadow:none!important;background:transparent!important}
  /* Reserve space for the pinned Today filter; only the remaining actions scroll. */
  .v76-mobile-actions{display:flex!important;align-items:center!important;justify-content:flex-start!important;min-width:0;gap:var(--dj-space-2)!important;overflow-x:auto!important;scrollbar-width:none}.v76-mobile-actions::-webkit-scrollbar{display:none}.v76-mobile-actions>.actions{width:auto!important;min-width:0!important;flex:1 1 0!important;justify-content:flex-start!important}.v78-mobile-project-modes{display:flex!important;flex:0 0 auto!important;margin:0!important;gap:var(--dj-space-1)}.v78-mobile-stone-status{flex:0 0 34px!important;margin:0!important}
  .v78-mobile-streak{display:block;width:100%;border:0;background:transparent;color:var(--muted);text-align:left;padding:var(--dj-space-1) calc(var(--dj-space-8) + var(--dj-space-4)) var(--dj-space-1);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight);line-height:var(--dj-text-body-line-height)}
  .v78-mobile-today-capacity{margin:0 0 var(--dj-space-3);padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-card);background:var(--panel)}.v78-mobile-today-capacity .capacity{display:block!important}.v78-mobile-today-capacity .v51-capacity-failed{display:block!important}.v78-mobile-today-capacity :is(.v51-capacity-legend,.v35-capacity-legend,.v23-capacity-legend)>b{color:var(--danger,#c64f43)!important}.v78-mobile-today-capacity .v78-capacity-has-failed{min-height:24px}
  .v50-ritual-step.v78-or-source{outline:2px dashed var(--accent);outline-offset:2px}.v50-ritual-step.or-target{outline:2px solid var(--accent);outline-offset:2px}
  .v50-ritual-step[data-v50-ritual-key^="task:"]{touch-action:none!important;-webkit-user-select:none;user-select:none}
}

@media(max-width:599px){
  .v78-sidebar-project-wrap{display:contents}.v78-projects-toggle,.v78-sidebar-project-tree,.v78-project-nav-count{display:none!important}
  main.main{padding-top:calc(var(--v77-mobile-header-height,calc(var(--dj-space-8) + var(--dj-space-8))) + var(--dj-space-2))!important}
  main.main>.v76-mobile-header{position:fixed!important;inset:0 0 auto 0!important;width:100%!important;margin:0!important;z-index:125!important}
  .sidebar .nav-item[data-route="today"]{order:1!important}.sidebar .nav-item[data-route="inbox"]{order:2!important}.sidebar .nav-item[data-route="projects"]{order:3!important}.sidebar .nav-item[data-route="calendar"]{order:4!important}.sidebar .v75-mobile-more{order:5!important}
  .task-head-v09{grid-template-columns:22px minmax(0,1fr)!important}.task-head-v09>.task-state-check{grid-column:1!important}.task-head-v09>.task-title-v09,.task-head-v09>.v35-title-editor{grid-column:2!important;min-width:0!important;width:100%!important;writing-mode:horizontal-tb!important}
  .v76-mobile-actions .v78-mobile-project-modes{display:flex!important;order:-20!important;visibility:visible!important}
}

/* Explicit rows override the primary-nav order: children always follow Projects. */
@media(min-width:600px){
  .sidebar .nav-item[data-route]{padding-right:0!important}
  .sidebar .nav-item .count{flex:0 0 32px!important;width:32px!important;min-width:32px!important;margin-left:auto!important;margin-right:0!important;box-sizing:border-box!important;padding:0 var(--dj-space-3) 0 0!important;text-align:right!important;font-size:var(--dj-text-secondary-size,12px)!important}
  .sidebar .v78-sidebar-project-wrap{grid-template-columns:minmax(0,1fr) 44px 32px!important}
  .sidebar .v78-sidebar-project-wrap>.v78-project-nav-count{grid-row:1;grid-column:3}
  .sidebar .v78-sidebar-project-row{grid-template-columns:minmax(0,1fr) 44px 32px!important}
  .sidebar .v78-sidebar-project-row>.v78-sidebar-project-count{grid-row:1;grid-column:3}
  .sidebar .v78-sidebar-project-row>:is(.v78-sidebar-project-toggle,.v78-sidebar-project-toggle-spacer){grid-row:1;grid-column:2}
  .sidebar :is(.v78-project-nav-count,.v78-sidebar-project-count){box-sizing:border-box;width:32px;min-width:32px;margin:0;padding:0 var(--dj-space-3) 0 0;text-align:right;color:var(--muted);font-size:var(--dj-text-secondary-size,12px);font-weight:var(--dj-text-reading-weight)}
  .sidebar .v78-sidebar-project-wrap>.nav-item{grid-row:1!important;grid-column:1!important;order:0!important}
  .sidebar .v78-sidebar-project-wrap>.v78-projects-toggle{grid-row:1!important;grid-column:2!important;order:0!important;display:grid!important}
  .sidebar .v78-sidebar-project-wrap>.v78-sidebar-project-tree{grid-row:2!important;grid-column:1/-1!important;order:0!important;display:grid!important}
  .sidebar :is(.v78-projects-toggle,.v78-sidebar-project-toggle){width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important;opacity:1!important;visibility:visible!important;transform:none!important;color:var(--accent)!important}
  .sidebar :is(.v78-projects-toggle,.v78-sidebar-project-toggle) :is(.v22-icon,.dj-utility-symbol){display:inline-block!important;width:var(--dj-icon-compact)!important;height:var(--dj-icon-compact)!important;opacity:1!important;color:var(--accent)!important;stroke:currentColor}
  .sidebar .v78-sidebar-project-glyph .v22-icon{color:inherit!important}
}
/* One right-hand counter column across the entire wide sidebar. */
@media(min-width:600px) and (max-width:1024px){
  .v76-wide-more-items{padding-left:0}
  .v76-wide-more-items>button{padding-right:0;gap:var(--dj-space-2);font-size:var(--dj-text-secondary-size)}
  .v76-wide-more-items>button>span:not(.v22-icon):not(.v22-nav-icon){min-width:0;flex:1;white-space:nowrap}
  .sidebar .v76-wide-more-items .v76-more-count,.sidebar .v76-wide-more-items .notes-nav-count{flex:0 0 32px;box-sizing:border-box;width:32px;min-width:32px;margin-left:auto;padding:0 var(--dj-space-3) 0 0;text-align:right;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-reading-weight);color:var(--muted);font-variant-numeric:tabular-nums}
}
@media(max-width:1024px){
  .v76-mobile-main-row{grid-template-columns:44px minmax(0,1fr) 44px 44px!important}
  .v76-mobile-main-row>.v76-active-route{grid-column:2;grid-row:1}
  .v76-mobile-main-row>.notes-global-new{grid-column:3;grid-row:1}
  .v76-mobile-main-row>[data-v76-focus]{grid-column:4;grid-row:1}
  .v76-header-menu hr{width:100%;border:0;border-top:1px solid var(--line);margin:var(--dj-space-2) 0}
}
@media(min-width:600px) and (max-width:1024px){
  .v76-mobile-main-row{grid-template-columns:minmax(0,1fr) 44px 44px!important}
  .v76-mobile-main-row>.v76-active-route{grid-column:1}
  .v76-mobile-main-row>.notes-global-new{grid-column:2}
  .v76-mobile-main-row>[data-v76-focus]{grid-column:3}
}
/* Fold-open and tablet composition: the full web sidebar plus content, without Focus. */
@media(min-width:600px) and (max-width:1024px){
  body{padding-bottom:0!important}.app-shell{display:grid!important;grid-template-columns:244px minmax(0,1fr)!important;min-height:100dvh!important;padding:0!important;overflow:visible!important}.sidebar{position:sticky!important;inset:auto!important;top:0!important;grid-column:1!important;grid-row:1!important;width:244px!important;max-width:244px!important;height:100dvh!important;min-height:100dvh!important;display:block!important;padding:calc(var(--dj-space-4) + var(--dj-space-1)) var(--dj-space-4)!important;border:0!important;border-right:1px solid var(--line)!important;background:var(--panel)!important;box-shadow:none!important;overflow-y:auto!important;z-index:120!important}.main{grid-column:2!important;grid-row:1!important;width:auto!important;max-width:none!important;min-width:0!important;padding:calc(var(--dj-space-4) + var(--dj-space-1)) calc(var(--dj-space-4) + var(--dj-space-1))!important}.rightbar{display:none!important}.v76-mobile-header,.sidebar .v75-mobile-more{display:none!important}.sidebar .brand{display:flex!important}.sidebar .search{display:flex!important}.sidebar .nav-title{display:block!important}.sidebar .nav-group{display:block!important}.sidebar .nav-item[data-route]{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;gap:var(--dj-space-2)!important;width:100%!important;min-height:44px!important;margin:0!important;padding:var(--dj-space-2) var(--dj-space-3)!important;font-size:var(--dj-text-secondary-size)!important;text-align:left!important;white-space:nowrap!important}.sidebar .nav-item .count,.sidebar .v78-projects-toggle,.sidebar .v78-sidebar-project-tree{display:initial!important}.v78-sidebar-project-wrap{display:grid!important}.modal-backdrop:not([data-v70-issue-modal],[data-ws-shared-overview="true"]),.time-menu{padding-left:calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-4) + var(--dj-space-1))!important}.v75-mobile-backdrop{display:none!important}
}
@media(max-width:1024px){
  html[data-v78-mobile-selection="true"] .v15-task-row .v17-select-box{display:none!important}
  html[data-v78-mobile-selection="true"] .v15-task-row .task-state-check{display:grid!important;visibility:hidden!important;pointer-events:none!important}
  html[data-v78-mobile-selection="true"] .v15-task-row:has(.v17-select-box){grid-template-columns:18px 18px minmax(0,1fr) auto!important}
  html[data-v78-mobile-selection="true"] .v15-task-row{touch-action:pan-y}
  .v15-touch-dragging .v15-task-row{touch-action:none!important}
}

/* One adaptive chrome contract: phone and open Fold share the same action row. */
@media(max-width:1024px){
  :root{--v78-sidebar-width:0px;--v78-bottom-space:74px}
  /* Focus owns the entire viewport, above both pinned navigation columns. */
  .focus-overlay{inset:0!important;z-index:300!important;overflow:auto;max-width:100vw;box-sizing:border-box}
  .v76-mobile-header{box-sizing:border-box;background:var(--panel);border-bottom:1px solid var(--line)}
  [data-v76-source-heading],.focus-launch{display:none!important}
  /* Keep the current Karma level; only its duplicate page title is replaced. */
  .v43-page>[data-v76-source-heading]:has(.subtitle){display:block!important;margin:0 0 var(--dj-space-2)!important;padding:0!important}
  .v43-page>[data-v76-source-heading] h1{display:none!important}
  .v43-page>[data-v76-source-heading] .v43-title{gap:var(--dj-space-2);align-items:center}
  .v43-page>[data-v76-source-heading] .v43-level-icon{width:32px;height:32px}
  .v76-mobile-actions{flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;min-height:0;scrollbar-width:none}
  .v76-mobile-actions:empty{display:none!important}
  .v76-mobile-actions>.actions{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:var(--dj-space-2)!important;max-width:none!important;margin:0!important;overflow:visible!important}
  .v76-mobile-actions :is(button,select){flex-shrink:0!important;white-space:nowrap}
  .v76-mobile-actions button{min-height:34px}
  .v76-mobile-actions>.v78-mobile-project-modes{flex:0 0 auto!important}
  html[data-v74-route="today"] main.main>:is(.section,.card,.focus-card){margin-block:0!important}
  html[data-v74-route="today"] main.main>.section>.section-head{margin:0!important;padding-block:var(--dj-space-2)!important}
  html[data-v74-route="today"] main.main>.section>.card{margin-block:0!important}
  .v43-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--dj-space-1)!important}
  .v43-metric{min-width:0;padding:var(--dj-space-2) var(--dj-space-2)!important;text-align:center}
  .v43-metric>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--dj-text-secondary-size)}
  .v43-metric>b{font-size:var(--dj-text-heading-size)!important;line-height:var(--dj-text-body-line-height)}
  .modal-backdrop:not([data-v70-issue-modal],[data-ws-shared-overview="true"]),.time-menu,.feed-compose-popup{position:fixed!important;inset:var(--v77-mobile-header-height,62px) 0 0 var(--v78-sidebar-width)!important;display:grid!important;place-items:start center!important;align-content:start!important;padding:var(--dj-space-3) var(--dj-space-3) calc(var(--dj-space-3) + var(--v78-bottom-space))!important;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;z-index:130!important}
  .modal-backdrop:not([data-v70-issue-modal])>.modal,.time-menu>.time-menu-card,.feed-compose-popup>.feed-compose-card{box-sizing:border-box;width:min(620px,100%)!important;max-width:100%!important;max-height:calc(100dvh - var(--v77-mobile-header-height,62px) - var(--v78-bottom-space) - 24px)!important;margin:0!important;overflow:auto}
  button[data-v77-circle]{box-sizing:border-box!important;inline-size:var(--v77-circle-size)!important;min-inline-size:var(--v77-circle-size)!important;max-inline-size:var(--v77-circle-size)!important;block-size:var(--v77-circle-size)!important;min-block-size:var(--v77-circle-size)!important;max-block-size:var(--v77-circle-size)!important;flex:0 0 var(--v77-circle-size)!important;aspect-ratio:1!important;border-radius:var(--dj-radius-circle,50%)!important}
  :is(.task-state-check,.check,.v23-task-circle){flex-shrink:0!important;aspect-ratio:1!important}
  /* Keep the hidden textarea out of layout; the rich editor is the visible title. */
  .task-head-v09>.v35-title-source{width:1px!important;height:1px!important;min-width:0!important;max-width:1px!important}
  .v76-mobile-actions .v27-project-primary-row{display:flex!important;flex:0 0 auto!important;gap:var(--dj-space-2);order:0!important}
  .v76-mobile-task-artifacts:not(.tm20-active *){position:relative;display:flex!important;align-items:center;flex-wrap:wrap;gap:var(--dj-space-2);margin:0 0 var(--dj-space-3);padding:var(--dj-space-1) 0;min-height:34px}
  .v76-mobile-task-artifacts>:is([data-v38-tag-artifact],[data-v36-artifact],.v76-mobile-priority){display:inline-flex;align-items:center;gap:var(--dj-space-1);min-width:30px;min-height:30px;padding:var(--dj-space-1);border:0;background:transparent;color:var(--artifact-color,currentColor)}
  .v76-mobile-task-artifacts .v22-icon{width:20px;height:20px}.v76-mobile-priority{position:static!important;order:-20;font-size:0!important}
  [data-task-form]>.form-grid .v36-artifacts:is([hidden],:empty){display:none!important}
  .v76-task-state-wrap{position:relative}.v76-task-state-toggle{width:36px;height:36px;border:0;border-radius:var(--dj-radius-circle,50%);background:transparent;color:var(--accent);display:grid;place-items:center}.v76-task-state-toggle .v22-icon{width:20px;height:20px}
  .v76-task-state-popover{position:absolute;z-index:40}.v76-task-state-popover[hidden]{display:none!important}
  .v78-downward-state-menu .task-state-actions{margin:0!important;align-items:center}
  [data-task-form] .task-top-actions{display:flex!important;align-items:center!important;gap:var(--dj-space-1)!important}.task-top-actions>.v76-task-state-wrap{order:-20!important;margin:0 var(--dj-space-1) 0 0!important}
}
@media(min-width:600px) and (max-width:1024px){
  :root{--v78-sidebar-width:244px;--v78-bottom-space:0px}
  .page-title{font-size:var(--dj-text-title-size)!important;font-weight:var(--dj-text-title-weight)!important;line-height:var(--dj-text-title-line-height)!important;letter-spacing:-.01em!important}
  html,body{height:100%;overflow:hidden!important}
  .app-shell{height:100dvh!important;min-height:0!important}
  /* 2026-09-23 (владелец: "вертикальный скроллинг не работает нигде кроме Календаря" —
   * планшетная/мобильная веб-версия и их аналоги в Telegram): единственное место в кодовой базе,
   * где стоял -webkit-overflow-scrolling:touch, было завязано именно на Календарь
   * (revision28.css, html.v76-phone[data-r28-route="calendar"]) — старая, но всё ещё актуальная
   * для встроенных WebView (в т.ч. Telegram Mini App) особенность: вложенный overflow:auto/
   * scroll-контейнер БЕЗ этого свойства может не реагировать на touch-жест вообще (нативная
   * прокрутка страницы или колесо мыши при этом работают нормально — что и наблюдалось: колесом
   * этот контейнер скроллился). main.main — именно такой вложенный контейнер на этой ширине
   * (overflow-y:auto, html/body сами overflow:hidden). Добавляем то же свойство здесь, что уже
   * решило эту же проблему для Календаря. */
  main.main{box-sizing:border-box;height:100dvh!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;padding:calc(var(--v77-mobile-header-height,calc(var(--dj-space-8) + var(--dj-space-8))) + var(--dj-space-2)) var(--dj-space-4) calc(var(--dj-space-4) + var(--v78-bottom-space))!important;scroll-padding-top:calc(var(--v77-mobile-header-height,62px) + 8px)}
  main.main>.v76-mobile-header{position:fixed!important;display:block!important;inset:0 0 auto 244px!important;width:calc(100% - 244px)!important;margin:0!important;padding:var(--dj-space-2) var(--dj-space-3) var(--dj-space-2);z-index:125!important}
  .v76-mobile-main-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;align-items:center;gap:var(--dj-space-1);min-height:46px}
  .v76-rose-button,.v76-header-button{box-sizing:border-box;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;aspect-ratio:1;border:0;border-radius:var(--dj-radius-circle,50%)!important;background:transparent;color:var(--accent);display:grid;place-items:center;padding:var(--dj-space-2)}
  .v76-rose-button img{width:32px;height:32px;object-fit:contain}.v76-header-button .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px)}
  .v76-active-route{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0}.v76-active-route>.v22-icon,.v76-active-route>.v22-nav-icon .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);color:var(--accent)}.v76-active-route strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-block:var(--dj-space-1);font-size:var(--dj-text-title-size);font-weight:var(--dj-text-title-weight);line-height:var(--dj-text-title-line-height)}
  .v76-header-menu{position:absolute;top:48px;z-index:150;min-width:210px;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel);box-shadow:var(--shadow)}.v76-rose-menu{left:0}.v76-system-menu{right:0}.v76-header-menu[hidden]{display:none!important}.v76-header-menu>button{width:100%;min-height:44px;border:0;background:transparent;color:var(--ink);display:flex;align-items:center;gap:var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);text-align:left}.v76-header-menu .v22-icon{width:var(--dj-icon-compact);height:var(--dj-icon-compact);color:var(--accent)}
  .v76-karma-status{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0;flex:1 1 auto;color:var(--muted)}.v76-karma-status h1{display:none}.v76-karma-status .v43-level-icon{width:28px;height:28px;flex:0 0 28px}.v76-karma-status .subtitle{white-space:nowrap}
  html[data-v74-route="karma"] .v76-mobile-actions>.actions{flex:0 0 auto!important;margin-left:auto!important}
  .task-modal-v09 .task-head-v09{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:center!important;padding-right:0!important;margin-top:calc(var(--dj-space-8) + var(--dj-space-3))!important}
  .task-head-v09>.task-state-check{grid-column:1!important;grid-row:1!important}
  .task-head-v09>:is(.task-title-v09,.v35-title-editor){grid-column:2!important;grid-row:1!important;min-width:0!important;width:100%!important;writing-mode:horizontal-tb!important;white-space:pre-wrap;overflow-wrap:break-word}
  .task-head-v09>.v35-title-editor [contenteditable]{min-width:0;width:100%;writing-mode:horizontal-tb}
  .task-head-v09>:is(.task-state-check,[data-priority-flag]){align-self:center!important;margin-top:0!important}
  .sidebar .brand-mark[data-v76-rose]{cursor:pointer;flex-shrink:0}.sidebar .brand-mark[data-v76-rose]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
  .v76-rose-menu{position:fixed!important;left:12px!important;top:76px!important;max-width:calc(100vw - 24px)}
  .v76-wide-more{display:block;margin-top:var(--dj-space-2)}
  .v76-wide-more-toggle,.v76-wide-more-items>button{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-3);width:100%;min-height:44px;padding:var(--dj-space-2) var(--dj-space-3);border:0;background:transparent;color:var(--ink);text-align:left;font:inherit}
  .v76-wide-more-toggle>span:not(.v22-icon){flex:1}.v76-wide-more .v22-icon{width:var(--dj-icon-compact);height:var(--dj-icon-compact);flex:0 0 var(--dj-icon-standard,20px);color:var(--accent)}
  .v76-wide-more-items{padding-left:var(--dj-space-3)}.v76-wide-more-items[hidden]{display:none!important}.v76-wide-more-items>button.active{background:var(--accent-soft);border-radius:var(--dj-radius-button)}
  .v76-wide-more-toggle>.v76-more-dots{flex:0 0 22px!important;font-size:var(--dj-text-title-size);line-height:var(--dj-text-heading-line-height);text-align:center;color:var(--accent);letter-spacing:1px}
  .v75-mobile-backdrop:not([hidden]){display:none!important}
  .v75-mobile-sheet.v77-plan-sheet{max-height:100%;box-sizing:border-box;overflow:auto;padding:var(--dj-space-3);border-radius:var(--dj-radius-window) var(--dj-radius-window) 0 0}
  .v76-plan-menu{display:grid!important;grid-template-columns:1fr!important;gap:var(--dj-space-1)!important}.v76-plan-menu .v75-mobile-route{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;min-height:46px;gap:var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);border:0;text-align:left;font-size:var(--dj-text-secondary-size)}
}
@media(min-width:1025px),(max-width:599px){.v76-wide-more{display:none!important}}
@media(max-width:1024px){[data-android-navigation-back]{display:none!important}}
.sidebar .v78-sidebar-project-wrap>.v78-sidebar-project-tree:is([hidden],:not(:has(*))),.v78-sidebar-project-children[hidden]{display:none!important}
.v78-sidebar-project-wrap [aria-expanded="true"]>[data-v78-arrow="closed"],.v78-sidebar-project-wrap [aria-expanded="false"]>[data-v78-arrow="open"]{display:none!important;visibility:hidden}
.v78-sidebar-project-wrap [data-v78-arrow]{display:contents}
@media(min-width:600px){
  .sidebar .nav-item[data-route]{padding-right:0!important}
  .sidebar .nav-item .count{margin-right:calc(0px - var(--v78-count-border,0px))!important}
}
.project-summary-icon { display:none; }
@media (min-width:600px) and (max-width:1024px) {
  .project-meta-card[data-project-summary] {
    display:flex!important;flex-wrap:nowrap!important;gap:var(--dj-space-2)!important;align-items:center;
    min-width:0;font-size:var(--dj-text-caption-size)!important;padding:var(--dj-space-2)!important;overflow-x:auto;
  }
  .project-meta-card[data-project-summary] > * { flex:0 0 auto;white-space:nowrap; }
  
  .project-meta-card[data-project-summary] .project-summary-icon { display:inline-flex;vertical-align:middle; }
  .project-meta-card[data-project-summary] :is(.project-duration-summary,.project-task-summary) { display:inline-flex;align-items:center;gap:var(--dj-space-1); }
  .project-meta-card[data-project-summary] .v22-icon { width:16px!important;height:16px!important; }
  .project-meta-card[data-project-summary] .project-stones-links { display:contents; }
}
/* Keep manual entry separate from the progress graph; the glyph is a pencil. */
.v43-goal-row>.v40-card-number{display:inline-grid!important;place-items:center;align-self:center;width:32px;height:32px;min-width:32px;border:0;background:transparent;color:var(--accent);padding:var(--dj-space-1)}
.v40-manual-rules{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);min-width:0}
.v40-manual-rules>[data-v40-mode]{white-space:nowrap!important;word-break:normal!important;width:auto!important;min-width:max-content!important;flex:0 0 auto;writing-mode:horizontal-tb!important}
@media(max-width:599px){
  .v40-manual-rules{display:grid!important;grid-template-columns:repeat(3,max-content);justify-content:start}
  .v40-manual-rules>[data-v40-mode="sum"]{grid-row:1;grid-column:1/-1;justify-self:start}
  .v40-manual-rules>[data-v40-mode="single"]{grid-row:2;grid-column:1}
}
@media(max-width:1024px){
  .v40-goal-editor [data-v40-goal-status]{border:0!important;background:transparent!important;box-shadow:none!important;outline:0!important}
  .v40-goal-editor [data-v40-goal-status]::before,.v40-goal-editor [data-v40-goal-status]::after{content:none!important;display:none!important}
  .v40-goal-editor [data-v40-goal-status]:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}
}
/* The project mark stays the same while its tree opens and closes. */
.v78-sidebar-project-glyph{font-size:var(--dj-icon-standard,20px);font-weight:var(--dj-text-heading-weight);line-height:1}

/* ==== notes/styles.css ==== */
.notes-pin-dialog{width:min(340px,calc(100vw - 32px));border:1px solid var(--line);border-radius:var(--dj-radius-window);background:var(--panel);color:var(--ink);padding:calc(var(--dj-space-4) + var(--dj-space-1))}.notes-pin-dialog::backdrop{background:#0008}.notes-pin-dialog form{display:grid;gap:var(--dj-space-3)}.notes-pin-dialog input[type=password]{min-width:0;font:var(--dj-text-heading-size) system-ui}.notes-security-actions{display:flex;gap:var(--dj-space-2);flex-wrap:wrap}.notes-security-settings p{overflow-wrap:anywhere}.notes-security-shield{position:absolute;inset:0;z-index:99999;display:grid;place-items:center;background:var(--bg)}
.notes-pin-window{width:min(390px,calc(100vw - 32px))}.notes-pin-window h3{margin:0}.notes-pin-fields{display:grid;gap:var(--dj-space-3)}.notes-pin-row{display:block;position:relative;min-height:70px}.notes-pin-row>span:first-child{display:block;margin-bottom:var(--dj-space-2)}.notes-pin-boxes{display:inline-flex;gap:var(--dj-space-2);vertical-align:middle}.notes-pin-boxes i{display:grid;place-items:center;width:36px;height:38px;border:1px solid var(--line);border-radius:var(--dj-radius-control,6px);font-style:normal;font-size:var(--dj-text-body-size);color:var(--ink)}.notes-pin-row:focus-within .notes-pin-boxes i{border-color:var(--accent)}.notes-pin-row>input{position:absolute;left:0;bottom:0;width:168px;height:38px;opacity:0;z-index:1}.notes-pin-row>input:disabled{pointer-events:none}.notes-pin-eye{vertical-align:middle;margin-left:var(--dj-space-2);border:0;background:none;color:var(--ink);cursor:pointer}.notes-pin-error{min-height:1.2em;color:var(--danger);margin:0}.notes-pin-actions{display:flex;justify-content:flex-end;gap:var(--dj-space-3)}.notes-card-lock{display:inline-flex;vertical-align:middle;margin-left:var(--dj-space-2);color:var(--muted)}.notes-card-lock .v22-icon{width:16px;height:16px}
.notes-night-setting{display:flex;align-items:center;gap:var(--dj-space-2);margin-top:var(--dj-space-3)}.notes-night-question{position:fixed;z-index:100001;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(400px,calc(100vw - 24px));padding:var(--dj-space-3);background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--dj-radius-window);box-shadow:var(--shadow-modal);display:grid;gap:var(--dj-space-2)}.notes-night-question div{display:flex;justify-content:flex-end;gap:var(--dj-space-2)}.notes-night-question button{border:0;background:none;color:var(--accent);font:inherit;cursor:pointer}
.notes-inline-lock{display:inline-flex;margin-left:var(--dj-space-1);vertical-align:middle;color:var(--muted)}.notes-inline-lock .v22-icon{width:16px;height:16px}
.notes-pin-eye svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.notes-preview-locked{display:grid;place-items:center;height:100%;color:var(--muted)}.notes-preview-locked .v22-icon{width:28px;height:28px}
html body .notes-editor .notes-selection[hidden]{display:none}
.notes-mini-preview{position:absolute;right:12px;top:8px;z-index:4;pointer-events:none;background:var(--panel);box-shadow:0 2px 9px #0004;border:1px solid var(--line);padding:0;max-width:160px}
/* Linked note editor stays above an open «Дело» window on phone and desktop. */
body:has(>[data-dj-task-editor-host])>.notes-editor{z-index:100110}
.notes-mini-preview[hidden]{display:none}.notes-mini-preview canvas{display:block}.notes-mini-viewport{position:absolute;box-sizing:border-box;border:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.notes-mini-preview output{display:block;text-align:center;font:var(--dj-text-secondary-size) system-ui;color:var(--ink);line-height:18px}
.notes-document-objects{position:absolute;inset:0;pointer-events:none}.notes-attachments{display:flex;gap:var(--dj-space-3);flex-wrap:wrap;max-width:100%;padding:var(--dj-space-2);box-sizing:border-box}.notes-attachments label{display:flex;flex-direction:column;max-width:100%;font-size:var(--dj-text-secondary-size)}.notes-attachments audio{max-width:100%}.notes-attachments a{overflow-wrap:anywhere}.notes-editor [data-note-action=command-insertUnorderedList]{transform:scaleX(-1)!important}
.notes-catalog{padding:var(--dj-space-4) 0}.notes-tools,.notes-editor-tools,.notes-editor-head,.notes-page-nav{display:flex;gap:var(--dj-space-2);align-items:center;flex-wrap:wrap}
.notes-tools button,.notes-editor button,.notes-catalog button,.notes-picker button{font:inherit;cursor:pointer;color:inherit}
.notes-button{border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);width:42px;height:42px;min-width:42px;min-height:42px;flex:0 0 42px;display:inline-grid;place-items:center;background:transparent;transform:none!important}
.notes-button svg{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:none}.notes-button[aria-pressed=true]{background:var(--accent);color:white}.notes-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--dj-space-4);margin-top:var(--dj-space-4)}.notes-card{position:relative;border:1px solid var(--line);border-radius:var(--dj-radius-card,10px);background:var(--panel);overflow:hidden;min-width:0}.notes-card>button.notes-open{border:0;background:none;display:block;width:100%;text-align:left;padding:var(--dj-space-4)}.notes-card h3{font:var(--dj-text-heading-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) inherit;margin:var(--dj-space-2) 0;overflow-wrap:anywhere}.notes-card time{font-size:var(--dj-text-secondary-size);color:var(--muted)}.notes-preview{height:140px;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-reading-line-height)}.notes-preview img{max-width:100%;max-height:140px;object-fit:contain}
.notes-editor{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font:var(--dj-text-body-size)/var(--dj-text-reading-line-height) var(--font,system-ui);overscroll-behavior:contain}.notes-editor-head{padding:var(--dj-space-2) var(--dj-space-3);background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:nowrap}.notes-title{font:var(--dj-text-heading-weight,600) var(--dj-text-heading-size,18px)/var(--dj-text-body-line-height) var(--font,system-ui)!important;writing-mode:horizontal-tb!important;min-width:0!important;flex:1!important;width:auto!important;border:0;background:transparent;color:inherit;padding:var(--dj-space-2)}.notes-editor-tools{padding:var(--dj-space-2) var(--dj-space-3);background:var(--panel);max-height:160px;overflow:auto;flex-shrink:0}.notes-editor-tools select,.notes-editor-tools input{font:inherit;color:inherit;max-width:160px;min-height:36px;background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);padding:var(--dj-space-1)}.notes-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:calc(var(--dj-space-4) + var(--dj-space-1));touch-action:pan-x pan-y}.notes-page-wrap{position:relative;margin:0 auto}.notes-page{width:560px;height:794px;position:absolute;left:0;top:0;transform-origin:0 0;background:var(--note-paper,#fffdf0);color:var(--note-ink,#202020);box-shadow:0 2px 14px #0002;overflow:hidden}.notes-text{position:absolute;inset:38px 40px;outline:none;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font:var(--dj-text-heading-size)/var(--dj-text-caption-line-height) var(--font,system-ui);color:inherit;writing-mode:horizontal-tb!important;touch-action:pan-y}.notes-text p,.notes-text div{margin:0}.notes-text img{display:inline-block;max-width:100%;vertical-align:middle}.notes-text table{border-collapse:collapse;width:100%;table-layout:fixed}.notes-text td,.notes-text th{border:1px solid currentColor;padding:var(--dj-space-1);min-width:24px;vertical-align:top}.notes-text ul,.notes-text ol{padding-left:calc(var(--dj-space-6) + var(--dj-space-1))}.notes-ink{position:absolute;inset:0;width:560px;height:794px;pointer-events:none;touch-action:none}.notes-page[data-mode=draw] .notes-ink{pointer-events:auto}.notes-page[data-mode=draw] .notes-text{pointer-events:none}.notes-status{font-size:var(--dj-text-secondary-size);min-width:80px;color:var(--muted)}.notes-status[data-error=true]{color:#b42318}.notes-palette{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);max-width:280px}.notes-swatch{width:24px;height:24px;border:1px solid #777;border-radius:var(--dj-radius-circle,50%);padding:0}.notes-swatch[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}.notes-selection{position:absolute;z-index:3;right:12px;top:64px;max-width:calc(100% - 24px);display:flex;flex-wrap:wrap;gap:var(--dj-space-1);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);padding:var(--dj-space-2);box-shadow:0 4px 16px #0002}.notes-selection[hidden]{display:none}.notes-selection button{padding:var(--dj-space-2);border:0;border-radius:var(--dj-radius-popup-row,7px);background:var(--bg)}
.notes-picker{position:fixed;inset:0;z-index:100010;background:#0005;display:grid;place-items:center;padding:var(--dj-space-3)}.notes-picker>section{background:var(--panel);color:var(--ink);border-radius:var(--dj-radius-popup);padding:var(--dj-space-4);width:min(520px,100%);max-height:85dvh;display:flex;flex-direction:column;gap:var(--dj-space-3);box-sizing:border-box}.notes-picker header{display:flex;align-items:center;gap:var(--dj-space-2)}.notes-picker header strong{flex:1}.notes-picker-list{overflow:auto;min-height:0}.notes-picker-list button{display:flex;gap:var(--dj-space-3);align-items:center;width:100%;padding:var(--dj-space-3);border:0;border-bottom:1px solid var(--line);background:none;text-align:left}.notes-picker-list button[aria-pressed=true]{background:var(--bg)}.notes-picker input{font:inherit;padding:var(--dj-space-2);width:100%;box-sizing:border-box}.notes-artifact-badge{margin-inline:var(--dj-space-1);width:26px;height:26px;min-width:26px;min-height:26px;vertical-align:middle}.notes-artifact-badge svg{width:19px;height:19px}
html.notes-editing #app{visibility:hidden}html.notes-editing .modal-backdrop{visibility:visible;z-index:100020!important}html.notes-editing .notes-editor~.modal-backdrop{z-index:100020!important}html.notes-editing .v75-mobile-backdrop,html.notes-editing .v76-header-menu{visibility:hidden}
.notes-editor [hidden],.notes-catalog [hidden]{display:none!important}
.notes-card h3{font-family:inherit;font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight);line-height:var(--dj-text-body-line-height)}
.notes-card>[data-note-favorite]{position:absolute;right:4px;top:4px;width:32px;height:32px;min-width:32px;min-height:32px;z-index:1;background:var(--panel)}
.notes-text-export{box-sizing:content-box!important}
.notes-editor-head .notes-status[data-error=true]{display:block;position:absolute;top:58px;left:12px;right:12px;z-index:5;padding:var(--dj-space-3);background:#fff0ed;border:1px solid #b42318;border-radius:var(--dj-radius-chip);max-height:100px;overflow:auto}
@media(max-width:599px){.notes-editor-head{padding-top:env(safe-area-inset-top,var(--dj-space-2))}.notes-editor-head .notes-status{display:none}.notes-editor-tools{gap:var(--dj-space-1);max-height:150px}.notes-scroll{padding:var(--dj-space-2)}.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-3)}.notes-card>button.notes-open{padding:var(--dj-space-3)}.notes-title{font-size:var(--dj-text-heading-size,18px)!important}.notes-tools{gap:var(--dj-space-1)}}
@media(min-width:600px) and (max-width:1024px){.sidebar .nav-item[data-route=notes]{display:none!important}}

/* Compact square preview; its caption is outside the paper, not inside it. */
.notes-grid{grid-template-columns:repeat(auto-fill,minmax(min(120px,100%),1fr));gap:var(--dj-space-4)}
.notes-card{border:0;border-radius:0;background:transparent;overflow:visible}
.notes-card>button.notes-open{padding:0;color:inherit}
.notes-preview{box-sizing:border-box;width:100%;height:auto;aspect-ratio:1;contain:size;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--dj-radius-card,10px);background:var(--panel);padding:var(--dj-space-3);font-size:var(--dj-text-secondary-size)}
/* Clip text inside the paper's padding, including the Mucha inner frame.
   The full text is retained in the document; only the catalogue is clipped. */
.notes-preview-content{display:block;min-width:0;min-height:0;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}
.notes-preview img{width:100%;height:100%;max-height:none;object-fit:contain;object-position:top left}
.notes-card h3{font-size:var(--dj-text-secondary-size);margin:var(--dj-space-2) 0 var(--dj-space-1)}
.notes-card time{font-size:var(--dj-text-secondary-size)}
.notes-card>[data-note-favorite]{width:28px;height:28px;min-width:28px;min-height:28px;border:0;color:var(--accent);background:var(--panel)}
.notes-context:empty{display:none}
.v76-more-count{margin-left:auto;flex:0 0 2.5em;text-align:right;font-size:inherit;font-variant-numeric:tabular-nums;color:var(--muted)}
@media(max-width:599px){.notes-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dj-space-3)}.notes-preview{padding:var(--dj-space-2)}.notes-card h3{font-size:var(--dj-text-secondary-size)}}

.notes-card-meta{display:flex;align-items:center;gap:var(--dj-space-1);flex-wrap:wrap;min-height:21px;font-size:var(--dj-text-secondary-size)}
.notes-card-artifact{display:inline-flex;align-items:center}.notes-card-artifact svg{width:18px!important;height:18px!important;stroke:currentColor}
.notes-artifact-badge{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;width:auto!important;min-width:22px!important;max-width:none!important;flex:0 0 auto!important;display:inline-flex!important;gap:var(--dj-space-1)!important;padding:var(--dj-space-1)!important;aspect-ratio:auto!important;color:var(--accent)!important}
.notes-badge-count{font:inherit;font-size:var(--dj-text-secondary-size);font-variant-numeric:tabular-nums}
/* One native-scrolling rail: left on desktop/Fold, bottom on a narrow phone. */
.notes-editor-head{flex:none;min-height:54px;box-sizing:border-box}
.notes-editor-body{display:flex;flex:1;min-height:0;min-width:0;overflow:hidden}
.notes-editor{touch-action:pan-x pan-y}.notes-editor-body{position:relative}
.notes-context-docked .notes-editor-body{padding-top:0}
.notes-table-controls{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}.notes-table-controls button{pointer-events:auto;position:absolute;width:22px;height:22px;min-width:22px;min-height:22px;padding:0;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--accent);font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-caption-line-height);transform:none!important;box-shadow:0 1px 3px #0001}
/* Handles sit on the table border: the column pill reaches 7px above the top line, the row pill stays in the margin. */
.notes-table-controls .notes-table-column-handle{width:22px;min-width:22px;height:14px;min-height:14px;font-size:var(--dj-text-caption-size);border-radius:var(--dj-radius-popup-row)}
.notes-table-controls .notes-table-row-handle{width:14px;min-width:14px;height:22px;min-height:22px;font-size:var(--dj-text-caption-size);border-radius:var(--dj-radius-popup-row)}
.notes-table-controls button:hover,.notes-table-controls button:focus-visible{background:var(--accent);color:var(--panel);border-color:var(--accent)}
@media (pointer:coarse){.notes-table-controls button::after{content:"";position:absolute;inset:-11px}}
.notes-undo-toast{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);z-index:30;display:flex;align-items:center;gap:var(--dj-space-3,12px);max-width:calc(100% - 32px);padding:var(--dj-space-2,8px) var(--dj-space-2,8px) var(--dj-space-2,8px) var(--dj-space-4,16px);border-radius:var(--dj-radius-popup,10px);background:var(--ink);color:var(--panel);box-shadow:0 6px 20px #0003;font-size:var(--dj-text-secondary-size,14px);animation:notes-undo-in .16s ease-out}
.notes-undo-toast button{min-height:36px;padding:0 var(--dj-space-3,12px);border:0;border-radius:var(--dj-radius-button,8px);background:transparent;color:var(--accent-soft);font:inherit;font-weight:var(--dj-text-heading-weight,600);cursor:pointer}
.notes-undo-toast button:hover,.notes-undo-toast button:focus-visible{background:#ffffff1f}
@keyframes notes-undo-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@media (prefers-reduced-motion:reduce){.notes-undo-toast{animation:none}}
.notes-text .notes-table-selected{box-shadow:inset 0 0 0 2px var(--accent);background-color:var(--accent-soft)}
.notes-selection[data-kind=table-create]{width:min(320px,calc(100vw - 16px));display:grid;box-sizing:border-box}.notes-table-create{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-3)}.notes-table-create label{display:grid;gap:var(--dj-space-1);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight)}.notes-table-create input{box-sizing:border-box;width:100%;min-width:0;height:38px;border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);background:var(--panel);color:var(--ink);font:inherit;padding:var(--dj-space-2) var(--dj-space-2)}.notes-table-create>div{grid-column:1/-1;display:flex;justify-content:flex-end;gap:var(--dj-space-2)}.notes-table-create>div .notes-button{width:34px;height:34px;min-width:34px;min-height:34px}
.notes-attached{position:absolute;left:auto;right:12px;bottom:8px;z-index:4;display:flex;justify-content:flex-end;gap:var(--dj-space-1);flex-wrap:wrap;max-width:calc(100% - 90px);padding:var(--dj-space-1) var(--dj-space-2);border-radius:var(--dj-radius-card,10px);background:var(--panel)}
.notes-attached button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border:0;background:none;padding:var(--dj-space-1);transform:none!important}.notes-attached svg{width:22px!important;height:22px!important}
.notes-selection[data-kind=title]{flex-direction:column}.notes-selection[data-kind=title] button{display:flex;gap:var(--dj-space-2);align-items:center;text-align:left}.notes-selection[data-kind=title] svg{width:22px;height:22px;flex:none}
.notes-selection[data-kind=modes] .notes-button{padding:var(--dj-space-2);border-radius:var(--dj-radius-circle);width:42px;height:42px;min-width:42px;min-height:42px;flex:0 0 42px}
.notes-selection[data-kind=modes] .notes-button[aria-pressed=true]{background:var(--accent);color:#fff}
.notes-editor-tools{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:center;gap:var(--dj-space-2);max-height:none;width:60px;box-sizing:border-box;padding:var(--dj-space-3) var(--dj-space-2);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;touch-action:pan-y;scroll-snap-type:y proximity}
.notes-editor-tools>.notes-button{scroll-snap-align:start;flex-shrink:0;font-size:var(--dj-text-heading-size)}
.notes-editor-tools button:disabled{opacity:.32;cursor:default}
.notes-editor .notes-scroll{min-width:0;position:relative;padding:var(--dj-space-4);scroll-behavior:auto}
.notes-pages{position:relative;min-width:100%}
.notes-pages[data-page-mode=CONTINUOUS]>.notes-page-wrap{margin-bottom:0}
.notes-pages[data-page-mode=CONTINUOUS]>.notes-page-wrap>.notes-page-footer{position:absolute;inset:auto 0 0;z-index:2;pointer-events:none}
.notes-pages[data-page-mode=CONTINUOUS]>.notes-page-wrap>.notes-page-footer>button{pointer-events:auto}
.notes-pages[data-page-mode=CONTINUOUS] .notes-page-stage{border-bottom:1px dashed var(--line);box-sizing:content-box}
.notes-page-wrap{position:relative;margin:0 auto calc(var(--dj-space-4) + var(--dj-space-1))}
.notes-page-stage{position:relative;width:100%}
.notes-page-footer{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:var(--dj-space-1) 0;gap:var(--dj-space-2);max-inline-size:calc(100vw - 2*var(--dj-space-2,8px));box-sizing:border-box}
.notes-page-number{font-size:var(--dj-text-caption-size);color:var(--muted);font-variant-numeric:tabular-nums;padding-right:var(--dj-space-1)}
.notes-page-footer .notes-button{width:28px;height:28px;min-width:28px;min-height:28px;flex-basis:28px;border:0;background:transparent}
.notes-page-footer svg{width:19px;height:19px}
.notes-text h1{font-size:32px;font-weight:700;line-height:1.25;margin:0 0 var(--dj-space-3)}.notes-text h2{font-size:26px;font-weight:700;line-height:1.3;margin:0 0 var(--dj-space-3)}.notes-text h3{font-size:22px;font-weight:700;line-height:1.3;margin:0 0 var(--dj-space-2)}
.notes-editor .notes-text,.notes-editor .notes-text *{user-select:text!important;-webkit-user-select:text!important;-webkit-touch-callout:default}
.notes-editor .notes-text.notes-all-selected{background:color-mix(in srgb,var(--accent) 20%,transparent);outline:2px solid var(--accent);outline-offset:2px}

.notes-selection{position:absolute;top:64px;left:70px;right:auto;max-width:min(420px,calc(100% - 90px));max-height:calc(100% - 140px);overflow:auto;z-index:10;box-sizing:border-box}
.notes-selection label{display:flex;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap;padding:var(--dj-space-1)}
.notes-selection select,.notes-selection input{font:inherit;max-width:220px}
.notes-selection[data-kind=text-context]{gap:var(--dj-space-1);padding:var(--dj-space-1);flex-wrap:wrap}
.notes-pull-hint{box-sizing:border-box;min-height:72px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:var(--dj-text-secondary-size);padding:var(--dj-space-3);opacity:calc(.55 + var(--notes-pull,0)*.45);cursor:pointer;touch-action:manipulation}
.notes-pull-hint.ready{color:var(--accent);font-weight:var(--dj-text-heading-weight);background:var(--accent-soft)}
@media(max-width:599px){
  .notes-editor-body{flex-direction:column}.notes-editor-tools{order:2;flex-direction:row;width:100%;height:auto;flex:0 0 auto;min-height:54px;max-height:none;overflow-x:auto;overflow-y:hidden;touch-action:pan-x;scroll-snap-type:x proximity;padding:var(--dj-space-2) var(--dj-space-3) calc(var(--dj-space-2) + env(safe-area-inset-bottom));gap:var(--dj-space-3)}
  .notes-editor .notes-scroll{order:1;padding:var(--dj-space-2)}.notes-editor-head{padding-inline:var(--dj-space-2);gap:var(--dj-space-1)}.notes-selection{left:8px;max-width:calc(100% - 16px)}.notes-attached{bottom:calc(64px + env(safe-area-inset-bottom));left:auto;right:8px;max-width:calc(100% - 16px)}
}

/* Notes controls own their colors; icon-library accents must not override artifacts
   or the white foreground of a selected control. Filled Shekhtel art stays filled. */
:is(.notes-editor,.notes-tools,.notes-card,.notes-picker,.notes-global-new,.notes-project-badge,.v76-title-create) .v22-icon,
:is(.notes-editor,.notes-tools,.notes-card,.notes-picker,.notes-global-new,.notes-project-badge,.v76-title-create) .v22-icon *{color:inherit!important;stroke:currentColor!important}
:is(.notes-editor,.notes-tools,.notes-card,.notes-picker,.notes-global-new,.notes-project-badge,.v76-title-create) .v22-icon :is(.fill-a,.fill-a2){fill:currentColor!important;stroke:none!important}
:is(.notes-editor,.notes-tools,.notes-card,.notes-picker,.notes-global-new,.notes-project-badge,.v76-title-create) .v22-icon .fill-a2{fill-opacity:.5!important}
:is(.notes-editor,.notes-tools,.notes-card,.notes-picker,.notes-global-new,.notes-project-badge,.v76-title-create) .v22-icon .stroke-a2{stroke-opacity:.5!important}
:is(.notes-editor,.notes-tools,.notes-card,.notes-picker,.notes-global-new,.notes-project-badge,.v76-title-create) .v22-icon .fill-bg{fill:var(--note-icon-bg,var(--panel))!important;stroke:none!important}
:is(.notes-editor,.notes-tools,.notes-card,.notes-picker) button[aria-pressed=true]:not(.notes-swatch){background:var(--accent)!important;color:#fff!important;--note-icon-bg:var(--accent)}
.notes-picker button[aria-pressed=true]>span{color:inherit!important}
.notes-editor .notes-button,.notes-tools .notes-button,.notes-global-new{color:var(--accent)}
.notes-mode-buttons{display:flex;flex-direction:inherit;gap:inherit;flex:none;scroll-snap-align:start}
.notes-mode-buttons>.notes-button{flex-shrink:0}
.notes-editor-tools>.notes-button,.notes-editor-tools>.notes-mode-buttons>.notes-button{border-color:transparent!important;box-shadow:none!important;background:transparent}
.notes-editor-tools>.notes-mode-buttons:first-child>.notes-button{border-color:var(--line)!important}
.notes-editor-tools>[data-note-action^="attach-"][aria-pressed="true"]{border-color:var(--accent)!important;background:var(--accent)!important;color:#fff!important}
.notes-selection[data-kind=options],.notes-selection[data-kind=attached]{overflow:visible;flex-wrap:nowrap;width:max-content;gap:var(--dj-space-2)}
.notes-selection[data-kind=options]>.notes-button,.notes-selection[data-kind=attached]>.notes-button{padding:var(--dj-space-2);border-radius:var(--dj-radius-circle);background:transparent}
.notes-option-choices{position:absolute;right:0;bottom:calc(100% + 6px);display:flex;gap:var(--dj-space-2);padding:var(--dj-space-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);box-shadow:0 4px 16px #0002}
.notes-option-choices>.notes-button{border-radius:var(--dj-radius-popup-row);padding:var(--dj-space-1)}
.notes-paper-sample,.notes-ruling-sample{display:block;width:22px;height:25px;border:1px solid currentColor;border-radius:var(--dj-radius-detail)}
.notes-ruling-grid{background-image:linear-gradient(currentColor 1px,transparent 1px),linear-gradient(90deg,currentColor 1px,transparent 1px);background-size:6px 6px}
.notes-ruling-wide{background-image:repeating-linear-gradient(transparent 0 7px,currentColor 7px 8px)}
.notes-ruling-narrow{background-image:repeating-linear-gradient(transparent 0 4px,currentColor 4px 5px)}
.notes-selection[data-kind=artifact-picker]{display:flex;flex-direction:column;flex-wrap:nowrap;width:300px;max-height:min(440px,calc(100% - 140px));overflow:hidden}
.notes-selection[data-kind=artifact-picker]>input{width:100%;max-width:none;box-sizing:border-box;padding:var(--dj-space-2);flex:none}
.notes-link-choices{overflow:auto;min-height:0}
.notes-link-choices>button{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;text-align:left;background:none;border:0;border-radius:var(--dj-radius-popup-row,7px);color:var(--note-artifact-color,var(--accent));min-height:36px}
.notes-link-choices>button svg{width:22px;height:22px;flex:none}
.notes-link-choices>button span{min-width:0;overflow-wrap:anywhere}
.notes-link-choices>button[data-note-owner-choice]{padding-inline-start:calc(var(--dj-space-2) + var(--note-tree-indent,0px))}
.notes-link-confirm{display:flex;justify-content:flex-end;padding-top:var(--dj-space-2);border-top:1px solid var(--line)}
.notes-link-confirm .notes-button{width:36px;height:36px;min-width:36px;min-height:36px;padding:var(--dj-space-1);border-radius:var(--dj-radius-circle,50%);background:var(--accent);color:#fff}
.notes-nav-count{margin-left:auto;font-variant-numeric:tabular-nums}
.notes-focus-pair{position:fixed;right:22px;top:18px;z-index:15;display:flex;align-items:center;gap:var(--dj-space-2)}
.notes-focus-pair>.focus-launch{position:static!important;margin:0}
.notes-focus-pair>.notes-global-new{background:var(--panel)}
.notes-artifact-badge.notes-project-badge{flex-direction:row;align-items:center;width:auto!important;min-width:22px!important;min-height:44px!important;border:0!important;border-radius:0!important;justify-content:center;padding:0!important;flex:0 0 auto!important;background:transparent!important}
.notes-project-badge .notes-badge-count{position:static;transform:none}
.notes-favorite-entry{display:flex;align-items:center;gap:var(--dj-space-2);width:100%}
.notes-favorite-entry .count{margin-left:auto}
.notes-favorite-entry{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;padding:var(--dj-space-3) 0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.notes-favorite-entry>svg{width:22px;height:22px;flex:none;color:var(--accent)}
.notes-context{display:flex;align-items:center;flex-wrap:wrap;gap:var(--dj-space-2);margin-top:var(--dj-space-3)}
.notes-catalog{padding-top:0}
html[data-v74-route="notes"] main>.topbar{flex-wrap:wrap}
html[data-v74-route="notes"] main>.topbar>.actions{flex:0 0 100%;width:100%;justify-content:flex-end}
.notes-tools{flex-wrap:nowrap;min-width:0;overflow-x:auto;max-width:100%;padding:var(--dj-space-1)}
.notes-tools>.notes-button{flex-shrink:0}
.notes-context>.notes-card-artifact svg{width:24px!important;height:24px!important}
.notes-context>.notes-button{margin-left:auto;color:var(--accent)}
.notes-context .v22-icon,.notes-context .v22-icon *{color:inherit!important;stroke:currentColor!important}
.notes-editor .notes-scroll{scrollbar-gutter:stable;overflow-anchor:none}
.notes-selection[data-kind=modes]{flex-direction:column;flex-wrap:nowrap;width:max-content;right:auto;padding:var(--dj-space-1)}
@media(min-width:600px){.notes-selection[data-kind=modes]{flex-direction:row}}
.notes-selection[data-kind=eraser],.notes-selection[data-kind=selection-shape]{flex-wrap:nowrap;width:max-content;right:auto}

/* V3.8 stable correction: editor text follows the active heading typeface without
   inheriting the heading size. Linked artifacts stay visible above the tool rail. */
.notes-editor .notes-text{font-family:var(--font-display,Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important}
.notes-attached{z-index:20!important;bottom:12px!important}
.notes-pull-hint{position:sticky;bottom:0;z-index:8;background:color-mix(in srgb,var(--panel) 92%,transparent)}
.notes-selection[data-kind=table] button{display:grid;place-items:center;width:38px;height:38px;min-width:38px;padding:var(--dj-space-1);color:var(--accent)}
.notes-selection[data-kind=table] .notes-table-add-icon{display:grid;grid-template-columns:11px 18px;align-items:center;justify-content:center;line-height:1}
.notes-selection[data-kind=table] .notes-table-add-icon b{font-size:var(--dj-icon-standard)}
.notes-selection[data-kind=table] .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.notes-selection[data-kind=brush]{display:flex;flex-direction:column;gap:var(--dj-space-3);width:294px;right:auto;box-sizing:border-box}
.notes-brushes{display:flex;justify-content:space-between;gap:var(--dj-space-1)}
.notes-brushes>.notes-button{border-radius:var(--dj-radius-button);--brush-color:var(--note-tool-color);color:var(--accent);width:42px;height:54px;padding:var(--dj-space-1)}
.notes-brushes svg{height:44px;width:30px}
.notes-brush-width{display:flex;align-items:center;gap:var(--dj-space-1);width:100%}
.notes-brush-width input{min-width:0;flex:1;width:100px}
.notes-brush-width output{font-size:var(--dj-text-secondary-size);min-width:18px}
.notes-selection[data-kind=formatting]{display:flex;flex-wrap:nowrap;width:auto}
.notes-selection[data-kind=formatting] button[aria-pressed=true]{background:var(--accent)!important;color:#fff!important}
.notes-selection[data-kind=formatting] button[aria-pressed=true] :is(.v22-icon,.v22-icon *){color:#fff!important;stroke:currentColor!important}
.notes-font-size-form{display:flex;align-items:center;gap:var(--dj-space-2)}.notes-font-size-form input{width:76px!important}.notes-font-size-form .notes-button{flex:0 0 34px}
.notes-selection[data-kind=brush] .notes-palette{gap:var(--dj-space-1)}
.notes-selection[data-kind=brush] .notes-swatch{width:24px;height:24px;flex:0 0 24px}
.notes-link-choices>button svg{color:var(--note-artifact-color,var(--accent))!important}
.notes-link-choices>button[aria-pressed=true] svg{color:white!important}
.notes-card>[data-note-favorite]{display:grid!important;place-items:center!important;padding:0!important;line-height:0}
.notes-card>[data-note-favorite][aria-pressed=true]{background:var(--panel)!important;color:var(--accent)!important;box-shadow:none!important}
.notes-card>[data-note-favorite] .v22-icon{display:block;margin:0!important}
.notes-card>[data-note-favorite] .v22-icon{position:static!important;transform:none!important;width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important}
.notes-card h3,.notes-card-meta{justify-content:center;text-align:center}
.notes-card h3{width:100%}.notes-preview{padding-top:calc(var(--dj-space-3) + var(--dj-space-1))}
.notes-selection[data-kind="text-context"] button{display:inline-flex;align-items:center;gap:var(--dj-space-1)}.notes-selection[data-kind="text-context"] .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);flex:0 0 var(--dj-icon-compact,16px)}
html body .notes-editor .notes-selection[data-kind="text-context"]{display:block;box-sizing:border-box;width:min(280px,calc(100vw - 16px));max-width:calc(100vw - 16px);overflow:auto;padding:var(--dj-space-1);right:auto;bottom:auto;color:var(--ink);font-size:var(--dj-text-caption-size)}
.note-text-context-row{display:flex;align-items:center;gap:0;white-space:nowrap}
.notes-selection[data-kind="text-context"] .note-text-context-row button{flex:1 1 auto;min-width:0;min-height:44px;padding:var(--dj-space-1);white-space:nowrap;justify-content:center;font:inherit}
.notes-selection[data-kind="text-context"] .note-text-context-row button+button{border-inline-start:1px solid var(--line)}
.notes-selection[data-kind="text-context"] .note-text-context-row [data-note-action="context-more"]{flex:0 0 32px;min-width:32px;justify-content:center;font-size:var(--dj-text-heading-size)}
.note-text-context-extra{display:none}
.notes-selection[data-kind="text-context"][data-expanded="true"] .note-text-context-row{display:none}
.notes-selection[data-kind="text-context"][data-expanded="true"] .note-text-context-extra{display:flex;flex-direction:column}
.note-text-context-extra button{min-height:44px;width:100%;justify-content:flex-start;text-align:left;white-space:nowrap;font:inherit}
.note-text-context-extra [data-note-action="context-less"]{justify-content:flex-start;border-bottom:1px solid var(--line)}
.notes-color-glyph{display:inline-grid;place-items:center;width:22px;height:22px;font-weight:var(--dj-text-heading-weight);line-height:1}
.notes-color-ink{border-bottom:3px solid var(--accent)}
.notes-color-paper{background:var(--accent-soft);box-shadow:inset 0 -3px var(--accent);border-radius:var(--dj-radius-field)}
@media(max-width:1024px){
  .notes-focus-pair{display:none!important}
  .v76-active-route>.v76-title-create{display:inline-flex!important;align-items:center;justify-content:center;width:30px!important;height:34px!important;min-width:30px!important;max-width:30px!important;min-height:34px!important;flex:0 0 30px!important;padding:var(--dj-space-1)!important;border:0!important;box-shadow:none!important;background:transparent!important;color:var(--accent)!important;border-radius:0!important;transform:none!important}
  .v76-title-create>.v22-icon{width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important}
  .v76-mobile-main-row>.notes-global-new{width:32px;height:32px;min-width:32px;min-height:32px;flex:0 0 32px;border:0;background:transparent;padding:var(--dj-space-1)}
}
 @media(max-width:599px){.notes-preview{padding-top:calc(var(--dj-space-2) + var(--dj-space-1))}.notes-attached{bottom:calc(68px + env(safe-area-inset-bottom))!important;right:8px!important}}
.notes-card-menu{position:fixed;z-index:100090;display:grid;gap:var(--dj-space-1);min-width:190px;max-width:calc(100vw - 16px);padding:var(--dj-space-1);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel);box-shadow:var(--shadow-modal,var(--shadow))}.notes-card-menu button{display:flex;align-items:center;gap:var(--dj-space-2);border:0;border-radius:var(--dj-radius-popup-row,7px);background:transparent;color:var(--ink);padding:var(--dj-space-2);text-align:left}.notes-card-menu button:hover{background:var(--soft,var(--accent-soft))}.notes-card-menu .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent)}
@media(min-width:1025px){html[data-v74-route="notes"] main>.topbar{flex-wrap:nowrap!important}html[data-v74-route="notes"] main>.topbar>.actions{flex:0 0 auto!important;width:auto!important}.notes-global-new{background:var(--accent)!important;color:#fff!important}.notes-global-new .v22-icon,.notes-global-new .v22-icon *{color:#fff!important;stroke:currentColor!important}}

/* Read-only is an editor mode, never a change to Note data. */
.notes-editor.notes-readonly .notes-ink{pointer-events:none!important}
.notes-editor.notes-readonly .notes-page-footer [data-note-action="delete-page"]{display:none}
html body .notes-editor [data-note-action="fit-page"]{touch-action:none;min-width:44px;min-height:44px}
html body .notes-editor [data-note-action="fit-page"][aria-pressed="true"]{background:var(--dj-control-accent,var(--accent))!important;color:#fff!important;opacity:1}
html body .notes-editor [data-note-action="fit-page"][aria-pressed="true"] :is(.v22-icon,.dj-utility-symbol),html body .notes-editor [data-note-action="fit-page"][aria-pressed="true"] .v22-icon *{color:#fff!important;stroke:currentColor!important}

.notes-editor.notes-readonly .notes-text{pointer-events:auto!important;user-select:text!important;-webkit-user-select:text!important;outline:none}
.notes-grid>.notes-empty{grid-column:1/-1;min-width:0}
/* Page look block in the note settings (D-146): colour swatches and three ruling chips. */
.notes-page-swatches{display:flex;flex-wrap:wrap;gap:var(--dj-space-2,8px);padding:var(--dj-space-1,4px) 0}
.notes-page-swatches button{display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;border:0;border-radius:var(--dj-radius-circle,50%);background:transparent}
.notes-page-swatches .notes-paper-sample{width:28px;height:28px;border-radius:var(--dj-radius-circle,50%);border:1px solid var(--line);box-shadow:inset 0 0 0 1px #0000000a}
.notes-page-swatches button[aria-pressed="true"] .notes-paper-sample{outline:2px solid var(--accent);outline-offset:3px}
.notes-page-ruling{display:flex;gap:var(--dj-space-2,8px);padding:var(--dj-space-1,4px) 0}
.notes-page-ruling button{display:flex;align-items:center;gap:var(--dj-space-2,8px);min-height:44px;padding:0 var(--dj-space-3,12px);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:transparent;color:var(--ink);font:inherit}
.notes-page-ruling button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
.notes-page-ruling .notes-ruling-sample{width:18px;height:20px;color:var(--muted)}
.notes-ruling-plain{background:none}
.notes-selection .notes-page-ruling{flex-wrap:wrap}
.notes-selection .notes-page-swatches button,.notes-selection .notes-page-swatches button[aria-pressed="true"]{background:transparent!important;color:inherit!important;box-shadow:none!important}
.notes-selection .notes-page-ruling button[aria-pressed="true"]{background:transparent!important;color:var(--accent)!important;border-color:var(--accent)!important}
.notes-selection[data-kind="page-format"]{width:min(420px,calc(100vw - 24px));box-sizing:border-box}
.notes-page-format{display:grid;gap:var(--dj-space-2);width:100%}
.notes-page-format>strong{font-size:var(--dj-text-heading-size)}
.notes-page-format>label{color:var(--muted);font-size:var(--dj-text-secondary-size)}
.notes-page-format-choice{display:flex;flex-wrap:wrap;gap:var(--dj-space-1)}
.notes-page-format-choice>button{min-height:40px;flex:1 1 auto;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:transparent;color:var(--ink);font:inherit}
.notes-page-format-choice>button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
.notes-page-format-apply{justify-self:end;min-height:40px;border:0;border-radius:var(--dj-radius-button);background:var(--accent);color:var(--panel);font:inherit;padding-inline:var(--dj-space-4)}
/* Labeled tool modes (D-147): icon and word in one row, current mode marked. */
.notes-editor .notes-selection[data-kind=modes]{display:flex;flex-direction:column!important;align-items:stretch!important;width:max-content!important;min-width:176px!important;max-width:calc(100vw - 16px)!important;gap:var(--dj-space-1,4px)!important;padding:var(--dj-space-2,8px)!important}
.notes-editor .notes-selection[data-kind=modes]>button{display:flex!important;align-items:center;justify-content:flex-start;gap:var(--dj-space-3,12px);width:100%!important;min-width:0!important;max-width:none!important;flex:0 0 auto!important;height:44px!important;min-height:44px;padding:0 var(--dj-space-3,12px)!important;border-radius:var(--dj-radius-popup-row,7px)!important;background:transparent!important;color:var(--ink)!important;font:inherit;white-space:nowrap}
.notes-editor .notes-selection[data-kind=modes]>button .v22-icon,.notes-editor .notes-selection[data-kind=modes]>button svg{width:20px;height:20px;flex:0 0 20px;color:var(--accent)}
.notes-editor .notes-selection[data-kind=modes]>button[aria-pressed="true"]{background:var(--accent-soft)!important;font-weight:var(--dj-text-heading-weight,600)}
/* Overlay scrollbars (audit №29): hidden at rest, faint while scrolling or under the pointer. */
.notes-editor :is(.notes-scroll,.notes-editor-tools,.notes-selection,.dj-inspector-content){scrollbar-width:thin;scrollbar-color:transparent transparent;transition:scrollbar-color .2s}
.notes-editor.notes-scrolling :is(.notes-scroll,.notes-editor-tools,.notes-selection,.dj-inspector-content),.notes-editor :is(.notes-scroll,.notes-editor-tools,.notes-selection,.dj-inspector-content):hover{scrollbar-color:color-mix(in srgb,var(--ink) 28%,transparent) transparent}
/* Light pen colours keep a visible outline on the swatch (audit №11). */
.notes-palette .notes-swatch{border:1px solid color-mix(in srgb,var(--ink) 22%,transparent)!important;box-shadow:inset 0 0 0 1px #00000010}
/* Table grid in a quiet ink tone instead of solid black (audit №23). */
.notes-text td,.notes-text th{border-color:color-mix(in srgb,currentColor 38%,transparent)}
/* Settings menu: export rows line up with the icon rows above (audit №20). */
.notes-editor .notes-selection[data-kind=options] [data-note-export]{padding-inline-start:calc(var(--dj-space-3) + var(--dj-icon-standard) + var(--dj-space-3))!important;justify-content:flex-start}
/* Page grid (D-152). */
.notes-editor .notes-pages[data-grid="true"]{display:grid;grid-template-columns:repeat(auto-fill,var(--notes-thumb));justify-content:center;align-items:start;gap:var(--dj-space-6);padding:var(--dj-space-4) 0 var(--dj-space-8)}
.notes-editor .notes-pages[data-grid="true"]>.notes-page-wrap{margin:0;position:relative;cursor:grab;border-radius:var(--dj-radius-detail);touch-action:pan-y}
.notes-editor .notes-pages[data-grid="true"]>.notes-page-wrap:hover .notes-page{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 45%,transparent),0 2px 14px color-mix(in srgb,var(--ink) 12%,transparent)}
.notes-editor.notes-grid-mode .notes-page .notes-text,.notes-editor.notes-grid-mode .notes-page .notes-ink{pointer-events:none}
.notes-grid-mode .notes-page-footer [data-note-action="delete-page"]{visibility:hidden}
.notes-grid-mode .notes-page-footer{justify-content:center;pointer-events:none}
.notes-grid-select{position:absolute;top:8px;right:8px;z-index:3;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border:2px solid var(--panel);border-radius:var(--dj-radius-circle);background:color-mix(in srgb,var(--ink) 22%,transparent);box-shadow:0 1px 4px color-mix(in srgb,var(--ink) 25%,transparent);cursor:pointer}
.notes-grid-select::after{content:"";position:absolute;inset:-8px}
.notes-grid-select[aria-pressed="true"]{background:var(--accent)}
.notes-grid-select[aria-pressed="true"]::before{content:"";position:absolute;left:8px;top:4px;width:6px;height:11px;border:solid var(--panel);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.notes-grid-select[hidden]{display:none}
.notes-grid-picked .notes-page{outline:3px solid var(--accent);outline-offset:2px}
.notes-grid-dragging{z-index:5;opacity:.88;cursor:grabbing;filter:drop-shadow(0 12px 24px color-mix(in srgb,var(--ink) 25%,transparent))}
.notes-grid-marker{position:absolute;z-index:40;width:4px;border-radius:var(--dj-radius-detail);background:var(--accent);pointer-events:none}
.notes-grid-marker[hidden]{display:none}
.notes-grid-add{width:var(--notes-thumb);display:grid;place-items:center;align-content:center;gap:var(--dj-space-1);border:2px dashed var(--line);border-radius:var(--dj-radius-detail);background:transparent;color:var(--accent);font:inherit;cursor:pointer}
.notes-grid-add:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.notes-grid-add span{font-size:var(--dj-icon-large);line-height:var(--dj-icon-line-height)}
.notes-grid-bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:var(--dj-space-3);margin:0 0 var(--dj-space-2);padding:var(--dj-space-2) var(--dj-space-1);background:var(--bg);border-bottom:1px solid var(--line)}
.notes-grid-bar[hidden]{display:none}
.notes-grid-bar strong{flex:1;font-weight:var(--dj-text-heading-weight)}
.notes-grid-done{min-height:40px;padding:0 var(--dj-space-4);border:0;border-radius:var(--dj-radius-button);background:var(--accent);color:var(--panel);font:inherit;font-weight:var(--dj-text-heading-weight);cursor:pointer}
.notes-grid-delete{display:flex;align-items:center;gap:var(--dj-space-2);min-height:40px;padding:0 var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}
.notes-grid-delete .v22-icon,.notes-grid-delete svg{width:var(--dj-icon-standard);height:var(--dj-icon-standard);color:var(--accent)}
/* Writing tools do nothing in the grid: their wall and bar stay in place but empty. */
.notes-grid-mode .notes-editor-tools>*{visibility:hidden}
/* System tags: readable label in the text colour, the tag colour stays on the icon (audit №21). */
.notes-editor .notes-link-choices .notes-system-tag{color:var(--ink)}
.notes-link-choices .notes-system-tag :is(.v22-icon,svg,i){color:var(--note-artifact-color)}
/* Size scale and states for editor controls (2026-10-17): 44 px utility buttons in the header,
   one focus ring, quiet hover and a clear disabled state. */
.notes-editor-head .notes-button:not([data-note-action="cancel"]):not([data-note-action="close"]):not([data-note-action="ok"]){width:44px;height:44px;min-width:44px;min-height:44px}
.notes-editor :is(button,[role="button"]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.notes-editor .notes-button:not(:disabled):active{transform:scale(.96)}
.notes-editor :is(.notes-link-confirm .notes-button,.notes-font-size-form .notes-button,.notes-table-create [data-note-action="table-insert"]){background:transparent;border:0;box-shadow:none;color:var(--accent)}
.notes-editor .notes-button:disabled,.notes-editor .notes-button[aria-disabled="true"]{opacity:.35;cursor:default}
@media(prefers-reduced-motion:reduce){.notes-editor .notes-button:active{transform:none}}

/* ==== design/mobile-controls.css ==== */
/* Shared phone/Fold size: dialog icon controls match the second tab-header row.
   Text choices keep their text width. Task status dots and color swatches are not
   action-button chrome and retain their own dimensions. Desktop is unchanged. */
@media (max-width:1024px) {
  :root { --dolijane-mobile-control-size:44px; }
  [data-v40-goal-form] [data-v40-goal-focus] { display:none!important; }
  [data-v40-goal-form] .v40-goal-head {
    grid-template-columns:26px minmax(0,1fr) auto!important;align-items:center;
  }
  [data-v40-goal-form] [data-v40-goal-status] { grid-column:1;grid-row:1; }
  [data-v40-goal-form] .v40-title-wrap { grid-column:2;grid-row:1;min-width:0; }
  [data-v40-goal-form] .v40-title-wrap input { width:100%;min-width:0;writing-mode:horizontal-tb; }
  [data-v40-goal-form] .v40-head-actions { grid-column:3!important;grid-row:1;flex-wrap:nowrap; }
  [data-v40-goal-form] [data-v40-goal-priority] { grid-column:1;grid-row:2; }
  [data-v40-goal-form] .v40-head-actions .btn {
    width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;
    min-height:44px!important;max-height:44px!important;flex:0 0 44px!important;
    padding:var(--dj-space-1)!important;aspect-ratio:1!important;border-radius:var(--dj-radius-circle,50%)!important;transform:none!important;
  }
  .v76-mobile-actions :is(.v22-icon-button,.notes-button),
  :is(.modal,.time-menu-card,.feed-compose-card,.v38-popup,.v53-popup,.v56-popup,.habit-v11-popup,.v76-header-menu,.notes-editor,.notes-picker)
  :is(.v22-icon-button,.v38-add-subtask,.v36-subtasks-more,.v76-task-state-toggle,.notes-button):not(.task-state-check,.check,.v23-task-circle,.priority-flag,.notes-artifact-badge,.dj-dock-center,.dj-standard-a-button) {
    --v77-circle-size:var(--dolijane-mobile-control-size)!important;
    box-sizing:border-box!important;
    width:var(--dolijane-mobile-control-size)!important;
    height:var(--dolijane-mobile-control-size)!important;
    inline-size:var(--dolijane-mobile-control-size)!important;
    block-size:var(--dolijane-mobile-control-size)!important;
    min-width:var(--dolijane-mobile-control-size)!important;
    max-width:var(--dolijane-mobile-control-size)!important;
    min-height:var(--dolijane-mobile-control-size)!important;
    max-height:var(--dolijane-mobile-control-size)!important;
    min-inline-size:var(--dolijane-mobile-control-size)!important;
    max-inline-size:var(--dolijane-mobile-control-size)!important;
    min-block-size:var(--dolijane-mobile-control-size)!important;
    max-block-size:var(--dolijane-mobile-control-size)!important;
    flex:0 0 var(--dolijane-mobile-control-size)!important;
    aspect-ratio:1!important;padding:var(--dj-space-1)!important;
  }
  :is(.modal,.time-menu-card,.feed-compose-card,.v38-popup,.v53-popup,.v56-popup,.habit-v11-popup,.v76-header-menu,.notes-editor,.notes-picker)
  :is(.v22-icon-button,.v76-task-state-toggle,.notes-button):not(.task-state-check,.check,.v23-task-circle,.priority-flag,.notes-artifact-badge,.dj-standard-a-button) .v22-icon {
    width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important;inline-size:var(--dj-icon-standard,20px)!important;block-size:var(--dj-icon-standard,20px)!important;
  }
  :is(.modal,.time-menu-card,.feed-compose-card,.v38-popup,.v53-popup,.v56-popup,.habit-v11-popup) .btn:not(.v22-icon-button) {
    min-height:44px;padding-block:var(--dj-space-2);
  }
}

/* ==== design/guest-icons.css ==== */
/* Supplied 100-unit drawings retain their own fills/strokes inside the 24-unit icon. */
.v22-icon .guest-icon-art{color:inherit}
.v22-icon .guest-icon-art .stroke-a{stroke:currentColor;fill:none;stroke-linecap:round;stroke-linejoin:round}
.v22-icon .guest-icon-art .stroke-a2{stroke:currentColor;stroke-opacity:.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.v22-icon .guest-icon-art .fill-a{fill:currentColor;stroke:none}
.v22-icon .guest-icon-art .fill-a2{fill:currentColor;fill-opacity:.5;stroke:none}
.v22-icon .guest-icon-art .fill-bg{fill:var(--panel);stroke:none}
.v22-icon:has(.guest-icon-art)>.v22-echo,.v22-icon:has(.guest-icon-art)>.v22-whorl{display:none}

/* The final user-selected pack is wrapped separately.  Do not flatten these
   drawings to a black/white silhouette: fill-a2/stroke-a2 and the SVG's own
   opacity attributes are intentional grey-value layers. */
.v22-icon .v22-selected-icon-art{color:inherit}
.v22-icon .v22-selected-icon-art :is(.stroke-a,.stroke-a2){fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.v22-icon .v22-selected-icon-art .stroke-a2{stroke-opacity:.5}
.v22-icon .v22-selected-icon-art .fill-a{fill:currentColor;stroke:none}
.v22-icon .v22-selected-icon-art .fill-a2{fill:currentColor;fill-opacity:.5;stroke:none}
.v22-icon .v22-selected-icon-art .stroke-bg{fill:none;stroke:var(--panel)}
.v22-icon .v22-selected-icon-art .fill-bg{fill:var(--panel);stroke:none}
.v22-icon .v22-selected-icon-art [fill="currentColor"]{fill:currentColor}
.v22-icon .v22-selected-icon-art [fill="none"]{fill:none}
.v22-icon .v22-selected-icon-art [stroke="currentColor"]{stroke:currentColor}

/* ==== design/guest-gaudi.css ==== */
html[data-interface-design="claude"][data-v74-route="analytics"] :is(.v14-analytics-card,.v51-analytics-section){border-radius:70px 70px 8px 8px / 40px 40px 8px 8px!important;background:var(--panel);border:1px solid var(--line)}
html[data-interface-design="claude"] :is(.v14-segment,.v14-tomato-bar,.v14-minute-bar,.v51-stone-bars>i,.v51-stone-bars>b){position:relative;overflow:hidden;border-radius:3px 3px 0 0}
html[data-interface-design="claude"] .v14-plan-bar{overflow:hidden;border-radius:3px 3px 0 0}
.gaudi-mosaic{display:none;pointer-events:none}
html[data-interface-design="claude"] .gaudi-mosaic{display:block;position:absolute;inset:0;width:100%;height:100%;border-top:1px solid #3a3126;box-sizing:border-box}

/* ==== design/guest-bilibin.css ==== */
html[data-interface-design="claude"][data-v74-route="rituals"] .v17-ritual-card{position:relative;border:2.25px solid #544b40!important;border-radius:3px!important;background:#fbf4e4!important;padding:calc(var(--dj-space-4) + var(--dj-space-1)) calc(var(--dj-space-4) + var(--dj-space-1)) var(--dj-space-4)!important}
html[data-interface-design="claude"][data-v74-route="rituals"] .v17-ritual-card::before{content:'';position:absolute;inset:6px;border:1px solid #544b40!important;border-radius:0!important;background:none!important;pointer-events:none}
html[data-interface-design="claude"][data-v74-route="rituals"] .v17-ritual-card::after,html[data-interface-design="claude"][data-v74-route="rituals"] .v17-ritual-card>.ritual-pattern-bottom{content:'';position:absolute;left:0;right:0;height:6px;background:repeating-linear-gradient(45deg,#8b2e2e 0 4px,transparent 4px 8px)!important;pointer-events:none}
html[data-interface-design="claude"][data-v74-route="rituals"] .v17-ritual-card::after{top:0;bottom:auto}
.ritual-pattern-bottom{display:none}
html[data-interface-design="claude"][data-v74-route="rituals"] .v17-ritual-card>.ritual-pattern-bottom{display:block;bottom:0}
html[data-interface-design="claude"][data-v74-route="rituals"] .v17-ritual-heading [data-edit-ritual]{font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-body-size)}

/* ==== design/guest-tiffany.css ==== */
/* Calendar semantics v1.2: hue = day type, glass = tasks, inner edge light = today. */
html[data-interface-design] .v56-day{position:relative;box-shadow:none!important;filter:none!important;text-shadow:none!important;transition:none!important;border:1px solid transparent!important;transform:none!important}
html[data-interface-design]:not([data-interface-design="claude"]) .v56-day{background:var(--panel)!important;color:var(--ink)!important}
html[data-interface-design] .v56-day::after{content:none!important}
html[data-interface-design] .v56-day.today{border:1px solid transparent!important;text-decoration:none;font-weight:var(--dj-text-heading-weight)}
html[data-interface-design] .v56-day.selected{background:var(--accent-soft)!important;color:var(--ink)!important;box-shadow:inset 0 0 0 2px var(--dj-calendar-selected)!important}
html[data-interface-design] .v56-day.today.selected{border:1px solid transparent!important;box-shadow:inset 0 0 0 2px var(--dj-calendar-selected)!important}
html[data-interface-design] .v56-day.has-tasks::after{content:''!important;position:absolute;bottom:2px;left:calc(50% - 2px);width:4px;height:4px;border-radius:var(--dj-radius-circle,50%);background:currentColor!important;box-shadow:none!important}
html[data-interface-design] .v56-day.muted{opacity:1}
html[data-interface-design] .v56-day.weekend:not(.selected){font-weight:var(--dj-text-heading-weight)}
html[data-interface-design="claude"] :is(.v56-month-grid,.v56-week-grid){background:#4c5358!important;border:1px solid #4c5358;gap:0!important}
html[data-interface-design="claude"] .v56-weekday{color:#fff!important}
html[data-interface-design="claude"] .v56-day{--tif-light:#e2f1fb;--tif-dark:#72aed1;--tif-dot:#287ead;--tif-ink:#173d57;--tif-glass:var(--tif-light);border-radius:2px!important;background:var(--tif-glass)!important;background-image:none!important;color:var(--tif-ink)!important}
html[data-interface-design="claude"] .v56-day:is(.weekend,[data-holiday="true"]){--tif-light:#fff0d9;--tif-dark:#eab16b;--tif-dot:#b96615;--tif-ink:#593916}
html[data-interface-design="claude"] .v56-day.has-tasks{--tif-glass:var(--tif-dark)}
html[data-interface-design="claude"] .v56-day:is(.selected,.today.selected){background-color:var(--tif-glass)!important;color:var(--tif-ink)!important;box-shadow:inset 0 0 0 2px var(--dj-calendar-selected)!important}
html[data-interface-design="claude"] .v56-day.today,html[data-interface-design="claude"] .v56-day.today.selected{border:1px solid transparent!important;text-decoration:none!important}
/* Inner edge illumination overlays all four data colours, independently of selection. */
html[data-interface-design="claude"] .v56-day.today{background-image:linear-gradient(to right,rgba(255,245,214,.65),transparent 22%,transparent 78%,rgba(255,245,214,.65)),linear-gradient(to bottom,rgba(255,250,225,.58),transparent 24%,transparent 76%,rgba(255,245,214,.52))!important}
html[data-interface-design] .v56-day.today::before{content:'';position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:var(--dj-radius-circle);background:var(--dj-calendar-today);pointer-events:none}
html[data-interface-design="claude"] .v56-day:is(.today,.has-tasks,.v56-day)::after{content:none!important}


/* ==== design/guest-mucha.css ==== */
/* Mucha owns Note framing. Shared note typography, model and controls stay canonical. */
html[data-interface-design="claude"] :is(.notes-card,.notes-editor){--mucha-paper:#fdf9f3;--mucha-line:#c9a24b;--mucha-rose:#b76e79;--mucha-sage:#8fa07b}
/* Catalogue cards always use a separate, quiet Compact / Trace composition. */
html[data-interface-design="claude"] .notes-card{border-color:color-mix(in srgb,var(--mucha-line) 30%,var(--line));border-radius:var(--dj-radius-popup)}
html[data-interface-design="claude"] .notes-preview{border:1px solid color-mix(in srgb,var(--mucha-line) 35%,var(--line));background:var(--mucha-paper);box-shadow:inset 0 0 0 3px var(--mucha-paper),inset 0 0 0 4px color-mix(in srgb,var(--mucha-sage) 24%,transparent)}
html[data-interface-design="claude"] .notes-card>[data-note-favorite]{left:50%!important;right:auto!important;top:0!important;translate:-50% -50%;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;display:grid;place-items:center;background:transparent!important;border:0!important;box-shadow:none!important;isolation:isolate}
html[data-interface-design="claude"] .notes-grid{row-gap:calc(var(--dj-space-6) + var(--dj-space-1));margin-top:calc(var(--dj-space-6) + var(--dj-space-1));}
/* Preview occupies the full card width at y=0. Its medallion never covers the title below. */
html[data-interface-design="claude"] .notes-card>[data-note-favorite]::before{content:'';position:absolute;inset:6px;border:1px solid color-mix(in srgb,var(--mucha-line) 55%,transparent);border-radius:var(--dj-radius-circle,50%);background:var(--mucha-paper);box-shadow:inset 0 0 0 3px var(--mucha-paper),inset 0 0 0 4px color-mix(in srgb,var(--mucha-line) 24%,transparent);z-index:-1;pointer-events:none}
html[data-interface-design="claude"] .notes-card>[data-note-favorite][aria-pressed="true"]::before{border-color:var(--mucha-rose);background:color-mix(in srgb,var(--mucha-rose) 10%,var(--mucha-paper))}
html[data-interface-design="claude"] .notes-card>[data-note-favorite][aria-pressed="true"]{color:var(--mucha-rose)!important}
/* Full note editor uses Signature framing around its contents, without changing text. */
html[data-interface-design="claude"] .notes-editor .notes-page{border:1px solid color-mix(in srgb,var(--mucha-line) 60%,var(--line));outline:3px double color-mix(in srgb,var(--mucha-line) 25%,transparent);outline-offset:3px}
html[data-interface-design="claude"] .notes-editor-head{border-bottom-color:color-mix(in srgb,var(--mucha-line) 40%,var(--line))}

/* ==== viewport-ui.css ==== */
/* Every floating surface is bounded independently, including nested mini-menus. */
/* The system tap highlight is an opaque rectangle over the whole control: a square on a round button, with the icon under it.
 * Pressed feedback is drawn by the control itself: a translucent layer inside its own shape, under the icon and the text. */
html{accent-color:var(--accent);}
/* Service controls do not select text or summon a system callout on a long press.
 * Authored and readable content (notes, descriptions, messages, addresses and inputs)
 * is deliberately outside this list. Gesture-only selection rules stay local. */
html :is(button:not(.notes-open,[data-ws-assistant-message]),[role="button"]:not(.notes-open,[data-ws-assistant-message]),[role="tab"],[role="menuitem"],summary,[data-v76-settings-toggle],.v57-section-head,.v19-task-menu [data-time-summary]:not([contenteditable="true"]),.v19-task-menu .time-summary:not([contenteditable="true"]),.dj-workspace-boundary){
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
}
/* Some readable content is hosted by a button for navigation. Its text still copies. */
html :is(.notes-open,[data-ws-assistant-message]),
html :is(.notes-open,[data-ws-assistant-message]) *{
  -webkit-user-select:text;
  user-select:text;
  -webkit-touch-callout:default;
}
/* Hide the rectangular WebView flash only on controls that draw their own feedback.
 * Bare icons and readable links retain the native highlight. */
html :is(button:not([data-dj-bare-icon]),[role="button"]:not([data-dj-bare-icon]),[role="tab"],[role="menuitem"],summary,a.btn){-webkit-tap-highlight-color:transparent;}
/* E-13: editor rows that are tapped but are not buttons themselves («Детали», field rows, section heads) drew their own
 * feedback and still got the rectangular blue WebView flash. */
.v19-task-menu :is(.tm20-details,[data-tm20-key],.subtask-panel>.section-head,.v18-comments-head,.v19-desc-row){-webkit-tap-highlight-color:transparent;}
.notes-editor :is(button,[role="button"],[role="tab"],[role="menuitem"],summary,a,input,textarea,[contenteditable="true"]){-webkit-tap-highlight-color:transparent;}
html :is(button:not([data-dj-bare-icon]),[role="button"]:not([data-dj-bare-icon]),[role="tab"],[role="menuitem"],summary,a.btn):active:not(:disabled,[aria-disabled="true"]){box-shadow:inset 0 0 0 100vmax color-mix(in srgb,var(--accent) 16%,transparent);}
html :is(button:not([data-dj-bare-icon]),[role="button"]:not([data-dj-bare-icon]),[role="tab"],[role="menuitem"],summary,a.btn):focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
html :is(button:not([data-dj-bare-icon]),[role="button"]:not([data-dj-bare-icon]),[role="tab"],[role="menuitem"],summary,a.btn):is(:disabled,[aria-disabled="true"]){opacity:.5;cursor:default;}
/* A Dock slot is wider than its round drawing: the drawing itself darkens, no cell appears around it. */
html .dj-system-dock button:active:not(:disabled){box-shadow:none;filter:brightness(.88);}
:focus-visible{outline-color:var(--accent);}
::selection{background:var(--accent-soft);color:var(--ink);}
:is(.modal:not(.entity-menu-v2),.time-menu-card,.feed-compose-card,.task-context-menu,.v36-artifact-picker,.v38-popup,.v39-log-popup,.v40-popup,.v53-popup,.v56-popup,.habit-v11-popup,.v18-habit-popup,.v76-header-menu,.v76-task-state-popover,.notes-picker-dialog,.notes-selection,.notes-option-choices) {
  box-sizing:border-box!important;
  max-width:calc(var(--dolijane-viewport-width,100vw) - 16px)!important;
  max-height:calc(var(--dolijane-viewport-height,100dvh) - 16px)!important;
  min-width:0!important;overscroll-behavior:contain;
}
:is(.modal:not(.entity-menu-v2),.time-menu-card,.feed-compose-card,.task-context-menu,.v36-artifact-picker,.v38-popup,.v39-log-popup,.v40-popup,.v53-popup,.v56-popup,.habit-v11-popup,.v18-habit-popup,.v76-header-menu,.v76-task-state-popover,.notes-picker-dialog) { overflow:auto; }
.notes-option-choices { overflow:auto; }
/* Legacy pickers use the same bounds as current artifact menus. */
:is(.habit-menu,.mention-suggestions,.mini-project-menu,.mini-priority-menu,.priority-menu,.tag-suggestions,.v13-postpone-menu,.v17-action-picker,.v30-color-popover,.v31-color-popover,.v35-title-suggestions,.v39-postpone-popup,.v40-suggestions,.v47-artifact-suggestions,.v47-priority-popover,.v49-mixed-popup,.v57-stone-status-menu,.chat-card) { box-sizing:border-box!important;min-width:0!important;max-width:calc(var(--dolijane-viewport-width,100vw) - 16px)!important;max-height:calc(var(--dolijane-viewport-height,100dvh) - 16px)!important;overflow:auto;overscroll-behavior:contain; }
.dolijane-context-help { z-index:1000100!important; }
/* Body-owned global menu: no header/sidebar stacking context may clip it. */
body>.v76-rose-menu{position:fixed!important;z-index:2147483646!important;visibility:visible!important;max-width:calc(100vw - 16px)!important}
.notes-editor-rose{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:0;background:transparent;padding:var(--dj-space-1);cursor:pointer}
.notes-editor-rose img{width:30px;height:30px}
/* Only the outer button chrome disappears; the priority/status glyph remains. */
[data-task-form] .task-head-v09>[data-task-toggle-done]{border:0!important;background:transparent!important;box-shadow:none!important;outline:0!important}
[data-task-form] .task-head-v09>[data-task-toggle-done]::before,[data-task-form] .task-head-v09>[data-task-toggle-done]::after{display:none!important}
[data-task-form] .task-head-v09>[data-task-toggle-done]:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}
.dolijane-context-help .modal { width:600px; }
.dolijane-context-help header { display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3); }
.dolijane-context-help h1 { font-size:var(--dj-text-heading-size);margin:0; }
.dolijane-context-help .help-card { border:0;box-shadow:none;padding:0; }
.cumulative-chart { margin:var(--dj-space-2) 0 0!important;width:100%;grid-column:1/-1;box-sizing:border-box; }
.cumulative-chart h3 { font-size:var(--dj-text-secondary-size); }
.cumulative-chart svg { display:block;width:100%;max-height:220px; }
/* Task metadata wraps inside its card instead of widening the mobile document. */
[data-v15-task-row] :is(.task-row-main,.task-meta,.v56-task-properties){min-width:0;max-width:100%}
[data-v15-task-row] :is(.task-meta,.v56-task-properties){display:flex;flex-wrap:wrap;overflow-wrap:anywhere}
[data-v15-task-row] .v56-artifact{box-sizing:border-box;max-width:100%;min-width:0;white-space:normal}
[data-v15-task-row] .v56-artifact>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
[data-task-form] [data-v36-artifact="stone"],.v36-artifact-picker.stone .v36-artifact-choice{color:var(--artifact-color,var(--choice-color,var(--accent)))!important}
[data-task-form] [data-v36-artifact="stone"] :is(.v22-icon,.v22-icon *),.v36-artifact-picker.stone .v36-artifact-choice :is(.v22-icon,.v22-icon *){color:inherit!important;stroke:currentColor!important}
.v15-tree-list{overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important}
.v15-project-node>.project-tree{box-sizing:border-box!important;margin-top:0!important;margin-right:0!important;margin-bottom:0!important;padding-top:var(--dj-space-1)!important;padding-right:var(--dj-space-1)!important;padding-bottom:var(--dj-space-1)!important}
.v15-project-node>.project-tree>.v15-tree-list{padding-top:0!important;padding-bottom:0!important}
.v15-task-node+.v15-task-node{margin-top:var(--dj-space-1)}
.v15-task-row{padding-top:var(--dj-space-2)!important;padding-bottom:var(--dj-space-2)!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-card,10px)!important;background:var(--panel,#fff)!important;overflow:hidden}
.v15-children{margin-top:var(--dj-space-1);background:transparent!important;border-left:0!important;padding-left:var(--dj-space-1)}
[data-v78-stone-tasks]{overflow-anchor:none}
html.v78-stone-repainting *,html.v78-stone-repainting *::before,html.v78-stone-repainting *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.v15-task-row.v15-drop-before{box-shadow:inset 0 3px #5d9d75!important}
.v15-task-row.v15-drop-after{box-shadow:inset 0 -3px #5d9d75!important}
html.v56-modal-opening *,html.v56-modal-opening *::before,html.v56-modal-opening *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media (max-width:1024px) {
  .v76-mobile-header{padding-top:calc(var(--dj-space-2) + env(safe-area-inset-top,0px))!important}
  .notes-editor { top:var(--dolijane-viewport-top,0px)!important;left:var(--dolijane-viewport-left,0px)!important;right:auto!important;bottom:auto!important;width:var(--dolijane-viewport-width,100vw)!important;height:var(--dolijane-viewport-height,100dvh)!important; }
  .notes-brushes .notes-button { height:48px!important;block-size:48px!important;min-height:48px!important;max-height:48px!important; }
  .v15-children{padding-left:var(--dj-space-1)}
  [data-task-form] .task-head-v09>.task-state-check{box-sizing:border-box!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;padding:0!important;border:2.4px solid currentColor!important;border-radius:var(--dj-radius-circle,50%)!important;background:transparent!important;box-shadow:none!important}
  [data-task-form] .task-head-v09>.task-state-check.done{background:currentColor!important;box-shadow:inset 0 0 0 3px var(--panel,#fff)!important}
  .v78-sidebar-project-link{font-size:var(--dj-text-body-size)!important}
  .v56-day{font-size:var(--dj-text-secondary-size)!important}
  [data-v15-task-row] :is(.task-meta,.v56-task-properties){font-size:var(--dj-text-secondary-size)!important}
}
@media (min-width:600px) and (max-width:1024px) {
  .sidebar :is(.nav-item .count,.v78-project-nav-count,.v78-sidebar-project-count,.v76-more-count,.notes-nav-count) { color:var(--muted)!important; }
  .v76-wide-more-items { padding-left:0; }
  .v76-wide-more-items>button { padding-right:0;gap:var(--dj-space-2); }
  .v76-wide-more-items>button>span:not(.v22-icon):not(.v22-nav-icon) { min-width:0;flex:1;white-space:nowrap; }
  .sidebar .v76-wide-more-items :is(.v76-more-count,.notes-nav-count) { flex:0 0 32px;box-sizing:border-box;width:32px;min-width:32px;margin-left:auto;padding:0 var(--dj-space-3) 0 0;text-align:right;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-reading-weight);color:var(--muted);font-variant-numeric:tabular-nums; }
  .project-meta-card[data-project-summary] .btn { font-size:var(--dj-text-caption-size)!important;padding:var(--dj-space-1)!important;min-height:26px; }
}
@media (min-width:1025px) {
  .sidebar [data-route=help],.topbar [data-route=help],.rightbar [data-route=help] { display:none!important; }
}
/* V3.8 Android revision 2: keep the artwork compact, but make edge controls forgiving.
   The generated area belongs to its button, so taps in the screen-edge gutter activate
   the intended control without moving the title or changing any visible circle. */
@media (max-width:1024px), (pointer:coarse) {
  :is(
    .v76-rose-button,
    .v76-active-route>.v76-title-create,
    .notes-editor-rose,
    .notes-editor-head>[data-note-action="close"]
  ) {
    position:relative!important;
    overflow:visible!important;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  :is(
    .v76-rose-button,
    .v76-active-route>.v76-title-create,
    .notes-editor-rose,
    .notes-editor-head>[data-note-action="close"]
  )::after {
    content:"";
    position:absolute;
    inset:-6px;
    border-radius:inherit;
  }
  .v76-rose-button::after {
    inset:-8px -2px -8px -12px!important;
  }
  .v76-active-route>.v76-title-create::after {
    inset:-7px -2px!important;
  }
  .notes-editor-rose::after {
    inset:-8px -2px -8px -6px!important;
  }
  .notes-editor-head>[data-note-action="close"]::after {
    inset:-8px -4px -8px -2px!important;
  }
}

/* ==== v80.css ==== */
/* Dolijane V3.8.0 stable revision 7 — release corrections and notifications. */

/* Preserve the supplied half-tones in the user-selected Matisse, Van Gogh and
   Shekhtel packs. Architect remains untouched. */
.v22-icon-matisse .fill-a2,.v22-icon-vangogh .fill-a2,.v22-icon-shekhtel .fill-a2{fill-opacity:.5!important}
.v22-icon-matisse .stroke-a2,.v22-icon-vangogh .stroke-a2,.v22-icon-shekhtel .stroke-a2{stroke-opacity:.5!important}

/* Time notification editor and the compact marker shown on every dated entity. */
.v80-notification-panel{display:grid;gap:var(--dj-space-2);margin:var(--dj-space-2) 0;padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-card,10px);background:var(--panel)}
.v80-notification-panel[hidden]{display:none}.v80-notification-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--dj-space-2)}.v80-notification-add input,.v80-notification-add select{min-width:0}
.v80-notification-row{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);padding:var(--dj-space-1) 0;border-bottom:1px solid var(--line)}.v80-notification-row:last-child{border-bottom:0}.v80-notification-row button{width:30px;height:30px;border:0;background:transparent;color:var(--accent);padding:var(--dj-space-1)}
.v80-notification-marker{display:inline-flex;align-items:center;gap:var(--dj-space-1);color:var(--accent);vertical-align:middle;flex:none}.v80-notification-marker .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}.v80-notification-marker b{font-size:var(--dj-text-caption-size);font-variant-numeric:tabular-nums}
.task-row-main>.v80-notification-marker{margin-top:var(--dj-space-1)}
.v80-general-notifications{display:grid;gap:0;border-top:1px solid var(--line)}.v80-general-notifications>h4{margin:var(--dj-space-4) 0 var(--dj-space-1);font:var(--dj-text-heading-weight) var(--dj-text-secondary-size)/var(--dj-text-body-line-height) var(--font-display,var(--font,system-ui))}.v80-general-notification-row,.v80-morning-time{min-width:0}.v80-export-folder-setting .btn{white-space:nowrap}.v80-help{display:grid;gap:var(--dj-space-3)}.v80-help .help-card{scroll-margin-top:18px}.v80-help .help-card p{line-height:var(--dj-text-secondary-line-height)}

/* Desktop calendar mode belongs to the title row. Claude's return-to-today
   control is a square outline, matching the calendar grid. */
.v80-calendar-modes{display:flex;gap:var(--dj-space-1);margin:0!important}.v80-calendar-modes .btn{min-height:36px}

/* Comment media is visible in-place. The whole ribbon is 1.5 times narrower. */
.compact-feed{width:100%;max-width:100%;margin:0}.compact-feed-head{min-height:0!important;padding-top:var(--dj-space-2)!important;padding-bottom:var(--dj-space-2)!important}.compact-feed-last{line-height:var(--dj-text-title-line-height);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-feed-all .feed-entry,.v56-feed-entry{padding-top:var(--dj-space-2)!important;padding-bottom:var(--dj-space-2)!important}.feed-compose-card textarea{min-height:44px!important}.feed-compose-preview{display:flex;gap:var(--dj-space-2);flex-wrap:wrap;margin:var(--dj-space-2) 0}.feed-compose-file{display:inline-flex;align-items:center;gap:var(--dj-space-1);max-width:180px;font-size:var(--dj-text-caption-size)}.feed-compose-file img{width:52px;height:52px;object-fit:cover;border-radius:var(--dj-radius-detail)}.feed-attachments{display:flex;gap:var(--dj-space-2);flex-wrap:wrap}.feed-attachment{display:inline-flex;align-items:center;gap:var(--dj-space-1);border:0;background:transparent;color:var(--accent);padding:var(--dj-space-1);cursor:pointer}.feed-attachment-image img{display:block;width:min(220px,100%);max-height:180px;object-fit:contain;border-radius:var(--dj-radius-card,10px)}

/* Recursive projects: three-point breathing room, no divider between a project
   heading and its first task, and progressively shorter nested rectangles. */
.v15-project-node>.project-tree{margin:0 var(--dj-space-1) var(--dj-space-1) calc(var(--dj-space-6) + var(--dj-space-1))!important;padding:var(--dj-space-1) 0 0!important;border:0!important;background:transparent!important}.v15-project-node>.project-tree>.v15-tree-list{border:0!important;margin:0!important;padding:0!important}
.v15-tree-list{display:grid;gap:var(--dj-space-1);background:transparent!important;border:0!important;box-shadow:none!important}.v15-task-row{margin:0!important;padding-top:var(--dj-space-1)!important;padding-bottom:var(--dj-space-1)!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-card,10px)!important;background:var(--panel)!important;overflow:hidden}.v15-children{display:grid;gap:var(--dj-space-1);margin:0!important;padding:var(--dj-space-1) 0 0 var(--dj-task-child-inset,calc(var(--dj-space-8) + var(--dj-space-6)))!important;background:transparent!important;border:0!important}.project-tree-level{margin:var(--dj-space-1) 0 0 var(--dj-project-level-inset,calc(var(--dj-space-6) + var(--dj-space-1)))!important;display:grid;gap:var(--dj-space-1);border:0!important;background:transparent!important}.project-tree-level>.v15-project-node{border:1px solid var(--line)!important;border-radius:var(--dj-radius-card,10px)!important;overflow:hidden}.project-tree-level>.v15-project-node>.project-tree{margin:0 var(--dj-space-1) var(--dj-space-1) calc(var(--dj-space-6) + var(--dj-space-1))!important}.project-tree-level :is(.v15-task-row,.project-tree-head){max-width:100%!important}

/* Long artifact rows never escape a task rectangle. */
.task-row-main,.task-meta,.v56-task-properties{min-width:0!important;max-width:100%!important}.task-meta,.v56-task-properties{overflow:hidden!important;text-overflow:ellipsis}.v56-task-properties{flex-wrap:nowrap!important}.v56-task-properties>*{flex:0 1 auto;min-width:0;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Notes: action on the title row, filters on their own second row. */
.notes-tools{margin:var(--dj-space-2) 0 var(--dj-space-1)}.notes-card h3,.notes-card-meta{text-align:center}
.task-modal-v09 [data-task-focus]{display:none!important}
.notes-focus-pair>:is(.notes-global-new,.focus-launch){box-sizing:border-box!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;max-width:38px!important;max-height:38px!important;border-radius:var(--dj-radius-circle,50%)!important;padding:var(--dj-space-2)!important;display:grid!important;place-items:center!important}.notes-focus-pair>:is(.notes-global-new,.focus-launch) .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}

/* Help is a first-class desktop/Windows menu item. Android keeps contextual
   navigation and does not expose a second copy. */
@media(min-width:1025px){.sidebar [data-route="help"]{display:flex!important}}

@media(max-width:1024px){
  .compact-feed{width:100%}
  /* 2026-09-25 (владелец: "строки избранное не должна отличаться и должна соответствовать
   * общему стандарту"): на планшетной ширине свёрнутый rail показывает ровно 5 пунктов —
   * today/inbox/projects/calendar/favorites (см. v78.css ~144) — но этот блок раньше давал
   * увеличенную иконку/шрифт только первым 4, оставляя Избранное заметно ниже соседей
   * (44px против 56px). Добавлен [data-route="favorites"] в оба селектора ниже — на телефонной
   * ширине Избранное не рендерится в этом виде вообще (уходит в "Ещё"), так что добавление
   * безопасно там же, где остальные 4 всё равно не совпадают ни с чем новым. */
  .sidebar .nav-item[data-route]>span:first-child .v22-icon,.sidebar .v75-mobile-more>.v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
  /* html body + .sidebar.sidebar: revision27.css's :is(.nav-item, .nav-item > span:not(.count), ...)
   * computes its specificity from the MOST complex argument in the LIST (CSS spec behavior for :is()
   * — (0,3,3) total there), which beat a plain "html body .sidebar .nav-item[data-route=...]"
   * ((0,3,2), still short by one class-level point) even under !important — confirmed live (favorites
   * kept inheriting 600/17px). The extra repeated .sidebar pushes this to (0,4,2), safely ahead. */
  html body .sidebar.sidebar .nav-item[data-route="today"],html body .sidebar.sidebar .nav-item[data-route="inbox"],html body .sidebar.sidebar .nav-item[data-route="projects"],html body .sidebar.sidebar .nav-item[data-route="calendar"],html body .sidebar.sidebar .nav-item[data-route="favorites"],html body .sidebar.sidebar .v75-mobile-more{font:var(--dj-text-body-weight) var(--dj-text-caption-size)/var(--dj-text-title-line-height) var(--font-display,var(--font,system-ui))!important}
  [data-v15-task-row] .task-meta{font-size:var(--dj-text-secondary-size)!important}.v76-mobile-task-artifacts{max-width:100%;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important}
  .v15-project-node>.project-tree{margin-left:var(--dj-space-1)!important}.project-tree-level{margin-left:var(--dj-space-6)!important}
  main .settings-row,main .settings-row>*{min-width:0!important;max-width:100%!important;writing-mode:horizontal-tb!important;word-break:normal!important;overflow-wrap:break-word!important;white-space:normal!important}
  main .settings-row{grid-template-columns:minmax(0,1fr) auto!important;width:100%!important}.settings-label,.settings-note{writing-mode:horizontal-tb!important;word-break:normal!important;overflow-wrap:break-word!important;white-space:normal!important}.settings-row>div:first-child{width:auto!important;min-width:0!important}.v80-general-notifications{width:100%;min-width:0}
}

/* 2026-09-25, continuing the favorites-row fix above: icon size and font now match, but the row
 * stayed 42px tall vs 56px for the other 4 — turned out NOT content-driven (removing the count
 * badge live changed nothing). Real source: v75.css sets an explicit block-size:56px!important on
 * exactly today/inbox/projects/calendar (+.v75-mobile-more), scoped @media(max-width:1024px) —
 * that block is shared with PHONE width, where it also hides every OTHER route including
 * favorites (display:none at line 22 there), so simply adding favorites to v75's own list would
 * wrongly force it visible on phone too, a real regression. Scoped narrower here instead
 * (tablet-only, matching v78.css's own tablet-only collapsed-rail visibility rule for favorites),
 * so phone width is untouched. */
@media(min-width:600px) and (max-width:1024px){
  html body .sidebar.sidebar .nav-item[data-route="favorites"]{block-size:44px!important;min-block-size:44px!important}
}

@media(min-width:600px) and (max-width:1024px){
  .sidebar .nav-item[data-route]{font-size:var(--dj-text-body-size)!important}.sidebar .v78-sidebar-project-link{font-size:var(--dj-text-secondary-size)!important}
  .v27-project-head>.v27-project-row-meta,.v56-task-properties{font-size:var(--dj-text-caption-size)!important;white-space:nowrap!important}
}

/* ==== v81.css ==== */
/* Dolijane V3.8.0 stable revision 8 — final responsive and interaction fixes. */
:root{--soft:var(--accent-soft);--bp-phone:600px;--bp-tablet:1024px}

/* One calendar state for both week and month views. */
html[data-interface-design="claude"][data-v74-route="calendar"] :is(.v56-week-grid,.v56-month-grid)>.v56-weekday{color:#fff!important}

/* Time menu exposes one icon-only notification control. */
.v80-notification-heading{position:relative;display:grid!important;place-items:center;width:38px!important;height:38px!important;min-width:38px!important;padding:var(--dj-space-2)!important;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);background:var(--panel);color:var(--accent)}
.v80-notification-heading>span{display:none!important}.v80-notification-heading>b{position:absolute;right:-3px;top:-4px;min-width:16px;height:16px;padding:0 var(--dj-space-1);border-radius:var(--dj-radius-pill,999px);background:var(--accent);color:#fff;font-size:var(--dj-text-caption-size);line-height:var(--dj-text-caption-line-height);text-align:center}.v80-notification-heading .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}

/* Help starts with its title and uses the active design's cancel control. */
.v81-help-page>.topbar .eyebrow{display:none!important}.v81-help-page [data-v17-time-cancel],.v81-help-page [data-close]{color:#fff!important;background:var(--accent)!important;border-color:var(--accent)!important}

/* Settings must keep readable horizontal labels even at the narrowest width. */
@media(max-width:599px){main .settings-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:var(--dj-space-3)!important}main .settings-row>div:first-child{width:auto!important;min-width:0!important}.settings-label,.settings-note{writing-mode:horizontal-tb!important;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important}.v56-weekdays{justify-content:flex-end}}

/* Fold / tablet band starts at the same 600px boundary as the workspace. */
@media(min-width:600px) and (max-width:1024px){.notes-editor{--dolijane-layout-band:tablet}.settings-row{--dolijane-layout-band:tablet}}

/* ==== v82.css ==== */
/* Dolijane V3.8.0 stable revision 9 — final release corrections. */

/* Claude calendar: the week and the full month use the same black inner edge and glow. */
html[data-interface-design="claude"][data-v74-route="calendar"] :is(.v56-week-grid,.v56-month-grid)>.v56-weekday{color:#fff!important}

/* Compact feeds keep their full width and use half the former vertical rhythm. */
.compact-feed{width:100%!important;max-width:100%!important}
.compact-feed-head{padding-top:var(--dj-space-1)!important;padding-bottom:var(--dj-space-1)!important}
.compact-feed-all .feed-entry,.v56-feed-entry{padding-top:var(--dj-space-1)!important;padding-bottom:var(--dj-space-1)!important}
.feed-compose-card textarea{min-height:22px!important;height:22px!important}
.v30-feed-compose-card{padding-top:var(--dj-space-2)!important;padding-bottom:var(--dj-space-2)!important}
.v30-feed-compose-card textarea{min-height:22px!important;height:22px!important}

/* Notes: selection/picker panels are always above the linked-artifact rail. */
.notes-selection,.notes-option-choices{z-index:60!important}
.notes-attached{z-index:20!important}

/* Notification is one rectangular button after Postpone; its contents remain a popup. */
.v13-quick>.v80-notifications{position:relative;display:flex;align-items:center;margin:0}
.v80-notification-heading{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:var(--dj-space-1)!important;width:auto!important;min-width:44px!important;height:38px!important;padding:var(--dj-space-2) var(--dj-space-2)!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-button,8px)!important;background:var(--panel)!important;color:var(--accent)!important}
.v80-notification-heading>span{display:none!important}
.v80-notification-heading>b{position:static!important;min-width:0!important;height:auto!important;padding:0!important;border-radius:0!important;background:transparent!important;color:currentColor!important;font-size:var(--dj-text-secondary-size)!important;line-height:var(--dj-text-heading-line-height)!important}
.v80-notification-panel{position:absolute;z-index:90;right:0;top:calc(100% + 6px);width:min(360px,calc(100vw - 24px));max-height:min(480px,calc(100dvh - 120px));overflow:auto;margin:0!important;box-shadow:var(--shadow)}
.v82-exact-menu{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--dj-space-2);align-items:center;padding-top:var(--dj-space-2);border-top:1px solid var(--line)}
.v82-exact-menu input{min-width:0;width:100%}
.v82-exact-open{width:100%;min-height:34px;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--accent)}

/* Web/Windows task descriptions must never inherit a vertical writing mode. */
[data-task-form] :is(.rich-description,[data-rich-description],textarea[name="description"],.description-wrap,.task-description),
[data-task-form] :is(.rich-description,[data-rich-description],textarea[name="description"],.description-wrap,.task-description) *{
  writing-mode:horizontal-tb!important;text-orientation:mixed!important;inline-size:auto;min-width:0
}
[data-task-form] :is(.rich-description,[data-rich-description],textarea[name="description"]){width:100%!important;max-width:100%!important}

/* System tags are compact colored symbols, never a generic #tag label. */
.v82-system-tag{display:inline-flex;align-items:center;justify-content:center;vertical-align:-3px;line-height:var(--dj-text-heading-line-height)}
.v82-system-tag .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
.v16-system-tag-row .v82-system-tag .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}

/* Project/task recursion. Project and subproject rows inherit the page and own no card. */
.v15-projects-card,.v15-project-node,.project-tree-head,.project-tree-level>.v15-project-node{
  background:transparent!important;border:0!important;box-shadow:none!important
}
.project-tree-head{border-radius:0!important}
.v15-project-node>.project-tree{margin:0 0 var(--dj-space-1) 0!important;padding:var(--dj-space-1) 0 0 var(--dj-space-1)!important;background:transparent!important;border:0!important}
.v15-tree-list{gap:var(--dj-space-1)!important;background:transparent!important;border:0!important;box-shadow:none!important}
.v15-task-row{margin:0!important}
.v15-children{display:grid!important;gap:var(--dj-space-1)!important;margin:0!important;padding:var(--dj-space-1) 0 0 var(--dj-task-child-inset,calc(var(--dj-space-6) + var(--dj-space-1)))!important;border:0!important;background:transparent!important}
.project-tree-level{display:grid!important;gap:var(--dj-space-1)!important;margin:var(--dj-space-1) 0 0 var(--dj-project-level-inset,calc(var(--dj-space-6) + var(--dj-space-1)))!important;padding:0!important;border:0!important;background:transparent!important}
.project-tree-level>.v15-project-node>.project-tree{margin-left:0!important}
.project-meta-card[data-project-summary]{display:flex;align-items:center;flex-wrap:nowrap;gap:var(--dj-space-2);overflow-x:auto}
.project-meta-card[data-project-summary] :is(button,span){white-space:nowrap}
.project-meta-card[data-project-summary] button{display:inline-flex;align-items:center;gap:var(--dj-space-1)}
.project-meta-card[data-project-summary] .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}

/* Creation actions are equal circles; the system-colored surface inverts the glyph. */
.v82-create-button{display:grid!important;place-items:center!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;padding:var(--dj-space-2)!important;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;font-size:0!important;aspect-ratio:1!important}
.v82-create-button .v22-icon,.v82-create-button .v22-icon *{color:#fff!important;stroke:currentColor!important}
.v82-create-button .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
.project-mode{align-items:center;flex-wrap:nowrap}
.project-mode>[data-v17-select-toggle]{order:3}

/* Help begins at its title row; Cancel is a styled icon action. */
.v82-help-cancel{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;padding:var(--dj-space-2)!important;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;font-size:0!important}
.v82-help-cancel .v22-icon,.v82-help-cancel .v22-icon *{color:#fff!important;stroke:currentColor!important}
.dolijane-context-help>.modal{padding-top:var(--dj-space-4)!important}.dolijane-context-help header{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3);margin:0 0 var(--dj-space-3)}.dolijane-context-help header h1{margin:0;order:0}.dolijane-context-help header button{order:1;display:grid;place-items:center;width:38px!important;height:38px!important;padding:var(--dj-space-2)!important;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.dolijane-context-help header button .v22-icon,.dolijane-context-help header button .v22-icon *{color:#fff!important;stroke:currentColor!important}

@media(max-width:1024px){
  /* No overlay, popup, message or toast may occupy the Android bottom-navigation band. */
  :is(.modal-backdrop:not([data-v70-issue-modal]),.time-menu,.feed-compose-popup,.notes-picker){padding-bottom:calc(var(--v78-bottom-space,calc(var(--dj-space-8) + var(--dj-space-8))) + env(safe-area-inset-bottom,0px) + var(--dj-space-2))!important}
  :is(.modal,.time-menu-card,.feed-compose-card,.task-context-menu,.v36-artifact-picker,.v38-popup,.v39-log-popup,.v40-popup,.v53-popup,.v56-popup,.habit-v11-popup,.notes-picker-dialog,.notes-selection){max-height:calc(100dvh - var(--v77-mobile-header-height,62px) - var(--v78-bottom-space,64px) - env(safe-area-inset-bottom,0px) - 12px)!important}
  .toast,.undo-toast,[role="status"].message{bottom:calc(var(--v78-bottom-space,64px) + env(safe-area-inset-bottom,0px) + 8px)!important}
  .v73-install-setting .settings-label,.v82-settings-platform-line{white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}
  .v76-mobile-actions :is(button,.btn){font-family:var(--font,system-ui)!important}
}

/* Adaptive typography references the shared semantic scale. Desktop stays unchanged. */
@media(max-width:1024px){
  :root{--muted:#625f59}
  .page-title{font-size:var(--dj-text-title-size)!important;font-weight:var(--dj-text-title-weight)!important;line-height:var(--dj-text-title-line-height)!important;letter-spacing:-.01em!important}
  .task-title{font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-body-weight)!important;line-height:var(--dj-text-body-line-height)!important}
  .task-meta{font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-secondary-weight)!important;line-height:var(--dj-text-secondary-line-height)!important;color:var(--muted)!important}
  .chip{font-size:var(--dj-text-caption-size)!important;font-weight:var(--dj-text-caption-weight)!important;line-height:var(--dj-text-caption-line-height)!important}
  .day-head{font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-secondary-weight)!important;line-height:var(--dj-text-secondary-line-height)!important}
  .event{font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-body-weight)!important;line-height:var(--dj-text-body-line-height)!important}
  .check{width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important}
  .metric-value{font-size:var(--dj-text-title-size)!important}
  .metric-label{font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-secondary-weight)!important;line-height:var(--dj-text-secondary-line-height)!important}
  .v15-children{padding-left:var(--dj-task-child-inset,var(--dj-space-6))!important}
  .project-tree-level{margin-left:var(--dj-project-level-inset,var(--dj-space-6))!important}
}

/* ==== v83.css ==== */
/* Dolijane V3.8.0 stable revision 11. */

/* Notes catalogue: filters stay on row two, selected sources on row three. */
html[data-v74-route="notes"] .notes-tools{display:flex!important;width:100%;flex:0 0 100%}
html[data-v74-route="notes"] .notes-tools>[data-note-filter-reset]{margin-left:auto!important;color:var(--accent)!important}
html[data-v74-route="notes"] .notes-context{display:flex!important;width:100%;flex:0 0 100%;margin-top:var(--dj-space-2)!important;color:var(--ink)}
html[data-v74-route="notes"] .notes-context:empty{display:none!important}
.notes-tools .notes-button[aria-pressed="true"]{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
.notes-selection[data-kind="table-create"]{width:min(176px,calc(100vw - 16px))!important}
.notes-table-create{grid-template-columns:1fr!important;gap:var(--dj-space-2)!important}.notes-table-create label{grid-template-columns:1fr 52px!important;align-items:center!important}.notes-table-create>div{grid-column:auto!important}
.notes-selection[data-kind="pages"]{display:grid!important;gap:var(--dj-space-1)!important;width:min(250px,calc(100vw - 16px))!important;max-height:calc(100dvh - 100px)!important;overflow:auto!important}
.notes-pages-menu-row{display:grid;grid-template-columns:minmax(54px,1fr) 36px 36px 36px;gap:var(--dj-space-1);align-items:center}.notes-pages-menu-row button{display:grid;place-items:center;min-width:34px;min-height:34px;padding:var(--dj-space-1)}.notes-pages-menu-row .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.notes-editor .notes-text{overflow:hidden!important}

/* Web/Windows task headings and descriptions are always horizontal. */
@media(min-width:1025px){
  [data-task-form] :is(input[name="title"],.task-title-input,.v17-subtask-title,.modal-title,.v35-title-editor),[data-task-form] :is(textarea[name="description"],.description-wrap,.rich-description,[data-rich-description]){writing-mode:horizontal-tb!important;text-orientation:mixed!important;word-break:normal!important;overflow-wrap:anywhere!important;min-width:0!important;width:100%!important}
  [data-task-form] .task-head-v09{grid-template-columns:34px 28px 22px minmax(0,1fr)!important}
  [data-task-form] .v35-title-source[aria-hidden="true"]{display:none!important}
  [data-task-form] .v35-title-editor{grid-column:4!important;grid-row:1!important;height:auto!important;min-height:34px!important;align-self:center!important}
  .notes-focus-pair{z-index:100100!important;pointer-events:auto!important}
}

/* Project toolbar and summary. */
.project-mode{display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;min-width:0!important;overflow-x:auto!important}
.project-mode>.v83-project-select-control{position:static!important;flex:0 0 auto!important;order:initial!important}
.v83-project-metric{display:inline-flex!important;align-items:center!important;gap:var(--dj-space-1)!important;white-space:nowrap}.v83-project-metric .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
.project-tree-head>.nav-item{min-width:0!important}.project-tree-head>.nav-item>span{min-width:0!important}

/* The month and week use one inner edge; no duplicate bottom border. */

/* Comment feeds retain full width and halve only their vertical rhythm. */
.entity-feed,.compact-feed{width:100%!important;max-width:100%!important}.entity-feed :is(.feed-item,.feed-entry,.v56-feed-entry){padding-top:var(--dj-space-1)!important;padding-bottom:var(--dj-space-1)!important}.entity-feed :is(.feed-compose-card,.v30-feed-compose-card){padding-top:var(--dj-space-1)!important;padding-bottom:var(--dj-space-1)!important}.entity-feed textarea,.feed-compose-card textarea{min-height:22px!important;height:22px!important}

/* Time menu: three compact fields per row and four quick actions per row. */
.v83-system-action,.v83-notification-ok{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.v83-system-action .v22-icon,.v83-notification-ok .v22-icon{width:20px;height:20px;color:#fff!important}
.v80-notification-add{display:grid!important;grid-template-columns:minmax(0,1fr) 36px!important;align-items:center!important;gap:var(--dj-space-2)!important}.v80-notification-add>button{width:36px!important;height:36px!important;padding:var(--dj-space-2)!important}

/* Task metadata cannot enlarge the mobile page. */
.task-row-main,.task-meta,.v56-task-properties{min-width:0!important;max-width:100%!important}.task-meta{overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;scrollbar-width:none}.task-meta::-webkit-scrollbar{display:none}

@media(max-width:1024px){
  .v76-mobile-header{z-index:100080!important;pointer-events:auto!important}
  .v76-mobile-actions :is(button,.btn),.sidebar .nav-item{font-family:var(--font,system-ui)!important;font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-heading-weight)!important}
  .v13-time-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,.78fr) auto!important;gap:var(--dj-space-2)!important}.v13-time-grid label{min-width:0!important}.v13-time-grid input{width:100%!important;min-width:0!important;padding-inline:var(--dj-space-1)!important}.v13-no-deadline{align-self:end!important;white-space:nowrap!important;padding-inline:var(--dj-space-2)!important}
  .v13-quick{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:var(--dj-space-1)!important;align-items:start!important}.v13-quick>*{min-width:0!important}.v13-quick>.btn,.v13-postpone-wrap>.btn,.v80-notification-heading{width:100%!important;min-width:0!important;padding-inline:var(--dj-space-1)!important;white-space:nowrap!important}
  .v13-quick>.v80-notifications{display:block!important;position:relative!important}.v80-notification-panel{right:0!important;left:auto!important;width:min(330px,calc(100vw - 20px))!important}
  .task-row-v11,.v15-task-row{min-width:0!important;max-width:100%!important}.task-row-tools{min-width:0!important}.v76-mobile-task-artifacts,.v36-artifact-picker-list,[data-task-artifacts]{max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important}
  .v82-settings-platform-line{display:block!important;width:max-content!important;max-width:none!important;white-space:nowrap!important;writing-mode:horizontal-tb!important}
}

/* ==== v84.css ==== */
/* Dolijane V3.8.0 stable revision 12. */
/* Shared strips scroll without shrinking or wrapping their actionable tokens. */
:is(.task-meta,.v38-tag-artifacts,.v36-artifacts,.v76-mobile-task-artifacts){min-width:0!important;max-width:100%!important;display:flex;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;overscroll-behavior-x:contain;scrollbar-width:thin;touch-action:pan-x pan-y}
:is(.task-meta,.v38-tag-artifacts,.v36-artifacts,.v76-mobile-task-artifacts)>*{flex-shrink:0!important}
:is(.v38-tag-artifacts,.v36-artifacts)[hidden]{display:none!important}
.v84-compact-feed .compact-feed-head [data-v77-circle]{--v77-circle-size:24px!important;inline-size:24px!important;block-size:24px!important;min-inline-size:24px!important;min-block-size:24px!important}
@media(max-width:1024px){[data-v73-install-setting]{display:block!important;min-width:0!important;overflow-x:auto!important}[data-v73-install-setting] .settings-note{white-space:nowrap!important;max-width:none!important;width:max-content!important;writing-mode:horizontal-tb!important;word-break:normal!important}}
.v80-notification-panel[popover],.priority-menu[popover]{position:fixed!important;inset:auto!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;width:min(340px,calc(100vw - 32px))!important;max-height:calc(100dvh - 160px)!important;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel,#fff);color:var(--ink);padding:var(--dj-space-3);overflow:auto!important}
.priority-menu[popover]{width:max-content!important;display:flex;gap:var(--dj-space-2)}
.priority-menu[popover]:not(:popover-open){display:none!important}
.priority-menu[popover]{top:var(--priority-top,50%)!important;left:var(--priority-left,50%)!important;transform:none!important}
.project-tree-head>.chip{order:3;flex:0 0 auto}
.project-tree-head>.chip,.project-tree-head>.v15-active-task-count{margin-right:0!important}
.project-tree-head>.v15-active-task-count{order:10!important;flex:0 0 auto!important;margin-inline-start:auto;font-variant-numeric:tabular-nums;color:var(--muted)}
html[data-interface-design="claude"][data-v74-route="analytics"] :is(.v14-analytics-card,.v51-analytics-section)>:is(h2,h3){padding-inline-start:4ch}
:is(.project-color-palette,.v27-project-color-palette,.tag-palette,.v52-palette,.v53-palette,.v57-palette,.v58-action-palette,.notes-palette){display:grid!important;grid-template-columns:repeat(9,24px)!important;gap:var(--dj-space-1)!important;width:auto!important;min-width:0!important;box-sizing:border-box}
:is(.project-color-palette,.v27-project-color-palette,.tag-palette,.v52-palette,.v53-palette,.v57-palette,.v58-action-palette,.notes-palette)>button{width:24px!important;min-width:24px!important;height:24px!important;aspect-ratio:1;max-height:24px;padding:0!important}
:is(.project-color-palette,.v27-project-color-palette,.tag-palette,.v52-palette,.v53-palette,.v57-palette,.v58-action-palette,.notes-palette)>button{border-radius:var(--dj-radius-circle,50%)!important}
@media(max-width:599px){
 .sidebar .nav-item>span:not(.v22-nav-icon):not(.count){font:var(--dj-text-heading-weight) var(--dj-text-body-size)/var(--dj-text-heading-line-height) var(--font,system-ui)!important}
}
@media(max-width:1024px){
 .task-meta{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;max-width:100%!important;min-width:0!important;gap:var(--dj-space-1)}
 .task-meta>*{flex:0 0 auto!important;white-space:nowrap!important}
}
.notes-editor[hidden]{display:none!important}
.notes-selection[hidden]{display:none!important}
.notes-preview{padding-top:calc(1em + var(--dj-space-2))!important}
.v84-compact-feed,.v84-compact-feed .compact-feed-head,.v84-compact-feed .compact-feed-head button{background:transparent!important;border:0!important;box-shadow:none!important}
.v84-compact-feed:not(.collapsed)>.compact-feed-last{position:static!important;display:block!important;width:auto!important;margin:0 var(--dj-space-2) var(--dj-space-1)!important}
.v84-compact-feed.collapsed>.compact-feed-last{display:none!important}
html[data-interface-design="claude"] .v56-month-grid .v56-weekday{text-transform:lowercase}
@media(max-width:1024px){
 [data-v73-install-setting]{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:var(--dj-space-2)!important;min-width:0;overflow-x:auto!important}
 [data-v73-install-setting]>*{flex-shrink:0;position:static!important}
 
}
.v80-notification-panel[popover]::backdrop,.priority-menu[popover]::backdrop{background:rgba(0,0,0,.16)}
.v80-notification-panel .v80-notification-add button{background:var(--panel,#fff)!important;color:var(--accent)!important;border:1px solid var(--line)!important}
@media(max-width:1024px){
  .sidebar :is(.nav-item,.v75-mobile-more),.sidebar :is(.nav-item,.v75-mobile-more) span{font-family:inherit!important}
  #dv-mic-wrap{bottom:calc(var(--v75-mobile-bar,68px) + 12px)!important}
  html.notes-editing #dv-mic-wrap{z-index:100006!important;bottom:calc(78px + env(safe-area-inset-bottom))!important}
  html.notes-editing .notes-editor .notes-attached{bottom:calc(140px + env(safe-area-inset-bottom))!important}
}
.notes-editing .modal-backdrop:not([data-v70-issue-modal]){visibility:hidden!important;pointer-events:none!important}
html.notes-editing:has(.notes-selection:not([hidden]),.notes-picker) #dv-mic-wrap{visibility:hidden!important}
.notes-selection[data-kind="calculator"]{width:max-content!important;max-width:calc(100vw - 16px)!important;padding:var(--dj-space-1)!important}
.notes-calculator-result{display:grid;grid-template-columns:minmax(90px,1fr) 36px;gap:var(--dj-space-2);align-items:center}.notes-calculator-result output{font-variant-numeric:tabular-nums;font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);padding:var(--dj-space-1) var(--dj-space-2)}.notes-calculator-result button{width:36px;height:36px;padding:var(--dj-space-2)}
.notes-page-thumbnail{position:relative;display:block;width:54px;height:70px;overflow:hidden;border:1px solid var(--line);background:var(--panel,#fff);padding:var(--dj-space-1);text-align:left;font-size:5px;line-height:1.15}.notes-page-thumbnail>span{display:block;overflow:hidden;max-height:54px}.notes-page-thumbnail>i{position:absolute;right:4px;bottom:4px}.notes-page-thumbnail>small{position:absolute;left:4px;bottom:3px;font-size:8px}
.notes-pages-menu-row{grid-template-columns:64px 36px 36px 36px!important}.notes-pages-menu-row>button:first-child{width:64px!important;height:76px!important;padding:var(--dj-space-1)!important}
.notes-link-choices .v84-system-tag-choice,.v84-system-tag-choice{display:inline-flex!important;align-items:center!important;gap:var(--dj-space-2)!important;color:inherit}.v84-system-tag-choice .v22-icon{width:20px;height:20px}
.v84-subproject-tree{margin-top:var(--dj-space-1)}.v84-subproject-tree .project-tree-level{margin-left:calc(var(--dj-space-4) + var(--dj-space-1))}
.project-tree-head{display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;min-width:0}.project-tree-head>.project-toggle{flex:0 0 28px!important;order:0}.project-tree-head>.nav-item{display:flex!important;flex:1 1 0!important;min-width:0!important;visibility:visible!important;opacity:1!important;order:1}.project-tree-head>.nav-item>span{display:flex!important;align-items:center;gap:var(--dj-space-2);min-width:0!important;flex-wrap:nowrap!important}.project-tree-head>.nav-item b{display:block!important;min-width:0!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}.project-tree-head .v56-project-icon{display:inline-flex!important;flex:0 0 22px!important;width:22px!important;height:22px!important}.project-tree-head>.notes-artifact-badge{flex:0 0 auto!important;order:2}.project-tree-head>[data-v24-favorite-kind]{flex:0 0 auto!important;order:3}
.project-tree-head>.project-toggle.v72-direction-button{min-width:44px;min-height:44px;padding:0}.project-tree-head>.project-toggle.v72-direction-button>.v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}
.project-mode>.v84-project-control{position:static!important;flex:0 0 auto!important}
.v51-section-title{justify-content:center!important;text-align:center!important;width:100%}
.v84-selection-tools{margin-left:auto!important;display:flex;align-items:center;justify-content:flex-end;gap:var(--dj-space-2);flex:0 0 auto}
.project-tree-head>.v15-active-task-count,.project-tree-head>.chip{box-sizing:border-box;display:inline-flex!important;align-items:center;justify-content:center;width:32px!important;height:32px!important;min-width:32px;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%)!important;padding:0!important;font-size:var(--dj-text-secondary-size,12px);font-weight:var(--dj-text-heading-weight);color:var(--muted);order:10!important}
.v43-graph .v44-graph-value:first-of-type,.v43-graph .v44-graph-value:nth-last-of-type(2){font-size:var(--dj-text-heading-size)!important;font-weight:var(--dj-text-heading-weight)}
html[data-v74-route="voice-search"] main .priority-flag,.v56-action-detail .task-row-v11 .priority-flag{display:none!important}
@media(max-width:1024px){
 .v76-mobile-main-row{display:flex!important;flex-wrap:nowrap!important;gap:var(--dj-space-1)!important}
 .v76-mobile-main-row>.v76-active-route{flex:1 1 0!important;min-width:0!important;overflow:hidden}
 .v76-active-route>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
 .v76-mobile-main-row>.v84-title-tool{flex:0 0 32px!important;width:32px!important;height:32px!important;min-width:32px;padding:var(--dj-space-1)!important}
 .v76-mobile-main-row>.v76-rose-button,.v76-mobile-main-row>.notes-global-new,.v76-mobile-main-row>[data-v76-focus]{flex:0 0 40px!important;width:40px!important;min-width:40px!important}
 main .v57-stone-heading>[data-v57-stone-status],main .v57-long-description>summary{display:none!important}
 [data-v15-task-row]{min-height:40px;align-items:center!important}
 .task-row-main{min-width:0}.task-row-main:has(>.task-meta:empty){align-self:center}.task-meta:empty{display:none}
}
.project-meta-card span,.project-meta-card [data-project-task-filter]{vertical-align:middle;align-items:center}
.project-meta-card [data-project-task-filter]{display:inline-flex;align-items:center;gap:var(--dj-space-1)}.project-meta-card [data-project-task-filter] .v22-icon{width:20px;height:20px}
.v84-compact-feed{min-height:0!important;margin-top:var(--dj-space-2)!important;padding-block:0!important}.v84-compact-feed .compact-feed-head{height:28px!important;min-height:0!important;padding:0 var(--dj-space-2)!important;display:flex!important;align-items:center;gap:var(--dj-space-1)}.v84-compact-feed .compact-feed-last{flex:1;min-width:0;max-height:22px!important;overflow:hidden;white-space:nowrap!important;text-overflow:ellipsis;line-height:var(--dj-text-body-line-height)!important}.v84-compact-feed .compact-feed-actions{display:flex;flex:none;gap:var(--dj-space-1)}.v84-compact-feed .compact-feed-head button{height:24px!important;min-height:24px;width:24px!important;min-width:24px;padding:var(--dj-space-1)!important}.v84-compact-feed :is(.compact-feed-all,.feed-entry,.feed-item){padding-top:var(--dj-space-1)!important;padding-bottom:var(--dj-space-1)!important;line-height:var(--dj-text-heading-line-height)!important}.v84-compact-feed textarea{height:21px!important;min-height:21px!important;max-height:42px!important}
/* Favorite glyphs use the catalogue's grid centering, including Mucha medallions. */
.v80-notification-panel[hidden]{display:none!important}.v80-notification-panel:not([hidden]){display:grid!important;gap:var(--dj-space-2)!important}.v80-notification-panel .v80-notification-add{display:grid!important;grid-template-columns:minmax(0,1fr) 36px!important}.v80-notification-panel .v80-notification-add button{width:36px;height:36px;padding:var(--dj-space-2)}

@media(max-width:1024px){
  :is(.modal:not(.v70-issue-modal,.entity-menu-v2):not(.sync-conflict-panel),.modal-backdrop:not([data-v70-issue-modal],.r21-entity-backdrop)>*:not(.sync-conflict-panel),.time-menu-card,.notes-picker>section,.v17-action-picker,.v17-picker-list,.v17-popup,.v18-habit-popup,.habit-v11-popup,.priority-menu,.mini-project-menu,.mini-priority-menu,.task-context-menu,.feed-compose-card,.v80-notification-panel,[role="menu"]){max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 18px)!important;overflow-y:auto!important;overscroll-behavior:contain}
  .task-meta,.v36-artifact-picker-list,[data-task-artifacts],.v76-mobile-task-artifacts{max-width:100%!important;min-width:0!important;overflow-x:auto!important;overflow-y:hidden!important;white-space:nowrap!important;scrollbar-width:none}
  .v76-mobile-actions :is(span,.v76-label),.v76-more-label{font:var(--dj-text-heading-weight) var(--dj-text-body-size)/var(--dj-text-heading-line-height) var(--font,system-ui)!important}
  
  .v13-time-grid{grid-template-columns:minmax(120px,1.25fr) minmax(84px,.9fr) minmax(62px,.7fr)!important;gap:var(--dj-space-1)!important}.v13-time-grid input{font-size:var(--dj-text-secondary-size)!important;padding-inline:var(--dj-space-1)!important}.v13-no-deadline{width:auto!important;max-width:94px!important;white-space:nowrap!important;font-size:var(--dj-text-secondary-size)!important;padding-inline:var(--dj-space-1)!important}.v13-quick>*{min-width:0!important}.v13-quick button{font-size:var(--dj-text-secondary-size)!important;padding-inline:var(--dj-space-1)!important}
  .v84-goal-description-row{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0}.v84-goal-description-row>textarea{flex:1 1 0;min-width:0!important;width:auto!important}.v84-goal-description-row>.priority-flag{flex:0 0 32px}
  .v82-settings-platform-line{display:block!important;width:max-content!important;max-width:none!important;white-space:nowrap!important;writing-mode:horizontal-tb!important}
}
/* The generic .settings-row.v41-settings-row grid used to squeeze the label to
   zero width. Both children now occupy separate, intrinsic-height rows. */
.settings-row.v41-settings-row[data-v73-install-setting]{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:var(--dj-space-2)!important;overflow-x:auto!important}
@media(max-width:1024px){
  .time-menu.v38-time-menu .v13-time-grid{grid-template-columns:minmax(104px,1.25fr) minmax(76px,.9fr) minmax(62px,.7fr)!important;gap:var(--dj-space-1)!important}
  .time-menu.v38-time-menu .v13-no-deadline{grid-column:3!important;grid-row:1!important}
}
.settings-row.v41-settings-row[data-v73-install-setting]>div{grid-column:1!important;grid-row:auto!important;width:100%!important;min-width:0!important;justify-self:stretch!important}
.settings-row.v41-settings-row[data-v73-install-setting] .v73-install-actions{justify-content:flex-start!important}
/* One shared quick-date primitive: four equal 2×2 cells at every viewport. */
.time-menu.v38-time-menu .v13-quick{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:stretch!important;gap:var(--dj-space-2,var(--dj-space-2))!important}.time-menu.v38-time-menu .v13-quick>.btn{display:flex!important;min-width:0!important;min-height:52px!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:var(--dj-space-1)!important;padding:var(--dj-space-2) var(--dj-space-3)!important;line-height:var(--dj-text-title-line-height)!important;white-space:normal!important}.time-menu.v38-time-menu .v13-quick>.btn small{color:var(--muted);font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-title-line-height)}
.settings-row.v41-settings-row[data-v73-install-setting] .settings-note{white-space:normal!important;width:auto!important;max-width:100%!important;overflow-wrap:break-word!important}
@media(max-width:599px){.sidebar .nav-item>span:not(.v22-nav-icon):not(.count){font-size:var(--dj-text-caption-size)!important;line-height:var(--dj-text-heading-line-height)!important;white-space:nowrap!important}}
.v76-mobile-main-row>.v76-title-create{display:inline-grid!important;place-items:center;width:44px!important;height:44px!important;min-width:44px!important;flex:0 0 44px!important;border:0!important;background:transparent!important;padding:var(--dj-space-2)!important;color:var(--accent)!important}
.dv-text-dialog{width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 140px);overflow:auto;border:1px solid var(--line);border-radius:var(--dj-radius-window);padding:var(--dj-space-4);background:var(--panel);color:var(--ink)}
.dv-text-dialog input{display:block;width:100%;min-width:0;margin:var(--dj-space-3) 0;padding:var(--dj-space-2)}.dv-text-dialog form>div{display:flex;gap:var(--dj-space-2);justify-content:flex-end}.dv-text-dialog button{padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--accent);color:#fff}
::highlight(note-tool-selection){background:Highlight;color:HighlightText}
.v56-streak,.v78-mobile-streak{white-space:pre-line!important;text-align:left!important}
.v51-project-picker{position:relative}.v51-project-picker summary{cursor:pointer;padding:var(--dj-space-2) var(--dj-space-3)}.v51-project-choices{position:absolute;top:100%;left:0;z-index:100;width:min(310px,calc(100vw - 32px));max-height:45dvh;overflow:auto;padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);box-shadow:var(--shadow)}.v51-project-choices label{display:flex;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2)}.v51-project-choices .v22-icon,.analytics-project .v22-icon{width:20px;height:20px;flex:0 0 20px}
html[data-interface-design=claude] .v51-section-title{justify-content:center!important;text-align:center!important}html[data-interface-design=claude] .v51-section-title>span{display:none!important}
.v84-state-wrap{position:relative}.v84-state-wrap>div:not([hidden]){display:flex;position:absolute;right:0;top:100%;z-index:80;gap:var(--dj-space-1);padding:var(--dj-space-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-card);box-shadow:var(--shadow)}
.v56-month-nav>[data-v56-calendar-shift]{background:transparent!important;border:0!important;box-shadow:none!important;display:grid!important;place-items:center!important}.v56-month-nav>[data-v56-calendar-shift] .v22-icon{margin:0!important;display:block!important}
html[data-interface-design="claude"][data-v74-route="calendar"] .v77-calendar-slide{padding-inline:0!important}
.v84-header-picker{position:fixed;z-index:100100;width:280px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 180px);overflow:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);padding:var(--dj-space-3);box-shadow:var(--shadow)}.v84-header-picker label{display:flex;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2)}.v84-header-picker input[type=date]{width:100%;min-width:0}.v84-project-task-total{display:inline-flex;align-items:center;gap:var(--dj-space-1)}.v84-project-task-total .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}
[data-v51-analytics-section][hidden]{display:none!important}
@media(max-width:1024px){.v84-minimum-toast{bottom:calc(90px + env(safe-area-inset-bottom))!important;max-width:calc(100vw - 24px)}}
@media(max-width:1024px){.settings-row.v41-settings-row:has([data-setting=noiseStart]){grid-template-columns:minmax(0,1fr) auto!important;gap:var(--dj-space-2)!important}.settings-row.v41-settings-row:has([data-setting=noiseStart])>div:last-child{display:flex!important;align-items:center;gap:var(--dj-space-1)}.settings-row.v41-settings-row:has([data-setting=noiseStart]) .settings-label{white-space:nowrap!important}.settings-row.v41-settings-row :is([data-setting=noiseStart],[data-setting=noiseEnd]){width:83px!important;min-width:0!important;padding:var(--dj-space-1) var(--dj-space-1)!important;font-size:var(--dj-text-secondary-size)!important}}
@media(max-width:1024px){.v40-goal-editor .v40-measure-row{display:flex!important;flex-wrap:wrap!important;gap:var(--dj-space-2)!important;min-width:0}.v40-goal-editor .v40-measure-row>[name=target]{flex:1 1 80px!important;min-width:60px!important;width:80px!important;max-width:100%!important}.v40-goal-editor [data-v40-measure-action]{flex:1 0 100%!important;width:100%!important}.v40-goal-editor .v40-manual-rules{display:flex!important;flex-wrap:nowrap!important;gap:var(--dj-space-1)!important;min-width:0;font-size:var(--dj-text-caption-size)!important;overflow-x:auto}.v40-goal-editor .v40-manual-rules>*{flex:0 0 auto!important;white-space:nowrap!important}.v40-goal-editor .v15-number-completion{display:flex;align-items:center;gap:var(--dj-space-1);white-space:nowrap}.v40-goal-editor .v15-number-completion input{width:14px;height:14px}.v40-goal-editor [name=description]{width:100%!important;min-width:0!important;writing-mode:horizontal-tb!important}}
.project-mode [data-project-mode="today"].primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}.project-mode [data-project-mode="today"].primary .v22-icon{color:currentColor}

/* ==== ideas.css ==== */
.ideas-list,.idea-stream{display:grid;gap:var(--dj-space-3)}.idea-card{display:flex;align-items:center;gap:var(--dj-space-3);text-align:left;color:var(--ink);width:100%}.idea-card strong{flex:1}.idea-card time{font-size:var(--dj-text-secondary-size);color:var(--muted)}.idea-links{display:flex;gap:var(--dj-space-2);margin-block:var(--dj-space-2)}.idea-link{border:0;background:none}.idea-dialog{max-width:calc(100vw - 32px);border:1px solid var(--line);border-radius:var(--dj-radius-window);background:var(--panel);color:var(--ink)}.idea-dialog form{display:grid;gap:var(--dj-space-3)}.idea-dialog input{max-width:100%;box-sizing:border-box}.idea-dialog form>div{display:flex;justify-content:flex-end;gap:var(--dj-space-2)}.idea-artifact-menu{display:flex;gap:var(--dj-space-1);flex-wrap:wrap;max-width:100%;padding:var(--dj-space-2);border:1px solid var(--line);background:var(--panel)}.idea-stream [hidden]{display:none!important}
.main [data-v15-task-row][hidden]{display:none!important}
.ideas-list[hidden]{display:none!important}.idea-group{margin-block:var(--dj-space-3)}.idea-group-head{display:flex;align-items:center;gap:var(--dj-space-3);width:100%;border:0;background:transparent;color:var(--ink);padding:var(--dj-space-3) 0;text-align:left}.idea-group-head>span:last-child{margin-left:auto}.idea-card{border:0;background:transparent;padding:var(--dj-space-4) var(--dj-space-2);min-width:0}.idea-card strong{min-width:0;overflow-wrap:anywhere}.idea-links{overflow-x:auto;flex-wrap:nowrap;max-width:100%;align-items:center}.idea-links>button{flex:0 0 auto}.idea-links>[data-idea-action=filter]{margin-left:auto}.idea-title-input{display:flex;gap:var(--dj-space-2)}.idea-title-input>[name=title]{min-width:0;flex:1}.idea-title-input>[type=color]{width:42px;flex:0 0 42px}.idea-artifact-menu{position:fixed;z-index:100060;min-width:180px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 160px);overflow:auto;flex-direction:column;box-shadow:0 4px 16px #0002;border-radius:var(--dj-radius-popup,10px)}.idea-artifact-menu>button,.idea-artifact-menu>label{display:flex;align-items:center;gap:var(--dj-space-2);min-height:36px;border:0;background:transparent;color:var(--ink);text-align:left}.idea-stream .v58-priority-flag,.idea-stream .v57-priority-meta{display:none!important}
.dj-ideas-wide-create{display:inline-flex;align-items:center;gap:var(--dj-space-2)}
.dj-ideas-wide-create .v22-icon{width:var(--dj-icon-medium,24px);height:var(--dj-icon-medium,24px)}
@media(max-width:1024px){body .dj-ideas-wide-create{display:none}}

.idea-work-group{min-width:0}.idea-work-group>summary{display:flex;align-items:center;gap:var(--dj-space-2);min-height:44px;cursor:pointer;list-style:none;font:inherit}.idea-work-group>summary::-webkit-details-marker{display:none}.idea-work-group>summary>b{margin-left:auto}.idea-work-group[open]>summary>.v22-icon{rotate:-90deg}.idea-note-line{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;min-width:0}.idea-note-line>span,.dj-project-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.idea-note-line>.v22-icon{flex-shrink:0}
.idea-work-group>[data-idea-task-list]{padding-inline-start:var(--dj-space-4)}
.idea-stream[data-dj-hierarchy-style="architect"]{--dj-tree-node:#a69c90;--dj-tree-chevron:var(--panel);--dj-tree-open-chevron:var(--ink);--dj-tree-node-radius:2px}
.idea-stream[data-dj-hierarchy-style="modern"]{--dj-tree-node:#687b59;--dj-tree-chevron:var(--panel);--dj-tree-open-chevron:#a94f60}
.idea-work-caret{position:relative;display:block;flex:0 0 44px;inline-size:44px;block-size:44px}
.idea-work-caret::before,.idea-stream .idea-note-caret::before{content:"";position:absolute;left:13px;top:13px;inline-size:18px;block-size:18px;box-sizing:border-box;border:1px solid var(--dj-tree-node);border-radius:var(--dj-tree-node-radius);background:var(--dj-tree-node)}
.idea-work-caret::after,.idea-stream .idea-note-caret::after{content:"";position:absolute;left:20px;top:19px;inline-size:5px;block-size:5px;border-right:1.5px solid var(--dj-tree-chevron);border-bottom:1.5px solid var(--dj-tree-chevron);transform:rotate(-45deg)}
.idea-work-group[open] .idea-work-caret::before,.idea-stream .idea-note-row[open]>.idea-note-line>.idea-note-caret::before{background:var(--panel)}
.idea-work-group[open] .idea-work-caret::after,.idea-stream .idea-note-row[open]>.idea-note-line>.idea-note-caret::after{top:18px;border-color:var(--dj-tree-open-chevron);transform:rotate(45deg)}
.idea-stream .idea-note-caret{position:relative;flex:0 0 44px}
.idea-stream .idea-note-caret>.v22-icon{visibility:hidden}
.idea-stream[data-dj-hierarchy-style="modern"] :is(.idea-work-caret,.idea-note-caret)::before{border:0;border-radius:0;background:transparent url('assets/hierarchy/modern-bud-5-frames-hires.png') -2px -6.5px/110px 36.7px no-repeat}
.idea-stream[data-dj-hierarchy-style="modern"] :is(.idea-work-group[open] .idea-work-caret,.idea-note-row[open]>.idea-note-line>.idea-note-caret)::before{background:transparent url('assets/hierarchy/modern-bud-5-frames-hires.png') -90px -6.5px/110px 36.7px no-repeat}
.idea-stream[data-dj-hierarchy-style="modern"] :is(.idea-work-caret,.idea-note-caret)::after{display:none}
@media(prefers-reduced-motion:no-preference){
 .idea-stream :is(.idea-work-caret,.idea-note-caret).dj-node-opening::before{animation:dj-tree-open 150ms ease-out both}
 .idea-stream :is(.idea-work-caret,.idea-note-caret).dj-node-closing::before{animation:dj-tree-close 150ms ease-out both}
 .idea-stream[data-dj-hierarchy-style="modern"] :is(.idea-work-caret,.idea-note-caret).dj-node-opening::before{animation:dj-bud-open-hires 150ms steps(1,end) both}
 .idea-stream[data-dj-hierarchy-style="modern"] :is(.idea-work-caret,.idea-note-caret).dj-node-closing::before{animation:dj-bud-close-hires 150ms steps(1,end) both}
}

.idea-tree-node{min-width:0;}
.idea-tree-node>summary.idea-card{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;box-sizing:border-box;cursor:pointer;list-style:none;}
.idea-tree-node>summary::-webkit-details-marker{display:none;}
.idea-tree-title{display:flex;align-items:center;gap:var(--dj-space-2);flex:1;min-width:0;}
.idea-tree-title strong{overflow:hidden;text-overflow:ellipsis;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:var(--dj-text-body-line-height);}
.idea-tree-caret{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--muted);--dj-icon-size:var(--dj-icon-compact);--dj-icon-standard:var(--dj-icon-compact);}
.idea-tree-caret>.v22-icon,.idea-note-caret>.v22-icon{width:var(--dj-icon-compact);height:var(--dj-icon-compact);flex-shrink:0;}
.idea-tree-content{padding-inline-start:var(--dj-space-4);}
.idea-tree-content .idea-note-line{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;min-width:0;min-height:44px;}
.idea-tree-content .idea-note-line>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.idea-tree-content .task-list{margin:0;}
.dj-project-idea-trees{flex-shrink:0;min-width:0;}

.idea-tree-title{font:inherit;text-align:start;background:transparent;border:0;padding:0;cursor:pointer}
.idea-card>.idea-tree-note{min-width:44px;min-height:44px;margin:0;color:var(--accent)}
.idea-card>.v24-favorite-toggle{flex:0 0 44px;width:44px;height:44px}
.idea-card>.idea-active-count{flex:0 0 32px;width:32px;min-width:32px;max-width:32px;box-sizing:border-box;margin-inline-end:var(--dj-space-2);text-align:center}
.idea-note-page-preview{min-width:0;max-width:100%;margin-block:var(--dj-space-2)}.idea-note-page-stage{position:relative;overflow:hidden}.idea-note-page-sheet{position:absolute;inset:0 auto auto 0;transform-origin:0 0;overflow:hidden}.idea-note-page-sheet>.notes-text{line-height:1.5;white-space:pre-wrap;user-select:text}.idea-note-page-sheet .notes-text p,.idea-note-page-sheet .notes-text div{margin:0}.idea-note-ink-preview{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.idea-note-row{min-width:0}.idea-note-row>summary{list-style:none;cursor:pointer}.idea-note-row>summary::-webkit-details-marker{display:none}.idea-note-title{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.idea-note-line time{flex-shrink:0;color:var(--muted);font-size:var(--dj-text-caption-size)}.idea-note-excerpt{font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-secondary-weight)}.idea-note-caret{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;--dj-icon-size:var(--dj-icon-compact)}.idea-note-row-content{padding:var(--dj-space-2) var(--dj-space-4);overflow-wrap:anywhere}.idea-note-row-content img{max-width:100%;height:auto}.idea-note-pin,.idea-note-edit{display:grid;place-items:center;flex:0 0 34px;inline-size:34px;block-size:34px;padding:var(--dj-space-1);border:0;border-radius:var(--dj-radius-circle,50%);background:transparent;color:var(--muted);cursor:pointer}.idea-note-pin[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.idea-note-pin :is(.v22-icon,.dj-utility-symbol),.idea-note-edit :is(.v22-icon,.dj-utility-symbol){inline-size:16px;block-size:16px;font-size:var(--dj-icon-compact,16px)}.idea-note-row.idea-note-dragging{opacity:.55}.idea-note-row.idea-note-drop-before{box-shadow:inset 0 3px 0 var(--accent)}.idea-note-row.idea-note-drop-after{box-shadow:inset 0 -3px 0 var(--accent)}
.idea-task-pin{display:grid;place-items:center;min-inline-size:28px;inline-size:28px;block-size:28px;padding:var(--dj-space-1);border:0;background:transparent;color:var(--muted)}.idea-task-pin[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.idea-task-pin :is(.v22-icon,.dj-utility-symbol){inline-size:16px;block-size:16px;font-size:var(--dj-icon-compact,16px)}
@media(max-width:1024px){html body .idea-note-pin,html body .idea-note-edit,html body .idea-task-pin{position:relative;flex:0 0 44px;inline-size:44px;block-size:44px;min-inline-size:44px;min-block-size:44px;max-inline-size:none;max-block-size:none;background:transparent}.idea-note-pin[aria-pressed=true]::before,.idea-task-pin[aria-pressed=true]::before{content:"";position:absolute;inline-size:28px;block-size:28px;border-radius:var(--dj-radius-circle,50%);background:var(--accent-soft)}.idea-note-pin>:is(.v22-icon,.dj-utility-symbol),.idea-note-edit>:is(.v22-icon,.dj-utility-symbol),.idea-task-pin>:is(.v22-icon,.dj-utility-symbol){position:relative}}

.idea-note-edit{color:var(--accent)}
.idea-note-archived .idea-note-title{color:var(--muted);font-weight:var(--dj-text-secondary-weight)}
.idea-note-archive-icon{display:grid;place-items:center;flex:0 0 var(--dj-icon-compact);color:var(--muted)}
.idea-note-archive-icon .v22-icon{width:var(--dj-icon-compact);height:var(--dj-icon-compact)}
.idea-links:empty{display:none}

/* ==== mobile-client.css ==== */
/* Revision 18: shared adaptive client corrections; desktop typography unchanged. */
@media(max-width:1024px){
 .v76-mobile-main-row{gap:var(--dj-space-1)!important}
 /* 44px — тот же размер, что у .v76-header-button (см. "Новая идея" и
    остальные кнопки шапки) — раньше здесь было 32px, из-за чего "Новый
    проект"/"Новый ритуал"/"Новая привычка"/"Новое действие"/"Новый тэг"
    отличались форматом от "Новая идея" в идентичном месте интерфейса. */
 .v76-mobile-main-row .v82-create-button{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex:0 0 44px!important;background:transparent!important;border:0!important;border-radius:var(--dj-radius-circle,50%)!important}
 .v76-mobile-main-row .v82-create-button .v22-icon,.v76-mobile-main-row .v82-create-button .v22-icon *{color:var(--accent)!important}
 .v76-mobile-main-row .v82-create-button>.v22-icon{width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important}
 .notes-tools>.notes-button{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;flex:0 0 34px!important;padding:var(--dj-space-1)!important}
 .v76-mobile-main-row>[data-v39-log-filter],.v76-mobile-main-row>[data-new-subproject],.v76-mobile-main-row>[data-new-task]{background:transparent!important;border:0!important;border-radius:var(--dj-radius-circle,50%)!important}
}
.notes-editor .notes-selection[data-kind=text-context][hidden]{display:none!important}

.v18-action-dock{position:fixed;right:78px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:100050;display:flex;gap:var(--dj-space-2)}
.v18-action-dock .notes-button{background:var(--panel);box-shadow:0 2px 8px #0002;pointer-events:auto}
.v18-action-dock [hidden]{display:none!important}
.v18-page-commands>button{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;border:0;background:transparent;color:var(--ink);padding:var(--dj-space-3)}
[data-v18-completion] [hidden]{display:none!important}
@media(max-width:1024px){
 .v76-mobile-main-row>[data-v76-focus],.v76-mobile-main-row>.notes-global-new,[data-v18-moved-command],.v18-editor-back{display:none!important}
 .v18-action-dock{bottom:calc(80px + env(safe-area-inset-bottom))}
 .v76-mobile-main-row>[data-v76-system]{margin-left:auto}
 .notes-editing .v18-action-dock{bottom:calc(76px + env(safe-area-inset-bottom))}
}
.task-row-actions,.v15-task-actions,.tag-actions{align-self:center!important;align-items:center!important}
.status-someday .task-state-check:not([data-dj-thought-marker="1"]){visibility:hidden!important;pointer-events:none!important}
.status-someday .v15-task-time,.status-someday .v56-task-time{display:none!important}
.task-row-tools{align-self:center!important;align-items:center!important}
.v17-subtask-actions>button:not([type=button]),.v17-subtask-actions>[data-v17-subtask-cancel]{display:none!important}
.time-menu input,.time-menu select{min-height:34px;box-sizing:border-box}
.v17-time-menu[data-v18-task-time]:not(.v18-reminders-only) .v80-notifications{display:none!important}
.v18-reminders-only .time-menu-card>:not(.v13-quick):not(.modal-actions){display:none!important}
.v18-reminders-only .v13-quick>:not(.v80-notifications){display:none!important}
.v18-reminders-only .v80-notification-heading{display:none!important}
.v18-reminders-only .v80-notification-panel{display:flex!important;position:static!important;flex-direction:column;width:100%!important;max-width:100%!important;box-shadow:none!important;margin:0!important}
.v18-reminders-only .v80-notifications{width:100%}
.v18-reminder{display:flex;align-items:center;gap:var(--dj-space-2);max-width:100%}
[data-v18-thought] .time-line{display:none!important}
[data-v18-completion]{display:flex!important;flex-direction:column!important;gap:var(--dj-space-2)}
[data-v18-completion]>.form-grid{display:contents!important}
[data-v18-completion]>.task-head-v09,[data-v18-completion]>.v40-goal-head{order:0}
[data-v18-completion] .description-wrap,[data-v18-completion]>[name=description]{order:1}
[data-v18-completion] .time-line{order:2;display:flex;gap:var(--dj-space-2);align-items:center}
[data-v18-completion] .time-line>button{order:-1}
.v18-priority-row{order:3;display:flex;gap:var(--dj-space-2);align-items:center}
[data-v18-completion] .v18-reminder{order:4}
[data-v18-completion] .v36-artifacts,[data-v18-completion] .v38-tag-artifacts,[data-v18-completion] [data-v40-artifacts]{order:5;max-width:100%;overflow-x:auto;flex-wrap:nowrap!important;flex-shrink:0}
[data-v18-completion]>.subtask-panel,[data-v18-completion]>.v40-measure-row{order:6}
[data-v18-completion]>[data-v40-special]{order:7}
[data-v18-completion]>[data-feed-panel]{order:8}
[data-v18-completion]>.modal-actions{order:9}
.v18-state-label{font-size:var(--dj-text-secondary-size);white-space:nowrap}
.v84-state-wrap>div>button,.v76-task-state-popover [data-task-state]{display:flex!important;width:auto!important;min-width:100%;align-items:center;gap:var(--dj-space-2)}
[data-v18-completion] .v36-artifacts,[data-v18-completion] .v38-tag-artifacts{display:flex;flex-direction:column!important;align-items:stretch!important;overflow:visible!important}
[data-v18-completion] .v36-artifacts[hidden]{display:none!important}
.v18-artifact-row{display:flex;gap:var(--dj-space-2);flex-wrap:nowrap;max-width:100%;overflow-x:auto;min-height:34px;align-items:center;justify-content:flex-start!important;text-align:left}
.v18-artifact-row:not([data-dj-parent-selected])>button{flex:0 0 auto!important;max-width:none!important}
[data-v18-completion] .v18-artifact-row>button,[data-v18-completion]>.v18-reminder{display:flex!important;justify-content:flex-start!important;text-align:left!important;padding-left:var(--dj-space-2)!important;margin-left:0!important}
[data-v18-completion] .v18-artifact-row>button>.v22-icon,[data-v18-completion]>.v18-reminder>.v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important;flex:0 0 var(--dj-icon-standard,20px)!important;margin-left:0!important}
.v18-artifact-pickers{order:5}
.v18-artifact-pickers>.v18-reminder{order:-1!important}
[data-v18-completion] .v40-artifacts{display:flex!important;flex-direction:column!important;align-items:stretch!important;max-width:100%}
[data-v18-completion] .v40-artifacts [data-v40-artifact]{display:flex!important;align-items:center;gap:var(--dj-space-2);background:transparent;border:0;padding:var(--dj-space-2);font:inherit}
[data-v18-completion]>.v40-measure-row{display:flex!important;flex-wrap:wrap!important}
[data-v18-completion] [data-v40-measure-action]{flex:0 0 100%!important;min-width:0;order:10}
[data-v18-completion] .v40-manual-rules{display:flex;flex-wrap:wrap;gap:var(--dj-space-2)}
[data-v18-idea] [data-v36-artifact=project]{display:none!important}
.v18-comment-composer{order:10;display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:var(--dj-space-1);align-items:center}
.v18-comment-composer textarea{width:100%;min-width:0;min-height:36px;resize:vertical;font:inherit;box-sizing:border-box}
.v18-comment-files{grid-column:1/-1;overflow-wrap:anywhere;font-size:var(--dj-text-secondary-size)}
.extend-control{display:flex;align-items:center;flex-wrap:nowrap;min-width:0}
.extend-control>span{flex:0 0 auto;white-space:nowrap}
.extend-control input{min-width:36px;width:54px;flex:0 1 54px}

/* ==== client-refinements.css ==== */
.v18-final-task{position:relative;padding-left:var(--dj-space-1)!important;column-gap:var(--dj-space-1)!important;display:grid!important;grid-template-columns:26px minmax(0,1fr) auto!important;grid-template-rows:auto auto!important}.v18-final-task>.task-state-check{grid-column:1;grid-row:1;margin:0!important}.v18-final-task>.v15-disclosure{grid-column:1;grid-row:2;margin:0!important;align-self:start}.v18-final-task>.v15-disclosure-spacer{display:none!important}.v18-final-task>.task-row-main{grid-column:2;grid-row:1/span 2;min-width:0}.v18-final-task>.task-row-tools{grid-column:3;grid-row:1;position:static!important;align-self:start}.v18-title-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--dj-space-1);min-width:0}.v18-title-line>.task-row-title{flex:0 1 auto!important;width:auto!important;min-width:0;text-align:left}.v18-inline-icons{display:inline-flex;align-items:center;gap:var(--dj-space-1);font-size:var(--dj-icon-compact);max-width:100%;flex-wrap:wrap}.v18-inline-icons .v22-icon{height:var(--dj-icon-compact,16px);width:var(--dj-icon-compact,16px)}.v18-final-task .v58-task-inline-icons,.v18-final-task .v56-subtask-count,.v18-final-task .v40-essence,.v18-final-task .v56-day-goal,.v18-final-task .v56-recurring{display:none!important}.v18-final-task .task-meta{display:flex!important;align-items:center;flex-wrap:wrap;gap:var(--dj-space-1);min-width:0;max-width:100%;overflow:hidden}.v18-task-artifact{display:inline-flex;align-items:center;gap:var(--dj-space-1);border:0;background:none;padding:0;max-width:100%;min-width:0;font:inherit;text-align:left}.v18-task-artifact>span{overflow-wrap:anywhere}.v18-task-artifact>.v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);flex:0 0 var(--dj-icon-compact,16px)}.v18-task-progress{grid-column:2/-1;height:3px;background:var(--line);overflow:hidden}.v18-task-progress>i{display:block;height:100%;background:var(--accent)}
.v18-comments{order:20;width:100%;min-width:0;border-top:1px solid var(--line);padding-top:var(--dj-space-1)}.v18-comments-head{display:flex;align-items:center;gap:var(--dj-space-2)}.v18-comments-head>button{border:0;background:transparent;color:var(--accent);padding:var(--dj-space-1);display:flex}.v18-comments-head .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v18-comments [data-feed-panel]{border:0!important;padding:0!important;margin:0!important}.v18-comments .compact-feed-head,.v18-comments .compact-feed-last{display:none!important}.v18-comments .compact-feed-all:not([hidden]){display:block!important;max-height:160px!important;overflow:auto}.v18-comment-composer[hidden]{display:none!important}.v18-comment-composer{margin-top:var(--dj-space-2)}
.v18-note-focus-active>.focus-overlay{display:none!important}.v18-note-focus{position:fixed;bottom:calc(58px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:2147483000;display:flex;align-items:center;gap:var(--dj-space-2);max-width:calc(100vw - 20px);padding:var(--dj-space-1) var(--dj-space-2);background:var(--card,var(--bg));border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);box-shadow:0 3px 12px #0002}.v18-note-focus>button{border:0;background:none;color:var(--accent);font:var(--dj-text-heading-weight) var(--dj-text-body-size) var(--font-body, sans-serif);padding:var(--dj-space-1);display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.v18-note-focus .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v18-focus-note-button{position:absolute;top:12px;right:12px}
.v18-attachment-menu{position:fixed;z-index:2147483500;min-width:160px;max-width:calc(100vw - 16px);background:var(--card,var(--bg));color:var(--ink);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);padding:var(--dj-space-1);box-shadow:0 8px 24px #0003}.v18-attachment-menu>button{display:flex;align-items:center;gap:var(--dj-space-3);width:100%;padding:var(--dj-space-3);border:0;background:transparent;color:inherit;font:inherit;text-align:left}.v18-attachment-menu .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v18-audio-dialog>div{display:flex;gap:var(--dj-space-3);justify-content:flex-end}
.v43-goal-row{display:grid!important;grid-template-columns:26px minmax(0,1fr) auto!important;column-gap:var(--dj-space-2)!important}.v43-goal-row>[data-v57-goal-state]{grid-column:1;grid-row:1}.v43-goal-main{grid-column:2;grid-row:1;min-width:0}.v43-goal-main>.v22-icon{display:none!important}.v43-goal-inline>.v42-goal-description{display:none!important}.v43-goal-row>.v40-card-number{grid-column:3;grid-row:1}.v43-goal-progress{grid-column:2/-1!important;grid-row:2}.v43-goal-progress>span,.v43-goal-progress>strong{display:none!important}.v43-goal-row>.v18-goal-chart-toggle{grid-column:1;grid-row:2;width:24px;height:24px;padding:0;border:0;background:none;color:var(--accent)}.v43-goal-row>.cumulative-chart{grid-column:1/-1}.v18-goal-chart-toggle .v22-icon{width:20px;height:20px}
.v51-period-filter{display:flex!important;justify-content:safe center!important;flex-wrap:nowrap!important;gap:var(--dj-space-1);max-width:100%;overflow-x:auto}.v51-period-filter>button{flex:0 0 auto}.v18-project-metrics{font-weight:var(--dj-text-heading-weight)!important;display:flex;align-items:center;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}.v18-project-metrics *{font-weight:inherit!important}.v18-project-metrics>span{display:inline-flex;align-items:center;gap:var(--dj-space-1)}.v18-project-metrics>span>.v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
[data-v18-completion] .v18-artifact-row[data-artifact-row=project],[data-v18-completion] .v18-artifact-row[data-artifact-row=idea]{order:1}[data-v18-completion] .v18-artifact-row[data-artifact-row=tag]{order:2}[data-v18-completion] .v18-artifact-row[data-artifact-row=ritual]{order:3}[data-v18-completion] .v18-artifact-row[data-artifact-row=stone]{order:4}[data-v18-completion] .v18-artifact-row[data-artifact-row=wall]{order:5}[data-v18-completion] .v18-artifact-pickers{order:99}
[data-v18-completion] .time-line,[data-v18-completion] .v18-priority-row,[data-v18-completion]>.v18-reminder,[data-v18-completion] [data-artifact-row],[data-v18-completion] .subtask-panel{border:0!important;border-bottom:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:var(--dj-space-1) 0!important}[data-v18-completion] .v18-artifact-row>button{border:0!important;background:transparent!important;border-radius:0!important}[data-v18-system]>span:not(.v22-icon){display:none}[data-v18-completion] .subtask-panel>.section-head{display:flex;align-items:center;gap:var(--dj-space-2)}.v18-idea-commands>button{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;border:0;background:transparent;color:var(--ink);padding:var(--dj-space-2);text-align:left}
@media(max-width:1024px){.v27-project-color-palette:not([hidden]){display:grid!important;grid-template-columns:repeat(9,24px)!important;gap:var(--dj-space-2)!important;width:max-content!important;max-width:100%!important}.v27-project-color-palette>button{width:24px!important;height:24px!important;min-width:24px!important;margin:0!important;padding:0!important}.v27-project-editor-actions[hidden]{display:none!important}.v18-action-dock{right:80px!important;gap:var(--dj-space-3)!important;bottom:calc(var(--v75-mobile-bar,68px) + 12px)!important}.v18-action-dock .notes-button{width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;background:var(--accent)!important;color:white!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-circle,50%)!important;box-shadow:0 6px 20px #0003}.v18-action-dock .notes-button .v22-icon{color:white!important;width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.notes-editing .v18-action-dock{bottom:calc(78px + env(safe-area-inset-bottom))!important}}
/* Completion prompts must remain above the Note editor, unlike the compact timer. */
.v18-final-task>.task-row-main>.task-meta{display:flex!important;flex-wrap:wrap!important;width:100%!important;max-width:100%!important;white-space:normal!important;overflow:hidden!important}.v18-final-task .v18-task-artifact{white-space:normal!important;flex:0 1 auto!important;min-width:0!important}.v18-final-task .v18-task-artifact>span:not(.v22-icon){min-width:0;white-space:normal!important;overflow-wrap:anywhere}
html.notes-editing body:not(.v18-note-focus-active)>.focus-overlay{z-index:2147483100!important}
.v18-cumulative-mode{order:6;display:flex;gap:0;border:1px solid var(--line);border-radius:var(--dj-radius-chip);overflow:hidden}.v18-cumulative-mode>button{display:inline-flex;align-items:center;gap:var(--dj-space-1);flex:1;padding:var(--dj-space-2);border:0;border-radius:0;background:transparent;color:var(--ink);font:inherit}.v18-cumulative-mode>button+button{border-left:1px solid var(--line)}.v18-cumulative-mode>button[aria-pressed=true]{background:var(--accent);color:white}.v18-cumulative-mode .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px)}
[data-v18-completion]>.v40-measure-row{order:7!important;display:flex!important;gap:var(--dj-space-2)!important;align-items:center;flex-wrap:wrap!important}[data-v18-completion]>.v40-measure-row>select,[data-v18-completion]>.v40-measure-row>input{flex:1;min-width:0;width:80px}[data-v18-completion] .v40-manual-rules{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;align-items:center;white-space:nowrap}[data-v18-completion] .v40-manual-rules>*{flex:0 0 auto}[data-v18-completion] .v40-manual-rules>label{display:inline-flex;align-items:center;gap:var(--dj-space-1);font-size:var(--dj-text-secondary-size)}[data-v18-completion]>.v40-measure-row>label[hidden]{display:none!important}
.v18-final-task>.task-row-main{grid-column:2!important;grid-row:1/span 2!important;padding-right:0!important;width:auto!important;max-width:none!important}.v18-final-task>.task-state-check{grid-column:1!important;grid-row:1!important}.v18-final-task>.task-row-tools{grid-column:3!important;grid-row:1!important;justify-self:end!important;display:flex!important;flex-wrap:nowrap!important;gap:var(--dj-space-1)!important}.v18-final-task>.v15-disclosure{grid-column:1!important;grid-row:2!important}.v18-final-task .task-row-tools>button{background:transparent!important;border:0!important;box-shadow:none!important}.v15-inbox-project>.project-tree-head .task-meta{display:none!important}.v18-plus{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;line-height:1;font-size:var(--dj-icon-standard)}

/* Накопительные цели: решётка Шехтеля с особняка Дерожинской. Только в теме Claude.
   Одна ячейка-маска (пол, парные столбы с шариком, арка столб-в-столб, низкая
   дуга с разрывами у столбов, три ромба, малые дуги). Заливка — чёрная, как ковка;
   трек — та же маска бледной линией; та же решётка тонкой линией под заголовками. */
html[data-interface-design="claude"]{
  --grille-ink:var(--ink);
  --grille-ghost:color-mix(in srgb,var(--grille-ink) 20%,var(--panel,#fffdf8));
  --grille-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='26'%20height='12'%20viewBox='0%200%2026%2012'%3E%3Cg%20fill='none'%20stroke='%23fff'%20stroke-linecap='round'%3E%3Cpath%20d='M1.5%2011H24.5'%20stroke-width='1'/%3E%3Cpath%20d='M-1.5%2011V6.8M1.5%2011V6.8M24.5%2011V6.8M26.5%2011V6.8'%20stroke-width='.85'/%3E%3Cpath%20d='M0%207.5Q13%20-1.5%2026%207.5'%20stroke-width='1.1'/%3E%3Cpath%20d='M-3%2011Q-2.25%2010.77%20-1.5%2010.57'%20stroke-width='1.05'/%3E%3Cpath%20d='M1.5%209.86Q12.25%207.69%2023%2011'%20stroke-width='1.05'/%3E%3Cpath%20d='M23%2011Q23.75%2010.77%2024.5%2010.57'%20stroke-width='1.05'/%3E%3Cpath%20d='M27.5%209.86Q38.25%207.69%2049%2011'%20stroke-width='1.05'/%3E%3Cpath%20d='M6.99%209.08Q9.64%204.34%2013%203'%20stroke-width='1'/%3E%3Cpath%20d='M14.34%209.21Q17.15%205.64%2019.5%204.1'%20stroke-width='1'/%3E%3C/g%3E%3Cpath%20d='M13%20.6%2014.9%203%2013%205.4%2011.1%203Z'%20fill='%23fff'/%3E%3Cpath%20d='M6.5%201.7%208.4%204.1%206.5%206.5%204.6%204.1Z'%20fill='%23fff'/%3E%3Cpath%20d='M19.5%201.7%2021.4%204.1%2019.5%206.5%2017.6%204.1Z'%20fill='%23fff'/%3E%3Ccircle%20cx='0'%20cy='5.6'%20r='1.6'%20fill='%23fff'/%3E%3Ccircle%20cx='26'%20cy='5.6'%20r='1.6'%20fill='%23fff'/%3E%3C/svg%3E");
}
html[data-interface-design="claude"] .v37-goal-progress,
html[data-interface-design="claude"] .v43-goal-capacity,
html[data-interface-design="claude"] .v43-goal-progress>.v37-goal-progress{
  height:14px!important;
  background:var(--grille-ghost)!important;
  border-radius:0!important;
  -webkit-mask:var(--grille-mask) left center/auto 100% repeat-x;
          mask:var(--grille-mask) left center/auto 100% repeat-x;
}
html[data-interface-design="claude"] .v37-goal-progress>i,
html[data-interface-design="claude"] .v43-goal-capacity>i,
html[data-interface-design="claude"] .v43-goal-capacity>i.other.done{
  background:var(--grille-ink)!important;
  border-radius:0!important;
  -webkit-mask:none;
          mask:none;
}
html[data-interface-design="claude"] .v43-goal-section>h2{
  position:relative;
  padding-bottom:var(--dj-space-2);
}
html[data-interface-design="claude"] .v43-goal-section>h2::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:color-mix(in srgb,var(--grille-ink) 42%,var(--panel,#fffdf8));
  -webkit-mask:var(--grille-mask) left bottom/auto 100% repeat-x;
          mask:var(--grille-mask) left bottom/auto 100% repeat-x;
}

.v56-review-deletion-list{max-height:40vh;overflow:auto;margin:0 0 var(--dj-space-4);padding:0 0 0 calc(var(--dj-space-4) + var(--dj-space-1));list-style:disc}.v56-review-deletion-list li{padding:var(--dj-space-1) 0}

.sync-pending-banner{position:fixed;top:0;left:0;right:0;z-index:2147483600;display:flex;align-items:center;justify-content:center;gap:var(--dj-space-3);flex-wrap:wrap;padding:var(--dj-space-2) var(--dj-space-4);background:var(--amber-soft,#f7efdf);color:#5a3d10;border-bottom:1px solid var(--amber,#a56c25);font-size:var(--dj-text-secondary-size);text-align:center}.sync-pending-banner button{border:1px solid var(--amber,#a56c25);background:#fff;color:#5a3d10;border-radius:var(--dj-radius-button,8px);padding:var(--dj-space-1) var(--dj-space-3);font-weight:var(--dj-text-heading-weight);cursor:pointer;flex:0 0 auto}.sync-pending-banner .sync-device{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--dj-space-1,var(--dj-space-1)) var(--dj-space-2,var(--dj-space-2));min-width:0;overflow-wrap:anywhere}

/* ==== task-menu-r19.css ==== */
/* Revision 19 task editor: same hierarchy on web, Windows, phone and Fold. */
/* По просьбе пользователя — убрать кнопку «Идеи» из бокового меню (не
 * scoped к .v19-task-menu, это боковая навигация, а не меню задачи).
 * На телефоне та же ссылка на «Идеи» рисуется ДРУГИМ узлом — прямоугольная
 * кнопка `data-v76-route="ideas"` (`data-idea-styled="1"`) внутри мобильного
 * меню `.v76-header-menu.v76-rose-menu` (открывается, например, из «Входящие»)
 * — атрибут другой (`data-v76-route`, не `data-route`), поэтому старое
 * правило её не ловило. Скрываем оба варианта. */
[data-route="ideas"],[data-v76-route="ideas"]{display:none!important}
/* Закладка Проекты — цвет фона/рамки кружков с цифрами у каждого проекта
 * должен совпадать с такими же кружками в закладке Тэги (`.entity-link.tag-
 * color-text .chip`: border rgb(220,220,220), фон прозрачный, текст
 * rgb(138,138,138)) — у Проектов (`.project-tree-head>.chip`/`.v15-active-
 * task-count`, v84.css) была чуть другая рамка (234,234,234). Текст и фон
 * уже совпадали, недостающее — только цвет рамки. */
.project-tree-head>.chip,.project-tree-head>.v15-active-task-count{border-color:rgb(220,220,220)!important}
/* Проект — строка статусов: значок «время» перед 3-м пунктом уже есть в
 * разметке (.project-duration-summary>.project-summary-icon), но v78.css
 * прячет его безусловно (.project-summary-icon{display:none}) и включает
 * обратно ТОЛЬКО в @media(600-1024px) — на десктопе и мобильном значка нет.
 * Показываем всегда, только для пункта «время» (пункт «задачи» не просили). */
.project-duration-summary>.project-summary-icon{display:inline-flex!important;vertical-align:middle!important}
.project-duration-summary>.project-summary-icon .v22-icon{width:16px!important;height:16px!important}
/* Проект — строка статусов: 5-й пункт «Заметки» (проект + все его задачи),
 * см. decorateProjectSummaryRow. Тот же визуальный язык, что и у родных
 * кнопок «Вехи»/«Ресурсы» в этой же строке. */
.project-meta-card[data-project-summary] [data-v19-project-notes]{display:inline-flex!important;align-items:center;gap:var(--dj-space-1)}
.project-meta-card[data-project-summary] [data-v19-project-notes] .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
/* Проект — строка статусов: кнопка «Проект» (редактировать), см. decorateProjectSummaryRow. */
.project-meta-card[data-project-summary] [data-v19-project-edit]{display:inline-flex!important;align-items:center;gap:var(--dj-space-1);margin-left:auto}
.project-meta-card[data-project-summary] [data-v19-project-edit] .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
/* Название проекта — теперь курсор-указатель на разворот/сворот всех задач,
 * не открытие редактора (см. decorateProjectSummaryRow). */
h1.v27-editable-title.v19-expand-toggle{cursor:pointer}
/* Накопительные — кликабельное слово в пустом разделе (см. decorateGoalsList).
 * Буква «д» (ножки ниже базовой линии) визуально оставалась без подчёркивания —
 * браузер по умолчанию «пропускает чернила» (text-decoration-skip-ink:auto)
 * там, где линия пересекает штрих буквы; для «д» пропускался весь сегмент
 * под ней. Явно отключаем skip-ink — линия сплошная под всем словом. */
.v19-goals-empty-link{border:0;background:transparent;padding:0;font:inherit;font-weight:var(--dj-text-heading-weight);color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-decoration-skip-ink:none}
.v19-goals-empty-link:hover{opacity:.8}
/* Заголовки разделов «Датчики»/«Ручные» в Накопительных — по просьбе
 * пользователя убираем значок (родной .v57-section-kind), остаются только
 * стрелка, текст и кружок с числом. Атрибут h2[data-v57-unified-section^=
 * "goals-"] специфичен именно для этой вкладки — другие h2 с той же родной
 * разметкой (если есть) не затронуты. */
h2[data-v57-unified-section^="goals-"] .v57-section-kind{display:none!important}
/* Пустой раздел Накопительных — родной .empty{padding:36px} рассчитан на
 * полноэкранный пустой список, здесь это один короткий раздел среди других —
 * уменьшаем белое поле. Размер текста — как у аналогичного пустого состояния
 * в закладке «Сегодня» («Бесцельный день… Нацелить!», см. .v14-aimless в
 * v14.css: font-size:17px;font-weight:650) — та же роль (приглашение
 * что-то создать), тот же размер. */
.v43-goal-list>.empty{padding:var(--dj-space-4) var(--dj-space-4)!important;font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-heading-weight)!important;color:#aaa49d}

/* Ведущий элемент строки цели в списке Накопительных — см. decorateGoalRowFronts.
 * Ручная: настоящая кнопка «внести число» (родная, просто переставлена в 1-й
 * столбец) вместо кружка-статуса, окрашена в цвет приоритета (та же палитра,
 * что и родной .v57-goal-state). */
.v19-goal-number-front{
  width:20px!important;height:20px!important;min-width:20px!important;padding:0!important;
  color:var(--p4,#888)!important;
  /* сброс родного кружка (.check/.task-state-check несёт border/bg/border-radius —
   * нужен, когда мы подменяем ОБЩИЙ кружок статуса задачи вне .v43-goal-row,
   * см. decorateCumulativeTaskCircles) */
  border:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;
}
.v43-goal-row>.v19-goal-number-front{grid-column:1!important;grid-row:1!important;align-self:start!important;margin:var(--dj-space-3) 0 0 var(--dj-space-3)!important}
.v19-goal-number-front.p1{color:var(--p1,#d55242)!important}
.v19-goal-number-front.p2{color:var(--p2,#d18d34)!important}
.v19-goal-number-front.p3{color:var(--p3,#568bb0)!important}
/* (баг, тот же что и раньше с тэг/проект-пикерами) .v22-icon красит себя в
 * var(--accent) НАПРЯМУЮ (v22.css) — это блокирует наследование цвета
 * приоритета через currentColor от кнопки. Красим сам значок явно. */
.v19-goal-number-front .v22-icon{width:20px!important;height:20px!important;color:inherit!important}
/* Датчик: некликабельный значок вместо кружка-статуса, тот же значок, что и
 * бейдж «датчик» в шапке редактора (v22Icon('automaticCumulative')) — не
 * придумываем новый. */
.v19-goal-sensor-icon{
  display:grid;place-items:center;width:20px;height:20px;
  color:var(--muted,#888)!important;pointer-events:none;
  border:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;
}
.v43-goal-row>.v19-goal-sensor-icon{grid-column:1;grid-row:1;margin:var(--dj-space-3) 0 0 var(--dj-space-3)}
.v19-goal-sensor-icon .v22-icon{width:20px;height:20px;color:inherit!important}

/* Мини-меню выбора показателей датчика (.v40-source-popup/.v40-source-toolbar) —
 * справа оставалось пустое место под скрытую (mobile-client.css: display:none)
 * кнопку [data-v40-source-cancel] — убираем зарезервированный столбец и сужаем
 * попап.
 * ОК-кнопка — стиль «regbi» (условное имя для удобной ссылки в коде и
 * разговоре, ничего общего с реальным регби). Образец найден пользователем
 * ПРЯМО В ПРИЛОЖЕНИИ (не придуман нами): кнопка ОК у поля «добавить
 * комментарий» (см. `.v19-comment-ok` ниже) — вытянутый овал, накренённый
 * примерно на 30-35° (низ слева — верх справа, «/»), со сплошной заливкой
 * акцентным цветом и белой галочкой (v22Icon('ok')) внутри, накренённой
 * вместе с самим овалом. Подтверждено пользователем живьём: форма (овал)
 * — то, что нужно; ПОПРАВКА — галочка внутри должна остаться РОВНОЙ
 * (горизонтальной), не крениться вместе с овалом — контр-поворачиваем
 * значок на противоположный угол. Фактический computed-стиль
 * `.v19-comment-ok` на момент проверки (2026-09-13) овалом не оказался
 * (родной .v31-dialog-icon, 36×36, radius 6px) — расхождение с рисунком
 * пользователя не объяснено (возможно другая сборка/кэш), стиль ниже
 * реализован строго по рисунку, а не по текущему computed-стилю. */
.v40-source-popup{width:min(455px,calc(100vw - 16px))!important}
.v40-source-popup [data-v40-source-ok]{
  width:38px!important;height:24px!important;min-width:38px!important;padding:0!important;
  border:0!important;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent)!important;
  display:grid!important;place-items:center!important;
}
.v40-source-popup [data-v40-source-ok] .v22-icon{color:#fff!important;width:var(--dj-icon-compact,16px)!important;height:var(--dj-icon-compact,16px)!important}
.v40-source-popup [data-v40-source-ok] .v22-icon :is(.v22-main,.v22-echo,.architect-echo)>*{stroke:currentColor!important}
/* (жёсткое правило) Стена больше не выбирается отдельно от Камня — она
 * присваивается/снимается автоматически вместе с Камнем (см. v19SyncWallsFromStones
 * в task-menu-r19.js). Убираем сам пикер/выбранную строку «Стена» из меню
 * задачи целиком — значение остаётся только для фильтра/поиска, не для
 * ручного выбора в этом меню. */
.v19-task-menu.v19-task-menu .v18-artifact-pickers>button[data-v18-wall-picker],
.v19-task-menu.v19-task-menu .v19-pickers-chips>button[data-v18-wall-picker],
.v19-task-menu.v19-task-menu [data-v18-wall-picker],
.v19-task-menu.v19-task-menu [data-artifact-row="wall"]{display:none}
/* (74д) Псевдоним общей роли «Основной текст» из design/tokens.css
 * (§190) — значение теперь берётся ИЗ единой системы, не дублируется;
 * заодно устраняет разрыв «14px десктоп / 15px моб.» — было замечено
 * пользователем как ненужное расхождение, роль «Основной текст» = 15px
 * одинаково на всех ширинах, отдельный mobile-override ниже по файлу
 * (строка ~173) для этой переменной больше не нужен, но оставлен —
 * теперь просто присваивает то же самое значение, безвредно. */
:root{
  --v19-task-menu-font-size:var(--dj-text-body-size,15px);
  --v19-task-menu-font-weight:var(--dj-text-body-weight,600);
  --v19-task-menu-line-height:var(--dj-text-body-line-height,1.25);
  --v19-task-menu-heading-size:var(--dj-text-heading-size,19px);
  --v19-task-menu-heading-weight:var(--dj-text-heading-weight,700);
  --v19-task-menu-heading-line-height:var(--dj-text-heading-line-height,1.15);
  --v19-task-menu-reading-size:var(--dj-text-reading-size,15px);
  --v19-task-menu-reading-weight:var(--dj-text-reading-weight,400);
  --v19-task-menu-reading-line-height:var(--dj-text-reading-line-height,1.35);
  --v19-task-menu-secondary-size:12px;
  --v19-task-menu-secondary-weight:600;
  --v19-task-menu-secondary-line-height:var(--dj-text-caption-line-height);
}
@media(max-width:599px){
  :root{
    --v19-task-menu-secondary-size:var(--dj-text-secondary-size);
    --v19-task-menu-secondary-weight:var(--dj-text-secondary-weight);
    --v19-task-menu-secondary-line-height:var(--dj-text-secondary-line-height);
  }
}
@media(min-width:600px) and (max-width:1024px){
  :root{
    --v19-task-menu-secondary-size:var(--dj-text-secondary-size);
    --v19-task-menu-secondary-weight:var(--dj-text-secondary-weight);
    --v19-task-menu-secondary-line-height:var(--dj-text-secondary-line-height);
  }
}
.v19-task-menu{--v19-row-radius:10px}
/* Название накопительной цели — лишняя тонкая линия под полем названия.
 * Родная разметка (v41.css: .v40-title-wrap>input{border-bottom:0}) уже
 * ПЫТАЕТСЯ убрать её, но без !important — а общий .task-title-v09{border-
 * bottom:1px solid var(--line)} (v09.css) поставлен С !important, так что
 * побеждает несмотря на более низкую специфичность (важность решает раньше
 * специфичности). Добавляем !important с тем же (уже верным) native-scope. */
.v40-title-wrap>input{border-bottom:0!important}
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-reminder,.v18-artifact-row>button,.v18-comments-head,.subtask-panel>.section-head){font-family:inherit!important;font-size:var(--v19-task-menu-font-size)!important;font-weight:var(--v19-task-menu-font-weight)!important;line-height:var(--v19-task-menu-line-height)!important;letter-spacing:normal!important}
.v19-task-menu .v19-task-title{font-family:var(--font-display,inherit);font-style:normal;font-size:var(--v19-task-menu-heading-size);font-weight:var(--v19-task-menu-heading-weight);letter-spacing:-.01em;line-height:var(--v19-task-menu-heading-line-height);overflow-wrap:anywhere;word-break:normal;writing-mode:horizontal-tb}
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-reminder,.v18-artifact-row:not(.v18-artifact-pickers),.subtask-panel,.v18-comments){box-sizing:border-box!important;width:100%!important}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers){border-color:color-mix(in srgb,var(--v19-artifact-color,var(--line)) 34%,var(--line));background:color-mix(in srgb,var(--v19-artifact-color,var(--panel)) 5%,var(--panel,#fff));overflow:hidden}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)>button{color:var(--v19-artifact-color,var(--ink))!important;width:100%!important;min-width:0!important;border:0!important;background:transparent!important;padding:0!important}
.v19-task-menu .v18-artifact-row>button span:not(.v22-icon){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-reminder,.v18-artifact-row>button) span:not(.v22-icon):not(.v19-priority-digit){font:inherit;letter-spacing:inherit}
.v19-task-menu .v18-artifact-pickers{width:100%;min-height:42px;padding:var(--dj-space-1) 0;margin:var(--dj-space-1) 0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.v19-task-menu .v18-artifact-pickers>button{min-height:38px;border:1px solid color-mix(in srgb,currentColor 24%,var(--line))!important;border-radius:var(--dj-radius-chip,8px)!important;background:var(--panel,#fff)!important;padding:var(--dj-space-1) var(--dj-space-2)!important}
.v19-task-menu .v18-comments{padding:0!important}
.v19-task-menu .v19-cumulative-kind{display:flex;align-items:center;align-self:flex-start;gap:var(--dj-space-2);margin:0 var(--dj-space-3) var(--dj-space-1);padding:var(--dj-space-1) var(--dj-space-2);border-radius:var(--dj-radius-chip,8px);background:var(--accent);color:#fff;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight)}
.v19-task-menu .v19-cumulative-kind .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}.v19-task-menu .v18-cumulative-mode{display:none!important}

.v19-cumulative-kind-dialog{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(520px,calc(100vw - 28px));max-height:calc(100dvh - 32px);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--dj-radius-window,18px);background:var(--panel,#fff);color:var(--ink);padding:var(--dj-space-6);overflow:auto}
.v19-cumulative-kind-dialog::backdrop{background:rgba(20,18,15,.38);backdrop-filter:blur(2px)}
.v19-cumulative-kind-dialog h2{margin:0 calc(var(--dj-space-8) + var(--dj-space-3)) var(--dj-space-1) 0;font-family:var(--font-display,inherit);font-size:var(--dj-text-title-size)}.v19-cumulative-kind-dialog>p{margin:0 0 calc(var(--dj-space-4) + var(--dj-space-1));color:var(--muted)}
.v19-kind-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--dj-space-3)}.v19-kind-options>button{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:var(--dj-space-1) var(--dj-space-3);min-height:88px;border:1px solid var(--line);border-radius:var(--dj-radius-card,10px);background:var(--bg);color:var(--ink);padding:var(--dj-space-3);text-align:left}.v19-kind-options>button:hover,.v19-kind-options>button:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.v19-kind-options .v22-icon{grid-row:1/3;width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);color:var(--accent)}.v19-kind-options span{font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight)}.v19-kind-options small{color:var(--muted);line-height:var(--dj-text-body-line-height)}.v19-kind-cancel{position:absolute;right:14px;top:14px;width:36px;height:36px;border:0;background:transparent;color:var(--accent)}

.v19-reminder-dialog{position:fixed!important;inset:0!important;z-index:12000!important;display:grid!important;place-items:center!important;padding:max(var(--dj-space-3),env(safe-area-inset-top)) max(var(--dj-space-3),env(safe-area-inset-right)) max(var(--dj-space-3),env(safe-area-inset-bottom)) max(var(--dj-space-3),env(safe-area-inset-left))!important;background:rgba(20,18,15,.34)!important;box-sizing:border-box!important;overflow:hidden!important}
.v19-reminder-dialog .time-menu-card{position:relative!important;inset:auto!important;display:flex!important;flex-direction:column!important;width:min(440px,100%)!important;max-width:100%!important;max-height:min(680px,calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom))))!important;margin:0!important;padding:var(--dj-space-4)!important;border-radius:var(--dj-radius-popup,10px)!important;background:var(--panel,#fff)!important;overflow:hidden!important;box-shadow:0 18px 56px rgba(0,0,0,.25)!important;transform:translateY(4px);opacity:.96;transition:transform .12s ease,opacity .12s ease}
.v19-reminder-dialog.v19-ready .time-menu-card{transform:none;opacity:1}
.v18-reminders-only.v19-reminder-dialog .time-menu-card>.v19-reminder-header{display:flex!important;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-1) var(--dj-space-1) var(--dj-space-3)}.v19-reminder-header h2{margin:0;font-family:var(--font-display,inherit);font-size:var(--dj-text-heading-size)}.v19-reminder-header .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);color:var(--accent)}
.v18-reminders-only.v19-reminder-dialog .time-menu-card>.v80-notification-panel{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;gap:var(--dj-space-2)!important;position:static!important;inset:auto!important;transform:none!important;width:100%!important;max-width:none!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0 var(--dj-space-1)!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow-y:auto!important;box-sizing:border-box!important}
.v19-reminder-dialog .v80-notification-add[hidden]{display:none!important}
.v19-reminder-dialog .v80-notification-add:not([hidden]){display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:var(--dj-space-2)!important}.v19-reminder-dialog .v80-notification-add :is(select,input){box-sizing:border-box;min-height:42px}.v19-reminder-dialog .v80-notification-add select,.v19-reminder-dialog .v80-notification-add input{width:100%;min-width:0;border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);background:var(--bg);color:var(--ink);padding:var(--dj-space-2)}
/* кнопка «ОК» (.v31-dialog-icon, см. task-menu-r19.js) не должна растягиваться
 * под родную сетку 1fr/42px и min-height:42px — своя дорожка auto + сброс min-height. */
.v19-reminder-dialog .v80-notification-add button{min-height:0!important}
/* v84.css красит эти кнопки в фон панели (--panel) с !important и той же
 * специфичностью, что и наше «овал-ок» правило ниже — тут специфичность та
 * же, но этот файл грузится ПОСЛЕДНИМ, так что мы и должны победить; без
 * этого явного повтора фон/цвет оставались родными (белый фон + белая
 * иконка = «пустой кружок», см. задачу №10). */
.v19-reminder-dialog .v80-notification-add button[data-v80-notification-add],
.v19-reminder-dialog .v80-notification-add button[data-v80-notification-add-at]{
  background:var(--accent,#2f5d5a)!important;color:#fff!important;border:1px solid var(--accent,#2f5d5a)!important;
}
.v19-reminder-dialog .modal-actions{display:flex!important;justify-content:flex-end;gap:var(--dj-space-2);margin-top:var(--dj-space-3);padding-top:var(--dj-space-3);border-top:1px solid var(--line)}
@media(max-width:760px){.v19-kind-options{grid-template-columns:1fr}.v19-cumulative-kind-dialog{padding:calc(var(--dj-space-4) + var(--dj-space-1))}.v19-reminder-dialog{align-items:end!important}.v19-reminder-dialog .time-menu-card{width:100%!important;border-radius:var(--dj-radius-popup,10px)!important}}

/* ==========================================================================
 * Rev.19 editor layout — consolidated pass (эскиз «Макеты меню задач»)
 * ========================================================================== */
.v19-task-menu{scrollbar-width:none}
.v19-task-menu::-webkit-scrollbar{width:0;height:0;display:none}

/* --- шапка: ровно 3 вещи — кружок задачи · название во всю строку · меню действий --- */
.v19-task-menu>:is(.task-head-v09,.v38-task-head){
  position:sticky;top:0;z-index:5;background:var(--panel,#fff);
  display:flex;align-items:center;flex-wrap:nowrap;gap:var(--dj-space-2);
  padding:var(--dj-space-1) 0 0;margin-bottom:var(--dj-space-3);box-shadow:0 8px 10px -10px rgba(35,31,26,.3);
}
.v19-task-menu>:is(.task-head-v09,.v38-task-head)>:is(.v18-editor-back:not(.v19-nav-back),.task-focus-mini,.task-focus,[data-task-focus],.close.v23-system-action,.save.v23-system-action){display:none}
/* вложенный редактор подзадачи — кнопка «назад» к основной задаче */
.v19-task-menu .v18-editor-back.v19-nav-back{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  order:-3!important;flex:0 0 24px!important;width:24px!important;height:24px!important;min-width:24px!important;
  margin:0 var(--dj-space-1) 0 0!important;padding:0!important;border:0!important;background:transparent!important;
  color:var(--muted,#8a7d68)!important;cursor:pointer!important;
}
.v19-task-menu .v18-editor-back.v19-nav-back>:is(svg,.v22-icon){width:20px!important;height:20px!important}
.v19-task-menu .task-state-check.v23-task-circle{
  order:0;flex:0 0 22px!important;width:22px;height:22px;min-width:22px;
  margin:0;padding:0;border:0;background:transparent;
}
.v19-task-menu .v19-task-title{
  order:1;flex:1 1 auto;min-width:0;width:auto;max-width:none;
  font-family:inherit;font-size:var(--v19-task-menu-heading-size);font-weight:var(--v19-task-menu-heading-weight);line-height:var(--v19-task-menu-heading-line-height);
  margin:0 0 0 var(--dj-space-2);padding:var(--dj-space-1) 0!important;
}
.v19-task-menu>:is(.task-head-v09,.v38-task-head)>:is(.task-top-actions,.v76-task-state-wrap,.v76-task-state-toggle){
  order:2;flex:0 0 auto;margin:0 0 0 var(--dj-space-2);
}
.v19-task-menu>.task-top-actions{display:none!important}
/* --- строки: единая высота (как у «Срок»), зазор ровно 2px, тёплый фон --- */
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers),
                   .subtask-panel>.section-head,.v18-comments>.v18-comments-head){
  box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;max-height:none!important;
  flex:0 0 auto!important;
  margin:0 0 0!important;padding:0 var(--dj-task-property-padding-x,var(--dj-space-3))!important;gap:var(--dj-space-2)!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;text-align:left!important;
  overflow:hidden!important;box-shadow:none!important;
  border:1px solid var(--panel,#fffdf8)!important;border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
}
/* Найдено живой проверкой при теме "classic": `project-ideas-r21.css` несёт
 * `html[data-interface-design="classic"] .v19-task-menu :is(...)
 * {background:#fff!important}`, чей список :is() покрывает ту же самую
 * группу рядов (.time-line/.v18-priority-row/.v18-artifact-row/
 * .subtask-panel/.v18-comments/.v40-measure-row/…) — тип-селектор `html`
 * в его цепочке даёт лишний тип-тир специфичности (0,3,1), которого нет у
 * базового правила выше (0,2,0) — при теме "classic" тёплый фон ВСЕХ этих
 * рядов (включая «Срок») молча проигрывал и становился белым, хотя правило
 * выше и несёт !important. Та же природа ошибки, что и в §164/166
 * (см. память), просто на этот раз — в самой ПЕРВОЙ, базовой формуле фона
 * рядов, которую тогда ещё не утраивали (баг был скрыт всё это время, пока
 * тестовая тема была не "classic"). Утроенный якорь снимает вопрос
 * независимо от порядка файлов. */
.v19-task-menu.v19-task-menu.v19-task-menu :is(.time-line,.v18-priority-row,.subtask-panel>.section-head,.v18-comments>.v18-comments-head){
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
}
/* «Срок» побывало отдельным правилом с плоским var(--panel) (сначала с
 * 50%-прозрачностью, затем без неё) — по прямой просьбе пользователя,
 * повторенной трижды в одном раунде («ещё раз — у прямоугольников должен
 * быть цвет фона задачи, не своего», «сами они должны быть одинакового
 * цвета — того что у Приоритета», «а Срок сейчас другого цвета — исправить»)
 * ВСЕ прямоугольники, включая «Срок», в итоге унифицированы обратно на
 * тот же тёплый тон, что несёт «Приоритет» (см. правило выше — .time-line
 * снова в общем :is()-списке, отдельное правило удалено как избыточное). */
.v19-task-menu :is(.subtask-panel,.v18-comments){
  box-sizing:border-box!important;width:100%!important;min-height:34px!important;height:auto!important;flex:0 0 auto!important;
  margin:0 0 0!important;padding:0!important;overflow:hidden!important;box-shadow:none!important;
  border:0!important;border-radius:0!important;background:transparent!important;
}
.v19-task-menu :is(.v38-tag-artifacts,.v76-mobile-task-artifacts){display:block}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers){
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)));
}
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers){
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)));
}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head){
  margin:0!important;
  border:1px solid var(--panel,#fffdf8)!important;border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
}

/* --- значки в одну вертикаль, текст следом --- */
.v19-task-menu :is(.v18-artifact-row:not(.v18-artifact-pickers)>button,.v18-priority-row){
  display:flex;align-items:center;gap:var(--dj-space-2);justify-content:flex-start;
}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)>button{width:100%!important;min-width:0;border:0!important;background:transparent!important;padding:0!important;color:var(--v19-artifact-color,var(--ink))!important}
.v19-task-menu :is(.v18-artifact-row:not(.v18-artifact-pickers)>button,.v18-priority-row)>:is(.v22-icon,.v58-priority-flag,.priority-flag){flex:0 0 20px;width:20px;height:20px;margin:0;padding:0!important}
/* Родное .priority-flag.v22-icon-button (v23.css) даёт width:28px;padding:2px —
 * шире значка (20px) и с центрированием (display:grid), из-за чего сам флаг
 * визуально сдвинут вправо на ~4px относительно значков в соседних строках
 * (Проект/Ритуал и т.п., у которых значок — прямой flex-ребёнок без обёртки-
 * кнопки). Перебито выше (width/padding:0), но т.к. это КНОПКА (а не просто
 * .v22-icon), явно выключаем и вложенное центрирование. */
.v19-task-menu .v18-priority-row>button.priority-flag{display:flex!important;align-items:center;justify-content:flex-start}
/* Та же история у кнопки «Время» (.time-line): родная .v22-icon-button даёт
 * width:30px (значок 20px) с центрированием — те же лишние ~5px слева. */
.v19-task-menu .time-line>button.v22-icon-button{width:20px;min-width:20px;padding:0;display:flex;align-items:center;justify-content:flex-start}
.v19-task-menu :is(.time-line>[data-time-summary],.v18-artifact-row>button>span:not(.v22-icon),.v18-priority-row>span:not(.v19-priority-scale)){margin:0;flex:0 1 auto;min-width:0;font:inherit;text-align:left}
.v19-task-menu .time-line{padding-left:calc(var(--dj-space-8) + var(--dj-space-2))}
.v19-task-menu .time-line>button{flex:0 0 auto;margin-left:var(--dj-space-2)}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):not(:has(span,img)){display:none!important}

/* --- «Напоминание» (полноширинный прямоугольник) + чипы выбора артефактов под ним --- */
.v19-task-menu .v18-artifact-pickers{
  display:flex;flex-wrap:wrap;gap:0;
  border:0;background:transparent;box-shadow:none;
  margin:0 0 0;padding:0;min-height:0;height:auto;overflow:visible;
}
.v19-task-menu .v18-artifact-pickers>.v18-reminder{
  order:-1;flex:1 0 100%!important;box-sizing:border-box!important;
  height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;max-height:none!important;margin:0!important;padding:0 var(--dj-task-property-padding-x,var(--dj-space-3))!important;gap:var(--dj-space-2)!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;white-space:nowrap;overflow:hidden;
  border:1px solid var(--panel,#fffdf8)!important;border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
}
.v19-task-menu .v18-artifact-pickers>.v18-reminder>:is(.v22-icon,svg){flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0}
.v19-task-menu .v19-pickers-chips{
  flex:1 0 100%;display:flex;flex-wrap:nowrap;gap:var(--dj-space-2);
  margin-top:var(--dj-space-1);padding:0 0;overflow-x:auto;scrollbar-width:none;
}
.v19-task-menu .v19-pickers-chips::-webkit-scrollbar{display:none}
/* «Хвост» строки выбора артефактов, когда кнопок не хватает на всю ширину —
 * не оставляем голый фон страницы, а «дорисовываем» прямоугольник того же
 * вида (цвет/рамка/радиус), что и у остальных базовых рядов меню (не такой
 * же высоты, как большие 34px-ряды — по высоте вровень с самими кнопками
 * выбора, это их непосредственный «хвост», а не отдельный самостоятельный
 * ряд). Чистый CSS (::after как ещё один flex-элемент, gap уже даёт нужный
 * отступ от последней кнопки): когда кнопки уже не помещаются (нужен
 * горизонтальный скролл), flex-shrink+min-width:0 сжимают его до 0 —
 * пропадает сам собой, без JS. */
.v19-task-menu .v19-pickers-chips::after{
  content:"";order:99!important;flex:1 1 0;min-width:0;align-self:stretch;
  border:1px solid var(--panel,#fffdf8);
  border-radius:var(--dj-radius-chip,8px);background:color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8));
}
/* (2) Порядок кнопок выбора артефактов: проект, тэг, напоминание, описание,
 * ритуал, камень, стена — чистым CSS по стабильным селекторам (не JS/inline-
 * style: те не переживают пересоздание узлов родным кодом при перерисовке). */
/* Накопительная цель (.v40-goal-form) отдаёт ТЕ ЖЕ по смыслу кнопки с ДРУГИМ
 * атрибутом — data-v40-artifact, не data-v36-artifact (обычная задача) — без
 * этого дубля порядок молча не применялся (все три кнопки падали на order:0
 * по умолчанию, вперемешку, и «хвостовой» прямоугольник ниже вылезал не в
 * конце ряда, а посреди него). */
.v19-task-menu .v19-pickers-chips>:is([data-v36-artifact="project"],[data-v40-artifact="project"]){order:1}
.v19-task-menu .v19-pickers-chips>:is([data-v36-artifact="tag"],[data-v40-artifact="tag"]){order:2}
.v19-task-menu .v19-pickers-chips>[data-dj-extra-artifacts]{order:3}
.v19-task-menu .v19-pickers-chips>.v18-reminder{order:4}
.v19-task-menu .v19-pickers-chips>[data-v19-desc-chip]{order:4}
.v19-task-menu .v19-pickers-chips>:is([data-v36-artifact="ritual"],[data-v40-artifact="ritual"]){order:5}
.v19-task-menu .v19-pickers-chips>:is([data-v36-artifact="stone"],[data-v40-artifact="stone"]){order:6}
.v19-task-menu .v19-pickers-chips>[data-v18-wall-picker]{order:7}
.v19-task-menu .v19-pickers-chips>button{
  order:4;flex:0 0 auto;min-height:32px;display:inline-flex;align-items:center;gap:var(--dj-space-2);
  line-height:var(--dj-text-heading-line-height);white-space:nowrap;padding:var(--dj-space-1) var(--dj-space-2);
  border:1px solid color-mix(in srgb,currentColor 22%,var(--line));border-radius:var(--dj-radius-chip,8px);background:var(--panel,#fff);
}
.v19-task-menu .v19-pickers-chips>button>span{line-height:var(--dj-text-heading-line-height)!important;display:inline-flex;align-items:center}
.v19-task-menu .v19-pickers-chips>button>:is(.v22-icon,svg){flex:0 0 var(--dj-icon-standard,20px);width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important;margin:0}

/* --- подзадачи / комментарии: [→][текст]…[+][счётчик]; счётчик = кружок как во «Проектах» --- */
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head){padding-left:var(--dj-space-3)!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-more],[data-v18-comments-toggle]){order:0!important;margin:0!important;opacity:1}
.v19-task-menu :is(.subtask-panel>.section-head>.section-title,.v18-comments-head>span:first-child){order:1!important;flex:0 1 auto;font:inherit!important;font-weight:var(--v19-task-menu-font-weight)!important;margin:0!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-add],[data-v18-comments-add]){order:2!important;margin-left:auto!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>.v19-count{order:3!important;margin:0 0 0 var(--dj-space-2)!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>button{
  flex:0 0 auto;width:30px;height:30px;padding:0!important;border:0!important;background:transparent!important;color:var(--accent)!important;
  display:grid!important;place-items:center;
}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>button :is(.v22-icon,.v18-plus,span){width:20px!important;height:20px!important;font-size:var(--dj-text-heading-size);line-height:1}
/* (74г) На мобильной ширине кнопка «+» Подзадач (design/mobile-controls.css,
 * `--dolijane-mobile-control-size`, 34px) и кнопка «+» Комментариев (никакого
 * класса не несёт, попадает под другое мобильное правило, живой замер —
 * 44px) расходились в размере — из-за этого те же самые «+» на глаз ещё и
 * не выстраивались по одной горизонтали (обе прижаты к правому краю через
 * margin-left:auto, но при разной ширине кнопки её левый край/зрительный
 * центр гуляет). Тройной якорь `.v19-task-menu`, чтобы гарантированно
 * перебить оба конкурирующих мобильных правила независимо от того, в каком
 * файле/порядке они загружены — тот же приём, что и везде в этом файле. */
@media(max-width:1024px){
  .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>button{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;max-height:44px!important;
  }
}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>[data-v38-add]>svg{display:none}
/* Not in a D-169 section head: its total is the inline «· 1 из 3», the circle leaves the row. */
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head):not([data-tm20-section]) .v19-count:not([hidden]){
  box-sizing:border-box!important;flex:0 0 auto;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:30px!important;height:30px!important;min-width:30px!important;padding:0!important;position:static!important;
  border:1px solid var(--line)!important;border-radius:var(--dj-radius-circle,50%)!important;background:transparent!important;
  font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-heading-weight)!important;color:var(--muted,#7a7161)!important;
}
.v19-task-menu .v19-count>.v22-icon{display:none!important}
.v19-task-menu .v19-count>.v19-count-n{position:static!important;font:inherit;font-weight:var(--dj-text-heading-weight)}

/* нет кнопки «ок»/«Готово» нигде в меню задачи. Раньше требовали ЕЩЁ и класс
 * .v23-system-action на этом же элементе — родной код иногда снимает атрибут
 * hidden РАНЬШЕ, чем успевает навесить этот класс (или у датчика/накопительной
 * этот класс вовсе не совпадает с тем же таймингом), из-за чего кнопка на
 * миг реально показывалась (мигание при вводе названия). Матчим только по
 * aria-label — надёжнее, гонки с классом больше нет. */
/* (29) Уточнение: родная v23DecorateSystemActions() (v23.js) навешивает
 * aria-label="Готово" на ЛЮБУЮ кнопку с подходящим текстом/title, включая
 * статус-кружок подзадачи (title="Готово" у done-статуса) — общее правило
 * выше случайно прятало и ЕГО тоже («у выполненной подзадачи нет кружка»).
 * Кружки (свои, [data-v09-subdone]/[data-task-toggle-done]) явно исключены. */
.v19-task-menu:not(.r21-entity-editor) :is(.save,[aria-label="Готово"],[aria-label="Done"]):not(.v19-nav-back):not([data-v09-subdone]):not([data-task-toggle-done]):not(.dj-editor-footer button):not(.dj-standard-a-ok){display:none!important}

/* ===== доп. правки (меню статуса вверху справа; кружок-глиф; выравнивание; срок; накопительная) ===== */
/* меню смены статуса задачи — держим в правом верхнем углу шапки */
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head)>:is(.task-top-actions,.v76-task-state-wrap,.v76-task-state-toggle,.v40-head-actions){
  display:flex!important;order:9!important;flex:0 0 auto!important;margin:0 0 0 auto!important;align-self:flex-start!important;
}
.v19-task-menu>.task-top-actions{display:none!important}
/* Кружок-статус в шапке НАКОПИТЕЛЬНОЙ цели стоял не по центру с названием —
 * причина: v41.css отдельно даёт именно .v40-goal-head>.task-state-check
 * align-self:start;margin-top:7px (расчёт под родную, другую по высоте шапку),
 * тогда как в обычном редакторе задачи тот же кружок везде центрируется
 * (.task-head-v09>.task-state-check{align-self:center;margin-top:0}, см.
 * v76.css/v78.css) — выравниваем накопительную шапку так же. */
.v19-task-menu>.v40-goal-head>.task-state-check{align-self:center!important;margin-top:0!important}
.v19-task-menu .v40-goal-head{display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;flex-wrap:nowrap!important}
.v19-task-menu :is(.v40-focus,[data-v40-goal-focus],.task-focus,.task-focus-mini){display:none!important}   /* фокус — дубль */
/* «кружок задачи» — только глиф выбранного стиля, без обводки-кнопки и псевдоэлементов */
.v19-task-menu :is(.task-state-check,[data-v40-goal-status]).v23-task-circle{border:0!important;background:transparent!important;box-shadow:none!important;width:22px!important;height:22px!important;min-width:22px!important;padding:0!important}
.v19-task-menu :is(.task-state-check,[data-v40-goal-status]).v23-task-circle::before,
.v19-task-menu :is(.task-state-check,[data-v40-goal-status]).v23-task-circle::after{display:none!important}
.v19-task-menu :is(.task-state-check,[data-v40-goal-status]) .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
/* «Готово»/«Успех»/«Провал» — родной код красит такой кружок через класс
 * .v23-system-action (заливка var(--accent) + белый значок поверх неё — тот
 * же класс, что у обычных акцентных кнопок). Мы двумя строками выше сняли
 * саму заливку (background:transparent, ради плоского унифицированного
 * вида) — белый значок остался БЕЗ цветной подложки под собой и стал
 * фактически невидимым («белая кнопка» на светлом фоне, замечено
 * пользователем). Красим сам значок в системный акцент вместо белого. */
.v19-task-menu.v19-task-menu.v19-task-menu :is(.task-state-check,[data-v40-goal-status]).v23-task-circle.v23-system-action,
.v19-task-menu.v19-task-menu.v19-task-menu :is(.task-state-check,[data-v40-goal-status]).v23-task-circle.v23-system-action .v22-icon{
  color:var(--accent)!important;
}
/* значки в Подзадачах/Комментариях — по левому краю, как в остальных рядах */
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head){padding-left:var(--dj-space-3)!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-more],[data-v18-comments-toggle]){margin:0!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-more],[data-v18-comments-toggle]) :is(.v22-icon,svg){width:20px!important;height:20px!important}
/* «Срок» — текст не редактируется, всё поле кликабельно (открывает меню «Время») */
.v19-task-menu .time-line{cursor:pointer}
.v19-task-menu .time-line>[data-time-summary]{pointer-events:none;cursor:pointer}
/* теги: имена рядом со значком, в строчку (без обрезки в многоточие) */
.v19-task-menu .v18-artifact-row.tag>button>span:not(.v22-icon),
.v19-task-menu .v18-artifact-row[data-v36-artifact="tag"]>button>span:not(.v22-icon){
  overflow-x:auto!important;text-overflow:clip!important;white-space:nowrap!important;scrollbar-width:none;
}
/* накопительная: «Сумма/За раз» и «≥/≤» — сегментные переключатели; «Завершить числом» — кнопка */
.v19-task-menu .v40-manual-rules{display:inline-flex!important;gap:0!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-chip,8px)!important;overflow:hidden;background:var(--panel,#fff)!important}
.v19-task-menu .v40-manual-rules>button{border:0!important;border-radius:0!important;background:transparent!important;color:var(--muted,#7a7161)!important;padding:var(--dj-space-2) var(--dj-space-3)!important;font-weight:var(--dj-text-heading-weight)!important;min-height:32px}
.v19-task-menu .v40-manual-rules>button+button{border-left:1px solid var(--line)!important}
.v19-task-menu .v40-manual-rules>button.active{background:var(--accent)!important;color:#fff!important}
.v19-task-menu .v40-manual-rules>[data-v40-comparison]{padding:var(--dj-space-2) var(--dj-space-4)!important}
.v19-task-menu .v15-number-completion{display:inline-flex!important;align-items:center;gap:0!important;margin-left:var(--dj-space-2)}
.v19-task-menu .v15-number-completion>input[type="checkbox"]{position:absolute!important;opacity:0!important;width:1px;height:1px;pointer-events:none}
.v19-task-menu .v15-number-completion{border:1px solid var(--line)!important;border-radius:var(--dj-radius-chip,8px)!important;padding:var(--dj-space-1) var(--dj-space-2)!important;background:var(--panel,#fff)!important;color:var(--muted,#7a7161)!important;font:inherit!important;font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-heading-weight)!important;cursor:pointer;min-height:32px}
.v19-task-menu .v15-number-completion:has(>input:checked){background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}

/* ===== r22: зазоры ещё меньше и единые; меню статуса вертикально; убрать линию под заголовком ===== */
.v19-task-menu,
.v19-task-menu :is(.v38-tag-artifacts,.v76-mobile-task-artifacts,.v36-artifacts,[data-v40-artifacts]){gap:0!important}
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head){
  margin-bottom:0!important;box-shadow:none!important;border-bottom:0!important;padding-bottom:0!important;
}
/* единый вертикальный шаг между всеми прямоугольниками = 2px (1px margin у каждого) */
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers),
                   .subtask-panel,.v18-comments,.v18-artifact-pickers>.v18-reminder){margin:0 0!important}
.v19-task-menu .v18-artifact-pickers{margin:0 0!important}
.v19-task-menu .v19-pickers-chips{margin:0 0 0!important}

/* «Напоминание» — тот же семантический minimum, что у остальных строк. */
.v19-task-menu .v18-artifact-pickers>.v18-reminder{
  height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;max-height:none!important;
  border:1px solid var(--panel,#fffdf8)!important;
  border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
}

/* меню смены статуса (справа вверху) — вертикальное */
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head)>:is(.task-top-actions,.v76-task-state-wrap,.v40-head-actions){
  flex-direction:column!important;align-items:flex-end!important;justify-content:flex-start!important;gap:var(--dj-space-1)!important;
}
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head)>.v40-head-actions>button{margin:0!important}

/* r22b: убрать вертикальные «дыры» от пустых структурных блоков и обёрток */
.v19-task-menu>:is(.v38-tag-artifacts,.v76-mobile-task-artifacts,.v36-artifacts,[data-v40-artifacts]){margin:0!important;padding:0!important}
.v19-task-menu>:is([data-v40-special]:empty,[data-v40-artifacts]:empty,.v40-parse-error:empty,.form-grid:empty,div:empty:not([class])){display:none!important}
.v19-task-menu>.task-top-actions{display:none!important}
.v19-task-menu>:is(.subtask-panel,.v18-comments){margin-top:0!important}

/* r22c: накопительная — короткий ярлык типа в первой строке; меню статуса как в меню задачи */
.v19-task-menu .v19-cumulative-kind{
  align-self:flex-start!important;margin:0 0 var(--dj-space-1)!important;padding:var(--dj-space-1) var(--dj-space-2)!important;
  border-radius:var(--dj-radius-chip,8px)!important;font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-heading-weight)!important;text-transform:lowercase;
}
.v19-task-menu .v19-cumulative-kind .v22-icon{width:var(--dj-icon-compact,16px)!important;height:var(--dj-icon-compact,16px)!important;color:#fff!important}
.v19-task-menu .v19-cumulative-kind .v22-icon :is(.v22-main,.v22-echo,.architect-echo)>*{stroke:currentColor!important}
/* в шапке накопительной — нет «Готово» и «Отмена», только действия статуса (как в меню задачи) */
.v19-task-menu .v40-head-actions>[data-v40-goal-close]{display:none!important}
.v19-task-menu .v40-head-actions>button.primary:not([data-v40-goal-fail]):not([data-v40-goal-cancel-task]):not([data-v40-goal-delete]):not([data-v40-goal-close]){display:none!important}

/* ============================================================================
 * r26: меню задачи и накопительной уже (~60% ширины); ряды-прямоугольники —
 *      одна высота 34px, одинаковый шаг 2px, значок и текст слева. Аккуратный
 *      единый проход вместо накопленных r23–r25.
 * ==========================================================================*/
.modal.v19-task-menu{width:62%!important;max-width:62%!important;min-width:300px!important;margin-inline:auto!important}

/* обёртки не добавляют вертикальных отступов */
.v19-task-menu :is(.v38-tag-artifacts,.v76-mobile-task-artifacts,.v40-artifacts,.v36-artifacts,[data-v40-artifacts],[data-v40-special]){display:block!important;margin:0!important;padding:0!important;gap:0!important;border:0!important;background:transparent!important}
.v19-task-menu :is([data-v40-special]:empty,.v40-parse-error:empty){display:none!important}

/* каждый ряд-прямоугольник — общий вид */
.v19-task-menu :is(
  .time-line,.v18-priority-row,
  .v18-artifact-row:not(.v18-artifact-pickers),
  .v18-artifact-pickers>.v18-reminder,
  .subtask-panel>.section-head,.v18-comments-head
){
  box-sizing:border-box!important;width:100%!important;
  height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;max-height:none!important;margin:0 0!important;padding:0 var(--dj-task-property-padding-x,var(--dj-space-3))!important;gap:var(--dj-space-2)!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;text-align:left!important;
  border:1px solid var(--panel,#fffdf8)!important;
  border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  box-shadow:none!important;overflow:hidden!important;
}
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers),.v18-artifact-pickers>.v18-reminder,.subtask-panel>.section-head,.v18-comments-head){height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;max-height:none!important;flex:0 0 auto!important}
.v19-task-menu .v19-desc-row{height:auto!important;min-height:0!important;flex:0 0 auto!important;align-items:flex-start!important;padding:0 0 var(--dj-space-2) var(--tm20-desc-indent,var(--dj-space-2))!important}
.v19-task-menu :is(.subtask-panel,.v18-comments){margin:0 0!important;padding:0!important;border:0!important;background:transparent!important;min-height:0!important;height:auto!important}
.v19-task-menu .v18-artifact-pickers{margin:0 0!important}
.v19-task-menu .v19-pickers-chips{margin:0 0 0!important}

/* содержимое ряда: ведущий значок фикс 20px, затем текст — слева, в одну линию.
 * Раскладка (flex) — для всех рядов; сброс рамки/фона/паддинга — ТОЛЬКО для кнопки
 * артефакта (она внутри уже обведённого .v18-artifact-row). Прочие перечисленные
 * элементы (.time-line, .v18-priority-row, .v18-reminder, .section-head,
 * .v18-comments-head) сами являются видимым прямоугольником — рамку не трогаем. */
.v19-task-menu :is(
  .v18-artifact-row:not(.v18-artifact-pickers)>button,
  .v18-artifact-pickers>.v18-reminder,
  .v18-priority-row,
  .subtask-panel>.section-head,.v18-comments-head,
  .time-line
){display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;justify-content:flex-start!important;box-sizing:border-box!important;min-width:0}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)>button{width:100%!important;border:0!important;background:transparent!important;padding:0!important}
.v19-task-menu :is(
  .v18-artifact-row:not(.v18-artifact-pickers)>button,
  .v18-artifact-pickers>.v18-reminder,
  .v18-priority-row
)>:is(.v22-icon,.v58-priority-flag,.priority-flag,svg):first-child{order:-1!important;flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-more],[data-v18-comments-toggle]){order:-1!important;flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:var(--muted,#8a7d68)!important}
.v19-task-menu :is(.subtask-panel>.section-head>.section-title,.v18-comments-head>span:first-child){order:0!important;flex:0 1 auto;font:inherit!important;font-weight:var(--v19-task-menu-font-weight)!important;margin:0!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-add],[data-v18-comments-add]){order:8!important;margin-left:auto!important;flex:0 0 auto;align-self:center;justify-content:center}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>.v19-count{order:9!important;flex:0 0 auto;margin:0 0 0 var(--dj-space-2)!important}
.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>[data-v38-add]>svg{display:none}

/* «Срок»: значок слева, потом текст; текст не редактируется */
.v19-task-menu .time-line>:is([data-time-open],[data-v40-time-open],button){order:-1!important;flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important}
.v19-task-menu .time-line>:is([data-time-summary],.time-summary){order:0!important;flex:0 1 auto;margin:0!important;text-align:left!important;pointer-events:none}
.v19-task-menu .time-line{cursor:pointer}

/* Напоминание — чипы в строчку */
.v19-task-menu .v18-reminder>span:not(.v19-reminder-chips){flex:0 0 auto}
.v19-task-menu .v19-reminder-chips{display:inline-flex!important;gap:var(--dj-space-1)!important;overflow-x:auto;scrollbar-width:none;margin-left:var(--dj-space-2);min-width:0}
.v19-task-menu .v19-reminder-chips::-webkit-scrollbar{display:none}
.v19-task-menu .v19-reminder-chip{flex:0 0 auto;padding:0 var(--dj-space-2);border-radius:var(--dj-radius-pill,999px);border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent);font-size:var(--v19-task-menu-secondary-size);font-weight:var(--v19-task-menu-secondary-weight);white-space:nowrap;line-height:var(--v19-task-menu-secondary-line-height)}

/* «Описание» */
.v19-task-menu .v19-desc-row>textarea{width:100%!important;border:0!important;background:transparent!important;outline:0!important;resize:none!important;min-height:22px;max-height:88px;font:inherit;color:inherit;padding:0!important}
.v19-task-menu .v19-desc-row[hidden]{display:none!important}

/* теги: имена рядом со значком, в строчку без многоточия */
.v19-task-menu :is(.v18-artifact-row[data-artifact-row="tag"],[data-artifact-row="stone"],.v18-artifact-row.tag,.v18-artifact-row.stone,[data-v36-artifact="tag"]) :is(span,button){white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.v19-task-menu .v18-artifact-row[data-artifact-row="tag"]{overflow-x:auto!important;scrollbar-width:none}
.v19-task-menu .v18-artifact-row[data-artifact-row="tag"]::-webkit-scrollbar{display:none}

/* «завершить числом» и переключатели — одна строка, шаг как у всех */
/* Ручная: строка меры — наверх формы (сразу под названием), поверх родного
 * order:7 (client-refinements.css). Для датчика это НЕ действует: там сама
 * строка — не прямой flex-ребёнок формы (лежит внутри .v19-datchik-row,
 * см. v19DatchikRow), order на ней самой в этом случае ни на что не влияет. */
.v19-task-menu .v40-measure-row{order:1!important}
.v19-task-menu .v40-measure-row{display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;margin:0 0!important;flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none;height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;max-height:none!important}
.v19-task-menu .v40-measure-row::-webkit-scrollbar{display:none}
/* (13) порядок: [Задачи] [≥/≤] [число] [мера] [сумма/за раз] [завершить числом] */
.v19-task-menu .v40-measure-row>label{order:0!important}
.v19-task-menu .v40-measure-row>.v19-measure-cmp{order:1!important;display:inline-flex!important;flex:0 0 auto!important}
/* Ручная строка меры: поля выбора (после значка+подписи «Число») — той же
 * группой к правому краю прямоугольника, как и у датчика (см. auto-отступ
 * на .v19-datchik-cmp-text выше) — иначе оставался большой пустой хвост
 * справа. Для датчика это правило не действует — там .v19-measure-cmp
 * скрыт ([hidden]) и margin ни на что не влияет. */
.v19-task-menu .v40-measure-row:not(.v19-datchik-header-row)>.v19-measure-cmp{margin-left:auto!important}
.v19-task-menu .v19-measure-cmp .v19-cmp-locked{opacity:.5!important;cursor:default!important}
/* (12) сравнение и суммарно/за раз — <select>, не кнопки; сами кнопки остаются
 * в разметке (источник истины/обработчик клика для родного кода), но скрыты. */
.v19-task-menu .v19-measure-cmp [data-v40-comparison][hidden],
.v19-task-menu [data-v40-measure-action] [data-v40-mode][hidden]{display:none!important}
.v19-task-menu .v19-measure-cmp>select.v19-cmp-select,
.v19-task-menu [data-v40-measure-action]>select.v19-mode-select{
  min-width:0!important;flex:0 1 auto!important;
  height:22px!important;min-height:22px!important;box-sizing:border-box!important;
  font:inherit!important;font-size:var(--dj-text-caption-size)!important;padding:0 var(--dj-space-1)!important;
  border:1px solid var(--line)!important;border-radius:var(--dj-radius-field,8px)!important;background:var(--panel,#fff)!important;
  color:var(--ink)!important;text-overflow:ellipsis;
}
/* (6) select показывает символ (≥/≤), как родные кнопки — полный текст
 * («больше или равно») остаётся в title-подсказке. Узкая дорожка, чтобы
 * вся строка меры помещалась на мобильном экране целиком. */
/* D-3: the comparison reads «не менее / не более», as in the numeric goal — the select takes its text width. */
.v19-task-menu .v19-measure-cmp>select.v19-cmp-select{max-width:none!important;text-align:left;text-align-last:left}
.v19-task-menu [data-v40-measure-action]>select.v19-mode-select{max-width:100px!important}
.v19-task-menu .v19-measure-cmp>select.v19-cmp-select:disabled{opacity:.6!important;cursor:default!important}
.v19-task-menu .v40-measure-row>input[name="target"]{order:2!important}
.v19-task-menu .v40-measure-row>select[name="unit"]{order:3!important}
/* «Завершить числом» переставлен ПЕРЕД переключателем сумма/за раз: на узком
 * экране ряд всё равно не помещается целиком (даже после сокращения полей) и
 * остаётся горизонтально прокручиваемым — но «Завершить числом» ВАЖНЕЕ и
 * должно быть видно без прокрутки, а переключатель режима можно долистать. */
.v19-task-menu .v40-measure-row>[data-v40-measure-action]{order:5!important;flex:0 0 auto!important;width:auto!important}
/* v84.css форсирует [data-v40-measure-action]{width:100%!important} на ширинах
 * ≤1024px (нативный «перенос действия на свою строку» для мобильных) — из-за
 * этого весь ряд меры раздувался на всю ширину экрана, хотя внутри только
 * узкий select. Перебиваем именно width (flex-grow/shrink уже сброшены выше,
 * но width — отдельное свойство, шорткод flex его не трогает). */
@media(max-width:1024px){.v19-task-menu .v40-measure-row>[data-v40-measure-action]{width:auto!important;flex:0 0 auto!important}}
.v19-task-menu .v40-measure-row>.v15-number-completion{order:6!important;flex:0 0 auto!important;white-space:nowrap!important}
/* «Завершить числом» → выбор «Одна попытка»/«Много попыток» (см.
 * v19CompletionModeSelect) — родной чекбокс скрыт (логика читается ТОЛЬКО
 * через его checked/onchange, см. JS), наш select стоит на его прежнем
 * месте в строке меры, тот же визуальный язык, что у select'ов сумма/за раз
 * и сравнения рядом. */
.v19-task-menu .v15-number-completion.v19-completion-native{display:none!important}
.v19-task-menu .v40-measure-row>select.v19-completion-select{
  order:6!important;flex:0 1 auto!important;min-width:132px!important;
  height:22px!important;min-height:22px!important;box-sizing:border-box!important;
  font:inherit!important;font-size:var(--dj-text-caption-size)!important;padding:0 var(--dj-space-2)!important;
  border:1px solid var(--line)!important;border-radius:var(--dj-radius-field,8px)!important;background:var(--panel,#fff)!important;
  color:var(--ink)!important;
}

/* Строка меры ручной накопительной — прямоугольник ТОГО ЖЕ вида, что «Срок»/
 * «Приоритет» и т.п. (переиспользуем формулу фона/рамки/радиуса — не
 * изобретаем новую). Только для ручной ветки — у датчика своя обёртка
 * .v19-datchik-header-row ниже (аналог строки подзадачи). */
.v19-task-menu .v40-measure-row:not(.v19-datchik-header-row){
  box-sizing:border-box!important;
  border:1px solid var(--panel,#fffdf8)!important;
  border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  padding:0 var(--dj-space-3)!important;margin:0 0 0!important;
}
/* Ведущие значок «123»/подпись «Число» ручной строки меры (см. v19DatchikRow,
 * ветка !selfTasks). Подпись — тот же шрифт/размер/цвет, что у «Приоритет N»
 * (.v19-priority-label: 14px/600/#1a1a1a, живой замер), значок — 20px, как
 * все ведущие значки строк-прямоугольников (см. общее правило ниже). */
.v19-task-menu .v40-measure-row>.v19-manual-number-icon{order:-3!important;flex:0 0 auto!important;display:grid;place-items:center;width:20px!important;height:20px!important;color:var(--ink)}
.v19-task-menu .v40-measure-row>.v19-manual-number-icon .v22-icon{width:20px!important;height:20px!important;color:inherit!important}
.v19-task-menu .v40-measure-row>.v19-manual-number-label{order:-2!important;flex:0 0 auto!important;white-space:nowrap;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight);color:#1a1a1a}
/* Датчик: строка меры сама становится «шапкой» — та же формула фона/рамки,
 * но раскладка иная (стрелка+«Датчик» слева, «≥/число/мера/+» справа), и она
 * лежит внутри общей обёртки .v19-datchik-row вместе со сворачиваемым
 * списком критериев под ней (аналог «строки подзадачи» — заголовок + список). */
/* margin-top тоже 1px (не только bottom) — иначе шаг «шапка → строка датчика»
 * получался 1px вместо общих 2px (1px+1px), как у всех остальных рядов.
 * Одного !important мало: .v19-task-menu>*{margin-top:0!important} (общий
 * сброс, ниже по файлу) имеет ТУ ЖЕ специфичность (0,1,0) и стоит ПОЗЖЕ в
 * файле — при равной специфичности и важности побеждает последний по
 * порядку. Добавляем предок .v19-task-menu в сам селектор — специфичность
 * (0,2,0) выше, порядок в файле уже не имеет значения. */
/* (47) «Датчик» — по прямой просьбе пользователя перенесён НИЖЕ, после
 * выбора артефактов (обёртка артефактов/пикера — order:5, см. reshapeHeads/
 * родная разметка) — было order:0 (родное значение по умолчанию, никто
 * явно не задавал), из-за чего ряд физически оказывался ПЕРВЫМ в форме,
 * ещё выше «Срока». order:6 ставит его сразу после артефактов, перед
 * Комментариями (order:70). */
.v19-task-menu .v19-datchik-row{display:block;order:1;margin:0 0!important}
.v19-task-menu .v40-measure-row.v19-datchik-header-row{
  box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;max-height:none!important;
  display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;
  border:1px solid var(--panel,#fffdf8)!important;
  border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  padding:0 var(--dj-space-3)!important;margin:0!important;overflow:visible!important;
}
/* Утроенный якорь для фона отдельно — `.v40-measure-row` явно входит в
 * список classic-темы (project-ideas-r21.css), см. комментарий у базовой
 * формулы рядов выше по файлу.
 * (66) По прямой просьбе пользователя — прямоугольник «Датчик» именно
 * цвета фона задачи (var(--panel)), НЕ тёплого тона, как остальные
 * прямоугольники стека — сознательное исключение (пользователь дважды
 * отметил, что фон «Датчика» «сейчас не такой» после предыдущей
 * унификации на тёплый тон). */
.v19-task-menu.v19-task-menu.v19-task-menu .v40-measure-row.v19-datchik-header-row{
  background:var(--panel,#fffdf8)!important;
  border-color:var(--panel,#fffdf8)!important;
}
/* (60) «+» добавить критерий выравнивался с «+» Подзадач/Комментариев через
 * искусственный запас padding-right:56px (см. историю ниже) — по прямой
 * новой просьбе у «Датчика» теперь есть СВОЙ кружок-счётчик количества
 * критериев (см. v19DatchikRow, JS), той же формулы .v19-count, что у
 * Подзадач/Комментариев — искусственный запас больше не нужен, реальный
 * кружок занимает то же место естественно, тем же способом, что и у них.
 * (было: «У «Датчика» такого кружка нет, поэтому его «+» без поправки
 * уезжал вплотную к правому краю» — счётчик снимает саму причину.) */
.v19-task-menu .v40-measure-row.v19-datchik-header-row>.v19-count{order:4!important;flex:0 0 auto!important;margin:0 0 0 var(--dj-space-2)!important}
.v19-datchik-toggle{order:-2!important;flex:0 0 auto!important;display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;background:transparent;color:var(--ink)}
.v19-datchik-toggle .v22-icon{width:16px;height:16px}
/* Шрифт текста «Датчик» — по прямой просьбе пользователя такой же, как у
 * «Комментарии»/«Подзадачи» (var(--v19-task-menu-font-weight), не отдельный
 * захардкоженный 650, см. правило для .v18-comments-head>span:first-child). */
.v19-datchik-label{order:-1!important;flex:1 1 auto;font:inherit!important;font-weight:var(--v19-task-menu-font-weight)!important;white-space:nowrap}
/* Текст «больше или равно» и поля числа/меры — сдвинуты вправо (ближе к
 * кнопке «+»), а не сразу после подписи «Датчик»: auto-отступ ставим на
 * ПЕРВОМ элементе этой правой группы (cmp-text), а не на самой кнопке «+» —
 * иначе при двух auto-отступах flexbox растащил бы ещё и «+» от полей. */
.v19-datchik-cmp-text{order:0!important;flex:0 0 auto!important;margin-left:auto!important;color:var(--muted);white-space:nowrap;font-size:var(--v19-task-menu-secondary-size);font-weight:var(--v19-task-menu-secondary-weight);line-height:var(--v19-task-menu-secondary-line-height)}
.v19-task-menu .v40-measure-row.v19-datchik-header-row>.v19-measure-cmp[hidden]{display:none!important}
.v19-task-menu .v40-measure-row.v19-datchik-header-row>select[name="unit"]{order:2!important}
.v19-task-menu .v40-measure-row.v19-datchik-header-row>input[name="target"]{order:1!important}
.v19-task-menu .v40-measure-row.v19-datchik-header-row [data-v40-measure-action]{order:3!important}
[data-v40-special][hidden]{display:none!important}
/* Вертикальный шаг у критериев — тот же 2px, что и между всеми остальными
 * прямоугольниками меню (не свои 4px/4px, как было). Живым замером найдено:
 * родной внутренний .v40-source-lines (v41.js) НЕСЁТ СВОЙ margin-top:5px
 * поверх нашего margin-top:2px на обёртке — суммарно получалось 7-8px
 * вместо 2px («явно не 2px», по фидбеку). Зануляем родной отступ явно. */
/* (52) По прямой просьбе пользователя — расстояние между критериями по
 * вертикали ноль («тот же обработчик, что и у прямоугольников выше» — та
 * же система нулевого зазора + скругление только у крайних, см.
 * v19StackEdges, а НЕ у каждого критерия по отдельности). gap/margin-top
 * были 2px — занулены. */
/* (58) padding-left:26px (отступ «вложено под Датчик») убран по прямой
 * новой просьбе — критерии должны быть той же ДЛИНЫ, что и верхние
 * прямоугольники (Срок/Приоритет), т.е. начинаться с той же левой границы,
 * а не быть уже/сдвинуты правее из-за лишнего отступа контейнера. */
.v19-datchik-criteria{display:grid;gap:0;margin-top:0}
.v19-datchik-criteria .v40-source-lines{margin-top:0!important;gap:0!important}
/* Строка критерия — ПОПРАВКА: не тон прямоугольников (было color-mix с
 * #8a7a5f, как у «Датчик»/«Срок»), а цвет фона самой задачи (var(--panel)),
 * без подкраски — по прямой просьбе пользователя («должен быть цвета фона
 * задачи»). Рамка — обычная var(--line), тоже без подкраски, только чтобы
 * строки отделялись друг от друга. Не родной плоский белый (v41.css:
 * border:1px solid var(--line);background:#fff) — фон именно от темы
 * (var(--panel)), не жёсткий #fff. */
/* (49→51б→52) По прямой просьбе пользователя — выбранные критерии
 * визуализируются по тем же правилам, что и прямоугольники-чипы
 * артефактов: цвет/высота/длина — как у них (22px, финальный размер
 * чипа-артефакта после (53), а не 34px как было на предыдущем шаге).
 * border-radius СЮДА больше не пишем явно — критерии подключены к общей
 * системе стека (§164/166: default прямые углы + скругление только у
 * фактически первого/последнего через .v19-stack-first/.v19-stack-last,
 * см. v19StackEdges) — жёсткий radius:var(--v19-row-radius) здесь раньше
 * ПЕРЕБИВАЛ её, каждый критерий скруглялся сам по себе вместо скругления
 * только по краям всей группы (та же ошибка класса «забыл, что этот ряд
 * уже подключён к общему механизму» — см. урок в §164 про :is()). Значок —
 * свой цвет (--artifact-color, та же поправка (53)), не системный. */
/* (56) Реальная причина, почему критерий выглядел не как чип, а как
 * старая полноразмерная строка: `.v42-source-line` — это ВНЕШНИЙ div
 * (рамка/фон уже стилизовались правильно), но значок+текст живут во
 * ВЛОЖЕННОЙ кнопке `[data-v40-source-line]` (родная разметка, v41.js:
 * `<div class="v42-source-line"><button data-v40-source-line
 * style="color:${v40SourceColor(row)}">…значок+текст…</button><button
 * data-v40-source-delete>✕</button></div>`) — свой цвет источника лежит
 * ИНЛАЙН на ЭТОЙ кнопке (`style="color:…"`, обычный CSS color, НЕ
 * custom-property — другой механизм, чем `--artifact-color` у тэгов) и
 * раньше никак не учитывался: внешний div высоту/фон получал, а
 * внутренняя кнопка со значком жила своей нативной раскладкой (родной
 * полноразмерный вид). Правильный фикс — не пытаться читать
 * несуществующую здесь custom-property, а дать значку `color:inherit`,
 * чтобы он подхватил РОДНОЙ инлайн-цвет кнопки через обычное CSS-наследование
 * (у `.v22-icon` иначе свой цвет по умолчанию, наследование блокируется). */
/* (58) Реверс (57)/(51б): по прямой новой просьбе пользователя критерии
 * снова красятся как ВЕРХНИЕ прямоугольники (Срок/Приоритет/шапка
 * «Датчика»), не как чип-артефакт — тот же тёплый color-mix фон/рамка и та
 * же высота 34px (было: цвет фона задачи, 22px). Ширина — уже 100% через
 * общую сетку строк стека, отдельно не пишем. */
.v19-task-menu .v19-datchik-criteria .v42-source-line{
  border:1px solid var(--panel,#fffdf8)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  width:100%!important;
  height:auto!important;min-height:var(--dj-task-content-min-height,34px)!important;max-height:none!important;box-sizing:border-box!important;
  padding:0!important;
  display:flex!important;align-items:center!important;overflow:hidden!important;
}
.v19-task-menu .v19-datchik-criteria .v42-source-line>[data-v40-source-line]{
  flex:1 1 auto!important;min-width:0!important;height:100%!important;box-sizing:border-box!important;
  display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;
  border:0!important;background:transparent!important;padding:0 var(--dj-space-2)!important;font:inherit!important;
}
/* Шрифт текста строк-критериев — по прямой новой просьбе такой же
 * стиль/размер, как у «Приоритет» (.v19-priority-label: 14px/600/#1a1a1a,
 * живой замер) — заменяет предыдущий грубый font-weight:700 («жирным») на
 * точное значение. Цвет НЕ трогаем — он свой (--artifact-color через
 * наследование color:inherit от родной инлайн-кнопки, см. (56) выше). */
.v19-task-menu .v19-datchik-criteria .v42-source-line>[data-v40-source-line]>span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:var(--v19-task-menu-font-size)!important;font-weight:var(--v19-task-menu-font-weight)!important;line-height:var(--v19-task-menu-line-height)!important}
.v19-task-menu .v19-datchik-criteria .v42-source-line>[data-v40-source-delete]{
  flex:0 0 22px!important;height:100%!important;width:22px!important;
  border:0!important;background:transparent!important;color:var(--muted,#8a7d68)!important;padding:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
}
.v19-task-menu .v19-datchik-criteria .v42-source-line :is(.v22-icon,svg){color:inherit!important;width:var(--dj-icon-compact,16px)!important;height:var(--dj-icon-compact,16px)!important;flex:0 0 var(--dj-icon-compact,16px)!important}
.v19-datchik-criteria[hidden]{display:none!important}
/* Кнопка «+» добавить критерий — была залитой кнопкой системного цвета
 * (родная .btn.primary); по просьбе пользователя — простая плоская кнопка со
 * значком «+», тот же визуальный язык, что у «+» добавить комментарий
 * (см. правило [data-v18-comments-add] выше: 30×30, прозрачный фон, без
 * рамки, цвет — акцент, глиф «+» вместо родного значка). */
.v19-task-menu [data-v40-add-source]{
  width:30px!important;height:30px!important;min-width:30px!important;padding:0!important;
  border:0!important;background:transparent!important;color:var(--accent)!important;
  display:grid!important;place-items:center;
}
.v19-task-menu [data-v40-add-source] svg{display:none!important}
.v19-task-menu [data-v40-add-source]::after{content:"+";font-size:var(--dj-text-heading-size);line-height:1}

/* r26b: чипы выбора артефактов — слово по центру по вертикали, значок ~16px,
 *       горизонтальный зазор 3px, по вертикали чуть ниже */
.v19-task-menu .v19-pickers-chips{gap:var(--dj-space-1)!important}
.v19-task-menu .v19-pickers-chips>button{
  min-height:0!important;height:28px!important;padding:0 var(--dj-space-2)!important;
  display:inline-flex!important;align-items:center!important;gap:var(--dj-space-1)!important;line-height:var(--dj-text-heading-line-height)!important;
}
.v19-task-menu .v19-pickers-chips>button>span{line-height:var(--dj-text-heading-line-height)!important;display:inline-flex!important;align-items:center!important}
.v19-task-menu .v19-pickers-chips>button>:is(.v22-icon,svg){flex:0 0 16px!important;width:16px!important;height:16px!important;margin:0!important}

/* r26c: убрать flex-gap контейнера-формы и любые отступы обёрток —
 *       тогда вертикальный шаг = только margin рядов (2px) и он одинаков ВЕЗДЕ */
.v19-task-menu{gap:0!important}
.v19-task-menu>*,
.v19-task-menu :is(.v38-tag-artifacts,.v76-mobile-task-artifacts,.v40-artifacts,.v36-artifacts,[data-v40-artifacts],[data-v40-special])>*{margin-top:0!important}
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers),
                   .v18-artifact-pickers,.v18-artifact-pickers>.v18-reminder,.v19-pickers-chips,
                   .subtask-panel,.v18-comments,.v19-desc-row,.v40-measure-row){margin:0 0!important}

/* r26d: единый шрифт у всех чипов выбора (в т.ч. «Стена»); не резать «Напоминания»; шаг у .card */
.v19-task-menu .v19-pickers-chips>button,
.v19-task-menu .v19-pickers-chips>button *:not(.v22-icon):not(.dj-utility-symbol):not(svg):not(path){
  font:inherit!important;font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-heading-weight)!important;font-style:normal!important;
  color:var(--accent)!important;letter-spacing:normal!important;line-height:1!important;text-transform:none!important;
}
.v19-task-menu .v18-artifact-pickers>.v18-reminder{overflow:visible!important}
.v19-task-menu .v18-artifact-pickers>.v18-reminder>span:not(.v19-reminder-chips){flex:0 1 auto!important;white-space:nowrap!important;overflow:visible!important;min-width:0}
.v19-task-menu .subtask-panel.card{margin:0 0!important;padding:0!important;box-shadow:none!important;border:0!important;background:transparent!important}
/* контейнеры Подзадач/Комментариев без своих отступов — шаг задаёт только .section-head/head */
.v19-task-menu :is(.subtask-panel,.subtask-panel.card,.v18-comments){padding:0!important;border:0!important}
.v19-task-menu :is(.subtask-panel,.v18-comments)>:is(.section-head,.v18-comments-head){margin:0!important}

/* r26e: «Напоминания» — своя строка на всю ширину внутри строки пикеров (не 34px);
 *       равный вертикальный шаг 2px в блоке артефактов (у block-обёртки схлопывались margin'ы) */
.v19-task-menu .v18-artifact-pickers>.v18-reminder{
  flex:1 1 100%!important;flex-basis:100%!important;width:100%!important;
  justify-content:flex-start!important;
}
/* обёртки артефактов: flex-колонка БЕЗ собственного gap (иначе gap+margin=4px);
 * весь вертикальный шаг задаётся только margin:1px 0 у самих рядов → ровно 2px,
 * и во flex-контейнере margin'ы не схлопываются (в block-обёртке схлопывались до 1px) */
.v19-task-menu .v38-tag-artifacts,
.v19-task-menu .v76-mobile-task-artifacts,
.v19-task-menu .v40-artifacts,
.v19-task-menu .v36-artifacts,
.v19-task-menu [data-v40-artifacts]{
  display:flex!important;flex-direction:column!important;gap:0!important;
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;
}
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-artifact-row,
   .subtask-panel,.v18-comments,.v19-desc-row,.v40-measure-row){margin:0 0!important}

/* r26i: ряд тэгов — несколько чипов в одну строку ПО СОДЕРЖИМОМУ (не каждый на всю
 * ширину: правило .v18-artifact-row:not(.v18-artifact-pickers)>button{width:100%} (0,4,0)
 * ломало ряд с 2+ тэгами — здесь спец. (0,4,1), перебивает) */
/* (46) Проект/Идея добавлены в этот же список — по прямой находке
 * пользователя (скриншот): их кнопка так и оставалась width:100% (родовое
 * правило было спец-случаем только для тэг/камень/ритуал), из-за чего у
 * унифицированного чипа (§165, свой border/bg) справа от текста тянулась
 * пустая, но всё ещё видимая (рамка!) область на всю ширину ряда. */
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],[data-artifact-row="project"],[data-artifact-row="idea"],.tag,.stone,.ritual)>button{
  width:auto!important;flex:0 0 auto!important;max-width:none!important;gap:var(--dj-space-2)!important;padding:0 var(--dj-space-1)!important;
}
/* Тэг больше НЕ овал-чип (см. «Тэги/Ритуал/Проект/Стена — как Камни» ниже) —
 * этот override когда-то давал тэгу padding как у «срока»; теперь тэг плоский
 * как Камни, так что явно НЕ переопределяем padding здесь (наследует 0 2px
 * из правила выше, как ritual/stone). Оставлено пустым нарочно — искать
 * актуальный tag-стиль в правиле «камни»-унификации ниже по файлу. */
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual)>button>span:not(.v22-icon){
  overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;
  flex:0 0 auto!important;width:auto!important;min-width:0!important;
}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual){
  gap:var(--dj-space-2)!important;overflow-x:auto!important;scrollbar-width:none;justify-content:flex-start!important;
}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual)::-webkit-scrollbar{display:none}

/* r26k: задача С выбранными напоминаниями — приложение (mobile-client paintReminder)
 * выносит .v18-reminder в НАЧАЛО формы (host=form при count>0), из-за чего появлялся
 * фантомный отступ ~36px между «приоритетом» и артефактами. Ставим этот прямоугольник
 * на место через flex-order (форма = flex-колонка), без переноса в JS — без DOM-борьбы. */
.v19-task-menu>.v18-reminder{
  order:50!important;
  box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;
  max-height:none!important;flex:0 0 auto!important;margin:0 0!important;padding:0 var(--dj-task-property-padding-x,var(--dj-space-3))!important;gap:var(--dj-space-2)!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;
  border:1px solid var(--panel,#fffdf8)!important;
  border-radius:var(--v19-row-radius,10px)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;overflow:hidden!important;
}
.v19-task-menu>.v18-reminder>:is(svg,.v22-icon){flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important}
.v19-task-menu>.v18-reminder>span:not(.v19-reminder-chips){flex:0 0 auto!important;white-space:nowrap!important}
.v19-task-menu>.v18-reminder>.v19-reminder-chips{display:inline-flex!important;gap:var(--dj-space-1)!important;overflow-x:auto!important;scrollbar-width:none}
.v19-task-menu>.subtask-panel{order:60!important}
.v19-task-menu>.v18-comments{order:70!important}

/* r26l: порядок в блоке артефактов через flex-order на детях формы —
 * [выбранные артефакты (0)] · [Напоминание (50)] · [ряд пикеров-чипов (55)] · [Подзадачи (60)] · [Комментарии (70)] */
.v19-task-menu>.v18-artifact-pickers{order:55!important;width:100%!important;min-height:0!important;padding:0!important;margin:0 0!important;overflow:visible!important}
.v19-task-menu>.v18-artifact-pickers>.v19-pickers-chips{margin:0!important}

/* r26o: «Срок» в стиле напоминаний — два чипа: «дата и время» и «длительность».
 * прошлое → красный, будущее / без срока → зелёный. */
.v19-task-menu .time-line>[data-time-summary][hidden]{display:none!important}
.v19-task-menu .time-line>.v19-time-chips{
  display:inline-flex!important;align-items:center!important;gap:var(--dj-space-2)!important;
  flex:1 1 auto!important;min-width:0!important;overflow-x:auto!important;scrollbar-width:none;
}
.v19-task-menu .time-line>.v19-time-chips::-webkit-scrollbar{display:none}
.v19-task-menu .v19-time-chip{
  padding:0 var(--dj-space-2)!important;border-radius:var(--dj-radius-pill,999px)!important;border:1px solid currentColor!important;
  font-size:var(--v19-task-menu-secondary-size)!important;font-weight:var(--v19-task-menu-secondary-weight)!important;white-space:nowrap!important;line-height:var(--v19-task-menu-secondary-line-height)!important;
}
/* (64) «Напоминание» — по прямой просьбе красится той же логикой, что и
 * «Срок» (красный/зелёный по статусу дедлайна задачи) — расширяем те же
 * селекторы на .v19-reminder-chip (JS-класс уже проставляется, см.
 * reminderChips()). */
.v19-task-menu :is(.v19-time-chip,.v19-reminder-chip).is-past{color:#b23b3b!important;border-color:#b23b3b!important}
.v19-task-menu .v19-time-chip.is-future{color:#2f7d4f!important;border-color:#2f7d4f!important}
/* (69) Ведущий значок ряда «Срок» — та же схема (красный/зелёный/чёрный),
 * класс v19-line-* ставится на сам .time-line (timeLineChips(), JS).
 * «Чёрный» — фактически системный var(--ink), а не отдельный будущий
 * зелёный: у чипов is-future даёт зелёный (2f7d4f) только под
 * revision23.css в паре с is-ongoing; здесь «без срока»/будущее равно
 * чёрному по прямой просьбе этого раунда (не зелёному). */
.v19-task-menu.v19-task-menu.v19-task-menu .time-line.v19-line-past>:first-child{color:#b23b3b!important}
.v19-task-menu.v19-task-menu.v19-task-menu .time-line.v19-line-ongoing>:first-child{color:#2f7d4f!important}
.v19-task-menu.v19-task-menu.v19-task-menu .time-line.v19-line-today>:first-child{color:#2f7d4f!important}
.v19-task-menu.v19-task-menu.v19-task-menu .time-line.v19-line-future>:first-child{color:var(--ink)!important}
/* (69) Убран безусловный приглушённый цвет длительности — по прямой
 * просьбе текст чипа длительности должен совпадать с цветом рамки, та
 * же логика статуса дедлайна, что и у чипа даты рядом (.v19-time-chip уже
 * несёт is-past/is-ongoing/is-future — JS проставляет тот же класс и на
 * .v19-time-dur, этот безусловный override просто перебивал его). border
 * автоматически совпадёт — базовая формула .v19-time-chip уже
 * border:1px solid currentColor. */

/* ============================================================================
 * r26q — подчистка (13 пунктов + анимация): ширина -30%, вертикальное меню
 * статуса, чистка линий, «Срок», приоритет, напоминания-кружок, «Описание»-значок,
 * накопительные меры, тусклая стрелка при 0, выезд снизу.
 * ========================================================================== */

/* (6) меню задачи всех типов — ещё уже на 30% (было 62% -> ~44%) */
.modal.v19-task-menu{width:44%!important;max-width:44%!important;min-width:330px!important;margin-inline:auto!important}
@media(max-width:900px){.modal.v19-task-menu{width:92%!important;max-width:92%!important;min-width:0!important}}

/* (14) окно ЖЁСТКО фиксируется в центре экрана — position:fixed + transform.
 * ВАЖНО: центрирование и анимация въезда/выезда живут в ОДНОМ свойстве `transform`
 * (не в отдельном `translate`+`transform` одновременно) — раньше центрирование
 * держалось на отдельном CSS-свойстве `translate:-50% -50%`, а анимация — на
 * `transform:translateY(...)`; они ДОЛЖНЫ композироваться (translate применяется
 * до transform по спецификации), но при недостаточной поддержке/своих квирках у
 * конкретного движка рендеринга второе перебивает первое вместо композиции —
 * тогда во время анимации центрирующий сдвиг по X терялся, и окно на подъезде
 * визуально «прилетало от правого угла», а в конце ЗАМЕТНО доскакивало/дёргалось
 * обратно в центр. Один общий `transform` со смещением центрирования, прописанным
 * явно в каждом кадре/состоянии, работает везде одинаково. */
.modal-backdrop.v19-backdrop{overflow:hidden!important}
.modal.v19-task-menu,
.modal-backdrop.v19-backdrop>.modal.v19-task-menu{
  position:fixed!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  /* (14в) верх окна НИКОГДА не за экраном: высота ≤ видимой области, дальше — внутренний скролл */
  max-height:calc(100dvh - 16px)!important;max-height:calc(100vh - 16px)!important;
  overflow-y:auto!important;overscroll-behavior:contain!important;
  will-change:transform;
  /* (14б) плавное расширение меню при добавлении артефактов (~0.2с) */
  transition:max-height .2s ease,width .2s ease!important;
}
/* выезд с самого низа экрана за ~0.45с; уезд туда же до конца при ОК/Cancel.
 * Центрирующий translate(-50%,-50%) прописан явно в КАЖДОМ кадре — никогда не
 * теряется и не должен «доезжать» отдельным скачком. */
@keyframes v19-slide-in{
  from{transform:translate(-50%,-50%) translateY(100vh);opacity:.15}
  to{transform:translate(-50%,-50%) translateY(0);opacity:1}
}
/* Анимация входа — ТОЛЬКО пока JS держит класс .v19-anim-in (снимается через ~520мс).
 * В покое окно без доп. transform, поэтому «замороженные» анимации не оставят его за экраном. */
.modal.v19-task-menu.v19-anim-in{animation:v19-slide-in .45s cubic-bezier(.22,.68,.24,1)}
@media (prefers-reduced-motion: reduce){.modal.v19-task-menu.v19-anim-in{animation:none!important}}
.modal-backdrop.v19-leaving{pointer-events:none}
.modal-backdrop.v19-leaving>.modal.v19-task-menu{
  animation:none!important;transition:transform .42s cubic-bezier(.5,0,.75,.4),opacity .42s ease!important;
  transform:translate(-50%,-50%) translateY(100vh)!important;opacity:.1!important;
}

/* (7) убрать лишние горизонтальные линии во всех меню задачи */
.v19-task-menu hr,
.v19-task-menu .modal-actions,
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head){border-top:0!important;border-bottom:0!important;box-shadow:none!important}
.v19-task-menu :is(.v40-special,[data-v40-special],.v40-measure-row,.v40-manual-block,.v40-goal-body,.subtask-panel,.v18-comments,.v38-tag-artifacts,.v76-mobile-task-artifacts,.v36-artifacts){border-top:0!important;border-bottom:0!important}
.v19-task-menu :is(.section-note,.v40-hint,.v40-divider,.divider){border:0!important}

/* (10) напоминания: без слова «Напоминания», счётчик в кружке справа (как у комментариев) */
.v19-task-menu :is(.v18-artifact-pickers>.v18-reminder,.v19-task-menu>.v18-reminder,.v18-reminder){
  justify-content:flex-start!important;gap:var(--dj-space-2)!important;
}
.v19-task-menu .v18-reminder>.v19-count{margin-left:auto!important;flex:0 0 auto!important}
.v19-task-menu .v19-count{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);
  color:var(--muted,#8a7d68);font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-secondary-size);flex:0 0 30px;
}
.v19-task-menu .v19-count>.v19-count-n{font:inherit;font-weight:var(--dj-text-heading-weight)}

/* (9) стрелка раскрытия при 0 подзадач/комментариев — неактивна и тусклая */
.v19-task-menu .v19-toggle-dead{opacity:.5!important;cursor:default!important}
.v19-task-menu .v19-toggle-dead:active{transform:none!important}

/* (9) кнопка ОК у поля «добавить комментарий» */
.v19-task-menu .v18-comment-composer[hidden]{display:none!important}
.v19-task-menu .v18-comment-composer:not([hidden]){display:flex!important;align-items:center;gap:var(--dj-space-2);flex-wrap:nowrap}
.v19-task-menu .v18-comment-composer>textarea{flex:1 1 auto;min-width:0}
/* (3)+(9) точечные inline-подтверждения (одна запись добавляется, диалог/меню
 * остаётся открытым): комментарий, строчки добавления напоминания в меню
 * «Напоминания». ВАЖНО, уточнено пользователем: НЕ круг (border-radius:50% —
 * это фигура для кнопок, которые ЗАКРЫВАЮТ весь диалог целиком, см.
 * [data-v17-time-save]/[data-v17-time-cancel] ниже) — и НЕ придуманная нами
 * форма (был неверный clip-path-«лемон»), а буквально та же самая готовая
 * нативная кнопка ОК/Отмена, что и в редакторе тэга (`v26-tag-editor`):
 * класс `.v31-dialog-icon` (36×36px, border-radius:6px, см. v31.css/v31.js),
 * который мы теперь просто навешиваем в JS (task-menu-r19.js: v19-comment-ok
 * создание + openReminders→paintOkIcons) — здесь ничего переопределять не
 * нужно, форма приходит из v31.css как есть. */
.v19-task-menu .v19-comment-ok :is(svg,.v22-icon),
.v80-notification-add [data-v80-notification-add] :is(svg,.v22-icon),
.v80-notification-add [data-v80-notification-add-at] :is(svg,.v22-icon){color:#fff}
.v80-notification-add [data-v80-notification-add] .v22-icon :is(.v22-main,.v22-echo,.architect-echo)>*,
.v80-notification-add [data-v80-notification-add-at] .v22-icon :is(.v22-main,.v22-echo,.architect-echo)>*{stroke:currentColor!important}

/* (3)+(11) Меню срока и напоминаний переиспользуют одни и те же ОК/Отмена
 * (data-v17-time-save/cancel) — родной v31.js навешивает класс .v31-dialog-icon
 * (круг) уже ПОСЛЕ первой отрисовки (через MutationObserver), из-за чего кнопка
 * на миг рисуется овалом от родного .btn и только потом становится кругом.
 * Стилизуем по функциональным атрибутам НАПРЯМУЮ — круг сразу, без перерисовки. */
.v19-task-menu :is([data-v17-time-cancel],[data-v17-time-save]),
.v19-reminder-dialog :is([data-v17-time-cancel],[data-v17-time-save]),
.time-menu :is([data-v17-time-cancel],[data-v17-time-save]){
  display:grid!important;place-items:center!important;width:36px!important;min-width:36px!important;
  height:36px!important;padding:var(--dj-space-2)!important;border-radius:var(--dj-radius-circle,50%)!important;
  background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;
}

/* (3) меню статуса — вертикальный список, поверх окна, в экран, без овалов.
 *     Приложение отдаёт РАЗНЫЕ обёртки: .v76-task-state-wrap (телефон) и
 *     .task-top-actions>.v84-state-wrap (десктоп). Плюс наш синтез [data-v19-state-menu]. */
.v19-task-menu :is(.v76-task-state-wrap,.v84-state-wrap,.task-top-actions){position:relative!important;overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.v19-task-menu:has(:is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover):not([hidden])){overflow:visible!important}
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head){overflow:visible!important}
/* [hidden] должен реально прятать панель — наши display-правила его НЕ перебивают */
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover)[hidden]{display:none!important}
/* всплывающая панель (любой из вариантов) — только когда открыта */
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover):not([hidden]){
  position:absolute!important;right:0!important;top:calc(100% + 4px)!important;left:auto!important;bottom:auto!important;
  z-index:1200!important;min-width:180px!important;width:max-content!important;max-width:min(82vw,250px)!important;
  max-height:min(62vh,calc(100dvh - 110px))!important;overflow-y:auto!important;
  display:flex!important;flex-direction:column!important;gap:var(--dj-space-1)!important;
  padding:var(--dj-space-2)!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-popup,10px)!important;
  background:var(--panel,#fffdf8)!important;box-shadow:0 16px 40px rgba(20,18,15,.22)!important;
}
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover):not([hidden])>.task-state-actions{display:contents!important}
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover):not([hidden]) button{
  display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:var(--dj-space-3)!important;
  width:100%!important;min-height:var(--dj-minheight-popup-row)!important;padding:var(--dj-space-2) var(--dj-space-3)!important;margin:0!important;
  border:0!important;border-radius:var(--dj-radius-popup-row)!important;background:transparent!important;color:var(--ink)!important;
  font:inherit!important;font-weight:var(--dj-text-heading-weight)!important;text-align:left!important;cursor:pointer;box-shadow:none!important;
}
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover) button:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)!important}
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover) button :is(svg,.v22-icon){flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important}
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover) button .v18-state-label{font:inherit!important;flex:0 1 auto!important;display:inline!important}
/* кнопка-переключатель «стрелка вниз» без овала */
.v19-task-menu :is(.v76-task-state-toggle,.v84-state-wrap>button,.task-top-actions>.v84-state-wrap>button,[data-v76-task-state-toggle]){
  border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;
  width:26px!important;height:26px!important;min-width:26px!important;color:var(--muted,#8a7d68)!important;
}
.v19-task-menu :is(.v76-task-state-toggle,.v84-state-wrap>button,[data-v76-task-state-toggle]) :is(svg,.v22-icon){width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}

/* (4) накопительная: ярлык «ручная/автоматическая» в шапке — по просьбе
 * пользователя убран целиком (и для датчика, и для ручной): строка меры/
 * датчика уже несёт свою подпись («Число»/«Датчик»), дублирующий ярлык в
 * правом верхнем углу шапки больше не нужен. */
.v19-task-menu .v19-cumulative-kind{display:none!important}
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head)>.v19-cumulative-kind.v19-kind-inline{
  order:8!important;margin:0 var(--dj-space-2) 0 auto!important;align-self:center!important;
  padding:var(--dj-space-1) var(--dj-space-2)!important;font-size:var(--dj-text-secondary-size)!important;text-transform:lowercase;flex:0 0 auto!important;
}
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head)>:is(.v76-task-state-wrap,.v84-state-wrap,.task-top-actions,.v40-head-actions,[data-v19-state-menu]){order:9!important;margin-left:auto!important;flex:0 0 auto!important}
/* Правило «margin-left:6px после видимого ярлыка датчик/ручная» убрано —
 * сам ярлык (.v19-cumulative-kind) теперь всегда display:none (см. выше),
 * но CSS-соседний селектор (+) matчит его и НЕВИДИМЫМ (display:none не
 * убирает из DOM) — правило с margin-left:6px!important имело БОЛЬШУЮ
 * специфичность, чем margin-left:auto!important выше, и перебивало его:
 * меню статуса переставало быть прижато к правому краю. */
/* (10) значок Заметки, привязанной к задаче — в шапке, слева от меню статуса */
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head)>.v19-task-note-btn{
  order:8!important;flex:0 0 auto!important;align-self:center!important;margin:0 var(--dj-space-2) 0 0!important;
  display:inline-flex!important;align-items:center;justify-content:center;
  width:26px!important;height:26px!important;padding:0!important;border:0!important;background:transparent!important;
  color:var(--muted,#8a7d68);cursor:pointer;
}
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head)>.v19-task-note-btn :is(svg,.v22-icon){width:20px;height:20px}
/* (баг) Родной notes/bootstrap.js на КАЖДЫЙ render() (значит и на самый
 * первый показ формы) сам вставляет ЕЩЁ ОДИН значок заметки — обычной
 * кнопкой ПРЯМО внутрь .v38-tag-artifacts/.v76-mobile-task-artifacts
 * (`host.insertAdjacentHTML('beforeend', ...)`), т.е. отдельным рядом среди
 * рядов формы, а не в шапку. У нас уже есть свой (см. .v19-task-note-btn
 * выше, в шапке) — родной ряд снаружи оказывается ЛИШНИМ дублем: виден
 * при первом открытии формы, пропадает только после следующего render()
 * (когда кто-то ещё раз меняет фокус) — само не самоисправляется мгновенно.
 * Прячем чисто через CSS (никакого JS-таймина/гонки — эффект мгновенный,
 * ни один кадр не покажет дубль): наш собственный значок использует ДРУГОЙ
 * класс (.v19-task-note-btn), это правило его не касается. */
.v19-task-menu [data-notes-for]{display:none!important}

/* (13) приоритет — подпись слева и шкала уровней справа, цвет текста как у «Подзадачи»/
 * «Комментарии» (обычный, не приглушённый) */
.v19-task-menu .v18-priority-row>span:not(.v22-icon){font:inherit!important;font-weight:var(--v19-task-menu-font-weight)!important;color:var(--ink)!important}
.v19-task-menu .v18-priority-row>.v19-priority-scale{display:flex;align-items:baseline;justify-content:flex-end;gap:var(--dj-space-2);margin-left:auto;flex:0 0 auto;font-variant-numeric:tabular-nums;}
.v19-task-menu .v18-priority-row .v19-priority-scale .v19-priority-digit{color:var(--muted);font:var(--dj-text-secondary-weight) var(--dj-text-secondary-size)/var(--dj-text-secondary-line-height) var(--dj-font-functional,inherit);}
.v19-task-menu .v18-priority-row .v19-priority-scale .v19-priority-digit.is-current{color:var(--ink);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional,inherit);}
.v19-task-menu :is(.v18-priority-row,.tm20-priority-row) .v19-priority-scale .v19-priority-digit{border:0;background:transparent;padding:var(--dj-space-1);cursor:pointer}
.v19-task-menu :is(.v18-priority-row,.tm20-priority-row) .v19-priority-scale .v19-priority-digit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.v19-task-menu .tm20-priority-row>.v19-priority-scale{display:flex;align-items:baseline;gap:var(--dj-space-2);margin-left:auto}
.v19-task-menu .tm20-priority-row .v19-priority-digit{color:var(--muted);font:var(--dj-text-secondary-weight) var(--dj-text-secondary-size)/var(--dj-text-secondary-line-height) var(--dj-font-functional,inherit)}
.v19-task-menu .tm20-priority-row .v19-priority-digit.is-current{color:var(--ink);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional,inherit)}
.v19-task-menu .priority-menu button{font:inherit!important}

/* (11) значок «Описание» и общий шрифт текста описания */
.v19-task-menu .v19-desc-row>:is(svg,.v22-icon):first-child{flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important;align-self:center!important}
.v19-task-menu .v19-desc-row{gap:var(--dj-space-2)!important}
.v19-task-menu .v19-desc-row>textarea{font-family:inherit!important;font-size:var(--v19-task-menu-reading-size)!important;font-weight:var(--v19-task-menu-reading-weight)!important;line-height:var(--v19-task-menu-reading-line-height)!important}

/* (11) все ведущие значки рядов — один размер и позиция (20px, слева) */
.v19-task-menu :is(.time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers)>button,.v18-artifact-pickers>.v18-reminder,.subtask-panel>.section-head,.v18-comments-head,.v19-desc-row)>:is(.v22-icon,svg):first-child{
  flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important;order:-1!important;
}

/* (5) накопительные меры: поле меры шире, поле числа — под 7-8 знаков; зазор 3px */
.v19-task-menu .v40-measure-row{gap:var(--dj-space-1)!important}
.v19-task-menu .v40-measure-row :is(select,[data-v40-measure],[name=measure],[name=unit]){min-width:100px!important;height:22px!important;min-height:22px!important;box-sizing:border-box!important;flex:0 0 auto!important;font:inherit!important;font-size:var(--dj-text-caption-size)!important;padding:0 var(--dj-space-1)!important}
.v19-task-menu .v40-measure-row input:is([type=number],[type=text],[inputmode=decimal],[inputmode=numeric]){min-width:6.5ch!important;width:7.5ch!important;max-width:76px!important;height:22px!important;min-height:22px!important;box-sizing:border-box!important;flex:0 1 auto!important;font:inherit!important;font-size:var(--dj-text-caption-size)!important;padding:0 var(--dj-space-1)!important}
.v19-task-menu .v40-manual-rules{gap:0!important}
.v19-task-menu .v40-manual-rules+.v40-manual-rules,
.v19-task-menu .v40-manual-rules>[data-v40-comparison]{margin-left:var(--dj-space-1)!important}

/* (8) накопительная считает минуты -> нет своей длительности */
.v19-task-menu .v19-dur-off{opacity:.45!important}
.v19-task-menu .v19-dur-off :is(input,select){pointer-events:none!important}
.v19-task-menu .v19-minutes-note{
  margin:var(--dj-space-1) 0!important;padding:var(--dj-space-1) var(--dj-space-3)!important;font-size:var(--dj-text-secondary-size)!important;
  color:var(--muted,#8a7d68)!important;font-style:italic;
}

/* r26r: чипы данных в напоминаниях и «Сроке» — фон как у полей задачи (не прозрачные) */
.v19-task-menu :is(.v19-reminder-chip,.v19-time-chip){background:var(--panel,#fffdf8)!important}

/* r26u: скрытый исходный textarea названия иногда раздувается до scrollHeight и
 *       ломает высоту шапки — прячем (значение name=title всё равно уходит в форму). */
.v19-task-menu :is(textarea.v35-title-source,textarea.v22-task-title[aria-hidden="true"],.task-head-v09>textarea[name="title"]){display:none!important;height:0!important}

/* r26y: чипы выбора артефактов не должны «прыгать» в размерах между перерисовками
 *       приложения — единый жёсткий вид и до, и после обёртки в .v19-pickers-chips. */
.v19-task-menu :is(.v18-artifact-pickers,.v19-pickers-chips)>button,
.v19-task-menu .v18-artifact-pickers>button[data-v18-wall-picker],
.v19-task-menu .v18-artifact-pickers>button[data-v36-artifact]{
  /* Единый вид ВСЕХ кнопок выбора артефакта = вид «Напоминание». Фон/рамка —
   * тот же цвет, что у прямоугольников-рядов (было «как у заметки/карточки» —
   * теперь наоборот, специально). Высота — ПОСЛЕ короткого эксперимента с
   * 24px пользователь попросил вернуть как было: РАВНА высоте прямоугольников
   * (34px), шрифт/значки не трогаем. */
  box-sizing:border-box!important;height:34px!important;min-height:34px!important;max-height:34px!important;
  padding:var(--dj-space-1) var(--dj-space-2)!important;display:inline-flex!important;align-items:center!important;gap:var(--dj-space-2)!important;
  border:1px solid var(--panel,#fffdf8)!important;border-radius:var(--dj-radius-chip,8px)!important;
  background:var(--panel,#fffdf8)!important;color:var(--accent)!important;
  font:inherit!important;font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-heading-weight)!important;line-height:var(--dj-text-heading-line-height)!important;white-space:nowrap!important;
}
.v19-task-menu :is(.v18-artifact-pickers,.v19-pickers-chips)>button:not([data-dj-extra-artifacts]){margin:0!important}
.v19-task-menu :is(.v18-artifact-pickers,.v19-pickers-chips)>button>:is(.v22-icon,svg){flex:0 0 16px!important;width:16px!important;height:16px!important;margin:0!important}
.v19-task-menu :is(.v18-artifact-pickers,.v19-pickers-chips)>button>span{line-height:var(--dj-text-heading-line-height)!important;font:inherit!important}

/* D-069: основные поля выбора остаются в коротком наборе. После раскрытия
 * «Ещё» тонкий разделитель начинает отдельную группу, а сама кнопка становится
 * явной командой сворачивания. Выбранный родитель — полноценная строка
 * редактора: его длинное имя остаётся в одну строку и заканчивается троеточием. */
.v19-task-menu .v19-pickers-chips>[data-dj-extra-divider]{
  order:4;display:block;flex:0 0 1px;width:1px;height:18px;
  align-self:center;margin:0 var(--dj-space-1);background:var(--line);
}
.v19-task-menu .v19-pickers-chips>[data-dj-extra-divider][hidden]{display:none}

/* ===== r27g: доводка (тэги-текст, кружок напоминаний справа) ===== */

/* тэги: имя тэга ВСЕГДА видно (иконка + текст), не сворачивается в 0 */
.v19-task-menu .v18-artifact-row:is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual) button>span:not(.v22-icon){
  display:inline-block!important;visibility:visible!important;
  width:auto!important;max-width:none!important;min-width:auto!important;
  overflow:visible!important;clip:auto!important;
  font-family:inherit!important;font-size:var(--v19-task-menu-font-size)!important;font-weight:var(--v19-task-menu-font-weight)!important;line-height:var(--v19-task-menu-line-height)!important;
  color:var(--artifact-color,var(--accent))!important;white-space:nowrap!important;
}
.v19-task-menu .v18-artifact-row:is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual) button{
  color:var(--artifact-color,var(--accent))!important;width:auto!important;flex:0 0 auto!important;gap:var(--dj-space-1)!important;
}
/* .v22-icon сам себе ставит color:var(--accent) (см. v22.css) — это ломает
 * currentColor-каскад от кнопки к иконке (svg-иконка красится в акцент, а не
 * в цвет конкретного тега/проекта). Перебиваем color ИМЕННО на иконке. */
.v19-task-menu .v18-artifact-row:is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],[data-artifact-row="project"],[data-artifact-row="idea"],.tag,.stone,.ritual) button>:is(.v22-icon,svg){
  color:var(--artifact-color,var(--accent))!important;
}
/* Тэг — плоский, как Камни (см. ниже): больше не резервируем 36px слева под
 * отдельный «ведущий» значок ряда — он убран, у каждого чипа свой значок. */
.v19-task-menu .v18-artifact-row[data-artifact-row="tag"]{gap:var(--dj-space-1)!important;position:relative!important}
.v19-task-menu .v18-artifact-row[data-artifact-row="tag"]>.v19-tagrow-icon{
  position:absolute!important;left:12px!important;top:50%!important;transform:translateY(-50%)!important;
  width:18px!important;height:18px!important;display:flex!important;align-items:center!important;justify-content:center!important;
  color:var(--muted,#8a7d68)!important;
}
.v19-task-menu .v18-artifact-row[data-artifact-row="tag"]>.v19-tagrow-icon svg{width:18px!important;height:18px!important}
/* Тэги/Ритуал/Проект/Стена — как Камни: просто значок+надпись цвета
 * артефакта, без овала-фона/рамки (было наоборот, овалом — переигрываем). */
.v19-task-menu .v18-artifact-row[data-artifact-row="tag"]>button{
  border:0!important;border-radius:0!important;padding:0 var(--dj-space-1)!important;background:transparent!important;
  font-size:inherit!important;font-weight:inherit!important;line-height:inherit!important;
}
.v19-task-menu .v18-artifact-row[data-artifact-row="tag"]>button>:is(.v22-icon,svg):first-child{width:16px!important;height:16px!important;flex:0 0 16px!important}
/* системные тэги (Веха и пр.) тоже с подписью */
.v19-task-menu .v18-artifact-row:is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual) button[data-v18-system] span:not(.v22-icon){display:inline-block!important}

/* кружок с числом напоминаний — справа, на одной вертикали с кружками комментариев/подзадач */
.v19-task-menu .v18-reminder{display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;padding:0 var(--dj-space-3)!important}
.v19-task-menu .v18-reminder>.v19-count{order:9!important;margin-left:auto!important;flex:0 0 30px!important}
.v19-task-menu .v18-reminder>.v19-reminder-chips{order:5!important;margin-left:0!important;flex:1 1 auto!important;min-width:0!important}
.v19-task-menu .v18-reminder>:is(svg,.v22-icon):first-child{order:-1!important}
/* (1) Нет напоминаний — кнопка «Напоминание» живёт внутри .v19-pickers-chips,
 * только сбрасываем «строка-прямоугольник» (width:100% и т.п. из правил для
 * состояния «есть срок» выше) — размер/цвет/шрифт берёт из общего правила для
 * .v19-pickers-chips>button (единый вид = вид «Напоминание» для всех кнопок). */
.v19-task-menu .v19-pickers-chips>.v18-reminder{width:auto!important}
.v19-task-menu .v19-pickers-chips>.v18-reminder>.v19-reminder-label{order:0!important;flex:0 0 auto!important;white-space:nowrap!important}

/* r27h: в выпадающем меню статуса — ПОКАЗАТЬ подписи пунктов (были только значки).
 * .v22-icon-button / visually-hidden прятали текст — перебиваем жёстко. */
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover):not([hidden]) button{
  font-size:var(--dj-text-secondary-size)!important;color:var(--ink)!important;
  /* (7) Текст в подписи («Сделать задачей» и т.п.) должен реально помещаться —
   * .v22-icon-button держит кнопку на фиксированных 34px, из-за чего длинная
   * подпись либо обрезалась, либо наезжала на соседнюю кнопку. */
  width:auto!important;flex:0 1 auto!important;gap:var(--dj-space-2)!important;padding:0 var(--dj-space-2)!important;
}
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover):not([hidden]) button>span:not(.v22-icon),
.v19-task-menu :is(.v76-task-state-popover,.v84-state-wrap>div,.task-state-popover):not([hidden]) button .v18-state-label{
  position:static!important;clip:auto!important;clip-path:none!important;
  width:auto!important;height:auto!important;max-width:none!important;margin:0!important;padding:0!important;
  overflow:visible!important;white-space:nowrap!important;text-indent:0!important;
  font:inherit!important;font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-heading-weight)!important;line-height:var(--dj-text-title-line-height)!important;
  color:var(--ink)!important;display:inline!important;opacity:1!important;visibility:visible!important;
}

/* ===== r27i: доводка №2 (тест результата) ===== */

/* (5б) плавный ресайз окна — во время анимации не показываем скролл/дёрганье */
.modal.v19-task-menu.v19-resizing{overflow:hidden!important}

/* (баг) «выбор проекта/задачи в датчике виден внутри окна, а не поверх» —
 * родной v41.css дважды явно пишет `.v40-source-popup{overflow:visible}`
 * (чтобы вложенный абсолютно спозиционированный `.v42-source-dropdown` —
 * список проектов/задач — мог вылезать ЗА пределы попапа), но generic-правило
 * из viewport-ui.css (`:is(...,.v40-popup,...){overflow:auto;max-height:...}`,
 * без !important, но грузится ПОСЛЕ v41.css — специфичность у обоих (0,1,0),
 * позже в каскаде побеждает) сводит это обратно к `overflow:auto` — попап
 * становится маленьким скроллящимся окошком (высота по контенту тулбара,
 * ~50px), и весь список проектов/задач схлопывается ВНУТРЬ него со своим
 * скроллом, а не всплывает поверх. Восстанавливаем родное намерение явно,
 * с приоритетом выше, чем у generic-правила (у него нет !important). */
.v40-source-popup{overflow:visible!important}
/* (4) единый ВЕРТИКАЛЬНЫЙ список у пикера артефактов накопительной задачи
 * (был «облако» инлайн-кнопок в столбик — из-за чего выглядел другим меню, чем у задачи) */
.v40-popup.v40-artifact-popup{
  display:flex!important;flex-direction:column!important;gap:var(--dj-space-1)!important;
  width:min(280px,calc(100vw - 16px))!important;
}
.v40-popup.v40-artifact-popup>button{
  display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;
  width:100%!important;min-height:var(--dj-minheight-popup-row,36px)!important;height:auto!important;
  padding:var(--dj-space-1) var(--dj-space-2)!important;border-radius:var(--dj-radius-popup-row,7px)!important;
  text-align:left!important;font:inherit!important;font-weight:var(--dj-text-heading-weight)!important;
}
.v40-popup.v40-artifact-popup>button:hover{background:var(--accent-soft,rgba(0,0,0,.06))!important}
.v40-popup.v40-artifact-popup>button .v22-icon{flex:0 0 20px!important;width:20px!important;height:20px!important;color:inherit!important}
.v40-popup.v40-artifact-popup>button>span{color:inherit!important}

/* «Проект / идея»: значок на пункт + цвет; разделительная линия перед первой идеей */
.v36-artifact-picker .v36-artifact-choice.v19-pi-sep{border-top:1px solid var(--line)!important;margin-top:var(--dj-space-1)!important;padding-top:var(--dj-space-2)!important}
.v36-artifact-picker .v19-pi-icon{flex:0 0 18px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:var(--choice-color,var(--ink))}
.v36-artifact-picker .v19-pi-icon svg{width:18px;height:18px}
/* Значок в списке проектов/идей уже красится в --choice-color (выше), а
 * подпись рядом — нет (для .tag-пикера аналог уже есть ниже, для project/
 * idea не было вовсе) — оставалась чёрной/ink независимо от цвета проекта. */
.v36-artifact-picker:is(.project,.idea) .v36-artifact-choice>span:not(.v19-pi-icon):not(.v22-icon){color:var(--choice-color,var(--ink))!important}

/* Списки БЕЗ множественного выбора (проект/идея) — кружок-радио вместо
 * квадратика-чекбокса: сам чекбокс визуально прячем, рисуем кружок сами.
 * Ритуал — НЕ здесь: задача может входить в несколько ритуалов сразу
 * (multiplechoice), поэтому там остаются обычные квадратики-чекбоксы. */
.v36-artifact-picker:is(.project,.idea) .v36-artifact-choice{gap:var(--dj-space-3)!important}
.v36-artifact-picker:is(.project,.idea) .v36-artifact-choice>input[type="checkbox"]{
  appearance:none!important;-webkit-appearance:none!important;margin:0!important;
  width:16px!important;height:16px!important;min-width:16px!important;flex:0 0 16px!important;
  border:2px solid color-mix(in srgb,var(--choice-color,var(--ink)) 55%,var(--line))!important;
  border-radius:var(--dj-radius-circle,50%)!important;background:transparent!important;position:relative!important;
  box-sizing:border-box!important;cursor:pointer;
}
.v36-artifact-picker:is(.project,.idea) .v36-artifact-choice>input[type="checkbox"]:checked{
  border-color:var(--choice-color,var(--accent))!important;
}
.v36-artifact-picker:is(.project,.idea) .v36-artifact-choice>input[type="checkbox"]:checked::after{
  content:'';position:absolute!important;inset:2.5px!important;border-radius:var(--dj-radius-circle,50%)!important;
  background:var(--choice-color,var(--accent))!important;
}
/* (7) Ритуал — квадратики multiplechoice, цвет как у остальных выборов. */
.v36-artifact-picker.ritual .v36-artifact-choice input[type="checkbox"]{
  accent-color:var(--choice-color,var(--accent))!important;
}

/* (9) камни — галочки все ОДНОГО цвета (родное правило красит accent-color
 * каждого чекбокса в цвет его Стены — визуально «разные квадратики»). */
.v36-artifact-picker.stone .v36-artifact-choice input{accent-color:var(--accent)!important}

/* (3)(4) тэги в пикере ЗАДАЧИ — значок + цвет тега (включая системные), вертикальный список уже есть.
 * Камни/Ритуалы — тот же попап-компонент, тот же визуальный язык (значок+цвет
 * у каждого пункта, см. decorateChoiceIcon в task-menu-r19.js) — расширяем
 * те же правила и на них, а не оставляем «голыми» без значка/цвета. */
.v36-artifact-picker.tag .v36-picker-list{display:flex!important;flex-direction:column!important}
.v36-artifact-picker:is(.tag,.stone,.ritual) .v36-artifact-choice{gap:var(--dj-space-2)!important}
.v36-artifact-picker:is(.tag,.stone,.ritual) .v36-artifact-choice>span:last-child{color:var(--choice-color,var(--ink))!important;font-weight:var(--dj-text-heading-weight)!important}
.v36-artifact-picker:is(.tag,.stone,.ritual) .v19-tag-icon{flex:0 0 20px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--choice-color,var(--ink))}
.v36-artifact-picker:is(.tag,.stone,.ritual) .v19-tag-icon svg{width:20px;height:20px}
.v36-artifact-picker:is(.tag,.stone,.ritual) .v19-tag-icon .v22-icon{color:inherit!important}
/* Нативное «.v36-artifact-choice.inactive span::after{content:' · inactive'}»
 * (v36.css) писалось до появления нашего значка (второй span в строке) — теперь
 * совпадает с ОБОИМИ span'ами и печатает «· inactive» дважды, один раз сразу
 * после иконки. Гасим псевдоэлемент именно у иконки, оставляя пометку только
 * у текста тэга (как и задумано изначально). */
.v36-artifact-picker.tag .v36-artifact-choice.inactive .v19-tag-icon::after{content:none!important}

/* крестик удаления тэга — по наведению/фокусу на строку; у системных тэгов его нет */
.v36-artifact-picker.tag .v36-artifact-choice{position:relative!important;padding-right:var(--dj-space-8)!important}
.v36-artifact-picker.tag .v19-tag-delete{
  position:absolute!important;right:6px!important;top:50%!important;transform:translateY(-50%)!important;
  width:22px!important;height:22px!important;display:none;align-items:center;justify-content:center;
  border-radius:var(--dj-radius-popup-row)!important;color:#b23b3b!important;cursor:pointer;
}
.v36-artifact-picker.tag .v19-tag-delete svg{width:16px!important;height:16px!important}
.v36-artifact-picker.tag .v19-tag-delete:hover{background:color-mix(in srgb,#b23b3b 12%,transparent)!important}
.v36-artifact-picker.tag .v36-artifact-choice:hover .v19-tag-delete,
.v36-artifact-picker.tag .v19-tag-delete:focus-visible{display:inline-flex!important}

/* «новый тэг»: чекбокс вместо кнопки ОК */
.v36-new-tag{display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;padding-left:var(--dj-space-2)!important}
.v19-new-tag-check{display:inline-flex!important;align-items:center!important;margin:0!important;cursor:pointer}
.v19-new-tag-check>input{width:17px!important;height:17px!important;margin:0!important;accent-color:var(--accent)!important;cursor:pointer}
/* Обычные чекбоксы тэгов держат браузерный дефолтный margin (не обнулён нигде
 * раньше) — у нового поля margin:0, отсюда видимый сдвиг ~4px между строками.
 * Обнуляем margin и у обычных, чтобы оба чекбокса стартовали от одного края. */
.v36-artifact-picker.tag .v36-artifact-choice input[type="checkbox"]{width:17px!important;height:17px!important;margin:0!important}

/* (14) у задачи «Когда-нибудь» ряда «Срок» нет вовсе — [hidden] должен реально
 * прятать (общее правило .time-line{display:flex!important} выше по файлу
 * не проверяет :not([hidden]), значит перебивает нативный display:none). */
.v19-task-menu .time-line[hidden]{display:none!important}
.v19-task-menu.v19-task-menu.v19-task-menu .time-line[hidden]{display:none!important}

/* окно отмены (удаление тэга) */
.v19-undo-toast{
  position:fixed!important;right:16px!important;bottom:16px!important;z-index:100000!important;
  display:flex!important;align-items:center!important;gap:var(--dj-space-3)!important;
  padding:var(--dj-space-3) var(--dj-space-4)!important;border-radius:var(--dj-radius-popup,10px)!important;
  background:var(--ink,#2a2620)!important;color:#fff!important;
  box-shadow:0 12px 32px rgba(0,0,0,.28)!important;font-size:var(--dj-text-secondary-size)!important;
}
.v19-undo-toast>button{border:0!important;background:transparent!important;color:#f2c94c!important;font-weight:var(--dj-text-heading-weight)!important;cursor:pointer;padding:0!important}

/* (7) видимая подпись P1..P4 во ВСЕХ попапах выбора приоритета (не только в меню задачи) */
.priority-menu button,.mini-priority-menu button,.v17-priority-grid button,
.v47-priority-popover button,.v25-priority-picker button{
  width:auto!important;min-width:38px!important;height:auto!important;min-height:34px!important;
  display:inline-flex!important;align-items:center!important;gap:var(--dj-space-1)!important;padding:var(--dj-space-1) var(--dj-space-2)!important;
}
.v19-pchip-label{font:inherit;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight);color:inherit}

/* (2) многострочное описание — по умолчанию свёрнуто в одну строку, стрелка справа раскрывает */
.v19-task-menu .v19-desc-row{position:relative!important}
.v19-task-menu .v19-desc-row.v19-desc-has-toggle{padding-right:calc(var(--dj-space-8) + var(--dj-space-1))!important}
.v19-task-menu .v19-desc-row textarea.v19-desc-textarea-hidden{display:none!important}
.v19-task-menu .v19-desc-row .v19-desc-preview{
  display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  font-family:inherit!important;font-size:var(--v19-task-menu-reading-size)!important;font-weight:var(--v19-task-menu-reading-weight)!important;
  line-height:var(--v19-task-menu-reading-line-height)!important;color:var(--ink)!important;cursor:pointer!important;min-height:1.35em!important;
}
.v19-task-menu .v19-desc-row .v19-desc-preview[hidden]{display:none!important}
.v19-task-menu .v19-desc-toggle{
  position:absolute!important;right:8px!important;top:6px!important;width:22px!important;height:22px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  color:var(--muted,#8a7d68)!important;cursor:pointer!important;border-radius:var(--dj-radius-popup-row)!important;
  transition:transform .18s ease!important;
}
.v19-task-menu .v19-desc-toggle:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)!important}
.v19-task-menu .v19-desc-toggle.v19-desc-toggle-open{transform:rotate(-90deg)!important}
.v19-task-menu .v19-desc-toggle svg{width:16px!important;height:16px!important}

/* (3 доп.) чипы «Срок»/«Напоминания» — чуть мельче текст, чуть светлее фон.
 * ВНИМАНИЕ: строка 4 (".v19-task-menu :is(...) span:not(.v22-icon){font:inherit!important}")
 * имеет специфичность (0,3,2) — выше нашей (0,2,0) — и раньше выигрывала font-size,
 * несмотря на порядок в файле. Утраиваем класс .v19-task-menu, чтобы гарантированно
 * перебить это по b-уровню специфичности (0,4,0) > (0,3,2). */
.v19-task-menu :is(.v19-reminder-chip,.v19-time-chip){
  background:color-mix(in srgb,#8a7a5f 8%,var(--panel,#fffdf8))!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu :is(.v19-reminder-chip,.v19-time-chip){
  font-size:var(--v19-task-menu-secondary-size)!important;
}

/* подсказка в диалоге напоминаний, когда пресеты недоступны без срока/начала */
.v19-reminder-need-date{
  margin:0 0 var(--dj-space-2)!important;padding:var(--dj-space-2) var(--dj-space-2)!important;border-radius:var(--dj-radius-chip)!important;
  background:color-mix(in srgb,var(--accent) 8%,transparent)!important;
  color:var(--muted,#8a7d68)!important;font-size:var(--dj-text-secondary-size)!important;line-height:var(--dj-text-reading-line-height)!important;
}

/* ===== r27j: доводка №3 (тест результата, часть 2) ===== */

/* время/приоритет — всплывающие меню ВСЕГДА поверх любых модалок, включая
 * мини-редактор подзадачи (тот держит z-index:110, а .time-menu был на 70 — тонул) */
.time-menu,.v13-time-menu,.v17-time-menu,.v38-time-menu{z-index:99999!important}

/* скроллбар модалки задачи/цели — нигде не виден (в т.ч. «выше названия») */
.modal.v19-task-menu{scrollbar-width:none!important}
.modal.v19-task-menu::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
.modal-backdrop.v19-backdrop{scrollbar-width:none!important}
.modal-backdrop.v19-backdrop::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}

/* ===== r30j ===== */
/* (26) Выполненная/проваленная подзадача — перечёркнутый текст, как у обычной
 * задачи в списке (.task-title.done); родной шаблон подзадачи навешивает
 * класс статуса (done/failed/...) на .status-label, а не на .task-title —
 * своего правила зачёркивания для этого класса нигде не было. */
.v19-task-menu .subtask-panel .status-label.done{text-decoration:none;color:var(--muted)!important}
.v19-task-menu .subtask-panel .status-label.failed{color:var(--accent)!important}

/* (28) Комментарии в меню задачи: полный список должен раскрываться сразу
 * (JS выше принудительно снимает hidden с .compact-feed-all), без своей
 * внутренней прокрутки — client-refinements.css вешает на неё
 * `max-height:160px!important;overflow:auto` (второй скролл-бокс внутри уже
 * скроллящейся формы); здесь эта верхняя граница не нужна вовсе. */
.v19-task-menu .v18-comments .compact-feed-all{max-height:none!important;overflow:visible!important}
/* .compact-feed-last остаётся видимым даже когда полный список открыт
 * (v84.css: `.v84-compact-feed:not(.collapsed)>.compact-feed-last{display:
 * block!important}`) — раз последний комментарий и так последняя строка
 * полного списка, эта отдельная строка-дубликат прячется (JS выше ставит ей
 * `hidden`; здесь просто даём этому реально сработать поверх чужого
 * `!important` — [hidden] сам по себе такого не бьёт). */
.v19-task-menu .v18-comments .compact-feed .compact-feed-last[hidden]{display:none!important}
/* Кнопка «Все комментарии» становится не у дел — список и так всегда открыт
 * целиком; оставлять её видимой значило бы дать пользователю нажать на явно
 * рабочую на вид кнопку и не увидеть эффекта (наш JS тут же откроет список
 * заново на следующем проходе). */
.v19-task-menu .v18-comments .compact-feed-head [data-feed-expand]{display:none!important}

/* (37) Стрелка «Комментарии» — системного цвета (var(--accent)), не приглушённого
 * .v18-comments и .subtask-panel делят одно правило (color:var(--muted)…);
 * поднимаем специфичность лишним классом-предком, чтобы переопределить именно
 * и только комментарии, не трогая стрелку подзадач. */
.v19-task-menu .v18-comments .v18-comments-head>[data-v18-comments-toggle]{color:var(--accent)!important}

/* Android WebView shares this runtime with web/Windows. Its task card rises
   under the measured one- or two-row app header, leaving system bars and the
   bottom navigation clear. Desktop keeps the centered presentation above. */
html.v19-native-task-window .modal-backdrop.v19-backdrop>.modal.v19-task-menu{
  left:calc((100vw + var(--v78-sidebar-width,0px))/2)!important;
  top:var(--v19-native-task-top,70px)!important;
  width:min(620px,calc(100vw - var(--v78-sidebar-width,0px) - 24px))!important;
  max-width:calc(100vw - var(--v78-sidebar-width,0px) - 24px)!important;
  min-width:0!important;
  max-height:calc(100dvh - var(--v19-native-task-top,70px) - var(--v78-bottom-space,0px) - 8px)!important;
  transform:translateX(-50%)!important;
}
@keyframes v19-native-slide-in{
  from{transform:translate(-50%,100vh);opacity:.15}
  to{transform:translate(-50%,0);opacity:1}
}
html.v19-native-task-window .modal-backdrop.v19-backdrop>.modal.v19-task-menu.v19-anim-in{
  animation:v19-native-slide-in .45s cubic-bezier(.22,.68,.24,1)!important;
}
html.v19-native-task-window .modal-backdrop.v19-leaving>.modal.v19-task-menu{
  transform:translate(-50%,100vh)!important;
}
@media (prefers-reduced-motion:reduce){
  html.v19-native-task-window .modal-backdrop.v19-backdrop>.modal.v19-task-menu.v19-anim-in{animation:none!important}
}

/* ============================================================================
 * r36 — единый «стек» прямоугольников (2026-09-14, детальная просьба
 * пользователя, все 3 типа меню: обычная/датчик/ручная задача).
 * Срок…Приоритет…выбранные артефакты…поле выбора артефактов…Подзадачи…
 * Датчик-критерии…Комментарии визуально сливаются в ОДИН непрерывный список:
 * нулевой зазор между ВСЕМИ прямоугольниками, скруглены только САМЫЕ внешние
 * углы всего стека (верх у первого, низ у последнего), у остальных — прямые
 * (включая «внутренние» углы крайних рядов). «Секционные» заголовки
 * (Подзадачи/Комментарии/Датчик/Число) становятся прозрачными швами стека —
 * без рамки/фона, не своим прямоугольником. Поле выбора артефактов (пикер)
 * уменьшается по высоте и переезжает ВНУТРЬ одного прямоугольника обычного
 * вида. Единая горизонтальная сетка на всех рядах: значок — с одного и того
 * же отступа слева, текст/контент — с одного и того же отступа после значка.
 * Крайние ряды стека определяет JS (v19StackEdges, task-menu-r19.js) —
 * состав видимых рядов меняется на каждый проход (свёрнуты комментарии, нет
 * тэгов, датчик/ручная — разная структура), а флекс-order уже даёт визуальный
 * порядок, отличный от DOM-порядка — чистым :first-child/:last-child через
 * настолько разнородные вложенные обёртки это не выразить.
 * ========================================================================== */

/* --- нулевой шаг между ВСЕМИ прямоугольниками стека ---
 * «Описание» (.v19-desc-row) при непустом значении/фокусе переезжает в
 * начало формы (см. descriptionArtifact в JS) — становится визуально ПЕРВЫМ
 * рядом стека вместо «Срока». Логика (нулевой зазор, скругление только у
 * крайних) действует и тогда — по прямому уточнению пользователя. */
.v19-task-menu :is(
  .time-line,.v18-priority-row,.v19-desc-row,.v18-artifact-row:not(.v18-artifact-pickers),
  .v18-artifact-pickers,.subtask-panel>.section-head,.subtask-panel .subtask-line,
  .v19-datchik-header-row,.v19-datchik-criteria .v42-source-line,
  .v40-measure-row:not(.v19-datchik-header-row),.v18-comments-head,.v18-comments .feed-entry
){margin:0!important}
.v19-task-menu .subtask-panel,.v19-task-menu .v18-comments,.v19-task-menu .v19-datchik-criteria{margin:0!important;gap:0!important}
/* :not([hidden]) — иначе безусловный display:flex!important перебивал
 * родной [hidden] на этой же обёртке (список подзадач сворачивает/
 * разворачивает ИМЕННО через hidden-атрибут на этом div) — подзадачи
 * оставались видны ВСЕГДА, стрелка сворачивания переставала на что-либо
 * влиять (баг, найден пользователем: «подзадачи не раскрываются» —
 * реально они и не сворачивались, показывались одинаково в обоих
 * состояниях). */
.v19-task-menu .subtask-panel>div:not(.section-head):not([hidden]){display:flex!important;flex-direction:column!important;gap:0!important;margin:0!important;padding:0!important}
.v19-task-menu .subtask-panel>div[hidden]{display:none!important}
.v19-task-menu .compact-feed,.v19-task-menu .compact-feed-all,.v19-task-menu .compact-feed-last{gap:0!important;margin:0!important}

/* --- по умолчанию: прямые углы у ВСЕХ рядов стека (включая «внутренние» углы крайних) --- */
.v19-task-menu :is(
  .time-line,.v18-priority-row,.v19-desc-row,.v18-artifact-row:not(.v18-artifact-pickers),
  .v18-artifact-pickers,.subtask-panel .subtask-line,
  .v19-datchik-criteria .v42-source-line,.v18-comments .feed-entry
){border-radius:0!important}

/* --- скругление только у фактически первого/последнего видимого ряда всего стека
 * (см. v19StackEdges). Специфичность подстрахована повтором класса формы:
 * ":is(...)" в правиле «прямые углы» выше содержит 2-классовые альтернативы
 * (.subtask-panel .subtask-line и т.п.) — по спеке ":is()" берёт СВОЮ
 * специфичность как МАКСИМУМ среди всех альтернатив в списке, а не как у
 * конкретно совпавшей — поэтому даже для простого .time-line та :is()-строка
 * реально весит как (0,3,0), выше простого .v19-task-menu .v19-stack-first
 * (0,2,0), и побеждала несмотря на более поздний порядок в файле. */
.v19-task-menu.v19-task-menu .v19-stack-first{border-top-left-radius:var(--v19-row-radius,10px)!important;border-top-right-radius:var(--v19-row-radius,10px)!important}
.v19-task-menu.v19-task-menu .v19-stack-last{border-bottom-left-radius:var(--v19-row-radius,10px)!important;border-bottom-right-radius:var(--v19-row-radius,10px)!important}

/* --- секционные «швы»: Подзадачи/Комментарии — без рамки и фона задачи.
 * Специфичность утроена намеренно: html[data-interface-design="classic"] в
 * project-ideas-r21.css форсирует белый фон на этих же рядах с весом (0,3,1)
 * (голый селектор `html` в её цепочке добавляет тип-тир, которого не было в
 * нашем изначальном (0,3,0) — тип-тир побеждает при равном классовом тире
 * независимо от порядка файлов). Утроенный якорь даёт (0,4,0) — обходит по
 * классовому тиру уже без оглядки на тип-тир соперника.
 * (баг, найден живой проверкой под темой "classic") `.v19-datchik-header-row`
 * и `.v40-measure-row:not(.v19-datchik-header-row)` раньше ТОЖЕ были в этом
 * списке — с изначального замысла (§164/166), когда «Датчик»/«Число» были
 * простыми текстовыми «швами», как «Подзадачи»/«Комментарии». Но оба давно
 * получили СОБСТВЕННЫЕ формулы рамки/фона (см. выше по файлу — полноценный
 * прямоугольник в стиле «Срока», а не шов) — при РАВНОЙ утроенной
 * специфичности с этим правилом побеждал более поздний порядок в файле
 * (ЭТО правило), т.е. их border/background молча стирались обратно в 0/
 * transparent КАЖДЫЙ раз, независимо от темы — обе строки все прошлые
 * раунды жили без рамки и фона, хотя их собственные формулы выглядели
 * рабочими в коде. Убраны из списка — их фон/рамка теперь наконец
 * побеждают, как и задумано их собственными правилами. */
.v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head){
  border:0!important;background:transparent!important;box-shadow:none!important;
}

/* --- Подзадачи/Комментарии — каждая ОТДЕЛЬНАЯ запись тоже прямоугольник (формула
 * как у «Описание»: высота по контенту, не жёстко 34px — комментарий может быть
 * многострочным, обрезать/ломать текст не нужно). --- */
.v19-task-menu.v19-task-menu.v19-task-menu .subtask-panel .subtask-line,
.v19-task-menu.v19-task-menu.v19-task-menu .v18-comments .feed-entry{
  box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:var(--dj-task-content-min-height,34px)!important;
  padding:var(--dj-task-content-padding-y,var(--dj-space-2)) var(--dj-task-property-padding-x,var(--dj-space-3))!important;
  border:1px solid var(--panel,#fffdf8)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu .subtask-panel .subtask-line{
  font-size:var(--v19-task-menu-font-size)!important;font-weight:var(--v19-task-menu-font-weight)!important;line-height:var(--v19-task-menu-line-height)!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu .v18-comments .feed-entry{
  font-size:var(--v19-task-menu-reading-size)!important;font-weight:var(--v19-task-menu-reading-weight)!important;line-height:var(--v19-task-menu-reading-line-height)!important;
}
.v19-task-menu .subtask-panel .subtask-line>:is(.task-state-check,.v22-icon-button):first-child{flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important}
/* Статус подзадачи («Активна»/«Успех»/...) — по прямой просьбе пользователя
 * вправо (был сразу после названия, слева-по-центру). */
.v19-task-menu .subtask-panel .subtask-line>.chip{margin-left:auto!important;flex:0 0 auto!important}
/* Комментарий — по прямой просьбе пользователя дата+текст выровнены
 * ВПРАВО (align-items:flex-end, не flex-start как у остальных «иконных»
 * рядов — у записи комментария своего ведущего значка нет вовсе, поэтому
 * общий 40px-отступ под значок тут не нужен, убран). Родная разметка несёт
 * .feed-attachments ВСЕГДА, даже без вложений — пустой div всё равно
 * участвует в раскладке (лишняя пустая строка, замечено пользователем) —
 * прячем именно когда пуст. */
/* (55) Реверс (§167п6): дата+текст комментария — снова ВЛЕВО, не вправо
 * (прямая новая просьба «сдвинуть влево»). Утроенный якорь — иначе более
 * ранний общий блок «единая мини-формула чипа» (align-items:center на
 * .subtask-line/.feed-entry разом, тоже с утроенным якорем) выигрывает по
 * специфичности несмотря на более поздний порядок в файле (тот же класс
 * ошибки, что уже дважды пойман в этом файле — см. §164/166). */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-comments .feed-entry{flex-direction:column!important;align-items:flex-start!important;gap:var(--dj-space-1)!important;text-align:left!important;position:relative!important}
.v19-task-menu .v18-comments .feed-entry .feed-entry-time{font-size:var(--dj-text-caption-size,11px)!important;font-weight:var(--dj-text-caption-weight,600)!important;line-height:var(--dj-text-caption-line-height,1.5)!important;color:var(--muted,#8a7d68)!important;order:-1}
.v19-task-menu .v18-comments .feed-entry .v56-feed-actions{align-self:flex-end!important;margin-top:var(--dj-space-1)!important}
.v19-task-menu .v18-comments .feed-entry .feed-attachments:empty{display:none!important;margin:0!important;padding:0!important}

/* --- Артефакт-пикер: меньше по высоте, цвет фона задачи, ВНУТРИ одного
 * прямоугольника как остальные (не отдельно «Напоминание» + отдельная
 * дорожка чипов россыпью). Уточнение пользователя: пикер НЕ должен визуально
 * вылезать за пределы своего прямоугольника — сам скроллится ВНУТРИ него
 * (overflow:hidden на обёртке, overflow-x:auto только на внутренней дорожке
 * чипов, которая и так уже это умеет). --- */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-pickers{
  display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;
  align-items:stretch!important;
  box-sizing:border-box!important;width:100%!important;height:auto!important;min-height:var(--dj-task-property-min-height,34px)!important;
  padding:var(--dj-task-content-padding-y,var(--dj-space-2)) var(--dj-task-property-padding-x,var(--dj-space-3))!important;gap:var(--dj-space-1)!important;
  border:1px solid var(--panel,#fffdf8)!important;
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  overflow:hidden!important;
}
.v19-task-menu .v18-artifact-pickers>.v18-reminder{
  height:auto!important;min-height:0!important;max-height:none!important;flex:0 0 auto!important;
  border:0!important;background:transparent!important;padding:0!important;margin:0!important;
}
/* --- Уточнение пользователя: поля выбора (пикер) И уже выбранные артефакты —
 * прямоугольники ОДНОЙ высоты (сначала было 28px, ещё уменьшено по прямой
 * просьбе до 22px), фон у обоих — цвет фона самой задачи/модалки
 * (var(--panel)), НЕ цвет обёртки-ряда (тёплый тон) и НЕ цвет артефакта.
 * :not([data-v18-wall-picker]) — иначе этот же !important-блок (по высокой
 * специфичности, нужной против конкурентов из §164/165) попутно перебивал
 * ДРУГОЕ, более раннее правило display:none у «Стены» (которая по решению
 * пользователя вообще не должна появляться в пикере — присваивается
 * автоматически по Камню, см. v19SyncWallsFromStones) — «Стена» протекала
 * обратно в список пикера как обычная видимая кнопка.
 * (48) Проект/Идея — по прямой поправке пользователя УБРАНЫ из этого
 * списка: «там где один вариант — просто текст + значок нужного цвета, ни
 * в каком кружочке/чипе». Чип-формула (рамка/фон/radius) — только для
 * артефактов, где МОЖЕТ быть несколько значений разом (тэг/камень/ритуал)
 * и каждое реально нужно визуально отделить друг от друга; Проект/Идея —
 * всегда ровно одно значение, отдельная «капсула» вокруг него не нужна,
 * то же самое, что и у «Срока»/«Приоритета» (голый значок+текст). См. ниже
 * отдельное правило для Проекта/Идеи (только цвет значка, без чипа).
 * (50) ПОПРАВКА (пользователь, «и ещё раз»): цвет значка/надписи/рамки
 * выбранного АРТЕФАКТА — свой (цвет самого артефакта), НЕ системный. Общий
 * системный/нейтральный вид остаётся ТОЛЬКО у полей выбора (пикер-чипов —
 * они не представляют конкретный цветной артефакт, только тип) — поэтому
 * ниже формула снова разделена на два отдельных правила вместо одного :is()
 * на оба сразу; фон при этом остаётся общим (цвет фона задачи) — эта
 * часть поправки не касалась, только icon/text/border. */
/* (54) Фон полей выбора — по прямой просьбе пользователя, как у «больших
 * прямоугольников» (тёплый тон обёртки-ряда, ТОТ ЖЕ color-mix, что несёт
 * сама `.v18-artifact-pickers`), а не плоский var(--panel). Реверс части
 * правки (48)/(53) — там фон был именно var(--panel) («цвет фона
 * задачи»), теперь наоборот. */
.v19-task-menu.v19-task-menu.v19-task-menu .v19-pickers-chips>button:not([data-v18-wall-picker]){
  height:22px!important;min-height:22px!important;box-sizing:border-box!important;
  display:inline-flex!important;align-items:center!important;gap:var(--dj-space-2)!important;
  padding:0 var(--dj-space-2)!important;border-radius:var(--dj-radius-chip,8px)!important;
  /* (59→62) «Напоминание»/«Описание»/«Камни» и т.п. — прошли через var(--panel)
   * (с прозрачностью, потом без) и в итоге унифицированы на тот же тёплый
   * тон, что и все прямоугольники стека (см. правило у «Срока»/«Приоритет»
   * выше по файлу) — «должны быть одинакового цвета» по прямой просьбе. */
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  /* (65) Граница поля выбора артефакта — по прямой просьбе системного
   * цвета (var(--accent)), НЕ цвета фона — это отличает поля ВЫБОРА
   * (действие) от обычных прямоугольников-СОДЕРЖИМОГО (те — цвета фона
   * задачи, см. правило выше по файлу). */
  border:1px solid var(--accent)!important;
  color:var(--ink)!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu .v19-pickers-chips>button:not([data-v18-wall-picker])>:is(.v22-icon,svg){
  width:var(--dj-icon-compact,16px)!important;height:var(--dj-icon-compact,16px)!important;flex:0 0 var(--dj-icon-compact,16px)!important;color:var(--accent)!important;
}
/* (51) Высота чипа артефакта — по прямой просьбе пользователя снова
 * изменена: теперь РАВНА высоте ряда «Срок» (34px — тот же
 * `--v19-row-radius`-формат, не маленькая 22px-пилюля, как было).
 * «Небольшой отступ от границы прямоугольника до значка» — чуть больше
 * horizontal padding (10px вместо прежних 8px), значок остаётся 20px (как
 * везде в единой сетке), а не уменьшенный 14px пикер-чипа. Поле выбора
 * (.v19-pickers-chips>button) в это правило НЕ входит — просьба была
 * именно про «прямоугольники артефактов», не про поля выбора. */
/* (53) ДВЕ поправки разом, по прямому скриншоту пользователя:
 * (а) цвет читался из НЕПРАВИЛЬНОЙ custom-property — `--v19-artifact-color`
 * реально стоит на уровне РЯДА целиком (один на весь `.v18-artifact-row`,
 * задумано для одноцветной строки Проекта/Идеи) и наследуется ОДИНАКОВО
 * во ВСЕ дочерние кнопки — при нескольких тэгах в одном ряду все они
 * получали цвет ПЕРВОГО тэга. Родной инлайн-стиль на каждой КНОПКЕ несёт
 * СВОЙ, настоящий цвет именно этого элемента — `--artifact-color` (без
 * «v19-»-префикса). Переключено на неё.
 * (б) высота — снова 22px (=высота полей выбора), реверс правки (51) на
 * 34px — по прямой новой просьбе «уменьшить до размеров полей выбора». */
/* (57) Скругление чипа артефакта — то же, что у «Срока» (var(--v19-row-
 * radius,10px)), не отдельный маленький radius:8px. Отступ значок↔рамка
 * чуть увеличен (10px было 8px, «немного», по прямой просьбе). */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual)>button{
  height:22px!important;min-height:22px!important;box-sizing:border-box!important;
  display:inline-flex!important;align-items:center!important;gap:var(--dj-space-1)!important;
  padding:0 var(--dj-space-3)!important;border-radius:var(--v19-row-radius,10px)!important;
  /* (59→62) Прошло через var(--panel) (с прозрачностью, потом без) и в
   * итоге унифицировано на тот же тёплый тон, что и все прямоугольники
   * стека — та же формула, что у «Срока» и «Напоминания». */
  background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important;
  /* 30%, не 40% — тот же процент подмеса, что у рамки «Срока» (color-mix
   * ...30%,var(--line)) — при 40% рамка того же 1px читалась визуально
   * «толще» из-за более насыщенного цвета артефакта, хотя физическая
   * ширина была идентична (проверено: оба 1px, без doп. box-shadow). */
  border:1px solid color-mix(in srgb,var(--artifact-color,var(--accent)) 30%,var(--line))!important;
  color:var(--artifact-color,var(--ink))!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual)>button>:is(.v22-icon,svg){
  width:var(--dj-icon-compact,16px)!important;height:var(--dj-icon-compact,16px)!important;flex:0 0 var(--dj-icon-compact,16px)!important;color:var(--artifact-color,var(--accent))!important;
}
/* (74) Тэг — по прямой просьбе выделен из общей тэг/камень/ритуал формулы,
 * та же визуализация, что и у тэгов в других меню (task-presentation.js):
 * прямоугольник ПОЛНОСТЬЮ залит цветом тэга (не разбавленным тоном),
 * текст — чёрный/белый по контрасту (--v19-tag-contrast, считает JS —
 * v19TagChips(), тот же принцип, что contrastOn() в task-presentation.js).
 * Обычный тэг — БЕЗ значка «тэг» вовсе; системный тэг — значок остаётся,
 * но цветом СОВПАДАЕТ с текстом (тот же контраст), не цветом тэга. */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button{
  background:var(--artifact-color,var(--accent))!important;
  border-color:var(--artifact-color,var(--accent))!important;
  color:var(--v19-tag-contrast,var(--ink))!important;
  /* симметричный паддинг — тэг больше не несёт свой собственный ведущий
   * значок для выравнивания с рядом (см. padding-left:0 чуть ниже по
   * файлу, общий для тэг/камень/ритуал/проект — тэг явно из него
   * исключён отдельным правилом ещё ниже). */
}
/* (74б) Старое правило `...tag,.stone,.ritual) button>span:not(.v22-icon)
 * {color:var(--artifact-color...)}` чуть выше по файлу (r27g, «тэги: имя
 * тэга ВСЕГДА видно») красило текст тэга в цвет самого тэга ещё ДО того,
 * как появился контраст (--v19-tag-contrast); та же специфичность,
 * но тэг там встречается позже в списке :is(), не важно — обе строки
 * применяются к одному элементу, и то правило истинно только по
 * специфичности/порядку. Перебиваем именно для тэга — явной, более
 * специфичной привязкой, текст должен быть контрастным, не цветом тэга. */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button>span:not(.v22-icon){
  color:var(--v19-tag-contrast,var(--ink))!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button:not([data-v18-system])>:is(.v22-icon,svg){
  display:none!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button[data-v18-system]>:is(.v22-icon,svg){
  color:var(--v19-tag-contrast,var(--ink))!important;
}
/* Проект/Идея — единственное значение, БЕЗ чипа: прозрачный фон/без рамки
 * (наследуется от старой базовой формулы .v18-artifact-row>button — border:
 * 0;background:transparent), содержимое по факту текста (не на всю ширину
 * ряда — см. правило width:auto выше, «(46)»), значок системного цвета. */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="project"],[data-artifact-row="idea"])>button{
  border:0!important;background:transparent!important;border-radius:0!important;
  height:auto!important;min-height:0!important;padding:0!important;
  /* (68) По прямой просьбе — текст названия проекта/идеи чёрный
   * (var(--ink)), значок остаётся цвета проекта/идеи (правило ниже) — то
   * же разделение, что теперь и у Камня. */
  color:var(--ink)!important;
}
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="project"],[data-artifact-row="idea"])>button>:is(.v22-icon,svg){
  color:var(--artifact-color,var(--accent))!important;
}
/* (68) Камень — по прямой просьбе выделен из общей тэг/камень/ритуал
 * формулы: рамка = ПОЛНЫЙ (не разбавленный) цвет камня, текст — чёрный
 * (var(--ink)); значок остаётся цвета камня — та же общая иконка-формула
 * чуть ниже уже это даёт, трогать не нужно. */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="stone"]>button{
  border-color:var(--artifact-color,var(--accent))!important;
  color:var(--ink)!important;
}
/* width:100% (не auto/по контенту) — иначе при align-items:center на
 * обёртке этот ряд центрируется по своей natural-ширине и при переполнении
 * съезжает влево за пределы паддинга обёртки (обнаружено пользователем —
 * «поля выбора начинаются не слева»); со stretch на обёртке (см. выше) это
 * уже не обязательно, но оставляем на случай смены align-items назад. */
/* (71) По прямой просьбе — скролл полей выбора должен доходить до самых
 * границ большого прямоугольника, а не останавливаться на паддинге
 * обёртки (.v18-artifact-pickers несёт padding:0 12px ради общего отступа
 * — нужного, например, «Напоминанию» внутри той же обёртки). Стандартный
 * приём «bleed»: сама скроллящаяся дорожка чуть ШИРЕ родителя (на те же
 * 12px с каждой стороны через отрицательный margin) и получает СВОЙ такой
 * же padding — визуально ничего не сдвигается в состоянии покоя, но
 * теперь этот отступ — ЧАСТЬ скроллящегося содержимого, а не жёсткая
 * рамка снаружи, поэтому докручивается до истинного края. */
.v19-task-menu.v19-task-menu.v19-task-menu .v19-pickers-chips{width:calc(100% + 24px)!important;flex-shrink:1!important;margin:0 -var(--dj-space-3)!important;padding:0 var(--dj-space-3)!important;box-sizing:border-box!important;min-height:0!important;height:22px!important;overflow-x:auto!important}
/* «Хвост» — прямоугольник-заполнитель, дорисовывавший пустое место справа
 * от чипов в цвет обычного ряда — по прямой просьбе пользователя убран: он
 * был нужен, когда дорожка чипов выглядела как САМОСТОЯТЕЛЬНЫЙ ряд без
 * своей обёртки; теперь чипы и так внутри одного прямоугольника-пикера,
 * дорисовывать за ними уже нечего. */
.v19-task-menu .v19-pickers-chips::after{content:none!important;display:none!important}

/* --- Ведущий значок ряда у Тэгов/Ритуалов/Камней (v19-artifact-row-icon,
 * см. task-menu-r19.js) — тот же слот/цвет/выравнивание, что у значка любой
 * другой строки стека (системный акцент, а не цвет артефакта). --- */
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers) .v19-artifact-row-icon{
  order:-1!important;flex:0 0 20px!important;width:20px!important;height:20px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
}
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers) .v19-artifact-row-icon .v22-icon,
.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers) .v19-artifact-row-icon svg{
  width:20px!important;height:20px!important;color:var(--accent)!important;
}

/* --- единая горизонтальная сетка: значок всегда с одного отступа слева (12px
 * до значка, значок 20px, 8px до текста → текст/контент везде начинается
 * ровно с 40px от левого края прямоугольника). Ряды БЕЗ значка (запись
 * комментария) получают тот же отступ текста явным padding-left (см. выше).
 * «Напоминание» (.v18-artifact-pickers>.v18-reminder) сюда НЕ входит — он
 * уже лежит ВНУТРИ обёртки-пикера, у которой свой padding-left:12px; если
 * дать ему ЕЩЁ и свой такой же паддинг, инсет удваивается (24px вместо
 * 12px) и значок съезжает вправо относительно «Срока»/остальных строк
 * (баг, найден пользователем на живом скриншоте). --- */
.v19-task-menu :is(
  .time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers)>button,
  .subtask-panel>.section-head,.subtask-panel .subtask-line,
  .v19-datchik-header-row,.v40-measure-row:not(.v19-datchik-header-row),.v18-comments-head
){padding-left:var(--dj-space-3)!important}
.v19-task-menu .v18-artifact-pickers>.v18-reminder{padding-left:0!important}
/* Разделительная линия между «Напоминанием» и рядом чипов ВНУТРИ одной
 * обёртки-пикера — по прямой просьбе пользователя (раньше их разделял
 * только gap:4px без видимой границы, выглядело как один слипшийся блок). */
.v19-task-menu .v18-artifact-pickers>.v18-reminder{
  padding-bottom:var(--dj-space-2)!important;margin-bottom:calc(0px - var(--dj-space-1))!important;
  border-bottom:1px solid color-mix(in srgb,#8a7a5f 30%,var(--line))!important;
  /* border-radius:0 — иначе радиус 10px от старого правила (~404, из-под
   * которого только border был обнулён другим более ранним правилом, а
   * border-radius — никем) заставлял этот единственный нижний бордер
   * закругляться по краям («странная дуга», не прямая линия, см. скриншот
   * пользователя) вместо обычной прямой черты, как везде в стеке. */
  border-radius:0!important;
}
.v19-task-menu :is(
  .time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers)>button,
  .subtask-panel .subtask-line,.v18-artifact-pickers>.v18-reminder
) > :is(.v22-icon,svg,.task-state-check,.v58-priority-flag,.priority-flag):first-child{
  flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important;
  /* min-width — иначе родной .priority-flag.v22-icon-button (v23.css) даёт
   * min-width:28px (не просто width), а min-width побеждает более узкий
   * width/flex-basis независимо от !important на width — «Приоритет» текст
   * съезжал на 8px правее остальных подписей (найдено пользователем). */
  min-width:20px!important;
}
.v19-task-menu :is(
  .time-line,.v18-priority-row,.v18-artifact-row:not(.v18-artifact-pickers)>button,
  .subtask-panel>.section-head,.subtask-panel .subtask-line,.v18-comments-head,
  .v18-artifact-pickers>.v18-reminder
){gap:var(--dj-space-2)!important}

/* --- множественные значения одного типа артефакта (тэги/камни/ритуалы,
 * включая системные тэги) — каждое своим маленьким прямоугольничком, со
 * значком+названием внутри общего ряда-обёртки (высота/фон/рамка/значок —
 * см. единую мини-формулу чипа чуть выше, общую с полями выбора). Системные
 * тэги раньше оставались только значком — принудительно показываем подпись
 * и им тоже (родная разметка кладёт текст в тот же span, его просто
 * скрывали). */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],[data-artifact-row="project"],.tag,.stone,.ritual)>button[data-v18-system] span:not(.v22-icon){
  display:inline-block!important;overflow:visible!important;clip:auto!important;width:auto!important;height:auto!important;position:static!important;
}
/* padding-left:0 ПОВЕРХ единой мини-формулы чипа (которая даёт симметричный
 * padding:0 8px) — намеренно, только для артефакт-чипов (не для полей
 * выбора): первый чип в ряду и так получает выравнивание значка через
 * padding-left:12px САМОГО РЯДА (единая сетка выше по файлу) — если у чипа
 * есть ЕЩЁ и свой левый паддинг поверх, значок первого чипа съезжает на
 * 12+8=20px вместо 12px, ломая жёсткое выравнивание с остальными рядами.
 * Между чипами зазор даёт gap ряда (не паддинг чипа), 2й+ чип не слипается.
 * Поля выбора (.v19-pickers-chips) в эту сетку НЕ входят (не часть системы
 * выравнивания «первый значок строки») — их симметричный паддинг не трогаем. */
.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="stone"],[data-artifact-row="ritual"],[data-artifact-row="project"],.stone,.ritual)>button{
  padding-left:0!important;
}
/* (74) Тэг исключён из правила выше — у него больше нет своего ведущего
 * значка, которому был нужен этот компенсирующий отступ (обычный тэг —
 * без значка вовсе, системный — значок есть, но выравнивание с рядом ему
 * не требуется, это просто пилюля-индикатор). Симметричный padding:0 10px
 * из базовой формулы (см. выше по файлу) остаётся как есть, ничем не
 * перебивается. */

.v19-task-menu [data-dj-thought-marker="1"]{background:transparent;border:0}

/* The three unsaved entity types share a stable first editor row. */
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head){min-height:36px}

/* Шапка — непрозрачный верхний край собственной прокрутки формы. Изоляция
 * не даёт строкам редактора появляться над названием при прокрутке. */
.modal.v19-task-menu{isolation:isolate}
.v19-task-menu>:is(.task-head-v09,.v38-task-head,.v40-goal-head){
  isolation:isolate;
}

/* В коротком ряду выбора «Ещё» остаётся на правом краю при прокрутке чипов;
 * так кнопка не уезжает вслед за проектом и тэгами и всегда открывает одну
 * и ту же дополнительную группу. Срок использует правую часть собственной
 * строки — одну горизонтальную опору с приоритетом. */
.v19-task-menu .v19-pickers-chips>[data-dj-extra-artifacts]{order:3;z-index:1}
/* DS-SCR-08: «Ещё / Свернуть» — стрелка в правом верхнем углу блока выбора; чипы перечислены слева и под неё не заходят. */
.v19-task-menu .v19-pickers-chips{min-height:40px}
.v19-task-menu .time-line>.v19-time-chips{justify-content:flex-end}
.v19-task-menu .time-line>[data-time-summary]{margin-left:auto;text-align:right}
.v19-task-menu .subtask-panel>.section-head>.v19-count[hidden]{display:none}

/* Task menu field memory and disclosure (D136). */
.v19-task-menu.tm20-active{display:flex;flex-direction:column}
.v19-task-menu.tm20-active :is(.v38-tag-artifacts,.v76-mobile-task-artifacts,.v40-artifacts,.v36-artifacts,.v18-artifact-pickers,.v19-pickers-chips){display:contents}
.v19-task-menu.tm20-active[data-tm20-details="closed"] [data-tm20-key]:not([data-tm20-pinned="true"]){display:none}
.v19-task-menu.tm20-active [data-tm20-key]{box-sizing:border-box;order:var(--tm20-order,0);min-width:0}
.v19-task-menu.tm20-active [data-tm20-key]>.tm20-row-icon{display:grid;place-items:center;flex:0 0 20px;width:20px;height:20px;color:var(--ink);}
.v19-task-menu.tm20-active [data-tm20-key]>.tm20-row-icon :is(svg,.v22-icon){width:20px;height:20px;color:inherit}
.v19-task-menu.tm20-active .v18-artifact-row:not(.v18-artifact-pickers){justify-content:flex-start;text-align:left;color:var(--ink)}
.v19-task-menu.tm20-active .v18-artifact-row:not(.v18-artifact-pickers)>button.tm20-value{width:auto;max-width:100%;min-width:0;flex:0 1 auto;justify-content:flex-start;border:0;background:transparent;color:var(--ink);text-align:left}
.v19-task-menu.tm20-active [data-dj-parent-selected]{min-width:0;overflow:hidden}
.v19-task-menu.tm20-active [data-dj-parent-selected]>button.tm20-value{display:flex;align-items:center;flex:1 1 0;width:0;min-width:0;overflow:hidden;white-space:nowrap}
.v19-task-menu.tm20-active [data-dj-parent-selected] .dj-parent-kind{flex:none;overflow:visible}
.v19-task-menu.tm20-active [data-dj-parent-selected] .dj-parent-name{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v19-task-menu.tm20-active .v18-artifact-row.tm20-multiple{flex-wrap:wrap;justify-content:flex-start;gap:var(--dj-space-2);min-height:38px;padding-top:var(--dj-space-1);padding-bottom:var(--dj-space-1);overflow:visible}
.v19-task-menu.tm20-active .v18-artifact-row.tm20-multiple>button.tm20-value{width:auto;min-height:28px;padding:var(--dj-space-1) var(--dj-space-2);border:1px solid color-mix(in srgb,var(--ink) 18%,var(--line));border-radius:var(--dj-radius-chip,8px);background:var(--panel);color:var(--ink);white-space:nowrap}
.v19-task-menu.tm20-active .v18-artifact-row.tm20-multiple>button.tm20-value>:is(.v22-icon,svg){display:none}
.v19-task-menu.tm20-active .v18-artifact-pickers{display:none}
/* An empty artifact container keeps no height under «Детали» on wide screens (audit 7.1). */
.v19-task-menu.tm20-active .v36-artifacts{min-height:0}
.v19-task-menu.tm20-active .tm20-controls{display:contents}
.v19-task-menu.tm20-active .tm20-count[hidden],.v19-task-menu.tm20-active [hidden]{display:none}
.v19-task-menu.tm20-active .tm20-priority-row{display:flex;align-items:center;gap:var(--dj-space-2);min-height:var(--dj-task-property-min-height,38px);padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup-row,10px);background:var(--dj-editor-field-bg,var(--panel));order:2}
.v19-task-menu.tm20-active .tm20-priority-row>.priority-flag{display:flex;align-items:center;justify-content:flex-start;width:20px;height:20px;padding:0;border:0;background:transparent}
.v19-task-menu.tm20-active .v40-goal-head>[data-v40-goal-priority]{display:none}
.v19-task-menu.tm20-active [data-tm20-key="color"] .tm20-value{color:var(--tm20-color,var(--accent))}
.v19-task-menu.tm20-active [data-tm20-key="color"]>.tm20-row-icon{color:var(--tm20-color,var(--accent))}
.v19-task-menu.tm20-active .v18-artifact-row:not(.tm20-multiple)>.tm20-value>:is(.v22-icon,svg){display:none}
.v19-task-menu.tm20-active .tm20-priority-row>.tm20-row-icon{display:none}
.v19-task-menu.tm20-active .tm20-priority-label{flex:1 1 auto;text-align:left}
.v19-task-menu.tm20-active [data-tm20-key]{display:flex;align-items:center;justify-content:flex-start;gap:var(--dj-space-2);text-align:left}
html body .dj-entity-editor.v19-task-menu.tm20-active[data-tm20-details="open"] [data-tm20-key][data-dj-extra-hidden="true"],html body .dj-entity-editor.v19-task-menu.tm20-active [data-tm20-key][data-tm20-pinned="true"][data-dj-extra-hidden="true"]{display:flex}
.v19-task-menu.tm20-active .v19-desc-row>:is(.v22-icon,svg){display:none}
.v19-task-menu.tm20-active .time-line>button>:is(.v22-icon,svg),.v19-task-menu.tm20-active .v18-reminder>:is(.v22-icon,svg){display:none}
.v19-task-menu.tm20-active .v18-artifact-pickers,.v19-task-menu.tm20-active .v19-pickers-chips{display:contents}
.v19-task-menu.tm20-active .v18-artifact-pickers>button,.v19-task-menu.tm20-active .v19-pickers-chips>button,.v19-task-menu.tm20-active [data-dj-parent-pick]:not([data-tm20-key]){display:none}
.v19-task-menu.tm20-active .v18-artifact-pickers>.v18-reminder[data-tm20-key],.v19-task-menu.tm20-active .v19-pickers-chips>.v18-reminder[data-tm20-key]{display:flex}
.v19-task-menu.tm20-active .tm20-empty-row{box-sizing:border-box;width:100%;min-height:var(--dj-task-property-min-height,38px);padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup-row,10px);background:var(--dj-editor-field-bg,var(--panel))}
.v19-task-menu.tm20-active .tm20-empty-row>button{width:100%;min-height:inherit;padding:0;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit}

/* The editor is owned by a workspace shell in the current runtime, so the
   older direct-modal docking rule no longer reaches the visible surface. */
html.v19-native-task-window.v19-native-task-window body .modal-backdrop:has(>.dj-editor-shell>form.v19-task-menu){inset:0;width:auto;height:var(--dolijane-viewport-height,100dvh);max-height:none;padding:var(--v19-native-task-top,70px) var(--dj-space-2) var(--dj-space-2);box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr);place-items:start center;align-content:start;overflow:hidden}
html.v19-native-task-window.v19-native-task-window body .modal-backdrop:has(>.dj-editor-shell>form.v19-task-menu)>.dj-editor-shell{width:min(620px,calc(100vw - 16px));height:calc(var(--dolijane-viewport-height,100dvh) - var(--v19-native-task-top,70px) - 8px);max-height:calc(var(--dolijane-viewport-height,100dvh) - var(--v19-native-task-top,70px) - 8px);margin:0}

/* Task menu grid (owner 2026-10-17): one icon column and one text column for
   every row. The reference is the «Комментарии» head: a 44px icon slot after
   the row padding and the label right after it. «Детали» uses the same size,
   type and symbols; the legacy artifact picker block is not shown because the
   Details «+» list already offers the same artifacts (its buttons stay in the
   DOM as the click sources of that list). */
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v38-tag-artifacts,.v76-mobile-task-artifacts,.v40-artifacts,.v36-artifacts,[data-v40-artifacts]){display:contents}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .v18-artifact-pickers{display:none!important}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active [data-tm20-key]>.tm20-row-icon{flex:0 0 44px!important;width:44px!important;height:44px!important;margin:0!important;display:grid!important;place-items:center!important}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .time-line[data-tm20-key]>.tm20-row-icon{display:none!important}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .time-line[data-tm20-key]>:is([data-time-open],[data-v40-time-open]){flex:0 0 44px!important;width:44px;height:44px;margin:0;padding:0;display:grid!important;place-items:center;justify-content:center!important;align-content:center;color:var(--ink)!important}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .time-line[data-tm20-key]>:is([data-time-open],[data-v40-time-open])>:is(.v22-icon,svg){display:block;width:20px;height:20px}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v18-priority-row,.tm20-priority-row)>.priority-flag{flex:0 0 44px;width:44px;height:44px;margin:0;padding:0;justify-content:center!important;align-items:center}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v18-artifact-row,.v19-desc-row,.tm20-empty-row,.v18-reminder)[data-tm20-key]{padding-left:var(--dj-space-3)!important;padding-right:var(--dj-space-3)!important;gap:var(--dj-space-2)!important}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .v18-artifact-row[data-tm20-key]:not(.tm20-multiple)>button.tm20-value{padding-left:0!important;margin-left:0!important}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .v18-artifact-row.tm20-multiple[data-tm20-key]>button.tm20-value{margin-left:0!important}

/* «Детали» is a section title, its fields one grouped card (D-169); the rules are at the end of the file. */

/* Priority digits sit at the right edge without spacing between them. Each
   keeps the DS-A11Y-01 hit area (44px on touch, 34px with a fine pointer) and
   may shrink only when the row is too narrow; the label never shrinks, so the
   digits can not run into «Приоритет». */
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v18-priority-row,.tm20-priority-row) :is(.v19-priority-label,.tm20-priority-label){flex:0 0 auto;min-width:max-content;white-space:nowrap}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v18-priority-row,.tm20-priority-row)>.v19-priority-scale{display:flex;align-items:center;gap:0;flex:0 1 auto;min-width:0;margin:0 0 0 auto;padding:0}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v18-priority-row,.tm20-priority-row)>.v19-priority-scale>.v19-priority-digit{display:grid;place-items:center;flex:0 1 44px;width:44px;min-width:28px;height:44px;margin:0;padding:0}
@media (pointer:fine) and (min-width:1025px){html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v18-priority-row,.tm20-priority-row)>.v19-priority-scale>.v19-priority-digit{flex-basis:34px;width:34px;height:34px}}
@media (max-width:1024px){
 /* D-1: одна раскладка приоритета во всех типах — флаг · «Приоритет» · шкала справа, в одну строку. */
 html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.v18-priority-row,.tm20-priority-row){--tm20-priority-right-pad:var(--dj-space-1);flex-wrap:nowrap}
 
}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active [data-tm20-key]>.v19-artifact-row-icon{display:none!important}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .time-line[data-tm20-key]{flex-wrap:nowrap}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .time-line[data-tm20-key]>.r26-deadline{flex:1 1 auto;width:auto;min-width:0}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .time-line[data-tm20-key]>.r27-critical{flex:0 0 auto;margin-left:auto;white-space:nowrap}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .tm20-priority-row{min-height:44px;margin:var(--dj-space-2) 0;padding:var(--dj-space-2) var(--tm20-priority-right-pad,var(--dj-space-3)) var(--dj-space-2) var(--dj-space-3);gap:var(--dj-space-2);border-radius:var(--dj-radius-chip);font-size:var(--v19-task-menu-font-size);font-weight:var(--v19-task-menu-font-weight)}

/* Owner 2026-10-17: the task menu is as tall as its content. The workspace
   shell keeps its full height (Dock stays at the bottom of the screen, the
   Overview keeps its column), but it is transparent; the form itself is the
   card and scrolls only when its rows do not fit. */
html body .dj-editor-shell:has(>form.v19-task-menu){background:transparent;border-color:transparent;box-shadow:none}
html body .dj-editor-shell>form.modal.v19-task-menu{height:auto!important;max-height:100%!important;align-self:start;background:var(--panel);border:1px solid var(--line)!important;border-radius:var(--dj-radius-popup,12px);padding-bottom:var(--dj-space-3)!important}

/* D-169 (audit section 7, owner 2026-10-25). «Детали» is a section title, not a row: no frame, secondary colour,
   «Детали · N» on the left and the text button «+ Добавить» on the right. Pinned fields and the fields under «Детали»
   are two grouped cards: one frame, thin dividers, rounded only at the edges. paint() marks the rows with
   data-tm20-edge; the shared row rule (design/ui-semantics.css) reads the --dj-row-* properties. */
.v19-task-menu.tm20-active [data-tm20-edge]{--dj-row-gap-top:-1px;--dj-row-gap-bottom:0px;--dj-row-radius:0}
.v19-task-menu.tm20-active [data-tm20-edge="first"]{--dj-row-gap-top:0px;--dj-row-radius:var(--dj-radius-chip) var(--dj-radius-chip) 0 0}
.v19-task-menu.tm20-active [data-tm20-edge="last"]{--dj-row-radius:0 0 var(--dj-radius-chip) var(--dj-radius-chip)}
.v19-task-menu.tm20-active [data-tm20-edge="only"]{--dj-row-gap-top:0px;--dj-row-radius:var(--dj-radius-chip)}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.tm20-priority-row,.tm20-empty-row)[data-tm20-edge]{margin:var(--dj-row-gap-top) 0 var(--dj-row-gap-bottom);border:1px solid var(--line);border-radius:var(--dj-row-radius)}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .tm20-details{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-1);width:100%;min-height:44px;margin:var(--dj-space-4) 0 var(--dj-space-1);padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight)}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .tm20-details-toggle{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0;min-height:44px;padding:0 var(--dj-space-2) 0 0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .tm20-arrow{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;color:inherit}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .tm20-arrow :is(svg,.v22-icon){width:16px;height:16px;color:inherit}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .tm20-count{color:inherit}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active .tm20-plus{margin-left:auto;min-height:44px;padding:0 var(--dj-space-2);border:0;border-radius:var(--dj-radius-button);background:transparent;color:var(--accent);font:inherit;cursor:pointer}
html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu.tm20-active :is(.tm20-details-toggle,.tm20-plus):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@keyframes tm20-flash{from{outline-color:var(--accent)}to{outline-color:transparent}}
.v19-task-menu.tm20-active .tm20-flash{outline:2px solid transparent;outline-offset:-2px;animation:tm20-flash 1.2s ease-out}
@media(prefers-reduced-motion:reduce){.v19-task-menu.tm20-active .tm20-flash{animation:none;outline-color:var(--accent)}}

/* «Добавить в задачу»: a sheet from the bottom on the phone, a 320px popover at the button on a wide screen. */
.tm20-add-layer{position:fixed;inset:0;z-index:100200}
.tm20-add-layer[data-tm20-layout="sheet"]{display:flex;align-items:flex-end;background:color-mix(in srgb,var(--ink) 24%,transparent)}
.tm20-add-sheet{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--dj-space-2);overflow:auto;padding:var(--dj-space-3);border:1px solid var(--line);background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}
.tm20-add-layer[data-tm20-layout="sheet"] .tm20-add-sheet{width:100%;max-height:min(70dvh,560px);border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0;padding-bottom:calc(var(--dj-space-3) + env(safe-area-inset-bottom,0px))}
.tm20-add-layer[data-tm20-layout="popover"] .tm20-add-sheet{position:fixed;width:320px;max-width:calc(100vw - 16px);max-height:min(70dvh,520px);border-radius:var(--dj-radius-popup)}
.tm20-sheet-title{margin:0;font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight)}
.tm20-sheet-search{box-sizing:border-box;width:100%;min-height:44px;padding:0 var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);font:inherit}
.tm20-sheet-group h3{margin:var(--dj-space-2) 0 var(--dj-space-1);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight);color:var(--muted)}
.tm20-sheet-row{display:flex;align-items:center;min-height:48px}
.tm20-add-layer .tm20-sheet-add{display:flex;align-items:center;gap:var(--dj-space-2);flex:1 1 auto;min-width:0;min-height:48px;padding:0 var(--dj-space-2);border:0;border-radius:var(--dj-radius-popup-row);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.tm20-sheet-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px}
.tm20-sheet-icon :is(svg,.v22-icon){width:20px;height:20px}
.tm20-sheet-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm20-add-layer .tm20-sheet-add>small{margin-left:auto;color:var(--muted);font-size:var(--dj-text-secondary-size)}
.tm20-add-layer .tm20-sheet-row[data-present="true"] .tm20-sheet-add{color:var(--muted)}
.tm20-add-layer .tm20-sheet-pin{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:var(--dj-radius-circle);background:transparent;color:var(--muted);cursor:pointer}
.tm20-sheet-pin :is(svg,.v22-icon){width:20px;height:20px}
.tm20-sheet-pin[aria-pressed="true"]{color:var(--accent)}
:is(.tm20-sheet-add,.tm20-sheet-pin):hover{background:var(--accent-soft,var(--line))}
:is(.tm20-sheet-add,.tm20-sheet-pin,.tm20-sheet-search):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
:is(.tm20-sheet-row,.tm20-sheet-group)[hidden]{display:none}

/* Подзадачи и Комментарии — секции вне «Деталей» (D-169): заголовок раздела без рамки, итог «· 1 из 3»,
   «+» справа; пустая секция — одна тихая строка «+ Подзадача» / «Комментарий…». Прежние правила держат
   размеры и display этих строк с !important, поэтому вид задают их переменные, а лишние элементы
   убираются из потока (v19SectionHeads делает их inert). */
.v19-task-menu.tm20-active :is(.subtask-panel>.section-head,.v18-comments-head)[data-tm20-section]{--dj-row-border:transparent;--dj-row-bg:transparent;--dj-row-pad-left:0px;--dj-row-pad-y:0px;--dj-row-gap-top:var(--dj-space-4);--dj-row-gap-bottom:var(--dj-space-1);--v19-task-menu-font-size:var(--dj-text-secondary-size);--v19-task-menu-font-weight:var(--dj-text-heading-weight);position:relative;color:var(--muted)}
.v19-task-menu.tm20-active .tm20-section-meta{flex:0 0 auto;white-space:nowrap;color:inherit;font:inherit}
html body .v19-task-menu.v19-task-menu.v19-task-menu.tm20-active [data-tm20-section]>:is(.section-title,span:first-child){--v19-task-menu-font-weight:var(--dj-text-heading-weight);color:inherit}
.v19-task-menu.tm20-active .v18-comments-head[data-tm20-section="empty"]>.tm20-section-meta{color:var(--muted);font-weight:var(--dj-text-body-weight,400)}
.v19-task-menu.tm20-active :is([data-tm20-section]>.v19-count,[data-tm20-section="empty"]>:not(.tm20-section-meta)){position:absolute;visibility:hidden;opacity:0;pointer-events:none;clip-path:inset(50%)}
.v19-task-menu.tm20-active [data-tm20-section]>:is([data-add-subtask],[data-v18-comments-add]){margin-left:auto}
.v19-task-menu.tm20-active [data-tm20-section="empty"]{--dj-row-gap-top:var(--dj-space-2)}
.v19-task-menu.tm20-active [data-tm20-section="empty"]>.tm20-section-meta{flex:1 1 auto;min-height:44px;display:flex;align-items:center;padding-left:calc(var(--dj-space-8) + var(--dj-space-3) + var(--dj-space-2));color:var(--accent);cursor:pointer}
.v19-task-menu.tm20-active .tm20-section-meta:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ==== project-ideas-r21.css ==== */
/* Shared layout for project/idea pages and their task-like editors. */
.sidebar [data-route="ideas"]{display:flex!important}
.project-tree-head>.chip,.project-tree-head>.v15-active-task-count{background:transparent!important;border-color:rgb(220,220,220)!important;color:rgb(138,138,138)!important}
.r21-icon-button{box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 36px!important;width:36px!important;height:36px!important;min-width:36px;min-height:36px;padding:var(--dj-space-2)!important;border-radius:var(--dj-radius-circle,50%)!important;aspect-ratio:1!important}
.r21-icon-button.primary{background:var(--accent)!important;border-color:var(--accent)!important;color:white!important}
.r21-icon-button .v22-icon{width:20px!important;height:20px!important;margin:0!important}
/* "мелкие правки" п.2 (2026-09-23): второй тулбар редактора — та же 32px "компактная"
 * величина, что уже применяется к r21-mobile-project-tools на узких экранах (см. правило
 * внутри @media(max-width:1024px) ниже). r21-idea-tools (маленький тулбар «новая задача/
 * редактировать» рядом с заголовком открытой идеи) фактически решается здесь. Десктопный
 * тулбар ПРОЕКТА (.r21-secondary-tools) на самом деле перебивается более специфичным
 * html-body-правилом в revision27.css (`html body .r21-project-secondary .r21-secondary-
 * tools>button`) — тот файл грузится позже и специфичнее, там же держим фактическое 32px
 * значение и для .r26-idea-actions/.r25-idea-secondary (десктопный тулбар ИДЕИ, другой
 * класс). Это правило здесь для .r21-secondary-tools избыточно, но безвредно — оставлено
 * как явное намерение на случай будущей правки revision27.css. */
.r21-secondary-tools .r21-icon-button,.r21-idea-tools .r21-icon-button{flex:0 0 32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:var(--dj-space-2)!important}
.r21-secondary-tools .r21-icon-button .v22-icon,.r21-idea-tools .r21-icon-button .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
.r21-project-title-row,.r21-project-secondary,.r21-project-primary,.r21-secondary-tools,.r21-mobile-project-tools,.r21-idea-tools{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0}.r21-project-title{cursor:pointer;margin:0;min-width:0;overflow-wrap:anywhere}
.r21-project-header{margin-bottom:var(--dj-space-3)}
.r21-selection-tools{display:flex;align-items:center;gap:var(--dj-space-2);margin-block:var(--dj-space-2)}.r21-selection-tools [hidden]{display:inline-flex!important}
html[data-r21-page="project"] main>.topbar{display:none!important}
html[data-r21-page="project"] main [data-v17-select-toggle]{display:none!important}
html[data-r21-page="idea"] main .page-title,html[data-v74-route="ideas"] main .page-title{display:flex!important;align-items:center!important;gap:var(--dj-space-3)}
.idea-card time{margin-left:auto;white-space:nowrap;flex-shrink:0}.idea-card strong{flex:1}.r21-idea-tools{flex-shrink:0}
.r21-popover{position:fixed;z-index:100100;min-width:190px;max-width:calc(100vw - 16px);overflow:auto;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup,10px);background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}
.r21-popover>input{width:100%;box-sizing:border-box;min-width:0;margin-bottom:var(--dj-space-2)}.r21-menu-item{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;min-height:40px;padding:var(--dj-space-2);border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;border-radius:var(--dj-radius-popup-row)}
.r21-project-choice.dj-project-choice-popup .dj-project-choice-row{padding-inline-start:calc(var(--dj-space-1) + var(--dj-project-depth,0px))}
.r21-menu-shade{position:fixed;inset:0;z-index:100099;background:color-mix(in srgb,black 42%,transparent);animation:r21-shade-in .18s ease-out both}
.r21-popover.r21-bottom-sheet{position:fixed;inset:auto 0 0;z-index:100100;box-sizing:border-box;width:100%;min-width:0;max-width:none;max-height:min(50dvh,440px);padding:var(--dj-space-2) var(--dj-space-3) max(var(--dj-space-2),env(safe-area-inset-bottom));border-radius:var(--dj-radius-window) var(--dj-radius-window) 0 0;box-shadow:var(--shadow-modal);animation:r21-sheet-in .18s ease-out both}
.r21-bottom-sheet .r21-menu-item{min-height:44px}
.r21-bottom-sheet .r21-menu-item{font-family:var(--dj-font-ui,var(--font,inherit));font-size:var(--dj-text-body-size);line-height:var(--dj-text-body-line-height)}
.r21-bottom-sheet.r21-sheet-out{animation:r21-sheet-out .18s ease-in both}
.r21-menu-shade.r21-shade-out{animation:r21-shade-out .18s ease-in both}
@keyframes r21-sheet-in{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes r21-sheet-out{to{transform:translateY(100%)}}
@keyframes r21-shade-in{from{opacity:0}to{opacity:1}}
@keyframes r21-shade-out{to{opacity:0}}
@media(prefers-reduced-motion:reduce){.r21-menu-shade,.r21-popover.r21-bottom-sheet{animation-duration:0s}}
.r21-menu-item .v22-icon{width:20px;height:20px;flex-shrink:0}.r21-menu-item[aria-pressed=true]{background:var(--accent-soft)}.r21-menu-item:hover{background:var(--soft,var(--accent-soft))}
.r21-entity-editor{padding:var(--dj-space-4)!important;--r21-field-bg:color-mix(in srgb,#8a7a5f 16%,var(--panel));}
.r21-entity-editor .r21-editor-footer>button{display:inline-flex!important;visibility:visible!important}
.r21-editor-head{display:flex;align-items:center;gap:var(--dj-space-2);margin-bottom:var(--dj-space-4)}.r21-editor-head>.v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);flex-shrink:0;color:var(--accent)}.r21-editor-head>.r21-project-mark{display:grid;place-items:center;flex:0 0 var(--dj-icon-large);width:var(--dj-icon-large);height:var(--dj-icon-large);color:var(--artifact-color,var(--accent));font-size:var(--dj-icon-large);font-weight:var(--dj-text-heading-weight);line-height:var(--dj-icon-line-height)}
.r21-editor-head>input{flex:1;min-width:0;border:0!important;background:transparent!important;font-family:var(--font-display,inherit)!important;font-size:var(--dj-text-title-size)!important;font-weight:var(--dj-text-heading-weight)!important;writing-mode:horizontal-tb!important;word-break:normal!important}.r21-editor-actions{display:flex;align-items:center;gap:var(--dj-space-2);flex:0 0 auto}.r21-editor-actions>.r21-icon-button{width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--dj-radius-circle,50%)!important;padding:var(--dj-space-2)}.r21-editor-actions>[type=submit]{order:2;background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.r21-editor-actions>[data-r21-cancel],html body .r21-entity-editor .dj-standard-a-actions>[data-r21-cancel]{order:1;background:transparent!important;color:var(--accent)!important;border-color:transparent!important}.r21-editor-actions>[data-r21-status]{order:0}
.r21-entity-field{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0;padding:var(--dj-space-3) var(--dj-space-3);margin-block:var(--dj-space-2);border:1px solid var(--r21-field-bg);border-radius:var(--dj-radius-field,8px);background:var(--r21-field-bg);font-family:var(--font,inherit);font-size:var(--v19-task-menu-font-size,14px);font-weight:var(--dj-text-heading-weight)}
.r21-entity-field>.v22-icon,.r21-entity-field>span>.v22-icon{width:20px;height:20px;flex-shrink:0}.r21-entity-field>input,.r21-entity-field>textarea{min-width:0;flex:1;width:100%;box-sizing:border-box;border:0!important;background:transparent!important;color:inherit;font:inherit;resize:vertical}
.r21-entity-field>.btn{flex-shrink:0;white-space:nowrap}.r21-artifact-buttons,.r21-editor-options,.r21-editor-footer{display:flex;align-items:center;gap:var(--dj-space-2);margin-top:var(--dj-space-3)}.r21-editor-footer{justify-content:flex-end}.r21-editor-error{color:#b23b3b;margin:var(--dj-space-1) 0}.r21-editor-error:empty{display:none}
@keyframes r21-editor-rise{from{translate:0 100vh;opacity:.15}to{translate:0 0;opacity:1}}
.modal.r21-entity-editor.v19-anim-in{animation:r21-editor-rise .45s cubic-bezier(.22,.68,.24,1)!important}
html.v19-native-task-window .modal-backdrop.v19-backdrop>.modal.r21-entity-editor.v19-anim-in{animation:r21-editor-rise .45s cubic-bezier(.22,.68,.24,1)!important}
@media(prefers-reduced-motion:reduce){.modal.r21-entity-editor.v19-anim-in{animation:none!important}}
@media(max-width:1024px){
  .r21-project-header{display:none!important}
  html[data-r21-page="project"] .v76-mobile-actions,html[data-r21-page="project"] .v76-mobile-main-row>[data-new-task],html[data-r21-page="project"] .v76-mobile-main-row>[data-new-subproject],html[data-r21-page="project"] .v76-mobile-main-row>[data-v76-system]{display:none!important}
  html[data-r21-page="project"] .v76-mobile-main-row{display:flex!important;gap:var(--dj-space-1)!important}
  html[data-r21-page="project"] .v76-active-route{flex:1;cursor:pointer}.r21-mobile-project-tools .r21-icon-button,.r21-idea-tools .r21-icon-button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;flex-basis:32px!important;padding:var(--dj-space-2)!important}
  .r21-entity-editor .r21-editor-head>input{font-size:var(--dj-text-heading-size)!important}.r21-entity-field{padding:var(--dj-space-2)}.r21-entity-field input[type=date]{max-width:155px}
  .idea-card{flex-wrap:wrap}.idea-card time{font-size:var(--dj-text-caption-size)}.r21-idea-tools{margin-left:auto}
}
html[data-interface-design="classic"] .v19-task-menu :is(.time-line,.v18-priority-row,.v18-reminder,.v18-artifact-row,.v19-pickers-chips>button,.subtask-panel,.v18-comments,.r21-entity-field,.v19-reminder-chip,.v19-time-chip,.v40-measure-row,.v40-source-line),
html[data-interface-design="classic"] .r21-entity-editor{background:#fff!important;--r21-field-bg:#fff}

/* Object workspace: Project and Idea share object → navigation → action → content.
   The old renderer still provides the content; this layer owns its single entry point. */
html[data-r21-page="project"] main>.topbar,html[data-r21-page="idea"] main>.topbar{display:none!important}
.dj-object-workspace{display:grid;gap:var(--dj-space-3);max-width:100%;margin:0 0 var(--dj-space-4);min-width:0}
.dj-object-workspace{position:sticky;top:0;z-index:3;background:var(--bg)}
html[data-r21-page="project"] .dj-object-workspace{margin-bottom:var(--dj-space-3)}
html[data-r21-page="project"] .dj-object-workspace+.dj-object-actionbar{margin-bottom:var(--dj-space-4)}
.dj-object-header{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3);min-width:0;background:var(--panel);padding:var(--dj-space-3,var(--dj-space-3));border-bottom:1px solid var(--line);box-sizing:border-box;}
.dj-object-title{margin:0;min-width:0;overflow-wrap:anywhere}
.dj-object-title-toggle{display:block;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.dj-object-title-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--dj-radius-field)}
.dj-object-utilities{display:flex;align-items:center;gap:var(--dj-space-2);flex:0 0 auto}
.dj-object-utilities .r21-icon-button{width:40px!important;height:40px!important;min-width:40px;min-height:40px;flex-basis:40px!important;border:1px solid var(--line)!important;background:transparent!important;color:var(--accent)!important}
.dj-object-tabs{display:flex;align-items:end;gap:calc(var(--dj-space-4) + var(--dj-space-1));min-width:0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.dj-object-tab{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:var(--dj-space-2) 0;border:0;background:transparent;color:var(--muted);font:var(--dj-text-heading-weight) var(--dj-text-secondary-size,14px)/var(--dj-text-title-line-height) var(--font,inherit);white-space:nowrap}
.dj-object-tab::after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:2px;background:transparent}
.dj-object-tab[data-count]::before{content:attr(data-count);order:2;margin-inline-start:var(--dj-space-1,var(--dj-space-1));font-variant-numeric:tabular-nums;font-weight:var(--dj-text-reading-weight)}
.dj-object-tab[aria-current="true"]{color:var(--accent)}.dj-object-tab[aria-current="true"]::after{background:var(--accent)}
.dj-object-actionbar{display:flex;align-items:center;gap:var(--dj-space-2);flex-wrap:nowrap;min-width:0}
.dj-object-action{display:inline-flex!important;align-items:center;justify-content:center;gap:var(--dj-space-2);min-height:40px;padding:var(--dj-space-2) var(--dj-space-3)!important;border-radius:var(--dj-radius-control,10px)!important;border:1px solid var(--line)!important;background:transparent!important;color:var(--ink)!important;font:var(--dj-text-heading-weight) var(--dj-text-secondary-size,14px)/var(--dj-text-heading-line-height) var(--font,inherit)!important;white-space:nowrap}
.dj-object-action.primary{border-color:var(--accent)!important;background:var(--accent)!important;color:#fff!important}.dj-object-action .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px)}
.dj-object-action[hidden]{display:none!important}
.dj-object-actionbar .dj-object-action:not(.primary){color:var(--muted)!important}
.dj-object-actionbar>.dj-object-action:last-child{margin-left:auto}
.dj-object-empty{margin:var(--dj-space-2) 0 0;color:var(--muted);font:var(--dj-text-body-size,15px)/var(--dj-text-caption-line-height) var(--font,inherit)}
@media(max-width:1024px){
  html[data-r21-page="project"] .v76-mobile-header,html[data-r21-page="idea"] .v76-mobile-header{display:none!important}
  .dj-object-workspace{margin-top:var(--dj-space-1);gap:var(--dj-space-3)}.dj-object-header{align-items:flex-start}.dj-object-title{font-size:var(--dj-text-title-size)!important;line-height:var(--dj-text-heading-line-height)}.dj-object-utilities .r21-icon-button{width:40px!important;height:40px!important;min-width:40px;min-height:40px;flex-basis:40px!important}
  .dj-object-tabs{gap:var(--dj-space-4)}.dj-object-actionbar{display:flex;flex-wrap:nowrap}.dj-object-action{min-width:0}.dj-object-action.primary{justify-content:flex-start;flex:1 1 auto;min-width:108px}.dj-object-action:not(.primary){flex:0 0 auto}.dj-object-action span{overflow:hidden;text-overflow:ellipsis}
}
.dj-project-content-tree{position:relative;isolation:isolate}
.dj-project-content-tree>.v84-subproject-tree{--dj-project-level-inset:var(--dj-space-1)}
.dj-project-content-tree .project-tree-head>.nav-item{margin-left:calc(-1 * var(--dj-space-2))}
.dj-project-content-tree .project-tree-head>:is(.project-toggle,.project-toggle-spacer){transform:translateX(10px)}
.dj-project-content-tree>.v84-subproject-tree>.project-tree-level>.v15-project-node>.project-tree{position:relative;left:18px;width:calc(100% - 18px)}
.dj-project-content-tree>.idea-tree-node>.idea-tree-content>.v15-tree-list{position:relative;left:var(--dj-space-2);width:calc(100% - var(--dj-space-2))}
/* The Modern task marker was translated one spacing unit beyond its project/Idea siblings. */
.dj-project-content-tree[data-dj-hierarchy-style="modern"]>.v15-tree-list[data-dj-hierarchy-mode="taskTree"]>.v15-task-node>.v15-task-row .tp-disclosure-slot:has(>.v15-disclosure)>.tp-marker{transform:none}
.dj-object-workspace[data-object-collapsed="true"]>:not(.dj-object-header),.dj-object-collapsed-content{display:none!important}

/* ==== disclosure-anim.css ==== */
/* Единая анимация раскрытия/сворачивания для ВСЕХ дисклоужеров в приложении
 * (ритуалы, проекты, идеи, подзадачи, разделы тэгов/действий/накопительных,
 * дерево проектов в сайдбаре). Контракт: содержимое ВСЕГДА в DOM (никогда не
 * вырезается из HTML-строки при сворачивании — это ломает анимацию
 * принципиально, CSS не умеет анимировать «узел появился/исчез»), снаружи
 * `.dj-fold`, внутри `.dj-fold-body`, класс `.dj-open` = раскрыто.
 * `grid-template-rows: 0fr→1fr` — анимация «в auto-высоту» без JS-замера
 * (JS не должен знать заранее итоговую высоту содержимого). */
.dj-fold{
  display:grid!important;
  grid-template-rows:0fr;
  transition:grid-template-rows .22s ease;
}
.dj-fold.dj-open{grid-template-rows:1fr}
.dj-fold>.dj-fold-body{overflow:hidden;min-height:0}
@media (prefers-reduced-motion: reduce){
  .dj-fold{transition:none}
}

/* ==== task-presentation.css ==== */
/* Explicitly scoped: preserve legacy controls/listeners, expose one visual view.
 * Desktop aliases retain the established compact presentation. Phone and
 * Fold/tablet remap these roles to the shared typography scale below. */
:root{
  --dj-tp-title-size:var(--dj-text-body-size);--dj-tp-title-weight:var(--dj-text-heading-weight);--dj-tp-title-line-height:var(--dj-text-reading-line-height);
  --dj-tp-secondary-size:var(--dj-text-secondary-size);--dj-tp-secondary-weight:var(--dj-text-secondary-weight);--dj-tp-secondary-line-height:var(--dj-text-secondary-line-height);
  --dj-tp-caption-size:var(--dj-text-caption-size);--dj-tp-caption-weight:var(--dj-text-secondary-weight);--dj-tp-caption-line-height:var(--dj-text-caption-line-height);
  --dj-tp-amount-size:var(--dj-text-secondary-size);--dj-tp-amount-weight:500;
  --dj-tp-focus-title-size:var(--dj-text-body-size);
  --dj-tp-calendar-title-size:var(--dj-text-body-size);
}
@media(max-width:599px){
  :root{
    --dj-tp-title-weight:var(--dj-text-body-weight);--dj-tp-title-line-height:var(--dj-text-body-line-height);
    --dj-tp-secondary-weight:var(--dj-text-secondary-weight);--dj-tp-secondary-line-height:var(--dj-text-secondary-line-height);
    --dj-tp-caption-weight:var(--dj-text-caption-weight);--dj-tp-caption-line-height:var(--dj-text-caption-line-height);
    --dj-tp-amount-size:var(--dj-text-secondary-size);--dj-tp-amount-weight:var(--dj-text-secondary-weight);
    --dj-tp-focus-title-size:var(--dj-text-body-size);
    --dj-tp-calendar-title-size:var(--dj-text-body-size);
  }
}
@media(min-width:600px) and (max-width:1024px){
  :root{
    --dj-tp-title-weight:var(--dj-text-body-weight);--dj-tp-title-line-height:var(--dj-text-body-line-height);
    --dj-tp-secondary-weight:var(--dj-text-secondary-weight);--dj-tp-secondary-line-height:var(--dj-text-secondary-line-height);
    --dj-tp-caption-weight:var(--dj-text-caption-weight);--dj-tp-caption-line-height:var(--dj-text-caption-line-height);
    --dj-tp-amount-size:var(--dj-text-secondary-size);--dj-tp-amount-weight:var(--dj-text-secondary-weight);
    --dj-tp-focus-title-size:var(--dj-text-body-size);
    --dj-tp-calendar-title-size:var(--dj-text-body-size);
  }
}
.tp-row> :not(.tp-view):not(.v15-disclosure):not(.v15-disclosure-spacer):not(.v17-select-box):not(.task-row-tools):not(.habit-history-row):not(.tp-habit-tools):not(.v43-goal-progress):not(.r25-goal-progress):not(.cumulative-chart){display:none!important}
.tp-row{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:var(--dj-space-1)!important;min-width:0!important;position:relative}
.tp-view{display:flex!important;align-items:flex-start;gap:var(--dj-space-2);flex:1 1 180px;min-width:0;text-align:left;padding-block:var(--dj-space-1);order:1}
.tp-copy{flex:1;min-width:0}.tp-line1,.tp-line2,.tp-focus-title,.tp-calendar-copy{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--dj-space-1) var(--dj-space-2);min-width:0}
.tp-line2{margin-top:var(--dj-space-1);font-size:var(--dj-tp-secondary-size);font-weight:var(--dj-tp-secondary-weight);line-height:var(--dj-tp-secondary-line-height);color:var(--muted)}
/* 2026-09-23 (владелец, решение по значку ритуала): заголовок задачи — ВСЕГДА одна строка,
 * длинные обрезаются многоточием, а не переносятся — значит и значки после заголовка (веха,
 * счётчик подзадач, ритуал, камень) больше никогда не переносятся на свою строку. Раньше
 * .tp-line1 был flex-wrap:wrap специально ради многострочных заголовков; теперь заголовок сам
 * не переносится (text-overflow:ellipsis ниже), поэтому .tp-line1 тоже можно сделать nowrap —
 * ничему переноситься уже не нужно. .tp-line2 (время/напоминания/повтор/тэги) не трогаем —
 * жалоба была именно про значки РЯДОМ С ЗАГОЛОВКОМ, не про вторую строку. */
.tp-line1{flex-wrap:nowrap}
.tp-line1:has(>[data-tp-artifact="stone"])>.tp-title{flex:0 1 auto}
.focus-card>.v14-today-task .tp-line1>.tp-goal-mark,.focus-card .ts-main-tree>.v15-task-node>.v15-task-row>.tp-view>.tp-copy>.tp-line1>.tp-goal-mark{display:none}
.tp-line1>.tp-artifact,.tp-line1>.tp-child-count,.tp-line1>.tp-goal-mark{flex:0 0 auto}
.tp-title{font-family:var(--font,inherit);font-size:var(--dj-tp-title-size);font-weight:var(--dj-tp-title-weight);color:var(--ink);line-height:var(--dj-tp-title-line-height);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;flex:1 1 auto;min-width:0;max-width:100%;text-align:left;white-space:normal;overflow:hidden;overflow-wrap:anywhere;padding:0;margin:0;border:0;background:transparent;border-radius:0;box-shadow:none;text-decoration:none}
.tp-title.tp-status-someday{color:var(--muted,#777)!important}.tp-title.tp-status-done{color:#398353!important;text-decoration:none;font-weight:var(--dj-text-reading-weight)!important}.tp-title.tp-status-failed{color:#bf4141!important;text-decoration:none;font-weight:var(--dj-text-reading-weight)!important}
@media(max-width:1024px){.tp-title:is(.tp-status-done,.tp-status-failed){font-size:var(--dj-text-secondary-size)}}
.tp-marker{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 44px;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border:0!important;background:transparent!important;padding:0!important;margin:0!important;box-shadow:none!important}
.tp-marker>.v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important;margin:0!important;color:inherit!important}.tp-marker::before,.tp-marker::after{content:none!important}
.tp-artifact{display:inline-flex;align-items:center;gap:var(--dj-space-1);padding:0;margin:0;min-width:0;min-height:20px;border:0;background:transparent;box-shadow:none;font:inherit;text-align:left;max-width:100%;color:var(--ink)}
.tp-artifact>span{min-width:0;overflow-wrap:anywhere}.tp-artifact .v22-icon,.tp-goal-mark .v22-icon,.tp-repeat .v22-icon,.tp-reminder .v22-icon{width:16px!important;height:16px!important;flex:0 0 16px;margin:0!important}.tp-goal-mark,.tp-repeat,.tp-reminder{display:inline-flex;align-items:center;gap:var(--dj-space-1)}
/* v.2: значок артефакта — свой цвет (--tp-color, проставлен инлайн на кнопке,
 * читается ниже по файлу правилом .tp-artifact .v22-icon — было
 * color:inherit, обновлено там же); название — всегда стандартный цвет
 * текста (только тэг — исключение, целая пилюля цвета тэга).
 * (доп.) Тэг переработан на 3 формы (см. tagChip/tagCategory в .js):
 * обычный тэг — пилюля БЕЗ значка, только текст, цвет текста —
 * контрастный (--tp-on: чёрный/белый по яркости фона, не всегда var(--ink));
 * системный тэг — КРУЖОК (не пилюля) со своим значком внутри, тот же
 * принцип контраста для цвета значка; «как факт» (свёрнутая категория) —
 * просто значок «тэг» системного цвета, без пилюли/кружка вовсе. */
.tp-artifact.tp-tag{background:var(--tp-color,var(--accent))!important;border-radius:var(--dj-radius-pill);padding:0 var(--dj-space-3);color:var(--tp-on,var(--ink))}
.tp-artifact.tp-tag-circle{background:var(--tp-color,var(--accent))!important;border-radius:var(--dj-radius-circle)!important;width:18px!important;height:18px!important;min-height:18px!important;padding:0!important;justify-content:center}
.tp-artifact.tp-tag-circle>.v22-icon{width:13px!important;height:13px!important;flex:0 0 13px;color:var(--tp-on,var(--ink))!important}
.tp-artifact.tp-tag-fact>.v22-icon{color:var(--accent)!important}
/* Владелец, 2026-09-22 (экран "Сегодня", строки Целей дня): tp-menu-fallback — это именно
   FALLBACK-иконка меню, для случая, когда вызывающий код не подставил обычную кнопку меню строки
   (.task-row-tools [data-row-menu], класс `btn small v22-icon-button` — так выглядит меню строки
   везде, где .task-row-tools подставляется, например Входящие). v17TodayTaskRow (главная
   задача/Цели дня) такую обёртку не создаёт, поэтому здесь всегда остаётся голый значок без
   круглой кнопки-подложки — выглядит иначе, чем то же самое меню в любом другом списке. Вместо
   правки вызывающего кода (рискованно — legacy `.task-row-tools`) даём самому fallback-классу
   тот же визуальный результат, что у `.v22-icon-button.small`, тем же приёмом, что уже применён
   к tp-tag-circle выше. */
.tp-artifact.tp-menu-fallback{width:30px;height:30px;min-height:30px;padding:var(--dj-space-1)!important;border-radius:var(--dj-radius-circle);justify-content:center;color:var(--ink)}
.tp-artifact.tp-menu-fallback:hover{background:var(--accent-soft)!important}
.tp-artifact.tp-menu-fallback>.v22-icon{width:20px!important;height:20px!important;flex:0 0 20px}
.tp-reminder{color:var(--muted)}
.tp-right{display:flex;align-items:center;justify-content:flex-end;gap:var(--dj-space-1);max-width:32%;flex:0 1 auto;font-size:var(--dj-tp-caption-size);font-weight:var(--dj-tp-caption-weight);line-height:var(--dj-tp-caption-line-height);min-width:0;flex-wrap:wrap}

.tp-habit-strip{display:flex;align-items:center;justify-content:flex-end;min-width:0;width:100%;gap:0}
.tp-habit-square{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;min-width:34px;min-height:34px;padding:0;border:0;border-radius:var(--dj-radius-button);background:transparent;cursor:pointer}
.tp-habit-square>.habit-history-cell{display:block;flex:none;width:18px;height:18px;min-width:18px;min-height:18px;pointer-events:none}
.tp-habit-square>.habit-history-cell.pending{background:transparent;border:1px solid var(--muted)}
.tp-habit-square:hover,.tp-habit-square:focus-visible{background:var(--accent-soft)}
.tp-habit-square:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media(min-width:1280px){}
@media(min-width:1025px) and (max-width:1279px){}
@media(min-width:761px) and (max-width:1024px){.tp-habit-square{flex-basis:44px;width:44px;height:44px;min-width:44px;min-height:44px}}
@media(min-width:600px) and (max-width:760px){.tp-habit-square{flex-basis:44px;width:44px;height:44px;min-width:44px;min-height:44px}}
@media(max-width:599px){.tp-habit-square{flex-basis:44px;width:44px;height:44px;min-width:44px;min-height:44px}}
.tp-right:empty{display:none}.tp-amount,.tp-child-count,.tp-mode{font-size:var(--dj-tp-amount-size);white-space:nowrap;font-weight:var(--dj-tp-amount-weight)}.tp-single{color:var(--tp-single-color,#c53e3e)!important}.tp-time{white-space:normal}.tp-time.tp-overdue,.tp-calendar-time.tp-overdue{color:var(--danger,#c53e3e)}.tp-time.tp-today,.tp-calendar-time.tp-today{color:var(--success,#2f7d4f)}
/* Align a project at the right edge with the lowest left metadata line in every Today row. */
.focus-card.v14-main-card>.v14-today-task.tp-row .tp-right-owner{top:calc(-1 * var(--dj-space-2) - var(--dj-space-1) - 1px)}
@media(min-width:1025px){.focus-card.v14-main-card>.v14-today-task.tp-row .tp-right-owner{top:calc(-1 * var(--dj-space-2) - 1px);margin-inline-end:var(--dj-space-2)}}
.v54-today-list .tp-row:has(.tp-line3:not(:empty)) .tp-right-owner{top:0}
@media(min-width:1025px){.v54-today-list .tp-row:not(:has(.tp-line3:not(:empty))) .tp-right-owner{top:-1px}}
/* The menu remains in the upper right corner even when a Task has no date or tag.
   Its project belongs to the lower line, leaving a long title room to wrap. */
.tp-row>.task-row-tools{flex:0 0 auto!important;order:2}.tp-row .task-row-tools [data-v40-number-goal],.tp-row>.v18-task-progress{display:none!important}
.tp-row>.v43-goal-progress,.tp-row>.r25-goal-progress{flex:1 0 100%;width:100%;order:5;margin:0!important;cursor:pointer}.tp-row>.v43-goal-progress{padding:0!important}.tp-row>.v43-goal-progress>span,.tp-row>.v43-goal-progress>strong{display:none!important}.tp-row>.cumulative-chart{order:6;flex:1 0 100%}
.tp-row>.habit-history-row{order:5;flex:1 0 100%}.tp-habit-tools{order:4;margin-left:auto;font-size:var(--dj-tp-caption-size);font-weight:var(--dj-tp-caption-weight);line-height:var(--dj-tp-caption-line-height)}
.tp-focus> :not(.time):not(.tp-focus-title){display:none!important}
.tp-focus-title .tp-title{font-size:var(--dj-tp-focus-title-size)!important}.tp-focus::before{background:var(--tp-priority)!important;border-color:var(--tp-priority)!important}.tp-focus .time::before{background:var(--tp-priority)!important}
.tp-calendar.calendar-task-v11{display:flex!important;gap:var(--dj-space-2);align-items:stretch;min-width:0;position:relative;padding:var(--dj-space-1) var(--dj-space-2) var(--dj-space-1) var(--dj-space-3);border-radius:var(--dj-radius-popup-row);background:var(--panel);margin-block:var(--dj-space-1)}
.tp-calendar::before{content:'';position:absolute;left:2px;top:4px;bottom:4px;width:3px;border-radius:var(--dj-radius-pill);background:var(--tp-priority)}
.tp-calendar-copy{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:var(--dj-space-1)}
.tp-calendar-line1,.tp-calendar-line2{display:flex;align-items:center;gap:var(--dj-space-1);min-width:0;flex-wrap:nowrap}
.tp-calendar-line1 .tp-title{font-size:var(--dj-tp-calendar-title-size)!important;white-space:nowrap;text-overflow:ellipsis;display:block;flex:0 1 auto}
.tp-calendar-line1 .tp-goal-mark,.tp-calendar-line1 .tp-artifact,.tp-calendar-line1 .tp-marker{flex:none}
.tp-calendar-status{display:inline-flex;align-items:center;justify-content:center;flex:none;inline-size:var(--dj-icon-standard);block-size:var(--dj-icon-standard)}
.tp-calendar-status>.dj-utility-symbol{inline-size:var(--dj-icon-standard);block-size:var(--dj-icon-standard)}
.tp-calendar[data-task-status="done"] .tp-calendar-status{color:var(--green)}
.tp-calendar[data-task-status="failed"] .tp-calendar-status{color:var(--danger)}
@media(max-width:1024px){.tp-calendar[data-task-status="done"],.tp-calendar[data-task-status="failed"]{--dj-tp-calendar-title-size:var(--dj-text-secondary-size)}}
.tp-calendar-line2:empty{display:none}
.tp-calendar-right{display:flex;flex-direction:column;gap:var(--dj-space-1);align-items:flex-end;justify-content:space-between;flex:0 1 auto;max-width:45%;min-width:0;font-size:var(--dj-tp-secondary-size);font-weight:var(--dj-tp-secondary-weight);line-height:var(--dj-tp-secondary-line-height)}
.tp-calendar-first{display:flex;align-items:center;justify-content:flex-end;gap:var(--dj-space-1);white-space:nowrap}
.tp-calendar-first:empty{display:none}
.tp-calendar-right .tp-right-owner{margin-top:auto;position:static;max-width:100%;min-width:0;text-align:right}
.tp-calendar-right .tp-right-owner .tp-artifact-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-calendar-time{white-space:nowrap}.tp-calendar .tp-marker{width:18px!important;height:18px!important;flex-basis:18px}.tp-calendar .tp-amount{font-size:var(--dj-tp-secondary-size)}
@media(max-width:760px){.tp-view{gap:var(--dj-space-1)}.tp-right{max-width:29%}.tp-row>.task-row-tools{gap:0!important}.tp-calendar-right{max-width:44%}}
[data-idea-inbox]{display:none!important}
[data-route="ideas"],[data-v76-route="ideas"]{display:flex!important}
.v43-goal-list,.v43-goal-section>h2,.v43-goal-section>.v57-unified-head{border-top:0!important;border-bottom:0!important;box-shadow:none!important}
.rightbar-scroll,main.main{scrollbar-gutter:stable}
@media(min-width:1025px){.rightbar:not(.dj-inspector){box-sizing:border-box;min-width:320px;max-width:320px;width:320px}.app-shell{grid-template-columns:250px minmax(0,1fr) 320px}}
@media(max-width:1024px){.v43-task-status,.v28-done-undo,.v43-auto-status-stack{bottom:calc(max(var(--v78-bottom-space,80px),var(--v75-mobile-bar,68px)) + 84px + env(safe-area-inset-bottom,0px))!important;max-width:calc(100vw - 24px)!important;z-index:100110!important}}
.tp-wall-palette{position:fixed;z-index:100200;display:grid;grid-template-columns:repeat(9,24px);grid-template-rows:repeat(3,24px);gap:var(--dj-space-2);padding:var(--dj-space-3);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-popup);box-shadow:var(--shadow);box-sizing:content-box;max-width:calc(100vw - 24px)}
.tp-wall-palette>button{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;padding:0!important;border:1px solid #7775!important;border-radius:var(--dj-radius-circle)!important;aspect-ratio:1}.tp-wall-palette>button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}
/* v.2: раньше значок наследовал цвет ОТ КНОПКИ (тогда сама кнопка была
 * артефакт-цветной) — теперь кнопка стандартного цвета (см. выше), значок
 * же остаётся цветным через --tp-color; color:inherit здесь молча делал
 * значок тоже чёрным (наследуя от текста), перебивая правило .tp-artifact>
 * .v22-icon выше по файлу той же специфичностью, но более поздним
 * порядком. Заменено на ту же переменную, дублирования нет — старое
 * .tp-artifact>.v22-icon-правило можно было бы удалить, оставлено единым
 * источником здесь для .tp-goal-mark тоже. */
.tp-artifact .v22-icon,.tp-goal-mark .v22-icon{color:var(--tp-color,inherit)!important}

/* v.2 п.9: сводный ряд подзадач за пределом тира 1 (см. subtaskSummaryMarkup
 * в task-presentation.js) — та же геометрия ряда (высота/паддинг) через
 * базовый .task-row-v11, раскладка проще: значок-стрелка слева, подпись
 * «X/Y задач», опциональный кружок-счётчик Z справа. Границы/фон/скругление
 * — общее правило п.8 ниже (та же :is(...), тот же stack-first/-last). */
.task-row-v11.tp-sub-summary{display:flex!important;align-items:center!important;gap:var(--dj-space-3)!important;width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.tp-sub-summary-lead{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;border:1px solid var(--line);border-radius:var(--dj-radius-circle);color:var(--muted)}
.tp-sub-summary-lead>.v22-icon{width:var(--dj-icon-compact,16px)!important;height:var(--dj-icon-compact,16px)!important;margin:0!important}
.tp-sub-summary-label{flex:1;min-width:0;font-size:var(--dj-tp-title-size);font-weight:var(--dj-tp-title-weight);line-height:var(--dj-tp-title-line-height);color:var(--ink)}
.tp-sub-summary-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:20px;height:20px;min-width:20px;border:1px solid var(--line);border-radius:var(--dj-radius-circle);font-size:var(--dj-tp-caption-size);font-weight:var(--dj-tp-caption-weight);line-height:var(--dj-tp-caption-line-height);color:var(--muted)}

/* v.2 п.8, исправлено по живому скриншоту пользователя — скругление и зазор
 * НЕ «первый/последний ряд в группе по общему DOM-родителю» (это молчаливо
 * ломается ровно на границе уровней: задача верхнего уровня со своей
 * раскрытой подзадачей сразу под ней никогда не была «последней в своей
 * группе», хотя следом идёт уже не сосед её уровня, а её собственный
 * ребёнок). Прямая цитата: «если после них идёт НЕ задача их уровня, а
 * меньше [вложеннее], или вообще нет задачи — скругляются внешние углы».
 * stackEdges() (task-presentation.js) теперь сравнивает КАЖДЫЙ ряд с его
 * непосредственным визуальным соседом сверху/снизу (не с краями группы) —
 * ряд получает .tp-stack-first, если сосед СВЕРХУ другого уровня (или его
 * вовсе нет), .tp-stack-last — если сосед СНИЗУ другого уровня (или его нет).
 * Внутри одного уровня — 0px, общий шов (верхняя рамка снята у всех, кроме
 * .tp-stack-first). На границе уровней — по прямой просьбе именно 1px, не
 * 0 и не старые 3+3=6px — несёт его ТОЛЬКО margin-top на .tp-stack-first
 * (не margin-bottom на .tp-stack-last тоже — иначе на стыке было бы 1+1=2px,
 * у грид-элементов соседние margin не схлопываются, как в обычном потоке). */
:is([data-v15-task-row],.v35-tag-task-row,.tp-sub-summary){border:1px solid var(--line)!important;border-top:0!important;border-radius:0!important;background:var(--panel)!important}
.tp-stack-first{border-top:1px solid var(--line)!important;border-top-left-radius:var(--dj-radius-popup)!important;border-top-right-radius:var(--dj-radius-popup)!important;margin-top:0!important}
.tp-stack-last{border-bottom-left-radius:var(--dj-radius-popup)!important;border-bottom-right-radius:var(--dj-radius-popup)!important}
/* Само border/radius/margin-top правило выше уже даёт верную геометрию, но
 * между строками всё равно был виден зазор 6px = ДВЕ независимые, более
 * ранние (до этого раунда) системы, о которых оно не знало: `.v15-tree-list`/
 * `.v15-children` — `display:grid;gap:3px` (v80.css/v82.css, комментарий там
 * «recursive projects: three-point breathing room» — старая, тоже «своя
 * рамка у каждого ряда», но БЕЗ учёта уровней, всегда 3px зазор) и
 * `.v15-task-node+.v15-task-node{margin-top:3px}` (viewport-ui.css). Обе
 * загружаются РАНЬШЕ task-presentation.css — побеждаем порядком файлов той
 * же специфичностью. */
:is(.v15-tree-list,.v15-children){gap:0!important}
.v15-task-node+.v15-task-node{margin-top:0!important}
/* Третий, отдельный источник — `.v15-children{padding:3px 0 0 57px}`
 * (v80.css, тот же «three-point breathing room» блок) — верхний паддинг 3px
 * добавлялся ИМЕННО при входе на новый уровень (первый ребёнок раскрытого
 * родителя), но не при выходе обратно — из-за чего «вглубь» зазор выходил
 * 3+1=4px, а «наружу» — верно 1px. Левый паддинг (57px, отступ вложенности)
 * не трогаем — он даёт нужный визуальный сдвиг, не часть зазора. */
.v15-children{padding-top:0!important}

.tp-artifact:has(>.tp-artifact-label){flex-wrap:nowrap;overflow:hidden}.tp-artifact>.tp-artifact-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}.tp-artifact>.tp-at{flex:0 0 auto;white-space:nowrap;overflow-wrap:normal}

/* Habit row (audit D-5, owner R-4): the squares of the last periods take the slot of a numeric goal's progress bar — a full
   row under the title, oldest on the left, the current period on the right in a frame; what does not fit is cut on the left. */
.tp-view:has(>.tp-habit-slot){flex-wrap:wrap}
.tp-view:has(>.tp-habit-slot)>.tp-copy{flex:1 1 0}
.tp-view:has(>.tp-habit-slot)>.tp-right{flex:0 0 auto;width:auto;min-width:0;max-width:none}
.tp-habit-slot{display:flex;align-items:center;gap:var(--dj-space-2);flex:1 0 100%;order:5;min-width:0;overflow:hidden}
/* Match the visible first square with the numeric goal bar's inset. */
.tp-habit-slot{box-sizing:border-box;padding-inline-start:calc(var(--dj-space-4) + var(--dj-space-1))}
.focus-card .ts-main-tree{margin-inline:calc(-1 * var(--dj-space-6))}
/* The main Task uses the same left task axis as the other Today rows. Keep its
   menu in the card header; the project stays beside the Task metadata. */
.focus-card.v14-main-card:has(>.v14-today-task.tp-row){padding-bottom:var(--dj-space-1)}
.focus-card.v14-main-card>.v14-today-task.tp-row{margin-inline-start:calc(var(--dj-space-1) - var(--dj-space-6));margin-inline-end:calc(var(--dj-space-2) - var(--dj-space-6))}
.focus-card.v14-main-card>.v14-today-task.tp-row .tp-right{position:static}
.focus-card.v14-main-card>.v14-today-task.tp-row .tp-right-top{position:absolute;top:calc(-1 * var(--dj-space-4));right:0}
@media(max-width:1024px){.tp-habit-square>.habit-history-cell{width:22px;height:22px;min-width:22px;min-height:22px}}
.tp-habit-slot>.tp-habit-strip{flex:1 1 auto;flex-direction:row-reverse;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start;height:44px;overflow:hidden}
@media(min-width:1025px){.tp-habit-slot>.tp-habit-strip{height:34px}}
.tp-habit-square[data-current="true"]>.habit-history-cell{border:2px solid var(--ink)}
.tp-habit-square[hidden]{display:none}
.tp-habit-square[data-streak="true"]>.habit-history-cell{position:relative}
.tp-habit-streak{flex:0 0 auto;margin-left:auto;color:var(--muted);font-size:var(--dj-tp-amount-size);font-weight:var(--dj-tp-amount-weight);white-space:nowrap}
/* A counted habit (R-3, owner 2026-10-27): «1 из 3+» and «+1» close the slot on the right; the squares keep the rest of it.
   The figure turns green once the period is done, red when it failed. */
.tp-habit-slot-counted{display:flex;align-items:center;gap:var(--dj-space-2)}
.tp-habit-slot-counted>.tp-habit-strip{flex:1 1 auto;width:auto}
.tp-habit-tally{display:flex;align-items:center;flex:0 0 auto;gap:var(--dj-space-2);margin-left:auto;font-size:var(--dj-tp-caption-size);font-weight:var(--dj-tp-caption-weight);line-height:var(--dj-tp-caption-line-height);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.tp-habit-tally[data-verdict="done"]>.tp-habit-tally-text{color:var(--green)}
.tp-habit-tally[data-verdict="failed"]>.tp-habit-tally-text{color:var(--accent)}
.tp-habit-plus{display:grid;place-items:center;min-width:44px;height:44px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button);background:transparent;color:var(--ink);font:inherit;font-weight:var(--dj-text-heading-weight);cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.tp-habit-plus:hover,.tp-habit-plus:focus-visible{background:var(--accent-soft)}
.tp-habit-plus:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.tp-habit-plus:disabled{opacity:.35;cursor:default}
@media(min-width:1025px){.tp-habit-plus{min-width:34px;height:34px}}

/* ==== revision23.css ==== */
/* Outer rows and inner values are separate surfaces. Picker buttons keep their fill. */
/* (62→63) Reconciled with task-menu-r19.css the same day (see
 * ANDROID_TASKMENU_PORT_PROMPT.md §173/§174): this file's own quadruple
 * `.v19-task-menu` anchor out-specifies task-menu-r19.css's triple anchor,
 * so it was the file actually winning and silently reverting several
 * same-day fixes — not a bug in task-menu-r19.css. Final state after a
 * fast back-and-forth in one round: EVERY row rectangle (Срок included)
 * ends up the SAME warm color as «Приоритет» — no more var(--panel)
 * (plain or 50%-transparent) anywhere in this list; that idea was tried
 * twice this same round and explicitly dropped both times. */
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu :is(.time-line,.v18-priority-row,.v18-artifact-row,.v18-artifact-pickers){background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-pickers>.v18-reminder{background:transparent!important}
/* (63) Artifact-row buttons and picker-chips — same warm tone as every
 * other rectangle now (was plain var(--panel) for one round, dropped).
 * `.v19-time-chip`/`.v19-reminder-chip` (the small data pills INSIDE Срок/
 * Напоминание, e.g. "сегодня 09:30") deliberately left OUT of this list —
 * no user request this round touched them, they keep whatever
 * task-menu-r19.css's own pre-existing (lighter, 8%-tint) formula gives
 * them; this file no longer overrides their background at all. */
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)>button{background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important}
/* (74в) Тэг — исключение из общей тан16%-заливки выше: по прямой просьбе
 * («его прямоугольник полностью залит его цветом») тэг залит ПОЛНЫМ цветом
 * тэга, не общим тоном. Эта строка и предыдущая — ОДИНАКОВОЙ специфичности
 * (0,6,1), выигрывает по порядку в файле — обязана идти именно здесь,
 * ПОСЛЕ общего правила, а не в task-menu-r19.css (та же специфичность
 * там, но этот файл грузится последним и уже сам выигрывал бы у неё). */
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button{background:var(--artifact-color,var(--accent))!important}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v19-pickers-chips>button{background:var(--dj-editor-field-bg,color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8)))!important}
/* (62) Removed: this forced the Датчик header row back to transparent/
 * borderless, undoing the same day's live-diagnosed fix (see §173б in the
 * port doc — this row was accidentally left in an old "transparent seam"
 * list; it has its own real border+background formula in task-menu-r19.css
 * that should win, not be reset to nothing here). */
.tp-time,.tp-calendar-time{color:#111!important}.tp-time.tp-overdue,.tp-calendar-time.tp-overdue{color:#b23b3b!important}.tp-time.tp-ongoing,.tp-calendar-time.tp-ongoing{color:#2f7d4f!important}
.tp-right:not(.tp-inline-owner){display:flex!important;flex-direction:column!important;align-items:flex-end!important;align-self:stretch!important}
.tp-right-top,.tp-calendar-first{display:flex;align-items:center;justify-content:flex-end;gap:var(--dj-space-1);min-width:0}
.tp-right-owner{display:flex;align-items:center;justify-content:flex-end;min-width:0;max-width:100%;font-size:var(--dj-text-secondary-size,12px)}
.tp-disclosure-slot{display:flex;flex-direction:row;align-items:flex-start;flex:0 0 44px;width:44px;gap:0}
.tp-disclosure-slot:has(>.v15-disclosure){width:88px;flex-basis:88px;}
.tp-disclosure-slot>.tp-marker{min-width:44px;min-height:44px;display:grid;place-items:center;}
.tp-disclosure-slot>.v15-disclosure{margin:0!important;position:relative!important;transform:none!important;width:44px!important;min-width:44px!important;height:44px;min-height:44px;display:grid;place-items:center;}
.tp-disclosure-slot>.v15-disclosure .v22-icon{width:var(--dj-icon-compact);height:var(--dj-icon-compact);}
.tp-row>.task-row-tools{display:none!important}.tp-right-top>.task-row-tools{display:flex!important;margin:0!important;padding:0!important}
.tp-row .task-row-tools [data-row-comment]{display:none!important}
.tp-calendar-right{display:flex!important;flex-direction:column!important;align-items:flex-end!important}.tp-calendar-first{white-space:nowrap}

/* Same row dimensions as the task stack; only outer group corners are rounded. */
.r21-entity-editor .r23-project-fields{width:100%;min-width:0}
/* (67) Граница — цвета фона задачи (var(--panel)), той же логике, что и
 * прямоугольники меню задачи (task-menu-r19.css) — по прямой просьбе
 * пользователя, «границы прямоугольников… всех трёх видов, проекта и
 * идеи». */
.r21-entity-editor .r23-project-row{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-2);width:100%;min-height:34px;padding:var(--dj-space-1) var(--dj-space-3);margin:0;border:1px solid var(--panel,#fffdf8);border-radius:0;background:color-mix(in srgb,#8a7a5f 16%,var(--panel));color:var(--ink);font-family:inherit;font-size:var(--v19-task-menu-font-size,14px);font-weight:var(--v19-task-menu-font-weight,600);text-align:left}
/* (67) Стрелка «Описания» — по прямой просьбе прижата к правому краю
 * прямоугольника (была сразу после текста «Описание», с большим пустым
 * промежутком до истинного края — живой замер показал стрелку на середине
 * ряда, не у края). */
[data-r23-description]>.v22-icon:last-child{margin-left:auto!important}
.r23-project-row>.v22-icon{width:20px;height:20px;flex:0 0 20px;color:var(--accent)}
.r23-project-stack>.r23-project-row:first-child{border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0}.r23-project-stack>.r23-project-row:last-child{border-radius:0 0 var(--dj-radius-popup) var(--dj-radius-popup)}
.r23-project-stack>.r23-project-row+.r23-project-row{border-top:0}
/* (72) По прямой просьбе — «Описание» и «Срок» (первая строка
 * .r23-project-stack) теперь одна группа нулевого зазора: верх «Описания»
 * скруглён, низ «Описания»/верх «Срока» — прямые (общий шов), «Срок»
 * больше не несёт свою верхнюю рамку (сливается с нижней рамкой
 * «Описания», тот же приём, что и внутри самого .r23-project-stack между
 * его собственными строками). */
.r23-description{margin-bottom:0}.r23-description>.r23-project-row{border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0}
.r23-description+.r23-project-stack>.r23-project-row:first-child{border-radius:0!important;border-top:0!important}
.r23-description [data-r23-description-body]{position:relative;margin-top:calc(-1*var(--dj-space-2,var(--dj-space-2)) - 0);padding:0 var(--dj-space-3) var(--dj-space-2);border:1px solid var(--line);border-top:0;border-radius:0 0 var(--dj-radius-chip,8px) var(--dj-radius-chip,8px);background:var(--panel)}.r23-description textarea{width:100%;min-width:0;box-sizing:border-box;font:inherit;resize:vertical;border:0;background:transparent;padding:0}
/* DS-SCR-08: раскрытое описание — тот же прямоугольник, что и строка: между словом «Описание» и текстом нет рамки. */
.r23-description>.r23-project-row[aria-expanded="true"]{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}
.r23-description textarea:focus{box-shadow:none;outline:0}
.r23-description .r23-description-preview{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.r23-project-row>button{background:transparent;border:0;color:inherit;font:inherit;text-align:left;padding:0;min-width:0}
.r23-stone-values{display:flex;gap:var(--dj-space-1);overflow-x:auto;min-width:0}.r23-value-chip{display:flex;align-items:center;gap:var(--dj-space-1);flex-shrink:0;border:1px solid currentColor;border-radius:var(--dj-radius-chip);background:color-mix(in srgb,var(--panel) 50%,transparent);font:inherit}.r23-value-chip .v22-icon{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px)}
/* (70) Камень — рамка/значок остаются цвета камня (currentColor от inline
 * style на самой кнопке), но название — чёрное/стандартное, по прямой
 * просьбе (та же логика, что и у Камня в меню задачи). */
.r23-value-chip>span{color:var(--ink)!important}
/* (73) «Срок» в меню проекта/идеи — ИСПРАВЛЕНО: рамка НЕ красится по
 * статусу — по прямой поправке пользователя рамка большого прямоугольника
 * «Срок» остаётся цвета фона задачи, как и у ВСЕХ остальных больших
 * прямоугольников (§178п1) — реверс border-color-правил из §180п3, те
 * были overreach. Красится по статусу дедлайна (tp-overdue/tp-ongoing/
 * tp-future, класс уже стоит на строке — project-editor-fields.js:paint())
 * ТОЛЬКО значок и текст — «ровно так же, как Срок визуализирован в меню
 * задачи»: там тоже красится ведущий значок ряда (§180п3) и внутренний
 * текст/чип, а внешняя рамка ряда остаётся общей (var(--panel)). Текст
 * (.tp-time) уже красится нужным цветом отдельным давним правилом чуть
 * выше по файлу (.tp-time.tp-overdue и т.д.) — трогать не нужно. */
.r21-entity-editor .r23-project-row.tp-overdue :is(.v22-icon,.dj-utility-symbol){color:#b23b3b!important}
.r21-entity-editor .r23-project-row.tp-ongoing :is(.v22-icon,.dj-utility-symbol){color:#2f7d4f!important}
.r21-entity-editor .r23-project-row.tp-future :is(.v22-icon,.dj-utility-symbol){color:var(--ink)!important}
.r23-project-comments{margin-top:var(--dj-space-2);background:transparent;border:0}.r23-comment-head{display:flex;align-items:center;gap:var(--dj-space-2);min-height:34px;padding:var(--dj-space-1) var(--dj-space-3)}
.r23-comment-head button{border:0;background:transparent;color:var(--accent);font:inherit;display:flex;align-items:center;gap:var(--dj-space-2)}
.r23-comment-head button:first-child{flex:1;color:var(--ink);text-align:left}.r23-comment-head button:first-child .v22-icon{color:var(--accent);width:20px;height:20px}
.r23-comment-head button:disabled{opacity:.5}.r23-comment-head [data-r23-comment-add]{font-size:var(--dj-text-title-size)}
.r23-comment-card{border:1px solid var(--line);background:color-mix(in srgb,#8a7a5f 16%,var(--panel));padding:var(--dj-space-2) var(--dj-space-3);overflow-wrap:anywhere}
.r23-comment-card:first-child{border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0}.r23-comment-card:last-child{border-radius:0 0 var(--dj-radius-popup) var(--dj-radius-popup)}.r23-comment-card:only-child{border-radius:var(--dj-radius-card,10px)}
.r23-comment-card img{max-width:100%;max-height:160px}.r23-comment-text{white-space:pre-wrap}.r23-comment-compose:not([hidden]){display:flex;flex-wrap:wrap;gap:var(--dj-space-2)}.r23-comment-compose textarea{width:100%}.r23-comment-compose button .v22-icon{width:20px;height:20px}
.r23-color-palette{display:grid;grid-template-columns:repeat(9,24px);gap:var(--dj-space-2);min-width:0;padding:var(--dj-space-3)}.r23-color-palette button{width:24px;height:24px;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);padding:0}.r23-color-palette button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}
.r23-people{display:flex;flex-direction:column;gap:var(--dj-space-2);width:min(360px,calc(100vw - 32px));padding:var(--dj-space-3)}.r23-people h4,.r23-people h5{margin:0}.r23-people-list{display:flex;flex-direction:column;gap:var(--dj-space-1)}.r23-people-member{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);min-height:34px}.r23-people-member>span{min-width:0;overflow-wrap:anywhere}.r23-people-add{display:flex;flex-direction:column;gap:var(--dj-space-2)}.r23-people-add input,.r23-people-add select{width:100%;box-sizing:border-box;font:inherit}.r23-people-link code{display:block;overflow-wrap:anywhere;user-select:all}.r23-people-notice{margin:0;color:var(--muted)}
.r23-conversion{display:flex;flex-direction:column;gap:var(--dj-space-2);width:270px;max-width:100%}.r23-conversion label{display:flex;flex-direction:column;gap:var(--dj-space-1)}.r23-conversion [hidden]{display:none!important}.r23-conversion input,.r23-conversion select{width:100%;min-width:0;box-sizing:border-box}
.r23-project-fields [hidden]{display:none!important}
html[data-interface-design="classic"] .r21-entity-editor .r23-project-row,html[data-interface-design="classic"] .r23-comment-card{background:white}

/* (64) Расширено на .v19-reminder-chip — по прямой просьбе тот же
 * красный/зелёный (и чёрный для «future», часть исходных правил
 * визуализации даты/времени), что у .v19-time-chip, должен применяться и
 * к чипам «Напоминания». */
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu :is(.v19-time-chip,.v19-reminder-chip).is-future{color:#111!important;border-color:var(--line)!important}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu :is(.v19-time-chip,.v19-reminder-chip).is-ongoing{color:#2f7d4f!important;border-color:#2f7d4f!important}
.r21-entity-editor .r23-project-row>button{min-height:0!important;height:auto!important;line-height:var(--dj-text-body-line-height)!important;font:inherit!important;padding:0!important}
.r21-entity-editor .r23-comment-head{font-size:var(--v19-task-menu-font-size,14px);font-weight:var(--v19-task-menu-font-weight,600)}
.tp-category-menu>.tp-artifact{display:flex!important;min-height:36px;width:100%}

/* Mobile calendar has independent columns: a long title cannot push time below it. */
@media(max-width:1024px){
 .tp-calendar.calendar-task-v11{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,42%);align-items:stretch!important}
 .tp-calendar-copy{min-width:0!important;align-self:stretch}
 .tp-calendar-right{max-width:100%!important;min-width:0!important;width:100%;margin:0!important;align-self:stretch}
 .tp-calendar-first{max-width:100%;font-size:var(--dj-text-secondary-size,12px);gap:var(--dj-space-1)}
 .tp-calendar-right .tp-right-owner{width:100%}
}

/* ==== revision24.css ==== */
/* Latest request overrides the imported r23 web design, shared by all clients. */
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v19-time-chip{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important;font-family:inherit!important;font-size:var(--v19-row-font-size,14px)!important;font-weight:var(--dj-text-heading-weight)!important}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .time-line{--r24-time-color:#111}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .time-line.v19-line-past{--r24-time-color:#b23b3b}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .time-line.v19-line-ongoing,.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .time-line.v19-line-future:not(.r24-no-date){--r24-time-color:#2f7d4f}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .time-line .v19-time-chip,.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .time-line>:first-child{color:var(--r24-time-color)!important}
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu [data-artifact-row]:is([data-artifact-row=ritual],[data-artifact-row=stone]) button>span:not(.v22-icon){color:#111!important;font-family:inherit!important;font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-heading-weight)!important}
.r24-picker-actions{display:flex;justify-content:flex-end;gap:var(--dj-space-2);padding:var(--dj-space-2);position:sticky;bottom:0;background:var(--panel);z-index:2}
.r24-picker-actions button{display:grid!important;place-items:center!important;width:36px!important;height:36px!important;min-width:36px!important;padding:0!important;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent)!important;color:white!important;border:0!important;flex:0 0 36px!important}
.r24-picker-actions button .v22-icon{color:white!important}
.tp-line3{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);font-size:var(--dj-text-secondary-size,12px);margin-top:var(--dj-space-1);align-items:center}
.tp-line2:empty,.tp-line3:empty,.tp-right-owner:empty{display:none!important}
.tp-line2:has(>.tp-time:empty:only-child){display:none!important}
.tp-line1 .tp-amount,.tp-line1 .tp-child-count{font-size:var(--dj-text-secondary-size,12px)!important}
.tp-right:not(.tp-inline-owner){justify-content:space-between!important;align-self:stretch!important}
.tp-right-top{min-height:22px;align-items:center!important}
.tp-line1{min-height:22px;align-items:center!important}
.tp-right-owner{margin-top:auto;font-size:var(--dj-text-secondary-size,12px)!important}
/* Keep the project label's text baseline level with the final metadata line. */
.tp-row .tp-right-owner{position:relative;top:var(--dj-space-2)}
/* The Stone page uses the same row for the lowest left metadata and the
 * project on the right. Flex stretch used to push the project below it. */
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)){display:grid!important;grid-template-columns:44px minmax(0,1fr) minmax(0,max-content);grid-template-rows:auto auto;column-gap:var(--dj-space-2);row-gap:var(--dj-space-1);align-items:center}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot))>.tp-disclosure-slot{grid-column:1;grid-row:1 / -1;align-self:start}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot))>.tp-copy,[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot))>.tp-right{display:contents!important}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)) .tp-line1{grid-column:2;grid-row:1}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)) .tp-line2{grid-column:2;grid-row:2;margin-top:0}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)) .tp-right-top{grid-column:3;grid-row:1;justify-self:end}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)) .tp-right-owner{grid-column:3;grid-row:2;position:static;margin:0;justify-self:end}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)):has(.tp-line3:not(:empty)){grid-template-rows:auto auto auto}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)) .tp-line3{grid-column:2;grid-row:3;margin-top:0}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)):has(.tp-line3:not(:empty)) .tp-right-owner{grid-row:3}
[data-v78-stone-tasks] .tp-row .tp-view:not(:has(>.tp-habit-slot)):has(.tp-line2:empty):not(:has(.tp-line3:not(:empty))) .tp-right-owner{grid-row:1}
[data-v17-stone-route].stone::before,.v17-wall-active-stone[data-v17-stone-route]>span{color:var(--stone-color,var(--amber))}
/* The old calendar child rule centers the copy column on tablet widths. Keep task titles at the column's leading edge. */
.tp-calendar.calendar-task-v11>.tp-calendar-copy{align-items:stretch;flex-wrap:nowrap}
.v14-today-task.tp-row>.time,.v14-today-task.tp-row>.v14-task-time{display:none!important}
.notes-selection[data-kind=text-context]{background:var(--panel)!important;color:var(--ink)!important;border:1px solid var(--line)!important}
.notes-selection[data-kind=text-context] button{color:var(--ink)!important}
.notes-selection[data-kind=io],.notes-selection[data-kind=document]{flex-direction:column!important;align-items:stretch!important;min-width:190px;max-height:70vh;overflow:auto}
.notes-selection[data-kind=io] button,.notes-selection[data-kind=document] button{display:flex;gap:var(--dj-space-2);align-items:center;justify-content:flex-start}
.notes-selection hr{width:100%;border:0;border-top:1px solid var(--line);margin:var(--dj-space-2) 0}
.notes-editor-head [data-note-action=fit-page]{opacity:1}
.notes-editor-head [data-note-action=fit-page][hidden]{display:none!important}
.r24-settings-head{cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.r24-settings-head .v22-icon{color:var(--accent)}
.r24-settings-body{min-height:0;overflow:hidden}
.r24-settings-fold{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s ease}
.r24-settings-fold.r24-collapsed{grid-template-rows:0fr}

@media(prefers-reduced-motion:reduce){.r24-settings-fold{transition:none}}

main.main .v76-settings-collapsed>:not(h3){display:none!important}
form[data-v26-tag-editor] .v31-tag-actions>:is([data-v26-tag-cancel],[data-v26-tag-save]),form[data-v56-action-editor] .v56-editor-head>:is([data-v56-editor-cancel],.v56-editor-ok){border-radius:var(--dj-radius-circle,50%)!important;width:36px!important;height:36px!important;min-width:36px!important;max-width:36px!important;padding:0!important;display:inline-grid!important;place-items:center!important;background:var(--accent)!important;color:white!important;transform:none!important;aspect-ratio:1!important}
[data-v26-tag-color-button] .v22-icon{color:var(--tag-color)!important}
.v57-unified-head>.v57-section-kind{display:none!important}
.v57-unified-head>.v57-count,.idea-group-head>span:last-child{margin-left:auto!important}
.v57-unified-head>.v57-section-toggle{border:0!important;background:transparent!important;box-shadow:none!important}
.v43-goal-section>h2{border-bottom:0!important}
.idea-card>strong,.project-tree-head .project-name,.project-tree-head .project-name b{color:var(--ink)!important}
.idea-group-head{display:flex!important;align-items:center!important;gap:var(--dj-space-2)}
.project-tree-head .v15-project-note-count,.project-tree-head .chip{background:var(--panel)!important}
form[data-v56-action-editor] .v56-query.invalid{color:#b23b3b!important}
form[data-v56-action-editor] .v56-query:not(.invalid){color:#2f7d4f!important}
.r24-query-row{display:flex;gap:var(--dj-space-2);align-items:flex-start}.r24-query-row textarea{flex:1;min-width:0}
.r24-query-row>button{flex:0 0 34px;padding:var(--dj-space-1)}
form[data-v56-action-editor] :is(.r24-query-row>.btn,[data-v56-add-mutation]){display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--dj-space-2,var(--dj-space-2));flex:0 0 136px;inline-size:136px;min-block-size:44px;padding-inline:var(--dj-space-2,var(--dj-space-2));color:var(--accent);white-space:nowrap}
form[data-v56-action-editor] .v56-mutation-bar{flex-wrap:nowrap;align-items:flex-start}
form[data-v56-action-editor] .v56-editor-artifacts{display:flex;flex-wrap:wrap;gap:var(--dj-space-1,var(--dj-space-1));min-inline-size:0}
.v53-priority button{display:flex;align-items:center;gap:var(--dj-space-1)}
.r24-today-section>.section-head{cursor:pointer}
.r24-today-section .empty{min-height:0!important;padding:var(--dj-space-2)!important}
.v14-today-task.tp-row>.v38-today-time,.tp-row>.v38-today-time{display:none!important}

.r24-today-section>.r24-settings-fold>.r24-settings-body>.card{min-height:0!important}
.compact-feed-head[data-r24-feed]{display:flex!important;align-items:center;gap:var(--dj-space-2)}
.compact-feed-head[data-r24-feed]>button{border:0!important;background:transparent!important;box-shadow:none!important}

.r24-help-map{position:relative;isolation:isolate;min-height:520px;border-radius:var(--dj-radius-window);overflow:hidden;background:#eee7d3 url('assets/help-life-map.svg') center/cover;margin-bottom:calc(var(--dj-space-4) + var(--dj-space-1));padding:calc(var(--dj-space-8) + var(--dj-space-6)) calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-1)) calc(var(--dj-space-6) + var(--dj-space-1))}
.r24-help-levels{display:grid;gap:var(--dj-space-3);position:relative;z-index:1}
.r24-help-levels>div{display:flex;justify-content:center;gap:var(--dj-space-2);flex-wrap:wrap;min-height:52px;align-items:center}
.r24-help-map button{border:0;background:#fffaf1b8;color:#342c25;border-radius:var(--dj-radius-button);padding:var(--dj-space-2) var(--dj-space-3);font:var(--dj-text-heading-weight) var(--dj-text-heading-size) var(--font-ui,serif)}
.r24-help-map aside{position:absolute;right:10px;top:150px;display:flex;flex-direction:column;gap:calc(var(--dj-space-8) + var(--dj-space-2))}
.r24-help-map aside button{font-size:var(--dj-text-secondary-size);opacity:.8;padding:var(--dj-space-1)}
@media(max-width:599px){.r24-help-map{padding:calc(var(--dj-space-6) + var(--dj-space-1)) calc(var(--dj-space-8) + var(--dj-space-8)) calc(var(--dj-space-4) + var(--dj-space-1)) var(--dj-space-2);min-height:430px}.r24-help-map button{font-size:var(--dj-text-secondary-size);padding:var(--dj-space-1)}.r24-help-levels>div{min-height:45px;gap:var(--dj-space-1)}.r24-help-map aside{right:4px}}

.chat-entry [data-chat-input].invalid{color:#b23b3b!important}.chat-entry [data-chat-input]:not(.invalid){color:#2f7d4f!important}

.project-tree-head [data-project] b{color:var(--ink)!important}
.project-tree-head>.v15-active-task-count{background:var(--panel)!important}
.tp-right-top .task-row-tools{min-height:22px!important;height:22px;align-items:center!important}
.tp-right-top .task-row-tools>button:not(.idea-task-pin){height:22px!important;min-height:22px;max-height:22px!important;padding-block:0!important}

.idea-group-head>span:last-child{min-width:25px;height:25px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-pill,999px);display:inline-grid;place-items:center;background:var(--surface,#fff);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight)}
form[data-v56-action-editor] .v56-editor-head input{background:transparent}

/* ==== design/button-standards.css ==== */
/* Элементы выбора и попапы (2026-09-22): РОВНО ДВЕ формы элемента выбора приложения —
 *  чип     (--dj-radius-chip)    — «привязать к чему-то» (тэг/камень/проект/контакт) и одиночный
 *                                  переключатель вкл/выкл (не отдельная третья форма — частный
 *                                  случай чипа). Раньше пилюля (14px) была третьей формой — больше нет.
 *  сегмент (0 у кнопок внутри, --dj-radius-chip у контейнера) — выбор ОДНОГО из N взаимоисключающих
 *                                  вариантов (Сумма/За раз, ≥/≤).
 * И один общий радиус для КОНТЕЙНЕРА всплывающего меню/попапа (--dj-radius-popup) — раньше был
 * россыпью значений 7-18px по ревизиям (первый найденный конкретный случай — .v40-manual-rules/
 * .r27-critical в форме «Ручная цель с цифрами»; полный список — DESIGN_STANDARDS.md §5).
 * Значения — одни и те же на Desktop/Tablet/Phone СЕЙЧАС (визуальной причины различать не нашли),
 * но токен существует именно для того, чтобы завести per-breakpoint отличие без переписывания
 * каждого места — так же, как это сделано для шрифтов: переопределить в :root внутри двух @media
 * файла design/tokens.css.
 * Сами токены (--dj-radius-chip, --dj-radius-popup, --dj-radius-popup-row, --dj-minheight-popup-row,
 * --dj-action-secondary-*) определены в design/tokens.css — единственном источнике значений.
 * One documented exception to the popup-row height: `.v76-header-menu>button` (mobile top-nav) keeps its own
 * 44px — the minimum touch-target size for a primary nav menu. */

/* Приоритет P1-P4 — выбор ОДНОГО из 4 взаимоисключающих вариантов, то есть по правилу выше
 * должен быть сегментом. 2026-09-25 (владелец: "приоритеты также переводи в стандарт"): не был.
 * Два независимых нарушения этого правила, найденных живой проверкой (не по чтению CSS):
 *  1) .priority-menu/.mini-priority-menu (основной попап в меню задачи и мини-версия) рисовали
 *     4 ОТДЕЛЬНЫХ круглых чипа с зазором — кнопка несёт класс .v22-icon-button (даёт
 *     border-radius:50%;aspect-ratio:1/1 по правилу выше), задуманный для кнопки БЕЗ подписи,
 *     но здесь внутри ещё и видимая подпись "P1".."P4" (см. task-menu-r19.css, "(7)") — из-за
 *     aspect-ratio:1/1 круг раздувался до 41px, чтобы вместить иконку и текст разом.
 *  2) .v17-priority-grid (+ обёртки .v25-priority-picker/.v47-priority-popover/.v53-priority,
 *     используется в ритуалах/подзадачах) рисовала CSS-сетку из 4 квадратов, у каждого свой
 *     border+radius+зазор — тоже "чипы в ряд", не сегмент.
 * Обе формы сведены к одному сегменту: общий контейнер с --dj-radius-chip, 0-радиус и
 * разделительная граница у кнопок внутри вместо зазора. !important нужен, чтобы перебить и
 * .v22-icon-button (border-radius:50%), и построчные .v09/.v17/.v25/.v47.css правила. */
/* box-shadow не трогаем здесь: .priority-menu/.mini-priority-menu сами являются попапом (уже
 * есть тень из v09.css/v11.css), а .v17-priority-grid — контент ВНУТРИ отдельного попапа-обёртки
 * (.v25-priority-picker/.v47-priority-popover/.v53-priority), которая уже даёт свою тень — вторая
 * тень здесь была бы лишней ("тень в тени"). */
:is(.priority-menu,.mini-priority-menu,.v17-priority-grid){
  display:flex!important;gap:0!important;padding:0!important;
  border:1px solid var(--line)!important;border-radius:var(--dj-radius-chip,8px)!important;
  overflow:hidden;background:var(--panel,#fff)!important;
}
:is(.priority-menu,.mini-priority-menu,.v17-priority-grid)>button{
  flex:1 1 0!important;width:auto!important;min-width:44px!important;height:44px!important;
  aspect-ratio:auto!important;border:0!important;border-radius:0!important;
  background:transparent!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:var(--dj-space-1)!important;padding:var(--dj-space-1)!important;
}
/* .priority-flag добавлен в селектор ниже не для смысла, а чтобы поднять специфичность выше
 * v23.css .priority-flag.v22-icon-button{border:0!important} (2 класса) — без этого паритет по
 * !important решался в пользу v23 (тоже 2 класса против 1 у :is() + типовых button+button),
 * и разделительная граница пропадала, реально проверено живьём. */

/* Единый стандарт кнопок приложения (см. ANDROID_TASKMENU_PORT_PROMPT.md §192-193).
 * Форма — часть КАРКАСА приложения, а не темы: круглая кнопка-значок работает
 * одинаково в любой теме (classic/claude/modern/drunk), не только там, где
 * тема сама решила её включить (раньше форма была спрятана в design/theme-claude.css,
 * видна только в теме claude — см. §192).
 *
 * Три существующих класса кнопки-без-подписи в кодовой базе — НОВЫЕ места
 * должны использовать один из них, не изобретать четвёртый:
 *  .v22-icon-button — основной, используется в меню задачи и списках (v22.css
 *                     задаёт ему размер 34px/30px(.small) — здесь только форма)
 *  .icon-btn        — используется в редакторах Стены/Проекта/Идеи (v17-v21.js)
 *                     для кнопок закрыть(×)/подтвердить(✓) в шапке формы
 *  .icon-only       — добавляется ДИНАМИЧЕСКИ (v11.js) любой кнопке с текстом
 *                     "×"/"✓" — универсальный перехватчик для старых мест
 */
:is(.v22-icon-button,.icon-btn,.icon-only){border-radius:var(--dj-radius-circle,50%);aspect-ratio:1/1}

/* button logic (2026-09-22): round icon buttons never show a text label (DESIGN_STANDARDS.md §3.1 —
 * "круглая кнопка" = icon-only). .v18-state-label is shared with the state-action LIST (Провалить/
 * Отменить/В Мысли/Удалить), where text IS wanted next to the icon — that context re-shows it with a
 * more specific, !important rule in task-menu-r19.css, so it still wins there. Found via the round
 * "Отмена" button in "Цель с цифрами" spilling its label text outside the circle. */
:is(.v22-icon-button,.icon-btn,.icon-only) .v18-state-label{display:none}
:is(.icon-btn,.icon-only){display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:0;background:transparent}

/* Первичное значковое действие (шапка формы, FAB) — залитый акцентом круг.
 * Раньше .icon-btn.primary ничего не задавал (кнопка "✓" выглядела как "×") —
 * см. §193, живой баг, найденный при разборе кнопок Стены. */
:is(.icon-btn,.v22-icon-button).primary{background:var(--accent);color:#fff}

/* Разрушительное действие (Удалить) — НЕ отдельный цвет (--accent уже
 * фирменный розово-красный, "красный=опасно" тут не создаёт контраста, см.
 * §192), а та же форма/заполненность, что у обычного действия в этом же
 * контексте, плюс перекраска в --accent — так кнопка отличается от нейтральных
 * (серых) кнопок рядом, но не выглядит "ещё одной primary". НИКОГДА не
 * комбinировать .danger с .primary (заливкой).
 * Реальный пример: кнопка "Удалить" в редакторе Стены уже имела класс
 * "btn danger" в разметке (v19.js), но это ничего не стилизовало — класс
 * .danger нигде не был определён. Теперь определён. */
.danger{color:var(--accent)}
.btn.danger{border-color:var(--accent)}
/* DS-STATE-02: on the system fill the drawing is white. A drawing of the icon pack is tinted to the accent by its own
   SVG filter and would vanish on the accent fill, so there it is repainted as a white silhouette. The OK seal is a
   bare icon button (no fill of its own, DS-ACT-03): it keeps its accent drawing, white would vanish on the surface. */
.btn.primary:not([data-dj-bare-icon]) .v22-icon image{filter:brightness(0) invert(1)}
:is(.btn,.icon-btn,.v22-icon-button).danger:hover{background:var(--accent-soft)}

/* §196 — единая "создать новый Х" кнопка в шапке вкладки (Входящие/Сегодня/
 * Накопительные/Проекты/Ритуалы/Привычки/Действия/Тэги/Идеи/Заметки).
 * До этого правила это были ЧЕТЫРЕ независимые, несогласованные системы:
 *  - .v82-create-button (Проекты/Ритуалы/Привычки/Действия/Тэги) — задумана
 *    залитой (v82.css), но mobile-client.css/v84.css поверх делали её
 *    прозрачной и 32px — уже частично починено в §195 (32→44px), здесь
 *    добавляется заливка, которой не хватало.
 *  - .btn.primary.v22-icon-button (Входящие/Сегодня/Накопительные) — уже
 *    залита правильно (см. правило .primary выше), но 34px, не 44px.
 *  - .v76-header-button[data-idea-action="new"] (Идеи) — прозрачная, 44px.
 *  - .notes-button[data-note-action="quick-new"] (Заметки) — прозрачная,
 *    чёрная (не акцентная), 42px.
 * Единый результат для всех: круг 44px, заливка --accent, белый значок 25px —
 * "Первичное значковое действие (шапка/FAB)" из уже утверждённой таблицы
 * (см. DESIGN_STANDARDS.md §3.2 / ANDROID_TASKMENU_PORT_PROMPT.md §192-196).
 * Правило намеренно НЕ трогает другие кнопки той же шапки без явного
 * признака "это кнопка создания" (Фокус/Настройки/Выбрать и т.п. остаются
 * тихими/прозрачными — это их собственная, отдельная роль). */
:is(
  .v82-create-button,
  [data-idea-action="new"],
  .notes-button[data-note-action="new"],
  .notes-button[data-note-action="quick-new"]
),
:is(.topbar .actions,.v76-mobile-main-row,.v76-mobile-actions) .btn.primary.v22-icon-button{
  width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
  border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent)!important;border-color:var(--accent)!important;
  color:#fff!important;
}
:is(
  .v82-create-button,
  [data-idea-action="new"],
  .notes-button[data-note-action="new"],
  .notes-button[data-note-action="quick-new"]
) .v22-icon,
:is(.topbar .actions,.v76-mobile-main-row,.v76-mobile-actions) .btn.primary.v22-icon-button .v22-icon{
  width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important;color:#fff!important;
}

/* ==== revision25.css ==== */
/* Shared R25 corrections use the six typography roles from DESIGN_STANDARDS. */
.tp-row .v38-today-time{display:none!important}
.tp-artifact.tp-tag,.v38-task-tag:not(.v15-system-tag){border-radius:0!important;padding-inline:var(--dj-space-1)!important;line-height:var(--dj-text-heading-line-height)!important;min-height:16px;align-items:center!important}
.tp-artifact.tp-tag-circle{width:16px!important;height:16px!important;min-height:16px!important}
.tp-artifact.tp-tag-circle>.v22-icon{width:12px!important;height:12px!important;flex-basis:12px!important}
.tp-right-owner .tp-artifact>.v22-icon{color:var(--tp-color,var(--accent))!important}
[data-fold-ghost]{pointer-events:none!important}
.r25-postpone-overdue{display:inline-flex;align-items:center;gap:var(--dj-space-1);border:0;background:transparent;color:var(--accent);font:inherit;padding:var(--dj-space-1)}
.r25-postpone-overdue .v22-icon{width:20px;height:20px}
[data-v38-today-section=overdue] .section-note{display:flex;align-items:center;gap:var(--dj-space-3)}
.r25-nested-settings{border:0!important;margin-block:var(--dj-space-2)!important;padding:0!important}
.r25-nested-settings>h3{font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-secondary-weight)!important}
.r25-favorite-item,.r25-favorite-item>span:last-child,.v78-sidebar-project-name{color:var(--ink)!important}
.r25-favorite-item .v22-icon,.r25-favorite-item .v24-favorite-entry-icon{color:var(--r25-artifact-color,var(--accent))!important}
html .r25-confirm-backdrop{position:fixed;inset:0;z-index:101000;background:#0006;display:grid;place-items:center;padding:var(--dj-space-4);box-sizing:border-box}
.r25-confirm-dialog{width:min(440px,100%);max-height:calc(var(--dolijane-viewport-height,100dvh) - var(--dj-space-8));box-sizing:border-box;background:var(--panel,#fff);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius,16px);padding:calc(var(--dj-space-4) + var(--dj-space-1));box-shadow:var(--shadow);overflow-y:auto}
.r25-confirm-dialog p:empty{display:none}
.r25-confirm-dialog h2{font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);margin:0 0 var(--dj-space-3)}.r25-confirm-dialog p{font-size:var(--dj-text-body-size);font-weight:var(--dj-text-reading-weight);white-space:normal;overflow-wrap:anywhere}
.r25-confirm-dialog footer{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--dj-space-2);margin-top:var(--dj-space-4)}
.r25-confirm-dialog footer button{width:auto;min-height:44px;min-width:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);padding:var(--dj-space-2) var(--dj-space-3);font:inherit;white-space:normal;overflow-wrap:anywhere}.r25-confirm-dialog footer button.primary{background:var(--dj-control-accent,var(--accent));color:var(--dj-on-accent,white);border-color:transparent}
.r25-confirm-dialog footer button .v22-icon{width:20px;height:20px;color:#fff!important}
.r25-status-menu{z-index:100500;display:grid;max-height:calc(100dvh - 150px);overflow:auto}.r25-status-menu button{display:flex;align-items:center;gap:var(--dj-space-2);min-height:36px;padding:var(--dj-space-2) var(--dj-space-3);border:0;background:transparent;color:var(--ink);text-align:left;font-size:var(--dj-text-body-size)}.r25-status-menu .v22-icon{width:20px;height:20px;color:var(--accent)}
:is(.v82-create-button,[data-idea-action=new],.notes-button[data-note-action=new],.notes-button[data-note-action=quick-new],.topbar .btn.primary.v22-icon-button,.v76-mobile-header .btn.primary.v22-icon-button) .v22-icon *{color:inherit!important}
@media(max-width:1024px){
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head){display:flex!important;padding-inline:var(--dj-space-3)!important;gap:var(--dj-space-2)!important;align-items:center!important}
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-more],[data-v18-comments-toggle]){width:44px!important;min-width:44px!important;flex:0 0 44px!important;margin:0!important;padding:0!important;order:-1!important;justify-content:center!important}
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is(.section-title,span:first-child){margin:0!important;text-align:left!important;flex:1 1 auto!important;min-width:0!important}
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-add],[data-v18-comments-add]){margin:0!important;width:44px!important;min-width:44px!important;flex:0 0 44px!important;order:8!important;justify-content:center!important}
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>.v19-count{order:9!important;margin:0!important}
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head){padding-left:var(--dj-space-3)!important;gap:var(--dj-space-2)!important}
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-more],[data-v18-comments-toggle]){width:44px!important;min-width:44px!important;flex-basis:44px!important}
 .v19-task-menu.v19-task-menu.v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head)>:is([data-v38-more],[data-v18-comments-toggle]) .v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
}
@media(max-width:599px){
 .sidebar .nav-item[data-route=today]{display:none!important}
 .sidebar .nav-item[data-route=projects]{order:1!important}.sidebar .nav-item[data-route=inbox]{order:2!important}.sidebar .nav-item[data-route=calendar]{order:3!important}.sidebar .v75-mobile-more{order:4!important}
 .sidebar{grid-template-columns:repeat(4,minmax(0,1fr))!important}
 .sidebar .nav-item[data-route=ideas]{display:none!important}
}
@media(min-width:600px) and (max-width:1024px){
 :root{--v78-sidebar-width:64px}
 .app-shell{grid-template-columns:64px minmax(0,1fr)!important}
 .sidebar{display:flex!important;flex-direction:column!important;width:64px!important;max-width:244px!important;padding:var(--dj-space-3) var(--dj-space-2)!important;overflow:hidden!important;transition:width .18s ease;z-index:100070!important;top:env(safe-area-inset-top,0px)!important;height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;min-height:0!important}
 .sidebar.r25-rail-open{width:244px!important;box-shadow:8px 0 20px #0002!important}
.sidebar .brand,.sidebar .nav-item,.sidebar .nav-title{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
@media(min-width:600px) and (max-width:1024px){.sidebar.r25-rail-open .nav-item.active{background:transparent!important;box-shadow:none!important;color:var(--accent)!important}}
 /* 2026-09-23 (владелец, скриншот планшета): .search наследовал `top:var(--r28-brand-h,77px)`
  * из десктопного правила в revision28.css, где оно осмысленно ТОЛЬКО при position:sticky
  * (там элемент не покидает поток, top лишь ограничивает прилипание при скролле). Здесь
  * position принудительно меняется на relative, а тот же `top` начинает работать как обычный
  * СМЕЩАЮЩИЙ отступ — не занимающий место в потоке — и наезжает на .r25-sidebar-scroll,
  * который расчитывает свою позицию по НЕсмещённому месту .search. Сбрасываем top явно. */
 .sidebar>.brand,.sidebar>.search{flex-shrink:0!important;position:relative!important;top:0!important;width:100%!important;box-sizing:border-box!important}
 .sidebar>.brand{overflow:hidden;white-space:nowrap}.sidebar:not(.r25-rail-open)>.brand>:not(.brand-mark){display:none!important}
 .sidebar:not(.r25-rail-open)>.search input{width:0!important;min-width:0!important;padding:0!important;opacity:0!important}
 .sidebar>.r25-sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;width:232px}.sidebar>.r25-sidebar-scroll::-webkit-scrollbar{display:none}
 .sidebar:not(.r25-rail-open) .nav-item{width:50px!important;overflow:hidden!important;gap:calc(var(--dj-space-4) + var(--dj-space-1))!important;padding-inline:var(--dj-space-3)!important}
 .sidebar:not(.r25-rail-open) :is(.nav-title,.v19-favorites-drawer,.v78-sidebar-project-tree,.v78-projects-toggle,[data-v19-favorite-toggle],.v76-wide-more-items){display:none!important}
 .sidebar:not(.r25-rail-open) .v76-wide-more-toggle{width:50px!important;overflow:hidden;justify-content:flex-start}.sidebar:not(.r25-rail-open) .v76-wide-more-toggle>span:last-child{display:none}
 .sidebar :is(.nav-item,.v78-sidebar-project-link,.v19-favorites-drawer button,.v76-wide-more-items button){font-family:var(--font,inherit)!important;font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-body-weight)!important}
 .modal-backdrop,.time-menu{padding-left:var(--dj-space-3)!important}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none!important}}

/* Compact selected tag chips; picker controls retain their separate touch targets. */
.v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button{border-radius:0!important;height:auto!important;min-height:22px!important;min-block-size:22px!important;padding:0 var(--dj-space-1)!important;line-height:var(--dj-text-heading-line-height)!important;align-items:center!important}
/* WH-03: text dialog replacing prompt(), and the app's own field error instead of the browser bubble. */
.r25-ask-text .r25-ask-input{box-sizing:border-box;width:100%;min-height:44px;margin-top:var(--dj-space-2);padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);font:var(--dj-text-body-weight,500) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--font-ui,inherit)}
.r25-ask-text .r25-ask-input[aria-invalid="true"],[aria-invalid="true"]:is(input,select,textarea){border-color:var(--accent)!important}
.dj-field-error{margin:var(--dj-space-1) 0 0;color:var(--accent);font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-secondary-line-height)}

/* ==== tag-postpone-r25.css ==== */
/* Shared task-width dialogs; tag fields deliberately reuse the project palette/row design. */
.modal.r25-dialog:not(.dj-comment-editor){width:44%!important;max-width:44%!important;min-width:330px!important}
.modal.r25-dialog{box-sizing:border-box;max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)));overflow:auto;margin-inline:auto;padding:calc(var(--dj-space-4) + var(--dj-space-1));color:var(--ink);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight)}
.r25-dialog-backdrop{z-index:1250;padding-top:max(var(--dj-space-3),env(safe-area-inset-top));padding-bottom:max(var(--dj-space-3),env(safe-area-inset-bottom))}
.r25-postpone-backdrop{z-index:1260}.r25-confirm-backdrop{z-index:1270}
.r25-dialog h2,.r25-tag-editor-head input{font-family:inherit;font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);color:var(--ink)}
.r25-dialog h2{margin:0 0 var(--dj-space-4)}.r25-dialog p{font-size:var(--dj-text-reading-size);font-weight:var(--dj-text-reading-weight)}
.r25-dialog-actions{display:flex;justify-content:flex-start;gap:var(--dj-space-2);margin-top:var(--dj-space-4)}
.r25-dialog-actions>.btn{display:grid;place-items:center;flex:0 0 44px;width:44px!important;height:44px!important;padding:0!important;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent)!important;color:white!important;border-color:var(--accent)!important}
.r25-dialog-actions .v22-icon{color:inherit!important;width:20px;height:20px}
.r25-postpone-presets{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin-bottom:var(--dj-space-4)}.r25-postpone-presets .btn{min-height:44px;font:inherit}
.r25-postpone-presets [aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.r25-postpone-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--dj-space-3)}.r25-postpone-fields label{display:grid;gap:var(--dj-space-2);min-width:0}.r25-postpone-fields input{box-sizing:border-box;width:100%;min-width:0;min-height:44px;font:inherit}
.r25-tag-editor-head{display:flex;align-items:center;gap:var(--dj-space-2);margin-bottom:var(--dj-space-4)}.r25-tag-editor-head input{flex:1;min-width:0;border:0;border-bottom:1px solid var(--line);background:transparent;padding:var(--dj-space-2) 0}
.r25-tag-editor-head .btn{width:44px;height:44px;flex:0 0 44px;padding:0;display:grid;place-items:center}.r25-tag-editor-head .danger{border:1px solid var(--accent);color:var(--accent);background:transparent}
.r25-tag-dialog .r23-project-row{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-2);width:100%;min-height:34px;padding:var(--dj-space-1) var(--dj-space-3);margin:0;border:1px solid var(--panel,#fffdf8);background:color-mix(in srgb,#8a7a5f 16%,var(--panel));color:var(--ink);font:inherit;text-align:left}
html[data-interface-design=classic] .r25-tag-dialog .r23-project-row{background:white}
.r25-tag-dialog .r23-project-row>.v22-icon{width:20px;height:20px;flex:0 0 20px;color:var(--accent)}
.r25-tag-dialog .r23-project-row:first-child{border-radius:var(--dj-radius-popup-row) var(--dj-radius-popup-row) 0 0}.r25-tag-dialog .r23-project-row:last-child{border-radius:0 0 var(--dj-radius-popup-row) var(--dj-radius-popup-row);border-top:0}
.r25-tag-palette:not([hidden]){display:grid;grid-template-columns:repeat(9,minmax(0,24px));gap:var(--dj-space-2);width:max-content;max-width:100%;margin:var(--dj-space-3) 0;box-sizing:border-box;padding:var(--dj-space-3)}
.r25-tag-palette[hidden]{display:none!important}.r25-tag-palette button{box-sizing:border-box;width:24px;height:24px;min-width:0;min-height:0;padding:0;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);position:relative}.r25-tag-palette button[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}
.r25-tag-editor-postpone{display:flex;align-items:center;gap:var(--dj-space-2);margin-top:var(--dj-space-3);font:inherit}
.r25-tag-section{margin:var(--dj-space-3) 0 var(--dj-space-6)}.r25-tag-section-heading,.r25-tag-day-heading{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;color:var(--ink)}
.r25-tag-section-heading{background:transparent;border:0;min-height:44px;padding:var(--dj-space-1) 0;font-family:inherit;font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);text-align:left}
.r25-tag-section-heading>.v22-icon{color:var(--accent);width:20px;height:20px;flex:0 0 20px}.r25-tag-section-heading>.r25-count{margin-left:auto}
.r25-count{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:28px;height:28px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);background:var(--panel);font-size:var(--dj-text-caption-size);font-weight:var(--dj-text-caption-weight);color:var(--muted)}
.r25-tag-section-body[hidden]{display:none!important}.r25-tag-day{margin:var(--dj-space-3) 0 calc(var(--dj-space-4) + var(--dj-space-1))}.r25-tag-day-heading{margin:0 0 var(--dj-space-2)}.r25-tag-day h3{font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight);margin:0 0 var(--dj-space-2)}.r25-tag-day-heading h3{margin:0 auto 0 0}.r25-tag-day-heading .btn{min-height:36px;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-secondary-weight)}
.r25-tag-notes{overflow:hidden;padding:0}.r25-tag-notes>button{width:100%;display:flex;align-items:center;gap:var(--dj-space-3);min-height:44px;padding:var(--dj-space-3) var(--dj-space-3);border:0;background:var(--panel);font:inherit;color:var(--ink);text-align:left}.r25-tag-notes>button+button{border-top:1px solid var(--line)}.r25-tag-notes .v22-icon{color:var(--accent);width:20px;height:20px;flex:0 0 20px}
[data-r25-tag-title]{cursor:pointer}.v76-mobile-main-row>[data-v24-favorite-kind=tag]{display:flex!important;align-items:center;justify-content:center;gap:var(--dj-space-1);min-width:44px;width:auto!important;min-height:44px;height:44px;margin:0;padding:0 var(--dj-space-2);border-radius:var(--dj-radius-button,8px)!important;color:var(--accent)}
.r25-tag-header [data-v18-title-icon]{display:none!important}
.r25-favorite-label{font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-secondary-weight);color:var(--ink)}
@media(max-width:900px){.modal.r25-dialog:not(.dj-comment-editor){width:92%!important;max-width:92%!important;min-width:0!important}}
@media(max-width:599px){.r25-tag-dialog .r23-project-row{min-height:44px}.r25-tag-day-heading .btn{min-height:44px}.r25-tag-palette:not([hidden]){gap:var(--dj-space-2);padding:var(--dj-space-3) 0}.r25-tag-palette button:before{content:"";position:absolute;inset:-3px}.v76-mobile-main-row>.v24-favorite-toggle .r25-favorite-label{display:none}}

/* Header controls share stable touch slots; authored stars stay inside them. */
.r25-tag-header :is([data-v24-favorite-kind=tag],[data-r25-tag-edit]){box-sizing:border-box;display:grid;place-items:center;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;--dj-icon-size:var(--dj-icon-standard);--dj-icon-color:var(--accent)}
.r25-tag-header :is([data-v24-favorite-kind=tag],[data-r25-tag-edit]) .v22-icon{--dj-icon-size:var(--dj-icon-standard);color:var(--accent)}
.r25-tag-header :is([data-v24-favorite-kind=tag],[data-r25-tag-edit]) .dj-authored-size{display:none}
.r25-tag-header :is([data-v24-favorite-kind=tag],[data-r25-tag-edit]) .dj-authored-size-20{display:inline}

/* ==== ritual-entities-r25.css ==== */
/* r25 entity views use the same rows and design tokens as the task editor. */
.v43-goal-section>.v57-unified-head,.v43-goal-section>h2{border:0!important;box-shadow:none!important;background-image:none!important}
.v43-goal-section>.v57-unified-head::before,.v43-goal-section>.v57-unified-head::after,.v43-goal-section>h2::before,.v43-goal-section>h2::after{content:none!important;display:none!important}
.v43-goal-row.r25-single-goal .v43-goal-progress>.progress,.v43-goal-row.r25-single-goal .v43-goal-progress>strong{display:none!important}
.r25-goal-progress{display:grid;grid-template-columns:1fr auto;gap:var(--dj-space-1) var(--dj-space-2);grid-column:1/-1;flex-basis:100%;min-width:0;width:100%;padding:var(--dj-space-1) var(--dj-space-3) var(--dj-space-2) var(--dj-space-8);box-sizing:border-box;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-secondary-weight);color:var(--ink)}
.r25-goal-progress>strong{color:var(--muted);font:inherit}.r25-goal-progress>.progress{grid-column:1/-1;height:7px!important;margin:0!important;overflow:hidden;background:var(--soft);border-radius:var(--dj-radius-pill,999px)}.r25-goal-progress>.progress>i{display:block;height:100%;max-width:100%;background:var(--accent)}
.idea-card,.idea-card>strong,.idea-card>.idea-counts,.idea-card>time{color:var(--ink,#1a1a1a)!important}.idea-card>.v22-icon{color:var(--r25-idea-color,var(--accent))!important}
.r25-project-rituals{display:grid;gap:0;margin-block:var(--dj-space-3)}.r25-embedded-ritual .section-head>div{flex:1;min-width:0}.r25-embedded-ritual .v17-ritual-heading .entity-link{color:var(--ink)}
.modal.r25-ritual-editor{display:flex!important;flex-direction:column!important;gap:0!important}
.r25-ritual-head{display:flex;align-items:center;gap:var(--dj-space-2);margin-bottom:var(--dj-space-3)}.r25-ritual-head>.v22-icon{flex:0 0 28px;width:28px;height:28px}.r25-ritual-head>.v17-ritual-title{flex:1;min-width:0;margin:0!important;font-size:var(--dj-text-heading-size)!important;font-weight:var(--dj-text-heading-weight)!important}.r25-ritual-head>[data-v18-delete-ritual]{margin-left:auto}
.r25-ritual-editor.r25-ritual-editor .r25-ritual-field,.r25-ritual-editor.r25-ritual-editor .v17-ritual-editor-tasks>[data-v17-ritual-order]{display:flex;align-items:center;gap:var(--dj-space-2);height:34px;min-height:34px;margin:0!important;padding:0 var(--dj-space-3)!important;border:1px solid var(--panel,#fffdf8)!important;border-radius:0!important;background:color-mix(in srgb,#8a7a5f 16%,var(--panel,#fffdf8))!important;box-sizing:border-box;box-shadow:none!important;font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-body-weight)!important}
.r25-ritual-editor .r25-ritual-field+.r25-ritual-field,.r25-ritual-editor .v17-ritual-editor-tasks>[data-v17-ritual-order]+[data-v17-ritual-order]{border-top:0!important}
.r25-ritual-editor .r25-ritual-schedule-field{margin:0!important}.r25-ritual-editor .r25-ritual-schedule-field>label,.r25-ritual-editor .v17-ritual-editor-summary{display:none!important}
.r25-ritual-editor .r25-ritual-owner{order:2}.r25-ritual-editor .r25-ritual-schedule-field{order:1}.r25-ritual-editor .r25-ritual-task-section{order:3}.r25-ritual-editor .modal-actions{order:4;justify-content:flex-start;margin-top:var(--dj-space-3)!important;gap:var(--dj-space-2)}
.r25-ritual-editor.r25-ritual-editor .modal-actions>.v22-icon-button{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;display:grid!important;place-items:center;border-radius:var(--dj-radius-circle,50%)!important;border:0!important;background:var(--accent)!important;color:white!important}.r25-ritual-editor .modal-actions>.v22-icon-button>.v22-icon{width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important;color:inherit!important}
.r25-ritual-editor .r25-ritual-owner>select,.r25-ritual-editor .r25-ritual-deadline>input{min-width:0;flex:1;width:100%;height:30px!important;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;color:var(--ink);font:inherit}
.r25-ritual-editor .r25-ritual-deadline>[data-v17-ritual-time]{flex:0 0 20px!important;width:20px!important;min-width:20px!important;height:28px!important;padding:0!important;border:0!important;background:transparent!important}.r25-ritual-editor .r25-ritual-field>.v22-icon{flex:0 0 20px;width:20px;height:20px}.r25-ritual-editor [data-v17-ritual-apply]{flex:0 0 30px;width:30px;height:30px;min-width:30px;padding:var(--dj-space-1)}
.r25-ritual-editor .r25-ritual-task-section,.r25-ritual-editor .v17-ritual-editor-tasks{margin:0!important;padding:0!important;gap:0!important}.r25-ritual-editor .v17-ritual-editor-tasks[hidden]{display:none!important}
.r25-ritual-tasks-head{display:flex;align-items:center;min-height:44px;padding:0 var(--dj-space-3);gap:var(--dj-space-1);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight)}.r25-ritual-tasks-head>[data-r25-ritual-toggle]{flex:1;display:flex;align-items:center;gap:var(--dj-space-3);padding:0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left}.r25-ritual-tasks-head>[data-r25-ritual-toggle]>.v22-icon{width:20px;height:20px;flex:0 0 20px;color:var(--accent)}.r25-ritual-add{width:44px;min-width:44px;height:44px;display:grid;place-items:center;background:transparent!important;border:0!important;border-radius:var(--dj-radius-circle,50%);color:var(--accent);padding:0;font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight)}.r25-ritual-tasks-head>.v19-count{display:inline-grid;place-items:center;min-width:24px;height:24px;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);background:var(--panel);color:var(--muted);font-size:var(--dj-text-caption-size);font-weight:var(--dj-text-caption-weight)}
.r25-ritual-editor .v17-ritual-editor-tasks .entity-link{flex:1;text-align:left;color:var(--ink);font:inherit}.r25-ritual-editor .v17-ritual-editor-tasks [data-v17-ritual-remove]{margin-left:auto;color:var(--accent)}
.r25-ritual-editor.r25-ritual-editor .r25-stack-first{border-top-left-radius:var(--v19-row-radius,10px)!important;border-top-right-radius:var(--v19-row-radius,10px)!important}.r25-ritual-editor.r25-ritual-editor .r25-stack-last{border-bottom-left-radius:var(--v19-row-radius,10px)!important;border-bottom-right-radius:var(--v19-row-radius,10px)!important}
.r25-idea-secondary{display:flex;align-items:center;gap:var(--dj-space-2);margin-block:var(--dj-space-2) var(--dj-space-4);flex-wrap:wrap}.r25-idea-secondary>.btn{display:inline-flex;align-items:center;gap:var(--dj-space-2);min-height:44px;font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight)}

/* ==== notes-r25.css ==== */
/* Notes revision 25: stable cards, reachable editing controls and sheet menus. */
html .notes-card>button.notes-open{display:block!important;position:relative!important;width:100%!important;min-width:0!important;height:auto!important;max-height:none!important;border:0!important;border-radius:0!important;background:transparent!important;padding:0!important;overflow:visible!important;text-align:left!important;color:var(--ink)!important}
html .notes-card{--note-card-text-top:52px}
html[data-interface-design=claude] .notes-card{--note-card-text-top:36px}
html .notes-card .notes-preview{display:block!important;position:relative!important;box-sizing:border-box!important;width:100%!important;height:auto!important;aspect-ratio:1!important;contain:layout paint!important;overflow:hidden!important;padding:var(--note-card-text-top) var(--dj-space-4) var(--dj-space-4)!important}
html .notes-card .notes-preview-content{position:absolute!important;inset:var(--note-card-text-top) 14px 14px!important;display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;width:auto!important;height:auto!important;min-height:0!important;overflow:hidden!important;overflow-wrap:anywhere!important;white-space:pre-wrap!important;font-size:var(--dj-text-reading-size,15px);font-weight:var(--dj-text-reading-weight,400);line-height:var(--dj-text-reading-line-height)}
html .notes-card .notes-preview-content img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain;object-position:top left}
html .notes-editor-head{padding-top:calc(var(--dj-space-2) + max(env(safe-area-inset-top,0px),var(--dj-safe-top,0px),var(--android-safe-top,0px)))!important}
html .notes-editor-head>.notes-button{--dolijane-mobile-control-size:44px;flex:0 0 44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border-radius:var(--dj-radius-circle,50%)!important;padding:var(--dj-space-2)!important}
html .notes-editor-tools{--dolijane-mobile-control-size:44px}
html .notes-editor-head>.notes-button .v22-icon{width:20px!important;height:20px!important}
html .notes-editor .notes-attached{display:none!important}
/* 2026-09-26 (владелец: "Фокус - полностью системного цвета, а должен быть менее ярким"):
 * была залита сплошным --accent, как первичное/главное действие — но рядом с "Помощник"
 * (r26-dashboard-launchers, тоже залит accent) выглядела как второй равноценный primary,
 * хотя Фокус — второстепенное действие. Приглушена: прозрачный фон + цветная иконка
 * (тот же паттерн, что уже у обычной кнопки "Фокус" в шапке других вкладок, .v76-header-button). */
html .notes-editor .notes-focus-launch{--dolijane-mobile-control-size:52px;position:absolute;right:80px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:15;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;max-width:52px!important;max-height:52px!important;border-radius:var(--dj-radius-circle,50%)!important;background:transparent!important;border:1px solid var(--line)!important;color:var(--accent)!important}
html .notes-editor .notes-focus-launch .v22-icon{color:var(--accent)!important}
html.notes-editing .v18-action-dock{display:none!important}
html.notes-editing body #dv-mic-wrap,html.notes-editing:has(.notes-selection:not([hidden]),.notes-picker) body #dv-mic-wrap{visibility:hidden!important;display:none!important;pointer-events:none!important}
html.notes-editing .notes-editor .v18-note-focus{position:absolute;bottom:calc(80px + env(safe-area-inset-bottom));z-index:20;max-width:calc(100% - 24px)}
html.notes-editing .notes-editor .notes-selection{z-index:30}
html .notes-editor .notes-selection:is([data-kind=options],[data-kind=document],[data-kind=io]){display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;width:240px;max-width:calc(100% - 16px);max-height:calc(100% - 100px);overflow:auto;gap:var(--dj-space-1)}
html .notes-editor .notes-selection:is([data-kind=options],[data-kind=document],[data-kind=io])>button{display:flex;align-items:center;justify-content:flex-start;gap:var(--dj-space-3);width:100%!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:44px!important;max-height:none!important;inline-size:100%!important;min-inline-size:0!important;max-inline-size:none!important;block-size:auto!important;min-block-size:44px!important;max-block-size:none!important;flex:0 0 auto!important;aspect-ratio:auto!important;padding:var(--dj-space-2) var(--dj-space-3);border:0;border-radius:var(--dj-radius-popup-row,7px);background:transparent;color:var(--ink);text-align:left;font-size:var(--dj-text-body-size,15px);font-weight:var(--dj-text-body-weight,600)}
html body .notes-editor .notes-selection:is([data-kind=options],[data-kind=document],[data-kind=io])>button{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;border-radius:var(--dj-radius-button,6px)!important;padding:var(--dj-space-2) var(--dj-space-3)!important;gap:var(--dj-space-3)!important;white-space:normal!important;box-sizing:border-box;}
html body .notes-editor .notes-selection:is([data-kind=options],[data-kind=document],[data-kind=io])>button>span{min-width:0;flex:1;overflow-wrap:anywhere;}
html body .notes-editor .notes-selection:is([data-kind=options],[data-kind=document],[data-kind=io])>button>:is(.v22-icon,.dj-utility-symbol){flex:0 0 20px!important;width:20px!important;height:20px!important;position:static!important;margin:0!important;}
html .notes-editor .notes-selection:is([data-kind=options],[data-kind=document])>button>.v22-icon{width:20px;height:20px;flex:0 0 20px;color:var(--accent)!important}
html .notes-editor .notes-selection:is([data-kind=options],[data-kind=document])>button[aria-pressed=true]{background:var(--soft)!important;color:var(--ink)!important}
html .notes-editor .notes-selection:is([data-kind=options],[data-kind=document])>button[aria-pressed=true]>:is(.v22-icon,.dj-utility-symbol){color:var(--accent)!important;filter:drop-shadow(0 0 2px color-mix(in srgb,var(--accent) 35%,transparent))}
html .notes-editor .notes-selection hr{width:100%;border:0;border-top:1px solid var(--line);margin:var(--dj-space-1) 0}
.notes-tools [data-note-archive-filter]{min-height:44px;max-width:100%;width:auto;flex:0 1 auto;padding:var(--dj-space-2) var(--dj-space-3);font:var(--dj-text-body-weight) var(--dj-text-body-size,15px)/var(--dj-text-body-line-height) var(--font-ui,inherit);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-input,8px);box-sizing:border-box;}
html .notes-editor .notes-selection[data-kind=document]>.notes-option-choices{position:static;display:flex;flex-wrap:wrap;justify-content:flex-start;width:100%;box-sizing:border-box;margin-top:var(--dj-space-1);box-shadow:none}
html .notes-editor .notes-editor-tools[data-mode=text]>.notes-button:not([data-note-action=undo]):not([data-note-action=redo]),html .notes-editor .notes-selection[data-kind=formatting]>button{color:#111!important}
html .notes-editor .notes-editor-tools[data-mode=artifacts]>button[aria-pressed=true]{background:var(--accent)!important;color:white!important}
html .notes-editor .notes-selection[data-kind=pages]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:300px;gap:var(--dj-space-2);padding:var(--dj-space-2);overflow:auto;left:auto!important;right:8px!important}
html .notes-editor .notes-pages-menu-row{position:relative;display:block;min-width:0;touch-action:none;cursor:grab}
html .notes-editor .notes-pages-menu-row>[data-note-page-open]{width:100%;height:auto;display:block;border:1px solid var(--line);padding:var(--dj-space-1);background:var(--bg);border-radius:var(--dj-radius-popup-row,7px)}
html .notes-editor .notes-pages-menu-row .notes-page-thumbnail{display:block;width:100%;height:100px;box-sizing:border-box;overflow:hidden;position:relative;background:var(--panel);padding:var(--dj-space-3) var(--dj-space-2) calc(var(--dj-space-4) + var(--dj-space-1));font-size:var(--dj-text-caption-size,11px)}
html .notes-editor .notes-pages-menu-row .notes-page-thumbnail small{position:absolute;bottom:1px;left:0;right:0;text-align:center}
html .notes-editor .notes-pages-menu-row>[data-note-page-remove]{position:absolute;right:0;top:0;width:30px;height:30px;min-width:30px;min-height:30px;padding:var(--dj-space-1);border:0;border-radius:var(--dj-radius-circle,50%);background:var(--panel);color:var(--accent);opacity:0;transition:opacity .15s}
html .notes-editor .notes-pages-menu-row:hover>[data-note-page-remove],html .notes-editor .notes-pages-menu-row:focus-within>[data-note-page-remove]{opacity:1}
html .notes-editor .notes-pages-menu-row>[data-note-page-remove] .v22-icon{width:20px;height:20px}
html .notes-editor .notes-page-drop-target{outline:2px solid var(--accent);outline-offset:2px}
html .notes-editor .notes-page-dragging{opacity:.5}
html .notes-editor .notes-mini-preview{max-width:80px;pointer-events:auto}
html .notes-editor .notes-mini-sheet{position:relative;overflow:hidden;pointer-events:none}
html .notes-editor .notes-mini-content{position:absolute;inset:0;overflow:hidden;pointer-events:none}
html .notes-editor .notes-mini-document{box-shadow:none;pointer-events:none}
html .notes-editor .notes-mini-content,html .notes-editor .notes-mini-content *{user-select:none!important;-webkit-user-select:none!important;pointer-events:none!important}
html .notes-editor .notes-mini-sheet>canvas{position:absolute;left:0;top:0;z-index:1;pointer-events:none}
html .notes-editor .notes-mini-viewport{z-index:2}
html .notes-editor .notes-mini-preview output{position:absolute;z-index:3;left:2px;right:2px;bottom:2px;background:color-mix(in srgb,var(--panel) 85%,transparent);font-size:var(--dj-text-caption-size,11px);font-weight:var(--dj-text-caption-weight,600);line-height:16px}
html .notes-editor .notes-mini-preview:has(nav:not([hidden])) output{bottom:25px}
html .notes-editor .notes-mini-navigation{display:flex;justify-content:space-between;align-items:center;gap:var(--dj-space-1);font-size:var(--dj-text-caption-size,11px);height:23px;background:var(--panel)}
html .notes-editor .notes-mini-navigation button{border:0;background:transparent;color:var(--accent);padding:0 var(--dj-space-1);min-width:20px;height:23px;font-size:var(--dj-text-heading-size);line-height:var(--dj-text-heading-line-height)}
html .notes-editor .notes-mini-navigation button:disabled{opacity:.35}
.notes-audio-attachment{position:relative;display:flex;flex-direction:column;max-width:100%;gap:var(--dj-space-1);font-size:var(--dj-text-secondary-size,12px)}
.notes-audio-actions{display:flex;gap:var(--dj-space-2);opacity:0;pointer-events:none}
.notes-audio-attachment:hover .notes-audio-actions,.notes-audio-attachment:focus-within .notes-audio-actions{opacity:1;pointer-events:auto}
.notes-audio-actions button{border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);padding:var(--dj-space-2);color:var(--ink);min-height:40px}
@media(hover:none){html .notes-editor .notes-pages-menu-row>[data-note-page-remove]{opacity:1;width:36px;height:36px}.notes-audio-actions{opacity:1;pointer-events:auto}}
@media(max-width:599px){
 html .notes-editor-head{flex-wrap:wrap;gap:var(--dj-space-1)}
 html .notes-editor-head>.notes-title{flex:1 1 110px!important;min-width:80px!important}
 /* 2026-09-26: "Фокус" здесь позиционируется own absolute-координатами внутри .notes-editor,
  * "Помощник" — отдельной системой (.r26-dashboard-launchers, revision27.css) внутри .rightbar;
  * оба абсолютно спозиционированы, но в РАЗНЫХ системах координат — центры расходились на 4px
  * (замерено живьём: Помощник top=680, Фокус top=684). +4px к bottom подтягивает Фокус вверх
  * ровно на этот замер. */
 html .notes-editor .notes-focus-launch{bottom:calc(80px + env(safe-area-inset-bottom))}
 html.notes-editing body #dv-mic-wrap,html.notes-editing:has(.notes-selection:not([hidden]),.notes-picker) body #dv-mic-wrap{bottom:calc(76px + env(safe-area-inset-bottom))!important}
 html.notes-editing .notes-editor .v18-note-focus{bottom:calc(138px + env(safe-area-inset-bottom))}
 html .notes-card .notes-preview{padding:var(--note-card-text-top) var(--dj-space-3) var(--dj-space-3)!important}
 html .notes-card .notes-preview-content{inset:var(--note-card-text-top) 10px 10px!important;font-size:var(--dj-text-secondary-size,12px)}
}

/* ==== idea-notes-r26.css ==== */
/* Entity controls and Favorites reuse the shared ink/accent and typography tokens. */



.r26-favorites{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:calc(var(--dj-space-4) + var(--dj-space-1))}.r26-favorite-section{min-width:0}.r26-favorite-heading{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0;margin-bottom:var(--dj-space-2)}
.r26-favorite-heading>[data-r26-favorite-fold]{display:flex;align-items:center;gap:var(--dj-space-3);flex:1;border:0;background:transparent;color:var(--ink);padding:var(--dj-space-2) 0;text-align:left;min-height:44px;font:var(--dj-text-body-weight,600) var(--dj-text-body-size,15px)/var(--dj-text-reading-line-height) var(--font)}
.r26-favorite-heading .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent);flex:0 0 var(--dj-icon-standard,20px)}html .r26-favorite-heading .r26-favorite-count{margin-left:auto;flex:0 0 28px!important;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);width:28px!important;min-width:28px!important;inline-size:28px!important;min-inline-size:28px!important;height:28px!important;display:grid!important;place-items:center;background:var(--panel)}
.r26-favorite-add{display:flex;align-items:center;justify-content:center;gap:var(--dj-space-1);min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button);color:var(--accent);background:var(--panel)}
.r26-favorite-stack{min-width:0;border:1px solid var(--line);border-radius:var(--dj-radius-card);overflow:hidden;background:var(--panel)}.r26-favorite-stack[hidden]{display:none!important}
html .r26-favorite-row{display:flex;align-items:center;gap:var(--dj-space-3);width:100%;min-height:54px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--panel);color:var(--ink);text-align:left;padding:var(--dj-space-3) var(--dj-space-4);font:var(--dj-text-body-weight,600) var(--dj-text-body-size,15px)/var(--dj-text-reading-line-height) var(--font)}
.r26-favorite-row:last-child{border-bottom:0}.r26-favorite-row>span:last-child{min-width:0;overflow-wrap:anywhere}.r26-favorite-glyph{display:flex;flex:0 0 24px}.r26-favorite-glyph .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.r26-favorite-row>.r26-favorite-expand{display:flex;align-items:center;gap:var(--dj-space-3);flex:1 1 auto;min-width:0;min-height:44px;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.r26-favorite-row .r26-favorite-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r26-favorite-row .r26-favorite-project-icon{margin-left:0;flex:0 0 var(--dj-icon-standard);color:var(--artifact-color,var(--accent))}
.r26-favorite-row .r26-favorite-project-mark{font-size:var(--dj-icon-standard);font-weight:var(--dj-text-heading-weight);line-height:var(--dj-icon-line-height)}
.r26-favorite-row>.r26-favorite-note{min-width:44px;min-height:44px;margin:0}
.r26-favorite-row>.v24-favorite-toggle{flex:0 0 44px;width:44px;height:44px}
.r26-favorite-row>.r26-favorite-active{flex:0 0 auto;text-align:center}
html .r26-favorites .r26-favorite-row .r26-favorite-glyph .v22-icon{color:inherit!important}
.r26-favorite-project{border-bottom:1px solid var(--line)}.r26-favorite-project:last-child{border-bottom:0}.r26-favorite-project>.r26-favorite-row{border-bottom:0}.r26-favorite-project-icon{margin-left:auto;display:grid;place-items:center;flex:0 0 20px}.r26-favorite-project-icon .v22-icon{width:20px;height:20px;color:var(--accent)}.r26-favorite-project-tasks{border-top:1px solid var(--line);padding:0 var(--dj-space-3) var(--dj-space-3);background:color-mix(in srgb,var(--panel) 94%,var(--soft));}.r26-favorite-project-tasks .task-list{margin:0!important;border:0!important;border-radius:0!important;background:transparent!important}.r26-favorite-empty{margin:var(--dj-space-3) var(--dj-space-1);color:var(--muted);font:var(--dj-text-secondary-size,13px)/var(--dj-text-reading-line-height) var(--font)}
.r26-favorite-stack[data-dj-hierarchy-mode] .r26-favorite-project-tasks .tp-artifact:is([data-tp-artifact="project"],[data-tp-artifact="idea"]){display:none}
.r26-favorite-project-tasks .tp-right-owner{display:none}
.r26-favorite-picker{width:420px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:var(--dj-radius-popup);background:var(--panel);color:var(--ink);font:var(--dj-text-body-size,15px)/var(--dj-text-reading-line-height) var(--font)}
.r26-favorite-pick-list{display:grid;gap:var(--dj-space-1);margin:var(--dj-space-3) 0;max-height:55dvh;overflow:auto}.r26-favorite-pick-list>button{display:flex;align-items:center;gap:var(--dj-space-2);min-height:44px;text-align:left;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:var(--dj-space-2)}.r26-favorite-pick-list .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent)}
html .notes-editor .notes-link-choices>hr{width:100%;border:0;border-top:1px solid var(--line);margin:var(--dj-space-2) 0}html .notes-editor .notes-link-choices>strong{display:block;width:100%;padding:var(--dj-space-2) var(--dj-space-2);color:var(--ink)}
html .notes-editor .notes-selection[data-kind=artifact-picker]{display:flex;flex-direction:column;align-items:stretch;max-height:calc(100dvh - 260px);overflow:hidden}
html .notes-editor .notes-selection[data-kind=artifact-picker] .notes-link-choices{min-height:0;overflow:auto;flex:1}
html .notes-editor .notes-selection[data-kind=artifact-picker] .notes-link-confirm{flex:0 0 auto;display:flex;justify-content:flex-start}
html .notes-editor .notes-selection[data-kind=artifact-picker] [data-note-action=link-confirm]{--dolijane-mobile-control-size:44px;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
@media(max-width:1024px){html .notes-editor .notes-selection[data-kind=artifact-picker]{top:80px!important;bottom:auto!important;max-height:calc(100dvh - 260px)}}
@media(max-width:1024px){}

/* ==== idea-export-r26.css ==== */
.r26-idea-export-dialog{box-sizing:border-box;width:620px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);padding:calc(var(--dj-space-4) + var(--dj-space-1));border:1px solid var(--line);border-radius:var(--dj-radius-window);background:var(--panel);color:var(--ink);font:var(--dj-text-body-weight,400) var(--dj-text-body-size,15px)/var(--dj-text-reading-line-height) var(--font)}
.r26-idea-export-dialog::backdrop,.r26-favorite-picker::backdrop{background:#0005}
.r26-idea-export-dialog form{display:flex;flex-direction:column;gap:var(--dj-space-3)}.r26-idea-export-dialog h2{margin:0;font:var(--dj-text-heading-weight,600) var(--dj-text-heading-size,20px)/var(--dj-text-body-line-height) var(--font)}
.r26-export-options{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-3)}.r26-export-options label{display:flex;align-items:center;gap:var(--dj-space-2)}.r26-idea-export-dialog select{max-width:100%;min-height:40px;background:var(--panel);color:var(--ink);font:inherit;border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);padding:var(--dj-space-2)}
.r26-export-lists{max-height:55dvh;overflow:auto;display:grid;gap:var(--dj-space-3)}.r26-export-lists>section{border:1px solid var(--line);border-radius:var(--dj-radius-card,10px);overflow:hidden}.r26-export-group{display:flex;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-3);background:var(--soft)}.r26-export-group>span{margin-left:auto}
.r26-export-item{border-top:1px solid var(--line);padding:var(--dj-space-2) var(--dj-space-3)}.r26-export-item>label{display:flex;align-items:center;gap:var(--dj-space-2);min-height:36px}.r26-export-item span{min-width:0;overflow-wrap:anywhere}.r26-export-linked{padding-left:calc(var(--dj-space-6) + var(--dj-space-1));color:var(--muted)}.r26-export-linked span{display:flex;align-items:center;gap:var(--dj-space-2)}.r26-export-linked .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px);color:var(--accent)}
.r26-idea-export-dialog input[type=checkbox]{appearance:auto!important;accent-color:var(--accent);width:18px!important;height:18px!important;flex:0 0 18px;margin:0}
.r26-idea-export-dialog footer{display:flex;justify-content:flex-end;gap:var(--dj-space-3)}.r26-idea-export-dialog footer button,.r26-favorite-picker>[data-r26-close]{min-height:44px;min-width:80px;padding:var(--dj-space-2) var(--dj-space-4);border:0;border-radius:var(--dj-radius-button,8px);background:var(--accent);color:#fff;font:inherit}.r26-idea-export-dialog [role=status]{min-height:1.4em;margin:0}

/* ==== task-r26.css ==== */
/* Revision 26 editor additions use the shared font/button roles. */
.v19-task-menu .r26-editor-actions{display:flex!important;align-items:center;gap:var(--dj-space-2);flex-shrink:0;margin-left:auto;order:100}
.v19-task-menu .r26-editor-actions>button{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:var(--dj-space-2)!important;border-radius:var(--dj-radius-circle,50%)!important}
.v19-task-menu .r26-cancel{background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--accent)!important}
.r26-time-row{display:flex;flex-shrink:0;width:100%;align-items:center;gap:var(--dj-space-3);text-align:left;background:var(--card,#fff);border:1px solid var(--border,#ddd);padding:var(--dj-space-3) var(--dj-space-3);min-height:var(--dj-task-property-min-height,34px);color:var(--text,#222);font-family:inherit;font-size:var(--dj-text-body-size,15px);font-weight:var(--dj-text-body-weight,600);line-height:var(--dj-text-reading-line-height);border-radius:0}
.r26-time-row>.v22-icon{width:20px;height:20px;flex-shrink:0;color:var(--accent)}
.r26-time-row>span{min-width:0;overflow-wrap:anywhere}
.r26-deadline{min-width:0;flex:1;font-size:var(--dj-text-body-size,15px);font-weight:var(--dj-text-body-weight,600)}
html body .v19-task-menu .time-line[data-r26-no-deadline="true"],html body .v19-task-menu .time-line[data-r26-no-deadline="true"] :is(.r26-deadline,.v22-icon,svg){color:var(--ink)!important;filter:none!important;}
.v19-task-menu .time-line>.v19-time-chips{display:none!important}
.r26-history{margin-top:var(--dj-space-3);border:0;padding:0;font-size:var(--dj-text-body-size,15px);font-weight:var(--dj-text-body-weight,600)}
.r26-history>summary{display:flex;align-items:center;gap:var(--dj-space-3);cursor:pointer;list-style:none;min-height:var(--dj-task-property-min-height,34px)}
.r26-history>summary::-webkit-details-marker{display:none}
.r26-history>summary>.v22-icon{color:var(--accent);width:20px;height:20px;flex-shrink:0;transition:transform .18s}
.r26-history[open]>summary>.v22-icon{transform:rotate(90deg)}
.r26-history-meta{margin-left:auto;color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r26-history-count{border:1px solid var(--border,#ddd);border-radius:var(--dj-radius-circle,50%);min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--dj-text-caption-size,11px)}
.r26-history-body{padding:var(--dj-space-2) 0;overflow:hidden;font-size:var(--dj-text-secondary-size,12px)}
.r26-history-body svg{display:block;width:100%;height:auto;max-height:190px}
.r26-habit-graph text{font:var(--dj-text-reading-weight) var(--dj-text-caption-size,11px) var(--dj-font-functional,var(--font));fill:var(--muted,#777)}
.r26-habit-graph .done{fill:var(--success,#3b8b56)}
.r26-habit-graph .failed{fill:var(--danger,#bb4444)}
/* Мало отметок — полоска дней вместо графика; знак повтора в строке срока. */
.r26-habit-strip{display:flex;flex-wrap:wrap;gap:var(--dj-space-2,var(--dj-space-2));margin-block:var(--dj-space-2,var(--dj-space-2))}
.r26-habit-strip>span{width:var(--dj-space-3,12px);height:var(--dj-space-3,12px);border-radius:var(--dj-radius-circle,50%);background:var(--success)}
.r26-habit-strip>span.failed{background:var(--danger)}
.r26-habit-caption{color:var(--muted);font-size:var(--dj-text-secondary-size)}
.r26-repeat-mark{display:inline-grid;place-items:center;margin-left:auto;color:var(--muted)}
.r26-repeat-mark :is(svg,.dj-utility-symbol){width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);font-size:var(--dj-icon-standard,20px)}
.r26-copy-children>div{display:flex;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2) var(--dj-space-2);padding-left:calc(var(--dj-space-2) + var(--depth)*var(--dj-space-4));border-top:1px solid var(--border,#ddd)}
.r26-copy-children .v22-icon{width:20px;height:20px;flex-shrink:0;color:var(--accent)}
.r26-system-tag-name{color:var(--text,#222);margin:0 var(--dj-space-2);font-size:var(--dj-text-body-size,15px);font-weight:var(--dj-text-body-weight,600)}
@media(max-width:1024px){.v19-task-menu .r26-editor-actions>button{min-width:44px!important;min-height:44px!important;width:44px!important;height:44px!important}.v19-task-menu .r26-editor-actions{gap:var(--dj-space-1)}.r26-history-meta{font-size:var(--dj-text-secondary-size,12px)}}
html body .v19-task-menu .time-line[data-r26-no-deadline="true"] .r26-deadline{color:color-mix(in srgb,var(--ink) 58%,transparent)!important;}
/* «Критичный срок» имеет смысл только при заданном сроке: без срока кнопку не показываем. */
html body .time-line[data-r26-no-deadline="true"] .r27-critical{display:none!important;}

/* Parent names stay within the existing artifact row and choice rectangle. */
[data-dj-parent-selected]>button>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dj-parent-picker [data-dj-parent-choice]{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.dj-parent-picker [data-dj-parent-choice]>span{min-width:0;overflow-wrap:anywhere}
/* Parent picker: a search line pinned above the list of matching tasks. */
.dj-parent-picker{display:flex;flex-direction:column;gap:var(--dj-space-2,var(--dj-space-2));width:min(360px,calc(100vw - 16px));max-width:min(360px,calc(100vw - 16px));max-height:min(60dvh,420px);overflow:hidden;box-sizing:border-box}
.dj-parent-picker [data-dj-parent-search]{flex:none;box-sizing:border-box;width:100%;min-height:44px;padding:var(--dj-space-2,var(--dj-space-2)) var(--dj-space-3,var(--dj-space-3));border:1px solid var(--line);border-radius:var(--dj-radius-field,8px);background:var(--panel);color:var(--ink);font:inherit}
.dj-parent-list{display:flex;flex-direction:column;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none}
.dj-parent-list [data-dj-parent-choice]{display:flex;align-items:center;gap:var(--dj-space-2,var(--dj-space-2));flex:none;min-height:44px;padding:var(--dj-space-2,var(--dj-space-2));border:0;border-radius:var(--dj-radius-popup-row,7px);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.dj-parent-list [data-dj-parent-choice]:is(:hover,:focus-visible){background:var(--accent-soft)}
/* A chosen project, idea or parent uses the whole row; only a name longer than the row is cut. */
.v18-artifact-row:not(.v18-artifact-pickers)>button{min-width:0;max-width:100%}
.v18-artifact-row:not(.v18-artifact-pickers)>button span:not(.v22-icon){max-width:100%}
.dj-parent-more{margin:var(--dj-space-2,var(--dj-space-2)) var(--dj-space-3,var(--dj-space-3));color:var(--muted);font-size:var(--dj-text-secondary-size,13px)}

.dj-comment-editor{background:var(--panel);color:var(--ink);font-family:var(--font);padding:var(--dj-space-4)}
.dj-comment-editor::backdrop{background:color-mix(in srgb,var(--ink) 32%,transparent)}
.dj-comment-editor .dj-standard-a-header h2{margin:0;min-width:0}
/* The comment editor is as wide as its text needs and never wider than the screen; the field fills it. */
dialog.modal.r25-dialog.dj-comment-editor{box-sizing:border-box;width:min(560px,calc(100vw - var(--dj-space-8,32px)));min-width:0;max-width:none;max-height:calc(100dvh - var(--dj-space-8,32px));overflow:auto}
.dj-comment-editor>form{display:flex;flex-direction:column;gap:var(--dj-space-3,var(--dj-space-3));width:100%;min-width:0;margin:0}
.dj-comment-editor .dj-standard-a-header{display:flex;align-items:center;gap:var(--dj-space-2,var(--dj-space-2));width:100%}.dj-comment-editor .dj-standard-a-header h2{flex:1 1 auto}
.dj-comment-editor [role=alert]{margin:0;color:var(--p1)}.dj-comment-editor [role=alert]:empty{display:none}
.dj-comment-files{display:flex;flex-direction:column;gap:var(--dj-space-2,var(--dj-space-2))}.dj-comment-files[hidden]{display:none}
.dj-comment-file{display:flex;align-items:center;gap:var(--dj-space-2,var(--dj-space-2));min-width:0;min-height:44px;padding-left:var(--dj-space-2,var(--dj-space-2));border:1px solid var(--line);border-radius:var(--dj-radius-field,8px)}
.dj-comment-file>span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dj-comment-file>img{flex:none;width:var(--dj-space-8,32px);height:var(--dj-space-8,32px);object-fit:cover;border-radius:var(--dj-radius-detail,3px)}
.dj-comment-file>.v22-icon,.dj-comment-file-add>.v22-icon{flex:none;width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);color:var(--accent)}
.dj-comment-file-remove{flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:var(--dj-radius-circle,50%);background:transparent;color:var(--accent);cursor:pointer}.dj-comment-file-remove:is(:hover,:focus-visible){background:var(--accent-soft)}
.dj-comment-file-add{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--dj-space-2,var(--dj-space-2));min-height:44px}
.dj-comment-editor textarea{display:block;box-sizing:border-box;width:100%;min-height:160px;resize:vertical;white-space:pre-wrap;overflow-y:auto;font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-field);padding:var(--dj-space-2)}
.r23-comment-text{white-space:pre-wrap}
/* Шапка числовой цели и датчика повторяет геометрию шапки задачи: при смене типа строки не сдвигаются. */
html body form[data-v40-goal-form]>.v40-goal-head{padding-block-start:var(--dj-space-1);}
html body form[data-v40-goal-form]>.v40-goal-head .task-title-v09{block-size:34px;min-block-size:34px;}

/* ==== revision26.css ==== */
/* Revision 26 — adaptive navigation and the shared Dashboard shell. */
:root{
  --r26-phone-bar-height:72px;
  --r26-tablet-rail:64px;
  --r26-tablet-rail-open:244px;
  --r26-dashboard-width:320px;
}

.r26-dashboard-head{display:flex;align-items:center;gap:var(--dj-space-2);min-height:42px;margin:0 0 var(--dj-space-2)}
.r26-dashboard-head .right-title{margin:0;flex:1;min-width:0}
.r26-dashboard-toggle{width:36px;height:36px;min-width:36px;padding:0;border:0;border-radius:var(--dj-radius-circle,50%);display:grid;place-items:center;background:transparent;color:var(--accent)}
.r26-dashboard-toggle:hover,.r26-dashboard-toggle:focus-visible{background:var(--accent-soft)}
.r26-dashboard-toggle .v22-icon{width:20px;height:20px}
.r26-dashboard-launchers{display:flex;align-items:center;justify-content:center;gap:var(--dj-space-3);margin:var(--dj-space-1) 0 var(--dj-space-3)}
.r26-dashboard-launchers>button{width:52px;height:52px;min-width:52px;min-height:52px;padding:0;border:1px solid var(--line);border-radius:var(--dj-radius-circle,50%);background:var(--accent);color:#fff;display:grid;place-items:center;box-shadow:0 4px 14px #0002}
.r26-dashboard-launchers .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);color:#fff!important}
.r26-dashboard-project-summary{display:grid;gap:var(--dj-space-3)}
.r26-dashboard-project-capacity{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--dj-space-2);color:var(--muted);font-size:var(--dj-text-secondary-size,14px);font-weight:var(--dj-text-heading-weight)}
.r26-dashboard-project-capacity>b{color:var(--ink);font-size:var(--dj-text-heading-size,19px);font-variant-numeric:tabular-nums}
.r26-dashboard-project-capacity>.r26-dashboard-capacity{grid-column:1/-1}
.r26-dashboard-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-2)}
.r26-dashboard-metric{min-width:0;border:1px solid var(--line);border-radius:var(--dj-radius-card,10px);padding:var(--dj-space-2);background:var(--card,var(--panel));display:grid;gap:var(--dj-space-1)}
.r26-dashboard-metric>span{color:var(--muted);font-size:var(--dj-text-caption-size,12px);font-weight:var(--dj-text-caption-weight,600)}
.r26-dashboard-metric>b{font-size:var(--dj-text-heading-size,19px);font-variant-numeric:tabular-nums}
.r26-dashboard-capacity{height:6px;border-radius:var(--dj-radius-pill,999px);background:var(--line);overflow:hidden}
.r26-dashboard-capacity>i{display:block;height:100%;background:var(--accent)}
.r26-dashboard-note-metric{appearance:none;width:100%;color:inherit;text-align:left;cursor:pointer}
.r26-dashboard-schedule{display:grid;gap:var(--dj-space-1)}
.r26-dashboard-schedule>h3{margin:var(--dj-space-2) 0 var(--dj-space-1);font-size:var(--dj-text-body-size,15px)}
.r26-dashboard-schedule>button{width:100%;min-width:0;border:0;border-radius:var(--dj-radius-button,8px);background:var(--card,var(--panel));color:var(--ink);padding:var(--dj-space-2) var(--dj-space-2);display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--dj-space-2);text-align:left}
.r26-dashboard-schedule time{color:var(--muted);font-variant-numeric:tabular-nums}
.r26-dashboard-schedule span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r26-dashboard-empty{padding:var(--dj-space-3);color:var(--muted);text-align:center}

/* The old floating controls are forwarded by the Dashboard at tablet/desktop widths. */
@media(min-width:600px){
  body .v18-action-dock,body .focus-launch,body .notes-global-new,#dv-mic-wrap{visibility:hidden!important;pointer-events:none!important}
  html[data-r26-dashboard-project="1"] main [data-project-summary]{display:none!important}
}

/* Phone: five stable primary targets; remaining routes live in More. */
@media(max-width:599px){
  body{padding-bottom:calc(var(--r26-phone-bar-height) + env(safe-area-inset-bottom,0px))!important}
  .sidebar{grid-template-columns:repeat(5,minmax(0,1fr))!important;min-height:var(--r26-phone-bar-height)!important;height:calc(var(--r26-phone-bar-height) + env(safe-area-inset-bottom,0px))!important;padding-bottom:env(safe-area-inset-bottom,0px)!important}
  .sidebar .nav-item[data-route],.sidebar .v78-sidebar-project-wrap,.sidebar .nav-group,.sidebar .nav-title{display:none!important}
  .sidebar .nav-group{display:contents!important}
  .sidebar .v78-sidebar-project-wrap:has(.nav-item[data-r26-phone-primary="true"]){display:contents!important}
  .sidebar .v78-sidebar-project-wrap>:not(.nav-item[data-r26-phone-primary="true"]){display:none!important}
  .sidebar .nav-item[data-r26-phone-primary="true"]{display:flex!important;order:var(--r26-phone-order)!important}
  .sidebar .v75-mobile-more{display:flex!important;order:5!important}
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more){min-width:0!important;min-height:var(--r26-phone-bar-height)!important;padding:var(--dj-space-2) var(--dj-space-1) var(--dj-space-1)!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:var(--dj-space-1)!important;line-height:var(--dj-text-heading-line-height)!important}
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more)>.v22-nav-icon,
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more)>.v22-icon,
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more)>span:first-child{width:28px!important;height:28px!important;min-width:28px!important;display:grid!important;place-items:center!important}
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more) .v22-icon{width:28px!important;height:28px!important}
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more)>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--dj-text-caption-size,12px)!important;font-weight:var(--dj-text-caption-weight,600)!important;line-height:var(--dj-text-caption-line,1.25)!important}
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more) .count{display:none!important}
  .v75-mobile-backdrop{padding-bottom:calc(var(--r26-phone-bar-height) + env(safe-area-inset-bottom,0px))!important}
  .v75-mobile-sheet{max-height:calc(100dvh - 92px - var(--r26-phone-bar-height) - env(safe-area-inset-bottom,0px))!important;overflow:auto!important}
  .v75-mobile-grid.r26-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .v75-mobile-route[data-r26-dragging="true"],.sidebar [data-r26-dragging="true"]{opacity:.45;outline:2px dashed var(--accent)}
  .r26-drop-target{outline:2px solid var(--accent)!important;outline-offset:-2px}
  .v19-favorites-drawer{display:none!important}
  .v18-action-dock .notes-button,#dv-mic-wrap,#dv-mic{width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important}
}

/* Fold/tablet: compact rail, content and a persistent right third Dashboard. */
@media(min-width:600px) and (max-width:1024px){
  :root{--v78-sidebar-width:var(--r26-tablet-rail);--r26-dashboard-width:clamp(248px,31vw,336px)}
  .app-shell{grid-template-columns:var(--r26-tablet-rail) minmax(0,1fr) var(--r26-dashboard-width)!important;transition:grid-template-columns .18s ease}
  .app-shell.r26-dashboard-collapsed{grid-template-columns:var(--r26-tablet-rail) minmax(0,1fr) 64px!important}
  .sidebar{grid-column:1!important;grid-row:1!important}
  .main{grid-column:2!important;grid-row:1!important;padding-left:calc(var(--dj-space-4) + var(--dj-space-1))!important;transition:margin-left .18s ease}
  main.main>.v76-mobile-header{left:var(--r26-tablet-rail)!important;right:var(--r26-dashboard-width)!important;width:auto!important;transition:left .18s ease,right .18s ease!important}
  /* 2026-09-23 (владелец: "при раскрытии бокового меню двигается название закладки. Убрать."):
   * раньше здесь стоял .left:244px!important, сдвигавший саму шапку (а с ней заголовок вкладки)
   * при раскрытии рельса. Не нужно — .sidebar и так на z-index:100070 (revision25.css), на
   * порядки выше шапки (z-index:125) — расширенный рельс и без сдвига шапки корректно ложится
   * поверх её левой части, а заголовок остаётся на месте, не едет. */
  .rightbar.r26-dashboard{display:flex!important;grid-column:3!important;grid-row:1!important;position:sticky!important;top:env(safe-area-inset-top,0px)!important;height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;min-width:0!important;width:auto!important;padding:var(--dj-space-4) var(--dj-space-3)!important;border-left:1px solid var(--line)!important;background:var(--panel)!important;z-index:105!important}
  /* 2026-09-23 (владелец, скриншот планшета: "Меню наезжает на середину, сдвигая её, а должно
   * просто накладываться"): убрано margin-left, физически сдвигавшее .main при открытии рельса —
   * дублировало уже готовый оверлей-механизм (рельс расширяется до 244px поверх своей узкой
   * 64px grid-колонки и поднимается z-index'ом, revision27.css `.sidebar.r25-rail-open{z-index:
   * 60}` — сам по себе накладывается, а не раздвигает сетку). main.main>.v76-mobile-header ниже
   * не трогаем — он position:fixed, вне grid-потока, ему нужен свой left, чтобы не оказаться под
   * рельсом, это не «раздвигание», а корректная подстройка фиксированного элемента. */
  .sidebar>.search{min-height:42px!important;margin:var(--dj-space-1) 0 var(--dj-space-3)!important;padding:var(--dj-space-2) var(--dj-space-3)!important;overflow:hidden!important;white-space:nowrap!important}
  /* 2026-09-23 (владелец, скриншот планшета/Telegram): было ДВА значка поиска рядом — этот
   * ::before ("⌕", простой Unicode-символ, чисто декоративный) и настоящий SVG-значок фильтра
   * (.v53-search-icon, v53.js decorateSearch() — вставляется в тот же <label> всегда, вне
   * зависимости от этого правила). Похоже, ::before писался ДО того, как появился настоящий
   * значок, и его забыли убрать. Оставляем один — настоящий SVG из общей системы значков
   * (v22Icon), убираем декоративный Unicode-дубль. */
  .sidebar>.search{font-size:0!important;gap:var(--dj-space-2)!important}
  .sidebar>.search>input{font-size:var(--dj-text-body-size,15px)!important}
  .sidebar:not(.r25-rail-open)>.search{width:50px!important;padding-inline:var(--dj-space-4)!important}
  .sidebar.r25-rail-open>.search{width:232px!important}
  .sidebar.r25-rail-open>.search input{width:auto!important;opacity:1!important;min-width:0!important}
  .v76-rose-menu{position:fixed!important;left:calc(var(--r26-tablet-rail) + 1px)!important;top:max(8px,env(safe-area-inset-top,0px))!important}
  .sidebar>.search{height:44px!important;min-height:44px!important;padding:0 var(--dj-space-3)!important;border:0!important;background:var(--panel)!important;box-shadow:none!important;gap:var(--dj-space-4)!important}
  .sidebar>.search input{height:36px!important;margin:0 var(--dj-space-2) 0 0!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-field,8px)!important;background:var(--panel)!important;box-sizing:border-box!important}
  .sidebar:not(.r25-rail-open)>.search{width:50px!important;overflow:hidden!important}
  .sidebar:not(.r25-rail-open)>.search input{border:0!important;background:transparent!important}
  .sidebar.r25-rail-open~main~.rightbar .r26-dashboard-head{opacity:1}
  .sidebar .v19-favorites-drawer{grid-column:1/-1!important;width:100%!important;min-width:0!important}
}

@media(min-width:1025px){
  .rightbar.r26-dashboard{display:flex!important}
  .app-shell.r26-dashboard-collapsed{grid-template-columns:250px minmax(0,1fr) 64px!important}
}

@media(min-width:600px){
  .rightbar.r26-dashboard.r26-dashboard-collapsed{width:64px!important;min-width:64px!important;padding-inline:var(--dj-space-2)!important;overflow:hidden!important}
  .rightbar.r26-dashboard.r26-dashboard-collapsed>:not(.r26-dashboard-launchers){display:none!important}
  .rightbar.r26-dashboard.r26-dashboard-collapsed .r26-dashboard-launchers{display:flex!important;flex-direction:column;justify-content:center;align-items:center;gap:var(--dj-space-3);margin:auto 0}
  .rightbar.r26-dashboard.r26-dashboard-collapsed .r26-dashboard-launchers>button{width:52px;height:52px;min-width:52px;min-height:52px}
  .rightbar.r26-dashboard.r26-dashboard-unpinned{box-shadow:-8px 0 24px #0002}
  /* 2026-09-23 (владелец: "когда dashboard свёрнут - у него не должно быть тени"): тень выше
   * задумана для развёрнутого-но-неприкреплённого состояния (визуально «плавает поверх»);
   * свёрнутая узкая полоска (r26-dashboard-collapsed) — обычная часть раскладки, не оверлей,
   * тень ей не нужна. */
  .rightbar.r26-dashboard.r26-dashboard-collapsed.r26-dashboard-unpinned{box-shadow:none!important}
  .v19-favorites-drawer{grid-column:1/-1!important}
}

@media(prefers-reduced-motion:reduce){.app-shell,.main,.rightbar.r26-dashboard{transition:none!important}}

/* Планшет (владелец, 2026-09-22, разбор со скриншотом): на планшетной ширине панель "Фокус дня"
   (она же Dashboard) рендерится ПОД мобильной шапкой (.v76-mobile-header), и её собственные
   pin/свернуть-кнопки (.r26-dashboard-toggle — закрепить и "стрелка" сворачивания) оказываются
   физически правее кнопки настроек (.v76-header-button[data-v76-system]) — на скриншоте видно, что
   именно эта пара, а не настройки, читается как самый правый элемент экрана. Требование: кнопка
   настроек должна быть самой правой на ВСЕХ вкладках — здесь достаточно одного общего правила
   (Dashboard-панель одна и та же на каждой вкладке), без специальных случаев по маршруту. На
   Desktop (>1024px, где нет мобильной шапки вовсе) и на Phone (<600px, где Dashboard уходит в
   отдельный выезжающий блок) обе кнопки остаются — сворачивание/закрепление там осмысленно и не
   спорит с настройками за правый край. */
@media(min-width:600px) and (max-width:1024px){
  /* 2026-09-23 (владелец): кнопка pin возвращена — она нужна, чтобы владелец мог ЗАПРЕТИТЬ
   * автосворачивание Dashboard при открытии меню настроек (см. v76.js, [data-v76-system] в
   * обработчике click — сворачивает Dashboard, только если НЕ закреплён). "Стрелка" сворачивания
   * (data-r26-dashboard-collapse) по-прежнему скрыта — ручное управление сворачиванием здесь не
   * нужно, Dashboard теперь сворачивается/разворачивается автоматически вместе с меню настроек.
   * Pin ставим слева от кнопки настроек, тем же приёмом (position:fixed, тот же top). */
  [data-r26-dashboard-collapse]{display:none!important}
  [data-r26-dashboard-pin]{position:fixed!important;top:9px!important;right:64px!important;z-index:110!important;display:grid!important}
}

/* ==== revision27.css ==== */
/* Revision 27 — пользовательские правки: Dashboard, оформление строк, срок, тэги. */

/* Проект в строках/чипах: «@» цвета проекта вместо значка. */
.tp-artifact .tp-at{color:var(--tp-color,var(--accent));font-weight:var(--dj-text-heading-weight)}

/* Меню «Перенести срок»: вертикальный список прямоугольников как в меню задачи, bullet-point вместо значков, OK/Отмена справа. */
.r25-postpone-dialog .r23-project-stack{display:block}
.r25-postpone-dialog .r23-project-stack+.r23-project-stack{margin-top:var(--dj-space-3)}
.r25-postpone-dialog .r23-project-row{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-3);width:100%;min-height:34px;padding:var(--dj-space-1) var(--dj-space-3);margin:0;border:1px solid var(--panel,#fffdf8);border-radius:0;background:color-mix(in srgb,#8a7a5f 16%,var(--panel));color:var(--ink);font:inherit;text-align:left;cursor:pointer}
html[data-interface-design=classic] .r25-postpone-dialog .r23-project-row{background:white}
.r25-postpone-dialog .r23-project-stack>.r23-project-row:first-child{border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0}
.r25-postpone-dialog .r23-project-stack>.r23-project-row:last-child{border-radius:0 0 var(--dj-radius-popup) var(--dj-radius-popup)}
.r25-postpone-dialog .r23-project-stack>.r23-project-row:only-child{border-radius:var(--dj-radius-popup)}
.r25-postpone-dialog .r23-project-stack>.r23-project-row+.r23-project-row{border-top:0}
.r25-postpone-dialog .r25-postpone-presets [aria-pressed=true]{color:var(--ink);border-color:var(--panel,#fffdf8);background:color-mix(in srgb,#8a7a5f 16%,var(--panel))}
html[data-interface-design=classic] .r25-postpone-dialog .r25-postpone-presets [aria-pressed=true]{background:white}
.r25-postpone-dialog .r25-postpone-fields{display:block}
.r25-postpone-dialog .r25-postpone-fields label{display:flex;gap:var(--dj-space-3);align-items:center;justify-content:space-between}
.r25-postpone-dialog .r25-postpone-fields input{width:auto;flex:1 1 auto;min-width:0;min-height:0;border:0;background:transparent;text-align:right;font:inherit;color:var(--ink)}
.r25-bullet{position:relative;box-sizing:border-box;flex:0 0 16px;width:16px;height:16px;border:2px solid var(--accent);border-radius:var(--dj-radius-circle,50%)}
.r25-radio-row[aria-pressed=true] .r25-bullet::after{content:"";position:absolute;inset:2px;border-radius:var(--dj-radius-circle,50%);background:var(--accent)}
.r25-postpone-dialog .r25-dialog-actions{justify-content:flex-end}

/* ── Меню срока: 5 строк ── */
.time-menu .time-menu-card{display:flex;flex-direction:column;gap:var(--dj-space-3)}
.time-menu .r27-time-row{display:flex!important;flex-wrap:wrap;align-items:flex-end;gap:var(--dj-space-2);margin:0!important;grid-template-columns:none!important}
.time-menu .r27-time-row>label{display:flex;flex-direction:column;gap:var(--dj-space-1);min-width:0;flex:1 1 90px;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-secondary-weight);color:var(--muted)}
.time-menu .r27-time-row>label>span{line-height:var(--dj-text-title-line-height)}
.time-menu .r27-time-row input,.time-menu .r27-time-row select{box-sizing:border-box;width:100%;min-width:0;min-height:36px;font:inherit;font-size:var(--dj-text-body-size);color:var(--ink)}
.time-menu .r27-time-row>.r27-time-label{flex:0 0 100%;font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight);color:var(--muted);text-transform:none;letter-spacing:0}
.time-menu .r27-row-quick{align-items:stretch}
.time-menu .r27-row-quick>.btn{flex:1 1 0;min-height:36px;white-space:nowrap}
.time-menu .r27-row-deadline>.btn,.time-menu .r27-row-exec>.btn{min-height:36px}
.time-menu .r27-row-exec .r27-duration{flex:1 1 110px}
.time-menu .r27-exec-clear{flex:0 0 36px;width:36px;height:36px;min-width:36px;padding:0!important;display:inline-grid;place-items:center}
.time-menu .r27-exec-clear .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.time-menu .r27-time-row input:disabled,.time-menu .r27-time-row select:disabled,.time-menu .r27-exec-clear:disabled{opacity:.45;cursor:not-allowed}
.time-menu .r27-row-actions{display:flex;align-items:center;gap:var(--dj-space-2);margin-top:var(--dj-space-1)}
.time-menu .r27-row-actions .r27-postpone-btn{margin-right:auto;display:inline-flex;align-items:center;gap:var(--dj-space-2);min-height:40px}
.time-menu .r27-row-actions .r27-postpone-btn .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
.time-menu .r27-row-exec{flex-wrap:nowrap;gap:var(--dj-space-2)}
.time-menu .r27-row-exec>label{flex:1 1 0;min-width:0}
.time-menu .r27-row-exec .r27-duration{flex:1.1 1 0}
.time-menu .r27-row-exec input,.time-menu .r27-row-exec select{padding:var(--dj-space-1) var(--dj-space-1);font-size:var(--dj-text-secondary-size)}

/* ── Dashboard: три кнопки внизу, поверх содержимого; вертикальная полоса прокрутки ── */
.rightbar.r26-dashboard{position:sticky}
.rightbar.r26-dashboard>.r26-dashboard-launchers{position:absolute!important;left:0;right:10px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:12;display:flex!important;flex-direction:row;justify-content:flex-end;align-items:center;gap:var(--dj-space-2);margin:0!important;padding:0;pointer-events:none}
.rightbar.r26-dashboard>.r26-dashboard-launchers>button{pointer-events:auto;width:44px;height:44px;min-width:44px;min-height:44px;box-shadow:0 4px 14px #0003}
.rightbar.r26-dashboard>.r26-dashboard-launchers .v22-icon,.rightbar.r26-dashboard>.r26-dashboard-launchers svg{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important}
@media(min-width:600px) and (max-width:1024px){
  .rightbar.r26-dashboard>.r26-dashboard-launchers{right:6px}
  .rightbar.r26-dashboard>.r26-dashboard-launchers>button{width:52px;height:52px;min-width:52px;min-height:52px}
  .rightbar.r26-dashboard>.r26-dashboard-launchers .v22-icon,.rightbar.r26-dashboard>.r26-dashboard-launchers svg{width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important}
}
/* свёрнутый: вертикальный столбец внизу; Помощник (последний) остаётся на прежнем месте, соседи — выше него */
.rightbar.r26-dashboard.r26-dashboard-collapsed>.r26-dashboard-launchers{left:0;right:0;top:auto;bottom:calc(14px + env(safe-area-inset-bottom,0px));flex-direction:column;justify-content:flex-end;align-items:center;margin:0!important}
.rightbar.r26-dashboard.r26-dashboard-collapsed>.r26-dashboard-launchers>button{width:44px;height:44px;min-width:44px;min-height:44px}
@media(min-width:600px) and (max-width:1024px){.rightbar.r26-dashboard.r26-dashboard-collapsed>.r26-dashboard-launchers>button{width:52px;height:52px;min-width:52px;min-height:52px}}
/* полоса прокрутки всегда нарисована; снизу запас под кнопки */
.rightbar.r26-dashboard>.rightbar-scroll{overflow-y:scroll!important;scrollbar-gutter:stable;padding-bottom:calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-4))!important}
.rightbar.r26-dashboard>.rightbar-scroll::-webkit-scrollbar{width:10px}
.rightbar.r26-dashboard>.rightbar-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 45%,transparent);border-radius:var(--dj-radius-chip);border:2px solid transparent;background-clip:content-box}
.rightbar.r26-dashboard>.rightbar-scroll::-webkit-scrollbar-track{background:transparent}

/* Project dashboard: показатели в одну строку высотой, ёмкость в минутах, расписание как в «Фокусе дня» */
.r26-dashboard-metrics{gap:var(--dj-space-2)}
.r26-dashboard-metric{display:flex!important;align-items:center;justify-content:space-between;gap:var(--dj-space-2);padding:var(--dj-space-2) var(--dj-space-3)!important;min-height:0}
.r26-dashboard-metric>b{font-size:var(--dj-text-body-size,15px)!important}
.r26-dashboard-failed{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:calc(0px - var(--dj-space-1))}
.r26-dashboard-failed>b{color:var(--danger,#c64f43);font-size:var(--dj-text-secondary-size,12px)}
.r26-dashboard-head .right-title .r26-dashboard-rating{margin-left:var(--dj-space-1);color:var(--accent)}
.r26-dashboard-schedule .timeline{margin-top:var(--dj-space-1)}

/* Планшет: шапка всегда доходит ровно до правого меню (свёрнутого или развёрнутого) — между Dashboard
   и правым краем шапки нет щели ни в одном из состояний. */
@media(min-width:600px) and (max-width:1024px){
  :root{--r27-dash-open:clamp(248px,31vw,336px)}
  html body .app-shell.r26-dashboard-collapsed{grid-template-columns:var(--r26-tablet-rail) minmax(0,1fr) 64px!important}
  /* 2026-09-28: фон шапки включает правые controls независимо от состояния Dashboard.
   * Inspector начинается под шапкой; его ширина не резервируется внутри header. */
  html body main.main>.v76-mobile-header{right:0!important;padding-right:var(--dj-space-3)!important;transition:none!important}
  html body main.main{transition:none!important}
  html body main.main>.v76-mobile-header :is(.v76-mobile-main-row,.v76-active-route){transition:none!important}
  html body .app-shell{transition:none!important}
}

/* Ручная цель с цифрами: четыре строки-прямоугольника «Достичь / Единицы / Как / Срок»; родные контролы v19/v40 скрыты и управляются через них */
html body .v19-task-menu .v40-measure-row[data-r27-rows]{display:block!important;overflow:visible!important;margin:var(--dj-space-1) 0 0!important;padding:0!important}
html body .v19-task-menu .v40-measure-row[data-r27-rows]>:not(.r27-goal-rows){display:none!important}
.r27-goal-rows{display:block}
.r27-goal-row{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-2);min-height:38px;padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--panel,#fffdf8);background:color-mix(in srgb,#8a7a5f 16%,var(--panel));color:var(--ink)}
/* button logic (2026-09-22): this was silently flattening the row background in "classic" — the DEFAULT
 * theme for every new account — to plain white, while the sibling rows below (Срок/Приоритет, .time-line)
 * keep their background rectangle in every theme. Nothing else in classic asked for this; removed so the
 * three top rows (Достичь/Единицы/Как) match the rows right below them again. */
.r27-goal-rows>.r27-goal-row:first-child{border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0}
.r27-goal-rows>.r27-goal-row:last-child{border-radius:0 0 var(--dj-radius-popup) var(--dj-radius-popup)}
.r27-goal-rows>.r27-goal-row+.r27-goal-row{border-top:0}
.r27-goal-label{flex:0 0 auto;color:var(--muted);font-size:var(--dj-text-body-size,15px);font-weight:var(--dj-text-body-weight,600)}
html body .v19-task-menu .r27-goal-row .r27-goal-value{flex:0 1 auto;min-height:0;padding:var(--dj-space-1) var(--dj-space-1);border:0;background:transparent;color:var(--ink);font:inherit;font-weight:var(--dj-text-heading-weight);text-align:left;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
html body .v19-task-menu .r27-goal-row .r27-goal-value:disabled{cursor:default;text-decoration:none;opacity:.75}
html body .v19-task-menu .r27-goal-row .r27-goal-number{width:84px!important;min-height:0!important;height:28px!important;padding:0 var(--dj-space-2)!important;border:0!important;border-bottom:1px solid var(--line,#0003)!important;background:transparent!important;color:var(--ink);font:inherit;font-weight:var(--dj-text-heading-weight);text-align:right;box-shadow:none!important}
html body .v19-task-menu .r27-goal-deadline{margin-top:var(--dj-space-2)!important}
.r27-goal-deadline .r26-deadline{font-weight:var(--dj-text-heading-weight)}
.r27-goal-deadline[data-r26-tone="overdue"] .r26-deadline,.r27-goal-deadline .r26-deadline{color:var(--danger,#c94b43)}
.r27-goal-deadline .r27-critical{margin-left:auto;flex:0 0 auto;min-height:28px;padding:var(--dj-space-1) var(--dj-space-3);font-size:var(--dj-text-secondary-size,12px)}
.r27-critical-menu{position:fixed;z-index:10000;box-sizing:border-box;padding:var(--dj-space-2);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-popup,10px);background:var(--panel,#fffdf8);box-shadow:0 10px 30px #0003}
.r27-critical-menu .r27-critical-option{display:flex;align-items:center;gap:var(--dj-space-3);width:100%;min-height:36px;padding:var(--dj-space-1) var(--dj-space-3);border:0;border-radius:var(--dj-radius-popup-row);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.r27-critical-menu .r27-critical-option[aria-pressed=true]{background:color-mix(in srgb,#8a7a5f 16%,var(--panel))}
.r27-critical-menu .r25-radio-row[aria-pressed=true] .r25-bullet::after{content:"";position:absolute;inset:2px;border-radius:var(--dj-radius-circle,50%);background:var(--accent)}
.r27-critical-menu p{margin:var(--dj-space-2) var(--dj-space-3) var(--dj-space-1);color:var(--muted);font-size:var(--dj-text-secondary-size,12px);line-height:var(--dj-text-reading-line-height)}

/* Dashboard: заметки и комментарии открытой задачи */
.r27-dash-task{margin:0 0 var(--dj-space-3)}
.r27-dash-task .r27-dash-note{display:grid;gap:var(--dj-space-1);width:100%;box-sizing:border-box;margin:0 0 var(--dj-space-2);padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-card,10px);background:var(--panel,#fffdf8);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.r27-dash-task .r27-dash-note>b{font-size:var(--dj-text-body-size,15px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r27-dash-task .r27-dash-note>span{color:var(--muted);font-size:var(--dj-text-secondary-size,12px);line-height:var(--dj-text-body-line-height);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r27-dash-task time{color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r27-dash-task .r27-dash-comment{display:grid;gap:0;margin:0 0 var(--dj-space-2);padding:var(--dj-space-1) var(--dj-space-3);border-left:3px solid var(--accent)}
.r27-dash-task .r27-dash-comment>span{font-size:var(--dj-text-secondary-size,13px);line-height:var(--dj-text-reading-line-height);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Тэги: кружок с числом справа, перед ним избранное, левее — редактирование/цвет */
.r27-tag-row{display:flex!important;align-items:center;gap:var(--dj-space-2)}
.r27-tag-row>.entity-link{flex:1 1 auto;min-width:0;order:0}
.r27-tag-row>.tag-actions{display:contents}
.r27-tag-row .tag-actions>[data-delete-tag]{order:1}
.r27-tag-row .tag-actions>[data-edit-tag],.r27-tag-row>.v57-system-tag-color{order:2}
.r27-tag-row .tag-actions>.v24-favorite-toggle,.r27-tag-row>.v24-favorite-toggle{order:3}
.r27-tag-row>.r27-tag-count{order:4;flex:0 0 auto;margin-left:var(--dj-space-1)}

/* Меню тэга: «Удалить» — опасное действие (контур --accent, значок «удаление»), слева в нижнем ряду кнопок */
.r25-dialog-actions{align-items:center}
.r25-dialog-actions>.r27-delete-action{margin-right:auto;width:44px;height:44px;flex:0 0 44px;padding:0;display:grid;place-items:center;border-radius:var(--dj-radius-circle,50%);border:1px solid var(--accent);color:var(--accent);background:transparent}
.r25-dialog-actions>.r27-delete-action .v22-icon{color:var(--accent)}

/* Справка: колонка понятий центрирована относительно картинки (и на телефоне тоже); справка по наведению на Dashboard */
@media(max-width:599px){
  .r24-help-map{padding:calc(var(--dj-space-6) + var(--dj-space-1)) calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-1)) calc(var(--dj-space-4) + var(--dj-space-1)) calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-1))}
  .r24-help-map button{font-size:var(--dj-text-secondary-size);padding:var(--dj-space-1) var(--dj-space-1)}
  .r24-help-levels>div{gap:var(--dj-space-1)}
}
.rightbar.r26-dashboard>.r27-dash-help{position:absolute;left:8px;right:8px;top:56px;bottom:78px;z-index:8;box-sizing:border-box;overflow:auto;padding:var(--dj-space-3) var(--dj-space-4);border-radius:var(--dj-radius-card);background:var(--panel,#fffdf8);border:1px solid var(--line,#0002);box-shadow:0 6px 20px #0002}
.rightbar.r26-dashboard>.r27-dash-help p{margin:var(--dj-space-2) 0 0;font-size:var(--dj-text-body-size,15px);line-height:var(--dj-text-caption-line-height);color:var(--ink)}

/* Вопрос «одну задачу или несколько?» поверх редактора заметки (v84 прячет остальные .modal-backdrop) */
html.notes-editing .modal-backdrop.r27-ask-layer{visibility:visible!important;pointer-events:auto!important;z-index:100030!important}
.r27-ask-dialog h2{margin:0 0 var(--dj-space-3);font-size:var(--dj-text-heading-size,18px)}

/* Редактор заметки рядом с Dashboard: слой редактора оставляет справа место под Dashboard, preview и артефакты живут в нём */
html.r27-note-dash.notes-editing .notes-editor{right:var(--r27-note-dash-w,320px)!important;left:0!important;width:auto!important}
html.r27-note-dash.notes-editing .rightbar{visibility:visible!important;z-index:100010}
html.r27-note-dash.notes-editing .rightbar .r26-dashboard-launchers{z-index:100011}
.r27-dash-note-editor{margin:0 0 var(--dj-space-3);display:grid;gap:var(--dj-space-2)}
.r27-dash-note-editor .notes-mini-preview,.r27-dash-note-editor .notes-mini-preview[hidden]{position:relative!important;display:block!important;right:auto!important;top:auto!important;width:auto;max-width:160px!important;margin:0 auto;pointer-events:auto}
.r27-dash-note-editor .notes-attached{position:static!important;display:flex;flex-wrap:wrap;gap:var(--dj-space-2);max-width:none;padding:0;margin:0;background:transparent}
.r27-dash-note-editor .right-title:has(+ .r27-note-attached-slot .notes-attached:empty),.r27-dash-note-editor .r27-note-attached-slot:has(.notes-attached:empty){display:none}
.r27-dash-notes-filter{margin:0 0 var(--dj-space-3)}
.r27-dash-notes-filter .notes-tools{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:var(--dj-space-2) 0 0;position:static}

/* Телефон: Заметка / Фокус / Помощник — в одну вертикальную линию у правого края (Помощник — нижний, на своём месте) */
html.v76-phone body .v18-action-dock{left:auto!important;right:16px!important;top:auto!important;bottom:calc(80px + 52px + 12px)!important;flex-direction:column!important;gap:var(--dj-space-3)!important}

/* Планшет: единый шрифт всего бокового меню — как у пунктов под «Ещё» */
@media(min-width:600px) and (max-width:1024px){
  html body .sidebar :is(.nav-item,.nav-item>span:not(.count),.v76-wide-more-toggle,.v76-wide-more-toggle>span:not(.v76-more-dots),.v76-wide-more-items>button){font-family:var(--font,inherit)!important;font-size:var(--dj-text-body-size)!important;font-weight:var(--dj-text-body-weight)!important}
}
/* Заметки: сетка карточек не схлопывается в нулевую ширину */
.notes-grid{min-width:120px}.notes-card{min-width:min(120px,100%)}

/* Меню цели с цифрами: шапка как у меню задачи — название тянется, справа подряд статусы и «Отмена» без провалов */
html body .v19-task-menu .v40-goal-head{display:flex!important;align-items:center;justify-content:flex-start!important;gap:var(--dj-space-2)}
html body .v19-task-menu .v40-goal-head>.v40-title-wrap{flex:1 1 0!important;min-width:0;width:auto!important}
html body .v19-task-menu .v40-goal-head>.v76-task-state-wrap{flex:0 0 auto;margin:0!important;order:8}
html body .v19-task-menu .v40-goal-head>.r26-editor-actions{flex:0 0 auto;margin:0!important;order:9}
.time-menu .r27-missing{outline:2px solid var(--accent);border-radius:var(--dj-radius-popup-row)}
.r25-postpone-dialog .r25-postpone-fields[hidden]{display:none!important}
.r25-postpone-dialog .r25-postpone-presets+.r25-postpone-fields{margin-top:var(--dj-space-2)}

/* Ширина раскладки не прыгает от появления/исчезновения полосы прокрутки (раскрытие разделов, разные закладки) — Dashboard одной ширины везде */
html{scrollbar-gutter:stable}
/* 2026-09-23 (владелец: "между dashboard и правой границей окна не должно быть просветов"):
 * на ширине планшета/телефона (≤1024px) html/body сами overflow:hidden (v78.css) — у <html>
 * никогда не бывает СВОЕЙ полосы прокрутки, резервировать под неё gutter не для чего. Тот gutter
 * молча съедал 15px справа от .rightbar, создавая ровно тот просвет, о котором идёт речь. На
 * desktop (>1024px), где html иногда реально скроллится, поведение выше не трогаем. */
@media(max-width:1024px){html{scrollbar-gutter:auto!important}}

/* Тэги: без кнопок «удалить»; у системных цветной кружок заменён «редактировать»; кружки-счётчики одного размера и в одной колонке */
.r27-tag-row .tag-actions>[data-delete-tag]{display:none!important}
.r27-tag-row>.v57-system-tag-color{display:none!important}
.r27-tag-row>.r27-tag-edit{order:2}
.r27-tag-row>.r27-tag-count{box-sizing:border-box;width:26px;min-width:26px;height:26px;padding:0!important;display:inline-grid;place-items:center;margin-left:var(--dj-space-1);text-align:center}
.rightbar.r26-dashboard-collapsed{cursor:pointer}

/* Идея: «редактировать идею» — стандартная круглая 44px, системного цвета, значок белый */
/* Идея/проект: кнопки «новая задача / цель / датчик / ритуал / мысль (/ подпроект)» — круглые
 * системного цвета, в одну строку, без подписей. Размер (2026-09-22, по разбору владельца): были
 * 44px — тот же тир, что первичная FAB-кнопка "создать" в шапке вкладки (§196) — но это строка
 * ВТОРОГО ряда редактора (после самого заголовка с одной кнопкой "Редактировать"), не шапка
 * вкладки, и рядом в том же редакторе `.v27-project-primary-row .btn` уже 36px — следующий тир
 * вниз, он же родной базовый размер `.r21-icon-button` (project-ideas-r21.css) до этого 44px-
 * переопределения. Понижено до 36px, чтобы не спорить размером с заголовком и не читаться как
 * стена одинаково-крупных FAB.
 * 2026-09-23 («мелкие правки» п.2): ещё на тир вниз, до 32px — та же компактная величина, что
 * `.r21-mobile-project-tools`/`.r21-idea-tools` уже используют на узких экранах (project-ideas-
 * r21.css), теперь и на десктопе/планшете для ОБОИХ редакторов (Проект и Идея). */
@media(min-width:600px){
  .r26-idea-actions,.r25-idea-secondary{display:flex;flex-wrap:nowrap;gap:var(--dj-space-2);align-items:center;overflow:visible}
  .r21-secondary-tools{display:flex;flex-wrap:nowrap;gap:var(--dj-space-2);align-items:center}
  .r21-secondary-tools>.r21-icon-button{flex:0 0 32px;width:32px;height:32px;min-width:32px;padding:0;border-radius:var(--dj-radius-circle,50%)}
  .r21-secondary-tools>.r21-icon-button.primary,.r21-secondary-tools>[data-r27-create]{background:var(--accent);border-color:var(--accent);color:#fff}
  .r21-secondary-tools>[data-r27-create] .v22-icon{color:#fff}
  .r21-secondary-tools>.r21-icon-button .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px)}
}
/* Идеи: значок идеи в строках разделов — цвета идеи */
.idea-card>.v22-icon:first-child,.idea-card>svg:first-child{color:inherit!important}
.r27-dash-stones{margin:0}
.r27-dash-stones .v19-project-stones{display:flex;flex-direction:column;gap:var(--dj-space-2);margin:var(--dj-space-2) 0 0;padding:0;background:transparent}
@media(min-width:600px){
  html body .r21-project-secondary .r21-secondary-tools>[data-r27-create] :is(svg,.v22-icon){color:#fff!important}
}

/* График по дням на Dashboard (Ритуалы, Привычки) */
.r27-dash-daychart{margin:0 0 var(--dj-space-3)}
.r27-dash-daychart svg{display:block;width:100%;height:auto;margin-top:var(--dj-space-2)}
.r27-dash-daychart .r27-c-done,.r27-c-legend .r27-c-done{fill:#5fa77e;background:#5fa77e}
.r27-dash-daychart .r27-c-skip,.r27-c-legend .r27-c-skip{fill:#b8a99a;background:#b8a99a}
.r27-dash-daychart .r27-c-fail,.r27-c-legend .r27-c-fail{fill:var(--accent);background:var(--accent)}
.r27-c-label{font-size:var(--dj-text-caption-size);fill:var(--muted)}
.r27-c-legend{display:flex;gap:var(--dj-space-3);margin-top:var(--dj-space-1);font-size:var(--dj-text-secondary-size,12px);color:var(--muted)}
.r27-c-legend i{display:inline-block;width:10px;height:10px;border-radius:var(--dj-radius-detail,3px);margin-right:var(--dj-space-1);vertical-align:-1px}

/* Календарь: расписание выбранного дня */
.r27-cal-timeline{position:relative}
.r27-cal-timeline .time-block.r27-underline .time-title{text-decoration:none;font-weight:var(--dj-text-heading-weight);}
.r27-cal-line{position:absolute;width:1px;background:var(--r27-line,#888);pointer-events:none;z-index:2}
.r27-cal-line-red{background:#d00}

/* Боковое дерево проектов: вместо значка — «@» цвета проекта после названия */
.sidebar .v78-sidebar-project-link:not(.r27-idea-link) .v78-sidebar-project-glyph{display:none!important}
.sidebar .v78-sidebar-project-name::after{content:" @";font-weight:700}

/* ═══ Часть 3 ═══ */
/* «@» проекта — слева от названия, цвета проекта (боковое дерево и избранное) */
.sidebar .v78-sidebar-project-link:not(.r27-idea-link) .v78-sidebar-project-name::after{content:none!important}
.sidebar .v78-sidebar-project-link:not(.r27-idea-link) .v78-sidebar-project-name::before{content:"@ ";font-weight:700}
.sidebar .v19-favorites-drawer [data-v19-favorite-project],.sidebar .v19-favorites-drawer [data-project]{color:inherit}
/* Планшет: левое меню при раскрытии накрывает центр, а не сжимает его */
@media(min-width:600px) and (max-width:1024px){
  html body main.main{margin-left:0!important}
  html body main.main>.v76-mobile-header{left:var(--r26-tablet-rail,64px)!important}
  html body .sidebar.r25-rail-open{z-index:60;box-shadow:6px 0 24px #0003}
}
/* Dashboard: вертикальная полоса прокрутки не показывается (прокрутка остаётся) */
.rightbar.r26-dashboard>.rightbar-scroll{overflow-y:auto!important;scrollbar-width:none!important;-ms-overflow-style:none;scrollbar-gutter:auto!important}
.rightbar.r26-dashboard>.rightbar-scroll::-webkit-scrollbar{display:none!important;width:0!important}
/* Кнопка «Фокус» на Dashboard — значок белый */
.rightbar.r26-dashboard [data-r26-dashboard-focus] :is(svg,.v22-icon){filter:brightness(0) invert(1)!important;color:#fff!important}
/* Что показывает Dashboard: закладки без расписания/ёмкости */
html[data-r27-route="rituals"] .rightbar-scroll>.rightbar-schedule-title,html[data-r27-route="rituals"] .rightbar-scroll>.timeline,
html[data-r27-route="habits"] .rightbar-scroll>.rightbar-schedule-title,html[data-r27-route="habits"] .rightbar-scroll>.timeline{display:none!important}
html[data-r27-route="notes"] .rightbar-frozen,html[data-r27-route="goals"] .rightbar-frozen,html[data-r27-route="settings"] .rightbar-frozen,html[data-r27-route="help"] .rightbar-frozen,html[data-r27-route="ideas"] .rightbar-frozen,
html[data-r27-modal="task"] .rightbar-frozen,html.notes-editing .rightbar-frozen{display:none!important}
html[data-r27-route="notes"] .rightbar-scroll>*:not([class*="r27-"]),html[data-r27-route="goals"] .rightbar-scroll>*:not([class*="r27-"]),html[data-r27-route="settings"] .rightbar-scroll>*:not([class*="r27-"]),
html[data-r27-route="help"] .rightbar-scroll>*:not([class*="r27-"]),html[data-r27-route="ideas"] .rightbar-scroll>*:not([class*="r27-"]),
html[data-r27-modal="task"] .rightbar-scroll>*:not([class*="r27-"]),html.notes-editing .rightbar-scroll>*:not([class*="r27-"]){display:none!important}
.r27-concept{margin:var(--dj-space-2) 0;font-size:var(--dj-text-body-size,15px);line-height:var(--dj-text-caption-line-height)}
.r27-concept-hint{color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r27-dash-route{margin:0 0 var(--dj-space-3)}
/* Меню поверх страницы занимают область до Dashboard — Dashboard остаётся доступным */
html.r27-dash-live .modal-backdrop:not(.r27-ask-layer,[data-v70-issue-modal]){right:var(--r27-dash-w,0px)!important;width:auto!important}
html.r27-dash-live .r26-dashboard-launchers{z-index:100040}
/* Показатели Dashboard проекта/идеи — кнопки-фильтры */
.r26-dashboard-metric[data-r27-filter]{cursor:pointer}
.r26-dashboard-metric.r27-filter-on{outline:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.r27-filtered-out{display:none!important}
/* Цели с цифрами: число в поле выбора — следующий размер шрифта */
/* button logic (2026-09-22): was --dj-text-heading-size — visibly bigger than the "минут"/"больше или
 * равно"/"суммарно" text right next to it in the same row. Checked live: .r27-goal-value in this row
 * actually renders at --dj-text-secondary-size (14px desktop/tablet, 14px phone), not body — match that. */
html body .v19-task-menu .r27-goal-row .r27-goal-number{font-size:var(--dj-text-secondary-size,12px)!important;height:32px!important}
/* Кнопки «выделить» и «аналитика» проекта — справа */
/* Идеи: значок в круглой кнопке создания — белый; «…» под общей кнопкой */
html body main .r25-new-idea :is(svg,.v22-icon),html body main .v82-create-button :is(svg,.v22-icon){color:#fff!important}
.r27-ideas-more{display:flex;align-items:center;gap:var(--dj-space-2);margin:var(--dj-space-2) 0}
.r27-ideas-more>button{min-width:44px;height:44px;border-radius:var(--dj-radius-circle,50%);border:1px solid var(--line,#0003);background:transparent;color:var(--ink);font-size:var(--dj-text-heading-size);line-height:var(--dj-text-heading-line-height);cursor:pointer}
.r27-ideas-more[data-open="1"]>button{background:var(--accent);color:#fff;border-color:var(--accent)}
.r27-ideas-hidden[hidden]{display:none!important}
.r27-dash-chips{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:var(--dj-space-2) 0 var(--dj-space-3)}
.r27-dash-chip{padding:var(--dj-space-1) var(--dj-space-3);border-radius:var(--dj-radius-pill,999px);border:1px solid currentColor;font-size:var(--dj-text-secondary-size,13px);font-weight:var(--dj-text-heading-weight)}
.r26-favorite-heading{display:flex;align-items:center;gap:var(--dj-space-2)}
.r26-favorite-heading>[data-r26-favorite-fold]{display:contents}
.r26-favorite-heading .r26-favorite-add{order:4;margin-left:auto;min-height:32px;padding:var(--dj-space-1) var(--dj-space-3)}
.r26-favorite-heading .r26-favorite-count{order:3}
.r26-favorite-row .r27-fav-date{margin-left:auto;color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r24-help-map aside.r24-help-left{position:absolute;left:10px;top:150px;right:auto;display:flex;flex-direction:column;gap:calc(var(--dj-space-8) + var(--dj-space-2))}
@media(max-width:599px){.r24-help-map aside.r24-help-left{left:4px}}
/* Настройки: свёрнутый раздел скрывает всё, кроме заголовка ("Система" раньше оставляла строку) */
.v76-settings-collapsed>:not(h3){display:none!important}
.notes-security-settings.v76-settings-collapsed>:not(h3){display:none!important}
/* Графики истории цели/датчика/привычки — на Dashboard (в форме скрыты; на телефоне их нет вовсе) */
.r27-dash-history svg{max-width:100%;height:auto}
.r27-hist-meta{color:var(--muted);font-weight:var(--dj-text-reading-weight)}
.task-state-actions>.r27-state-sep{border:0;border-top:1px solid var(--line,#0003);margin:var(--dj-space-2) 0}
.task-state-actions>.r27-copy-action{width:100%}
/* Срок цели/датчика: название срока, выбор срока и «критичный» не наезжают друг на друга */
html body .v19-task-menu .r27-goal-deadline{display:flex!important;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2) var(--dj-space-3);position:relative;height:auto!important;min-height:36px}
html body .v19-task-menu .r27-goal-deadline>*{position:static!important;flex:0 1 auto;min-width:0;max-width:100%}
html body .v19-task-menu .r27-goal-deadline .r26-deadline{flex:1 1 140px}
/* button logic (2026-09-22): only two selection-element shapes app-wide — chips (--dj-radius-chip) and
   segments. This toggle is a one-item on/off chip, not its own third shape, so it takes the chip radius,
   not a pill (see design/button-standards.css and DESIGN_STANDARDS.md §5). */
html body .v19-task-menu .r27-goal-deadline>.r27-critical{order:9;margin-left:auto;width:auto!important;min-width:0!important;height:28px!important;min-height:28px!important;padding:var(--dj-space-1) var(--dj-space-3)!important;border-radius:var(--dj-radius-chip,8px)!important;white-space:nowrap;overflow:visible!important;font-size:var(--dj-text-secondary-size,13px)!important}
html body .v19-task-menu .r27-goal-deadline>.r26-deadline{order:2}
html body .v19-task-menu .r27-goal-deadline>button[data-v40-time-open]{order:1}
.r27-note-stats{padding:var(--dj-space-1) var(--dj-space-1) var(--dj-space-2);font-size:var(--dj-text-body-size,15px)}
html.r27-note-dash .notes-editor .notes-focus-launch{display:none!important}

.r27-ideas-tree[hidden]{display:none!important}
.r27-ideas-tree{padding-left:var(--dj-space-2)}
.r27-search-notes{margin-top:var(--dj-space-4)}
.r27-search-note{display:flex!important;justify-content:space-between;gap:var(--dj-space-3);width:100%;box-sizing:border-box;min-height:40px;padding:var(--dj-space-2) var(--dj-space-3);border:0;border-bottom:1px solid var(--line,#0001);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.r27-search-note time{color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r27-parser-doc{margin-top:var(--dj-space-3);font-size:var(--dj-text-secondary-size,14px)}
.r27-parser-doc code{padding:0 var(--dj-space-2);border-radius:var(--dj-radius-detail);background:color-mix(in srgb,#8a7a5f 16%,var(--panel))}
.r27-ideas-wrap>.r27-ideas-tree{grid-column:1/-1}
/* Срок цели: порядок и размеры перебивают task-menu-r19 (order:-1 / flex:0 0 20px с !important у кнопок в .time-line) */
html body .v19-task-menu .r27-goal-deadline>.r27-critical{order:9!important;flex:0 0 auto!important;width:auto!important;margin-left:auto!important}
html body .v19-task-menu .r27-goal-deadline>.r26-deadline{order:2!important}
html body .v19-task-menu .r27-goal-deadline>[data-v40-time-open]{order:1!important}
/* Название цели не должно выходить из своей обёртки и уходить под кнопки ≡ ✕ ✓ (375 px: поле было 287 px при обёртке 139 px). */
html body .v19-task-menu .v40-goal-head>.v40-title-wrap>input{width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box;text-overflow:ellipsis;}

/* ==== revision28.css ==== */
/* Revision 28 — interface clean-up (see UI_CLEANUP_R28_RU.md). Loaded after revision27.css. */

/* М10 (2026-09-23, владелец: "вертикальный скроллинг не работает нигде кроме Календаря" — веб-
 * мобильная/планшетная версии и их Telegram-аналоги). См. подробный комментарий у main.main в
 * v78.css — тот же -webkit-overflow-scrolling:touch, что уже чинил ровно такую же проблему для
 * Календаря (revision28.css выше), но только там; распространяем на остальные вложенные
 * overflow-контейнеры на узких экранах — боковое меню и правую панель "Фокус дня", у обеих свой
 * независимый скролл на этой ширине. */
@media(max-width:1024px){
  .sidebar,.rightbar,.rightbar-scroll,.r25-sidebar-scroll{-webkit-overflow-scrolling:touch}
}

/* 2026-09-23, третий заход (владелец: скролл всё ещё не работает после -webkit-overflow-scrolling:touch
 * и overscroll-behavior:contain — обе меры выше это НЕ починили). `overscroll-behavior` управляет только
 * цепочкой/оттягиванием прокрутки К РОДИТЕЛЮ, когда браузер УЖЕ решил, что жест — это скролл; она не
 * говорит распознавателю жестов, что вертикальный touch-драг внутри контейнера вообще СЧИТАТЬ скроллом.
 * `touch-action` — другое, более раннее звено: именно оно указывает нативному распознавателю жестов
 * WebView (в т.ч. встроенного в Telegram Mini App на Android, который иначе может перехватывать
 * вертикальные драги для своих собственных жестов сворачивания/закрытия даже при активном
 * disableVerticalSwipes(), см. telegram-miniapp.js), какие направления обрабатывать как обычную
 * прокрутку страницы. Это официально документированный Telegram-приём для ровно такой же проблемы
 * («страница/контейнер не скроллится внутри Mini App, хотя колесо мыши работает») — pan-y разрешает
 * вертикальный скролл явно, не трогая горизontal-жесты, которыми может распоряжаться сам Telegram. */
@media(max-width:1024px){
  html,body,main.main,.app-shell>.main,.sidebar,.rightbar,.rightbar-scroll,.r25-sidebar-scroll{touch-action:pan-y!important}
}

/* М9 (2026-09-23, владелец, разбор по скриншоту из настоящего Telegram Mini App): кнопка
 * настроек (⚙️, [data-v76-system] в .v76-mobile-header) должна быть самой правой на ВСЁМ
 * экране (тот же принцип, что М5 уже применяет к pin/collapse-кнопкам Dashboard) — а не только
 * самой правой ВНУТРИ средней колонки, которая на ширине планшета заметно уже (.v76-mobile-
 * header не дотягивается до .rightbar — между ними реальный зазор, см. правый столбец
 * "Фокус дня"). DOM-родитель кнопки НЕ меняем (клик обрабатывается делегированием на document
 * через .closest('[data-v76-system]') — см. v76.js/mobile-client.js, — значит визуальный сдвиг
 * через position:fixed ничего не ломает функционально). Прижимаем к правому краю экрана, на
 * той же высоте, где уже сейчас стоит (не трогаем вертикаль — п.3 её уже выровнял с заголовком
 * вкладки). z-index выше .rightbar.r26-dashboard (105, revision26.css), чтобы лежать поверх
 * правой колонки, а не под ней. */
@media(min-width:600px) and (max-width:1024px){
  .v76-mobile-header [data-v76-system]{position:fixed!important;top:9px!important;right:12px!important;z-index:110!important}
  /* Само меню (.v76-system-menu) — position:absolute;right:0 в v76.css/v78.css, заякорено на
   * СВОЙ offset-родитель (.v76-mobile-main-row — исходная, немодифицированная позиция кнопки в
   * потоке), поэтому без этого правила продолжало бы открываться под старым местом кнопки
   * (в середине экрана), а не под новым (см. правило выше). Тоже переводим в position:fixed,
   * тем же right/z-index, что и кнопка, чтобы соответствовать её фактическому положению. */
  .v76-mobile-header [data-v76-system-menu]{position:fixed!important;top:53px!important;right:12px!important;left:auto!important;z-index:110!important}
}

/* М7. Phone / mobile web: the three round action buttons (note, focus, assistant) sit in ONE row with equal gaps. */
@media (max-width:599px){
  html.v76-phone body .v18-action-dock{flex-direction:row!important;right:calc(16px + 52px + 12px)!important;bottom:calc(80px + env(safe-area-inset-bottom))!important;gap:var(--dj-space-3)!important}
  html.v76-phone body #dv-mic-wrap{right:16px!important;bottom:calc(80px + env(safe-area-inset-bottom))!important;height:auto!important;min-height:0!important;justify-content:flex-end!important}
}

/* М1. Main menu (desktop / tablet sidebar): the rose and the search field stay in place, the menu scrolls under them
   without a scroll bar. */
@media (min-width:600px){
  html .sidebar{scrollbar-width:none!important;-ms-overflow-style:none!important}
  html .sidebar::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
  html .sidebar{padding-top:0!important}
  html .sidebar>.brand{position:sticky;top:0;z-index:3;background:var(--bg);padding-top:calc(var(--dj-space-4) + var(--dj-space-1))!important;margin-top:0!important}
  html .sidebar>.search{position:sticky;top:var(--r28-brand-h,77px);z-index:3;background:var(--bg)}
  /* М2. The page title row with its buttons stays in place; the list below scrolls. */
  html main.main>.topbar{position:sticky;top:0;z-index:3;background:var(--bg)}
}

/* М5. The default Dashboard title "Панель" is dropped: the pin / collapse buttons move onto the first line of content. */
.rightbar.r26-dashboard{position:relative}
.r26-dashboard-head.r28-notitle,.r26-dashboard-head:has(>.right-title:empty){position:absolute;right:10px;top:8px;z-index:4;padding:0!important;margin:0!important;min-height:0!important;background:none!important}
.r26-dashboard-head.r28-notitle .right-title,.r26-dashboard-head>.right-title:empty{display:none!important}
.r26-dashboard-head.r28-notitle~.rightbar-frozen,.r26-dashboard-head:has(>.right-title:empty)~.rightbar-frozen{padding-right:calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-3))}
/* 2026-09-23 (разбор владельца по новому скриншоту планшета/Telegram, п.5 «мелких правок»):
 * на ширине планшета (600-1024px) .r26-dashboard-toggle (pin/свернуть-кнопки, из-за которых
 * вообще существует этот запас) УЖЕ скрыт правилом чуть выше в этом же файле (М-блок
 * "Планшет... кнопка настроек должна быть самой правой", 2026-09-22) — там ничего не плавает,
 * запас держать не от чего. horizontal-запас 76px тем не менее продолжал молча красть ширину
 * у «Дневная ёмкость» (и любого другого содержимого .rightbar-frozen) на этой же ширине —
 * тот самый смежный баг, найденный в ЭТОМ разборе. Снимаем его именно в этом диапазоне;
 * Desktop/Phone, где кнопки видимы, не трогаем. */
@media(min-width:600px) and (max-width:1024px){
  .r26-dashboard-head.r28-notitle~.rightbar-frozen,.r26-dashboard-head:has(>.right-title:empty)~.rightbar-frozen{padding-right:0}
}

/* Р1. Rituals: no schedule in the Dashboard. */
html[data-r28-route="rituals"] .rightbar .rightbar-schedule-title,
html[data-r28-route="rituals"] .rightbar .timeline{display:none!important}

/* П1. Habits: no "Focus of the day" and no stones in the Dashboard. */
html[data-r28-route="habits"] .rightbar .rightbar-frozen>.right-title,
html[data-r28-route="habits"] .rightbar .rightbar-focus-actions,
html[data-r28-route="habits"] .rightbar .right-title:has(+ .stone-strip),
html[data-r28-route="habits"] .rightbar .stone-strip{display:none!important}

/* Н1. Settings Dashboard: every metric occupies a whole line. */
.rightbar .r26-dashboard-metrics{grid-template-columns:1fr!important}

/* И1. Favorites: the "Add" button is smaller and uses the secondary text size of the type scale. */
.r26-favorite-add{font-size:var(--dj-text-secondary-size,12px)!important;font-weight:var(--dj-text-secondary-weight,500)!important;line-height:var(--dj-text-title-line-height)!important;min-height:44px!important;height:auto!important;padding:var(--dj-space-1) var(--dj-space-3)!important}

/* С1. "Перенести" opened from the time menu must be above it (the time menu is at z-index 99999). */
.modal-backdrop.r25-dialog-backdrop{z-index:100001!important}

/* З1. Recurrence mark in the task menu "Делать" row. */
.r26-time-row .r28-recur{display:inline-flex;align-items:center;margin-left:var(--dj-space-2);opacity:.85}
.r26-time-row .r28-recur svg{width:15px;height:15px}

/* Ц3. Goals Dashboard: the two figures of a unit are two boxes on one line. */
.r26-dashboard-metric:has(.r28-metric-chips){display:flex;flex-direction:column;gap:var(--dj-space-1)}
.r28-metric-chips{display:flex;gap:var(--dj-space-2)}
.r28-metric-chip{flex:1 1 0;min-width:0;white-space:nowrap;padding:var(--dj-space-1) var(--dj-space-2);border:1px solid var(--line,#ddd);border-radius:var(--dj-radius-chip,8px);background:var(--panel,#fff);color:inherit;font:inherit;font-size:var(--dj-text-secondary-size,12px);font-weight:var(--dj-text-heading-weight);cursor:pointer;text-align:center}
.r28-metric-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}
.v43-goal-row[hidden]{display:none!important}

/* М8. Sidebar projects: the "@" has the project colour. М3. Ideas: no "@" after the name. */
.sidebar .v78-sidebar-project-link:not(.r27-idea-link) .v78-sidebar-project-name::before{color:var(--r28-at,inherit)!important}
.sidebar .r27-idea-link .v78-sidebar-project-name::after{content:none!important}

/* Dashboard blocks that do not belong to a section (owner's list, 21.09). Route names come from html[data-r28-route]. */
html:is([data-r28-route="filters"],[data-r28-route="activity"],[data-r28-route="karma"],[data-r28-route="analytics"],[data-r28-route="stones"],[data-r28-route="stone"],[data-r28-route="walls"],[data-r28-route="wall"],[data-r28-route="cathedral"],[data-r28-route="contacts"],[data-r28-route="favorites"],[data-r28-route="tags"],[data-r28-route="tag"],[data-r28-route="habits"],[data-r28-route="rituals"]) .rightbar .capacity{display:none!important}
html:is([data-r28-route="filters"],[data-r28-route="activity"],[data-r28-route="karma"],[data-r28-route="analytics"],[data-r28-route="stones"],[data-r28-route="stone"],[data-r28-route="walls"],[data-r28-route="wall"],[data-r28-route="cathedral"],[data-r28-route="contacts"],[data-r28-route="favorites"],[data-r28-route="tags"],[data-r28-route="tag"]) .rightbar :is(.rightbar-schedule-title,.timeline){display:none!important}
html:is([data-r28-route="rituals"],[data-r28-route="habits"],[data-r28-route="tags"],[data-r28-route="tag"],[data-r28-route="activity"],[data-r28-route="karma"],[data-r28-route="analytics"],[data-r28-route="stones"],[data-r28-route="stone"],[data-r28-route="walls"],[data-r28-route="wall"],[data-r28-route="cathedral"],[data-r28-route="contacts"],[data-r28-route="favorites"]) .rightbar :is(.stone-strip,.right-title:has(+ .stone-strip)){display:none!important}

/* Desktop: the page never scrolls as a whole. The menu, the tab and the Dashboard each scroll inside their own area
   (without a scroll bar), so nothing shakes when the wheel turns. */
@media (min-width:1025px){
  html:not(.notes-editing):not([data-r28-route="calendar"]),html:not(.notes-editing):not([data-r28-route="calendar"]) body{height:100%;overflow:hidden!important}
  html:not(.notes-editing):not([data-r28-route="calendar"]) .app-shell{height:100vh!important;min-height:0!important;overflow:hidden}
  html:not(.notes-editing):not([data-r28-route="calendar"]) .app-shell>.main{height:100vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:none}
  html:not(.notes-editing):not([data-r28-route="calendar"]) .app-shell>.main::-webkit-scrollbar{display:none;width:0;height:0}
  /* the top padding moves into the pinned title row, otherwise the row would stick 40px below the edge */
  html:not(.notes-editing):not([data-r28-route="calendar"]) .app-shell>.main{padding-top:0!important}
  html:not(.notes-editing):not([data-r28-route="calendar"]) .app-shell>.main>.topbar{padding-top:calc(var(--dj-space-8) + var(--dj-space-2))}
}

/* No elastic bounce / scroll chaining at the end of any scroll area (it made the tab, the Dashboard and the rose jump). */
html,body,.sidebar,.app-shell>.main,.rightbar,.rightbar-scroll{overscroll-behavior:none!important}
/* 2026-09-23, второй заход (владелец: "вертикальный скролл не работает" — первая попытка
 * (-webkit-overflow-scrolling:touch, см. М10 выше) не помогла): overscroll-behavior:none в
 * WebKit/встроенных WebView (в т.ч. Telegram) исторически не всегда ограничивается запретом
 * ТОЛЬКО эффекта оттягивания/цепочки скролла к родителю — известны версии, где это же значение
 * попутно блокирует и обычный touch-скролл вложенного контейнера целиком. `contain` даёт тот же
 * эффект «ничего не трясётся» (не пускает прокрутку/bounce дальше к родителю), но без этой
 * побочной блокировки — более безопасный выбор именно для touch. Ограничиваем шириной ≤1024px,
 * чтобы никак не менять уже подтверждённо рабочее поведение desktop (колесо мыши/трекпад). */
@media(max-width:1024px){
  html,body,.sidebar,.app-shell>.main,.rightbar,.rightbar-scroll{overscroll-behavior:contain!important}
}
/* The calendar keeps the page scroll: its wheel handlers (day change at the end of the list) read the page scroll position. */

/* К2. Phone / mobile web calendar: the whole page (month grid + the day's task list) scrolls up and down. */
@media (max-width:599px){
html.v76-phone[data-r28-route="calendar"] .app-shell>.main{overflow-y:hidden!important;height:100dvh!important;min-height:0!important;padding-bottom:var(--v75-mobile-bar,calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-1)))!important}
html.v76-phone[data-r28-route="calendar"] .v56-calendar-shell{min-height:0!important;display:grid!important;grid-template-rows:auto auto auto minmax(0,1fr)!important;overflow:hidden!important}
html.v76-phone[data-r28-route="calendar"] .v56-calendar-agenda{height:100%!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;touch-action:pan-y!important;-webkit-overflow-scrolling:touch}

/* Phone pages must keep a viewport-height scrollport. Without an explicit grid row minimum,
   short routes expand main to their content height and leave no scroll range at all. */
@media(max-width:599px){
  html.v76-phone:not(.notes-editing) .app-shell{height:100dvh!important;min-height:0!important;grid-template-rows:minmax(0,1fr)!important;overflow:hidden!important}
  html.v76-phone:not(.notes-editing):not([data-r28-route="calendar"]) .app-shell>.main{box-sizing:border-box;height:100dvh!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;touch-action:pan-y!important}
  .v75-mobile-grid.r26-more-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--dj-space-2)!important}
  .r26-more-grid .v75-mobile-route{box-sizing:border-box;min-width:0!important;min-height:68px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:var(--dj-space-1)!important;padding:var(--dj-space-1) var(--dj-space-1)!important;text-align:center!important;font-size:var(--dj-text-caption-size,12px)!important;font-weight:var(--dj-text-caption-weight,600)!important;line-height:var(--dj-text-caption-line,1.25)!important}
  .r26-more-grid .v75-mobile-route .v22-icon{width:28px!important;height:28px!important}
  .r26-more-grid .v75-mobile-route .count,.r26-more-grid .v76-more-count{display:none!important}
  .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more){display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:var(--dj-space-1)!important}
}

/* The phone title is rendered outside the desktop h1; carry over the display face. */
html[data-interface-design="claude"] .v76-active-route strong{font-family:var(--font-display)!important;letter-spacing:0!important}

}

/* Disclosure controls are chevrons, not oversized action arrows on tablet. */
.v78-sidebar-project-wrap [data-v78-arrow]{display:grid!important;place-items:center;width:16px;height:16px}
.v78-sidebar-project-wrap [data-v78-arrow] .v22-icon{display:none!important}
.v78-sidebar-project-wrap [data-v78-arrow]::before{content:"";display:block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.v78-sidebar-project-wrap [data-v78-arrow="open"]::before{transform:translateY(2px) rotate(225deg)}
.r27-ideas-toggle>span{display:none!important}
.r27-ideas-toggle::before{content:"";display:block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.r27-ideas-toggle[aria-expanded="true"]::before{transform:rotate(225deg)}

/* The toolbar is hidden in some layouts; keep the agenda in the flexible fourth row. */
html[data-v77-calendar-layout] .v56-calendar-agenda{grid-row:4!important}

/* М6. The Dashboard always arrives from the right (the tab itself still rises from below). */
@keyframes r28-from-right{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}

/* М7 (2026-09-23, "мелкие правки" п.1): единый шрифт/размер чипов выбора артефакта
 * в ЛЮБОЙ форме (обычная задача, «Цель с цифрами» и т.п.) — кнопка «Напоминание»
 * отличалась от соседних чипов «Тэги»/«Проект / идея»/«Контакт»: молча наследовала
 * body-text (17px) через более специфичное :is()-правило в task-menu-r19.css, а
 * соседние чипы сами были на 15px, а не задуманных r26d-правилом 13px (ещё одна
 * более специфичная поздняя переопределяющая заготовка). Используем ту же
 * специфичность-перебивку (.v19-task-menu×3), что соседние правила чипов дальше по
 * каскаду в этом же файле — она достаточна, чтобы выиграть у обоих конкурентов. */
.v19-task-menu.v19-task-menu.v19-task-menu .v19-pickers-chips>button,
.v19-task-menu.v19-task-menu.v19-task-menu .v19-pickers-chips>button *:not(.v22-icon):not(.dj-utility-symbol):not(svg):not(path){
  font-size:var(--dj-text-secondary-size)!important;font-weight:var(--dj-text-heading-weight)!important;
}

/* ==== revision30.css ==== */
/* Design-system usability pass. Loaded after the existing revisions; no theme
   geometry or application data is duplicated here. */
:root{
  --dj-fab-secondary-bg:var(--dj-action-secondary-bg);
  --dj-nav-active-indicator-height:2px;
}
/* Late install/account controls must obey their parent's disclosure state,
   even when their own responsive styles set display with !important. */
html body main.main .settings-section.v76-settings-collapsed>:not(h3),
html body main.main .v19-settings-section.v76-settings-collapsed>:not(h3){display:none!important}
@media(max-width:599px){
  html body .app-shell>.main{padding-inline:var(--dj-space-4)!important}
}
@media(min-width:600px) and (max-width:1024px){
  html body .app-shell>.main{padding-inline:var(--dj-space-6)!important}
}

/* Visual priority is separate from existing shape and icon-size tiers. */
html body :is(.topbar .actions,.v76-mobile-main-row) button[data-dj-control-level="utility"]{
  background:transparent!important;border-color:transparent!important;box-shadow:none!important;
}
html body :is(.topbar .actions,.v76-mobile-main-row) button[data-dj-control-level="utility"]:is(:hover,:focus-visible,:active){
  background:var(--dj-action-secondary-bg)!important;
}
html body button[data-dj-control-level="secondary"]{
  background:var(--dj-action-secondary-bg)!important;color:var(--accent)!important;
}
html body button[data-dj-control-level="secondary"]:active{
  background:var(--dj-action-secondary-pressed)!important;
}
html body :is(.r26-dashboard-launchers,.v18-action-dock,.notes-focus-pair) button[data-dj-control-level="secondary"]{
  background:var(--dj-action-secondary-bg)!important;border-color:transparent!important;
}
html body :is(.r26-dashboard-launchers,.v18-action-dock,.notes-focus-pair) button[data-dj-control-level="secondary"] .v22-icon{
  color:var(--accent)!important;
}
html body .rightbar.r26-dashboard [data-r26-dashboard-focus][data-dj-control-level="secondary"] :is(svg,.v22-icon){
  color:var(--accent)!important;filter:none!important;
}
html[data-interface-design="claude"] body :is(.topbar .actions,.v76-mobile-main-row) button[data-dj-control-level="utility"]{
  border-color:var(--line)!important;
}

/* The assistant remains the only filled action in the mobile FAB cluster. */
@media(max-width:599px){
  html:not(.notes-editing) body .v18-action-dock .notes-button{
    background:var(--dj-action-secondary-bg)!important;
    color:var(--accent)!important;
    border-color:transparent!important;
    box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 12%,transparent)!important;
    transition:background .16s ease,color .16s ease,transform .16s ease,opacity .16s ease!important;
  }
  html:not(.notes-editing) body .v18-action-dock .notes-button .v22-icon,
  html:not(.notes-editing) body .v18-action-dock .notes-button .v22-icon *{color:var(--accent)!important;stroke:currentColor!important}
  html:not(.notes-editing) body .v18-action-dock .notes-button:active{
    background:var(--dj-action-secondary-pressed)!important;
    transform:scale(.95);
  }
  html:not(.notes-editing) body #dv-mic{background:var(--accent)!important;color:#fff!important}
  html.v75-mobile-menu-open body :is(.v18-action-dock,#dv-mic-wrap){
    opacity:0!important;visibility:hidden!important;pointer-events:none!important;
    transform:translateY(10px);transition:opacity .16s ease,transform .16s ease,visibility .16s!important;
  }
  html:not(.v75-mobile-menu-open) body :is(.v18-action-dock,#dv-mic-wrap){transition:opacity .16s ease,transform .16s ease,visibility .16s!important}

  /* One top-line indicator, including More. Remove the old frame/fill. */
  html body .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more){
    position:relative;border:0!important;box-shadow:none!important;
  }
  html body .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more).active{
    background:transparent!important;border:0!important;box-shadow:none!important;
    color:var(--accent)!important;transform:none!important;
  }
  html body .sidebar :is(.nav-item[data-r26-phone-primary="true"],.v75-mobile-more).active::before{
    content:"";position:absolute;left:18%;right:18%;top:0;
    height:var(--dj-nav-active-indicator-height);background:var(--accent);border-radius:var(--dj-radius-pill,999px);
  }
  html.v75-mobile-menu-open body .sidebar .nav-item[data-r26-phone-primary="true"].active::before{content:none}
  html.v75-mobile-menu-open body .sidebar .v75-mobile-more,
  html.v75-mobile-menu-open body .sidebar .v75-mobile-more:focus{background:transparent!important}
  .v75-mobile-grid.r26-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v75-mobile-sheet:has(.r26-more-grid){height:auto!important;max-height:calc(100dvh - var(--r26-phone-bar-height) - 24px)!important}
  .r26-more-grid .v75-mobile-route{font-family:system-ui!important}
}

/* More is part of the tablet navigation rail, sharing its scroll owner. */
@media(min-width:600px) and (max-width:1024px){
  .sidebar .v76-wide-more-items:not([hidden]){position:static!important;width:100%!important;max-height:none!important;display:flex!important;flex-direction:column;gap:var(--dj-space-1);padding:var(--dj-space-1) 0!important;overflow:visible!important;border:0!important;box-shadow:none!important;background:transparent}
  .sidebar .v76-wide-more-items>button{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;gap:var(--dj-space-2);min-height:44px;padding:var(--dj-space-2) var(--dj-space-2)!important;border:0!important;text-align:left;font:inherit;min-width:0}
  .sidebar .v76-wide-more-items>button>span:not(.v22-icon):not(.v22-nav-icon){min-width:0;white-space:normal!important}
}
/* Existing body/secondary/reading roles. No menu structure or row size changes. */
.v19-task-menu .r27-critical{
  font-size:var(--dj-text-secondary-size)!important;
  font-weight:var(--dj-text-secondary-weight)!important;
  line-height:var(--dj-text-secondary-line-height)!important;
  color:var(--muted)!important;
}
.v19-task-menu .v19-datchik-cmp-text{
  font-size:var(--dj-text-secondary-size)!important;
  font-weight:var(--dj-text-secondary-weight)!important;
  line-height:var(--dj-text-secondary-line-height)!important;
}
.v19-task-menu .v18-comments .feed-entry :is(.feed-entry-text,.feed-text,.feed-entry-body){
  font-size:var(--dj-text-reading-size)!important;
  font-weight:var(--dj-text-reading-weight)!important;
  line-height:var(--dj-text-reading-line-height)!important;
}

/* Sensor header keeps its action and count together; condition fields use a separate row. */
.v19-task-menu .v19-datchik-header-row>.v19-datchik-toggle{width:var(--dj-touch-min,44px);height:var(--dj-touch-min,44px);min-width:var(--dj-touch-min,44px)}
.v19-task-menu .dj-sensor-condition{display:grid;grid-template-columns:auto minmax(6ch,1fr) minmax(0,2fr);align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel)}
.v19-task-menu .dj-sensor-condition :is(input,select){box-sizing:border-box;width:100%;min-width:0;min-height:var(--dj-touch-min,44px);font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-field);padding:var(--dj-space-1)}
.v19-task-menu .dj-sensor-condition .v19-measure-cmp{min-width:0}
.v19-task-menu .dj-sensor-condition .v19-cmp-select{width:auto}

/* Project statistics explain themselves on tap/long-press, while the compact
   metric row and task-card density stay unchanged. */
.r30-stat-help{position:fixed;z-index:12000;max-width:min(290px,calc(100vw - 20px));padding:var(--dj-space-2) var(--dj-space-3);
  border:1px solid var(--line);border-radius:var(--dj-radius-popup);background:var(--panel);color:var(--ink);
  box-shadow:var(--shadow);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-secondary-weight)}
.project-history [data-project-history-toggle]{display:flex;align-items:center;gap:var(--dj-space-2)}
.project-history [data-project-history-toggle]::before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .22s ease}
.project-history [data-project-history-toggle][aria-expanded="true"]::before{transform:rotate(45deg)}
@media(prefers-reduced-motion:reduce){.v56-month-grid,.project-history [data-project-history-toggle]::before{transition:none!important}}

/* Keep the three global actions reachable while creating a task/project. The
   dialog remains below the title row; its own OK/Cancel controls stay in it.
   The condition is the <html> flag data-dj-editor-backdrop kept by design/ui-semantics.js (rootFlags). It stood here as
   html:has(...): with :has() on the root every DOM change made the browser re-check the styles of the whole document. */
@media(max-width:599px){
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body .v76-mobile-main-row{
    grid-template-columns:44px minmax(0,1fr)!important;padding-right:calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-4) + var(--dj-space-1));box-sizing:border-box;
  }
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body .v76-mobile-main-row>:is(.v76-title-create,[data-v76-focus],[data-v76-system]),
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body .v76-mobile-actions{display:none!important}
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body .v18-action-dock{
    top:9px!important;bottom:auto!important;right:62px!important;left:auto!important;
    flex-direction:row!important;gap:var(--dj-space-2)!important;z-index:100102!important;
  }
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body .v18-action-dock .notes-button,
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body #dv-mic{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
  }
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body #dv-mic-wrap{
    top:9px!important;bottom:auto!important;right:9px!important;z-index:100102!important;
  }
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body #dv-mic-line:not([data-show="1"]){display:none!important}
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body #dv-mic-line[data-show="1"]{
    position:absolute;right:0;top:50px;
  }
  html[data-dj-editor-backdrop] body .r21-entity-backdrop,
  html[data-dj-editor-backdrop][data-dj-editor-backdrop] body .modal-backdrop:has([data-task-form],[data-v40-goal-form]){
    top:62px!important;padding-top:var(--dj-space-3)!important;
  }
}

/* ==== contacts.css ==== */
/* Контакты (Revision 27) */
.r27-person-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px)}
.r27-contact-search[data-search-open="false"]{display:none}
.dj-contact-search-toggle{box-sizing:border-box;inline-size:44px;block-size:44px;min-inline-size:44px;min-block-size:44px;padding:0;display:grid;place-items:center}
.dj-contact-search-toggle .dj-utility-symbol{display:block;line-height:1}
.r27-contact-search{margin:0 0 var(--dj-space-3)}
.r27-contact-search input{box-sizing:border-box;width:100%;min-height:40px;padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-field,8px);background:var(--panel,#fffdf8);color:var(--ink);font:inherit}
.r27-contact-list{padding:var(--dj-space-1)}
.r27-contact-row{display:flex!important;align-items:center;gap:var(--dj-space-3);width:100%;box-sizing:border-box;min-height:44px;padding:var(--dj-space-2) var(--dj-space-3);border:0;border-bottom:1px solid var(--line,#0001);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.r27-contact-row:last-child{border-bottom:0}
.r27-contact-row .r27-person-icon{color:var(--accent)}
.r27-contact-name{flex:0 1 auto;font-weight:var(--dj-text-body-weight,600)}
.r27-contact-sub{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:var(--dj-text-secondary-size,13px)}
.r27-contact-last{flex:0 0 auto;color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r27-contact-count{flex:0 0 auto;box-sizing:border-box;width:26px;min-width:26px;height:26px;padding:0;display:inline-grid;place-items:center}
.r27-contact-page{display:grid;gap:var(--dj-space-3)}
.r27-contact-facts{display:grid;gap:var(--dj-space-2);padding:var(--dj-space-3) var(--dj-space-4)}
.r27-contact-facts>div{display:flex;gap:var(--dj-space-3);justify-content:space-between}
.r27-contact-facts span{color:var(--muted)}
.r27-contact-fact-value{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--dj-space-2);min-width:0;text-align:right;overflow-wrap:anywhere}
.r27-contact-fact-value>b{font-weight:var(--dj-text-body-weight)}
.r27-contact-channel{min-height:36px;padding:var(--dj-space-1) var(--dj-space-2);border:1px solid var(--line-strong);border-radius:var(--dj-radius-button);background:transparent;color:var(--ink);font:inherit;cursor:pointer;overflow-wrap:anywhere}
.r27-contact-channel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.r27-contact-warn,.r27-contact-binding{padding:var(--dj-space-2) var(--dj-space-3);border-radius:var(--dj-radius-card,10px);background:color-mix(in srgb,#8a7a5f 12%,var(--panel));font-size:var(--dj-text-secondary-size,13px)}
.r27-contact-h{margin:var(--dj-space-3) 0 0;font-size:var(--dj-text-heading-size,18px)}
.r27-contact-group h3{margin:var(--dj-space-2) 0 var(--dj-space-1);font-size:var(--dj-text-body-size,15px);color:var(--muted)}
.r27-contact-ref{display:flex;align-items:center;gap:var(--dj-space-3);min-height:38px;padding:var(--dj-space-1) var(--dj-space-2);border-radius:var(--dj-radius-chip)}
.r27-contact-ref>button:first-child{flex:1 1 auto;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r27-contact-ref>span{color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r27-contact-ref>button:first-child{display:flex;align-items:center;gap:var(--dj-space-2)}
.r27-contact-ref[data-task-status="done"]>button:first-child{color:var(--green);font-weight:var(--dj-text-reading-weight,400)}
.r27-contact-ref[data-task-status="failed"]>button:first-child{color:var(--danger);font-weight:var(--dj-text-reading-weight,400)}
.r27-contact-ref[data-task-status="done"]>button:first-child .dj-utility-symbol,.r27-contact-ref[data-task-status="failed"]>button:first-child .dj-utility-symbol{flex:0 0 auto}
.r27-contact-task-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:var(--dj-space-1);white-space:normal}
.r27-contact-completed-at{font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-reading-weight,400);color:var(--muted)}
.r27-contact-note>summary{list-style:none;cursor:pointer}
.r27-contact-note>summary::-webkit-details-marker{display:none}
.r27-contact-note>summary>button{border:0;background:transparent;color:var(--muted);cursor:pointer}
.r27-contact-note>.idea-note-row-content{padding-inline:var(--dj-space-4)}
.r27-contact-archive-toggle{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;min-height:44px;margin-top:var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);border:0;border-radius:var(--dj-radius-button);background:transparent;color:var(--muted);font:inherit;text-align:left;cursor:pointer}
.r27-contact-archive-toggle .r25-count{margin-inline-start:auto}
.r27-contact-archive{padding-inline-start:var(--dj-space-2)}
@media(max-width:1024px){.r27-contact-ref[data-task-status="done"]>button:first-child,.r27-contact-ref[data-task-status="failed"]>button:first-child{font-size:var(--dj-text-secondary-size)}}
.r27-contact-token{color:var(--accent);font-weight:var(--dj-text-heading-weight)}
.r27-contact-dialog{max-width:440px}
.r27-field{display:flex;flex-direction:column;gap:var(--dj-space-1);margin:0 0 var(--dj-space-2);color:var(--muted);font-size:var(--dj-text-secondary-size,13px)}
.r27-field input{box-sizing:border-box;width:100%;min-height:38px;padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-field,8px);background:var(--panel,#fffdf8);color:var(--ink);font:inherit;font-size:var(--dj-text-body-size,15px)}
.r27-device-pick{margin:0 0 var(--dj-space-2)}
.r27-hint{margin:var(--dj-space-2) 0 var(--dj-space-3);color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r27-link-types{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:0 0 var(--dj-space-2)}
.r27-link-types [aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}
.r27-contact-dialog input[type=search]{box-sizing:border-box;width:100%;min-height:38px;margin:0 0 var(--dj-space-2);padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-field,8px);background:var(--panel,#fffdf8);color:var(--ink);font:inherit}
.r27-link-list{max-height:260px;overflow:auto;display:grid;gap:var(--dj-space-1)}
.r27-contact-dialog .r23-project-row{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-3);width:100%;min-height:36px;padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--panel,#fffdf8);border-radius:var(--dj-radius-popup-row);background:color-mix(in srgb,#8a7a5f 16%,var(--panel));color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.r27-contact-dialog .r23-project-row[aria-pressed=true]{outline:2px solid var(--accent)}
.r27-contact-chip{display:inline-flex;align-items:center;gap:var(--dj-space-2);min-height:34px;padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--line,#0003);border-radius:var(--dj-radius-pill,999px);background:transparent;color:var(--ink);font:inherit;cursor:pointer}
.r27-contact-chip.r27-has{border-color:var(--accent);color:var(--accent)}
.r27-contact-chip .r27-person-icon{width:18px;height:18px}
.r27-contact-row-field{display:flex;align-items:center;gap:var(--dj-space-3)}
.r27-pick-tools{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:var(--dj-space-2) 0}
.r27-contact-suggest{margin-top:var(--dj-space-2)}

/* ==== admin.css ==== */
/* Админ (M10.1): вкладка «Админ» — только для администратора (admin.js ставит html[data-r29-admin]) */
html:not([data-r29-admin="1"]) [data-route="admin"],html:not([data-r29-admin="1"]) [data-v76-route="admin"],html:not([data-r29-admin="1"]) [data-v75-mobile-route="admin"],html:not([data-r29-admin="1"]) [data-more-route="admin"]{display:none!important}
.r29-admin-server{margin:0 0 calc(var(--dj-space-4) + var(--dj-space-1))}
.r29-admin-section{margin-block:var(--dj-space-3);border-bottom:1px solid var(--line);padding-bottom:var(--dj-space-2);}.r29-admin-section>summary{display:flex;align-items:center;min-height:44px;cursor:pointer;gap:var(--dj-space-2);}.r29-admin-section>summary::before{content:'›';width:20px;flex:0 0 20px;}.r29-admin-section[open]>summary::before{content:'⌄';}.r29-admin-section>summary :is(h2,h3,.r29-admin-top){margin:0;}.r29-admin-section>summary :is(h2,h3){font-size:var(--dj-text-heading-size,18px);}
.r29-admin-top{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3);margin:var(--dj-space-2) 0 var(--dj-space-1)}

.r29-admin-h{margin:calc(var(--dj-space-4) + var(--dj-space-1)) 0 var(--dj-space-2);font-size:var(--dj-text-heading-size,18px)}
.r29-admin-chips{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:0 0 var(--dj-space-2)}
.r29-admin-card{padding:var(--dj-space-2) var(--dj-space-3)}
.r29-admin-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--dj-space-3);padding:var(--dj-space-2) 0;border-bottom:1px solid var(--line,#0001)}
.r29-admin-row:last-child{border-bottom:0}
.r29-admin-row label,.r29-admin-inline{display:flex;flex-direction:column;gap:var(--dj-space-1);color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r29-admin-row input,.r29-admin-inline input,.r29-admin-inline select,.r29-admin-search input{box-sizing:border-box;min-height:36px;padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-field,8px);background:var(--panel,#fffdf8);color:var(--ink);font:inherit;font-size:var(--dj-text-body-size,15px)}
.r29-admin-row input{width:130px}
.r29-admin-search{margin:0 0 var(--dj-space-2)}
.r29-admin-search input{width:100%;border-radius:var(--dj-radius-field,8px);min-height:40px}
.r29-admin-id{align-self:center;min-width:52px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent)}
.r29-admin-sub{color:var(--muted);font-size:var(--dj-text-secondary-size,12px)}
.r29-admin-user{display:grid;gap:var(--dj-space-2);padding:var(--dj-space-3) 0;border-bottom:1px solid var(--line,#0001)}
.r29-admin-user:last-child{border-bottom:0}
.r29-admin-user.is-disabled{color:var(--muted)}
.r29-admin-line{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--dj-space-3)}
.r29-admin-email{font-weight:var(--dj-text-body-weight,600);word-break:break-all}
.r29-admin-inline input{width:100px}
.r29-admin-spacer{flex:1 1 auto}
.r29-admin-bar{position:relative;flex:0 1 160px;width:160px;height:8px;align-self:center;border-radius:var(--dj-radius-pill,999px);background:color-mix(in srgb,var(--muted,#8a7a5f) 25%,transparent);overflow:hidden}
.r29-admin-bar i{position:absolute;inset:0 auto 0 0;background:var(--accent)}
.r29-admin-badge{background:var(--accent);color:#fff}
.r29-admin-badge.warn{background:#a8402e}
.r29-admin-note{margin:0 0 var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);border-radius:var(--dj-radius-card,10px);background:color-mix(in srgb,#8a7a5f 12%,var(--panel));font-size:var(--dj-text-secondary-size,13px)}
.r29-admin-note.warn{background:color-mix(in srgb,#a8402e 16%,var(--panel))}
.r29-admin-note code{user-select:all;word-break:break-all}
.r29-admin-log{display:grid;gap:var(--dj-space-1);font-size:var(--dj-text-secondary-size,13px)}
@media (max-width:640px){.r29-admin-row input{width:100%}.r29-admin-row label{flex:1 1 120px}.r29-admin-bar{flex:1 1 100%;width:auto}}

/* Admin uses the same grouped-card rhythm as Settings. */
.v43-page>.dj-admin-group{min-width:0;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-card)}
.dj-admin-group>summary{display:flex;align-items:center;min-height:56px;padding:var(--dj-space-2) var(--dj-space-4);color:var(--accent);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight);line-height:var(--dj-text-body-line-height);cursor:pointer;list-style:none}
.dj-admin-group>summary::-webkit-details-marker,.r29-admin-section>summary::-webkit-details-marker{display:none}
.dj-admin-group>summary::after{content:'›';margin-left:auto;color:var(--accent);font-size:var(--dj-text-heading-size);transition:transform .15s}
.dj-admin-group[open]>summary::after{transform:rotate(90deg)}
.dj-admin-group>summary:focus-visible,.r29-admin-section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.dj-admin-group>:not(summary){margin:0 var(--dj-space-4) var(--dj-space-4);min-width:0}
.dj-admin-group>.v43-admin-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--dj-space-4)}
.dj-admin-group .v43-admin-grid>.card{min-width:0;padding:var(--dj-space-4)}
.dj-admin-group .v43-admin-grid h3{margin:0 0 var(--dj-space-3);color:var(--ink);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight)}
.dj-admin-group .v43-admin-grid h3:not(:first-child){margin-top:calc(var(--dj-space-4) + var(--dj-space-1))}
.dj-admin-group .v43-admin-note{margin:0 0 var(--dj-space-3);line-height:var(--dj-text-reading-line-height)}
.dj-admin-group .v43-rule-row,.dj-admin-group .v43-admin-level{min-height:56px;padding:var(--dj-space-2) 0;gap:var(--dj-space-3)}
.dj-admin-group .v43-rule-row{grid-template-columns:minmax(0,1fr) minmax(72px,96px)}
.dj-admin-group .v43-admin-level{grid-template-columns:28px minmax(0,1fr) minmax(72px,96px)}
.dj-admin-group .v43-rule-row input,.dj-admin-group .v43-admin-level input{min-width:0;width:100%;min-height:44px;box-sizing:border-box;padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);font:inherit}
.dj-admin-group .v43-admin-level .v43-level-icon{width:28px;height:28px}
.dj-admin-group .r29-admin-top{margin:0 0 var(--dj-space-2)}
.dj-admin-group .r29-admin-subtitle{font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight);color:var(--ink)}
.dj-admin-group .r29-admin-sub{line-height:var(--dj-text-reading-line-height)}
.dj-admin-group .r29-admin-section{margin:var(--dj-space-3) 0 0;padding:0;border:1px solid var(--line);border-radius:var(--dj-radius-card);overflow:hidden}
.dj-admin-group .r29-admin-section>summary{min-height:52px;display:flex;align-items:center;padding:var(--dj-space-2) var(--dj-space-4);gap:var(--dj-space-2);color:var(--ink);list-style:none}
.dj-admin-group .r29-admin-section>summary::before{content:none}
.dj-admin-group .r29-admin-section>summary::after{content:'›';margin-left:auto;color:var(--accent);font-size:var(--dj-text-heading-size);transition:transform .15s}
.dj-admin-group .r29-admin-section[open]>summary::after{transform:rotate(90deg)}
.dj-admin-group .r29-admin-section>summary :is(h2,h3){font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight)}
.dj-admin-group .r29-admin-section>:not(summary){margin-left:var(--dj-space-4);margin-right:var(--dj-space-4)}
.dj-admin-group .r29-admin-section>:last-child{margin-bottom:var(--dj-space-4)}
.dj-admin-group .r29-admin-row input,.dj-admin-group .r29-admin-inline select,.dj-admin-group .r29-admin-search input{min-height:44px}
@media(max-width:800px){.dj-admin-group>.v43-admin-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:599px){.dj-admin-group>:not(summary){margin-inline:var(--dj-space-3)}.dj-admin-group .v43-admin-grid>.card{padding:var(--dj-space-3)}}
/* UI 14: Admin section headings look and behave like Settings headings — ink text in the body type,
   16px accent arrow at the right edge (→ closed, ↑ open, the shared .v76-settings-chevron), no text glyphs. */
html body .v43-page.v43-page :is(.dj-admin-group,.r29-admin-section,.dj-feedback-section)>summary{color:var(--ink);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight);line-height:var(--dj-text-body-line-height);gap:var(--dj-space-2);padding-inline:var(--dj-space-4);list-style:none}
html body .v43-page.v43-page :is(.dj-admin-group,.r29-admin-section,.dj-feedback-section)>summary :is(h2,h3){margin:0;color:inherit;font:inherit}
html body .v43-page.v43-page :is(.dj-admin-group,.r29-admin-section,.dj-feedback-section)>summary::before,html body .v43-page.v43-page :is(.dj-admin-group,.r29-admin-section,.dj-feedback-section)>summary::after{content:none}
html body .v43-page.v43-page .dj-feedback-section>summary>.v22-icon{display:none}
.v43-page :is(.dj-admin-group,.r29-admin-section,.dj-feedback-section)>summary>.v76-settings-chevron{margin-left:auto;flex:0 0 auto}

/* ==== admin-feedback.css ==== */
/* Status and importance colours of a report are fixed meanings, not the application accent (DS-COLOR-02). */
.dj-admin-feedback{--dj-feedback-ok:color-mix(in srgb,var(--green,#3d8b68) 80%,#000);--dj-feedback-bad:var(--p1,#ab392f);--dj-feedback-wait:#f2c94c;--dj-feedback-on-wait:#1f1d1a;--dj-feedback-paper:#fff;padding:var(--dj-space-4);margin-bottom:var(--dj-space-6);border:1px solid var(--line);border-radius:var(--dj-radius-card,12px);min-width:0;}
.dj-feedback-section>summary{font-size:var(--dj-text-heading-size);font-weight:var(--dj-text-heading-weight);cursor:pointer;min-height:44px;display:flex;align-items:center;gap:var(--dj-space-2);list-style:none;}.dj-feedback-history{padding-left:var(--dj-space-6);}.dj-feedback-history p{white-space:pre-wrap;overflow-wrap:anywhere;margin:var(--dj-space-1) 0 var(--dj-space-3);}
.dj-feedback-section>summary::-webkit-details-marker{display:none}.dj-feedback-section[open]>summary>.v22-icon{rotate:90deg}
/* Every toolbar and action group sits on the same column grid, so buttons share one size and line up. */
.dj-feedback-top,.dj-feedback-actions{display:flex;flex-direction:column;gap:var(--dj-space-3);margin-top:var(--dj-space-3);}
.dj-feedback-group,.dj-feedback-analytics{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:var(--dj-space-2);min-width:0;}
.dj-feedback-group::before{content:attr(aria-label);grid-column:1/-1;font-size:var(--dj-text-secondary-size);color:var(--muted);}
.dj-admin-feedback :is(.dj-feedback-group,.dj-feedback-analytics,.dj-feedback-pages)>button,.dj-feedback-details>.btn{font:var(--dj-text-body-weight) var(--dj-text-body-size,15px)/var(--dj-text-body-line-height) var(--font-ui,inherit);min-height:44px;height:auto;min-width:44px;width:auto;max-width:100%;padding:var(--dj-space-2) var(--dj-space-3);border-radius:var(--dj-radius-button,8px);box-sizing:border-box;white-space:normal;overflow-wrap:anywhere;}
.dj-feedback-analytics{margin:var(--dj-space-3) 0;}.dj-feedback-analytics>button{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);text-align:left;}.dj-feedback-analytics>button[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);}
.dj-feedback-filters,.dj-feedback-heading,.dj-feedback-pages,.dj-feedback-priority{display:flex;align-items:center;gap:var(--dj-space-3);flex-wrap:wrap;}
.dj-feedback-filters{align-items:flex-end;margin:var(--dj-space-4) 0;}.dj-feedback-filters label,.dj-feedback-comment{display:flex;flex-direction:column;gap:var(--dj-space-1);min-width:0;}.dj-feedback-filters label{flex:1 1 168px;max-width:240px;}.dj-feedback-filters select{width:100%;}
.dj-feedback-version-filter{flex:1 1 168px;max-width:240px;position:relative;min-width:0;}.dj-feedback-version-filter>summary{min-height:44px;display:flex;align-items:center;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-input,8px);cursor:pointer;box-sizing:border-box;}.dj-feedback-version-options{position:absolute;z-index:20;top:100%;left:0;right:0;max-height:260px;overflow:auto;padding:var(--dj-space-2);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-input,8px);box-shadow:var(--shadow-modal,var(--shadow));}.dj-feedback-version-options label{display:flex;align-items:center;flex-direction:row;gap:var(--dj-space-2);min-height:44px;max-width:none;cursor:pointer;}.dj-feedback-version-options input{width:20px;height:20px;flex:none;}.dj-feedback-version-options .btn{min-height:44px;width:100%;}
.dj-feedback-decision[data-feedback-status="confirmed"]{border-color:var(--dj-feedback-ok);color:var(--dj-feedback-ok);font-weight:var(--dj-text-heading-weight);}.dj-feedback-decision[data-feedback-status="rejected"]{border-color:var(--dj-feedback-bad);color:var(--dj-feedback-bad);font-weight:var(--dj-text-heading-weight);}
.dj-admin-feedback select{min-height:44px;}.dj-feedback-filters select,.dj-feedback-comment textarea{font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--dj-radius-input,8px);padding:var(--dj-space-2);max-width:100%;box-sizing:border-box;}
.dj-feedback-comment textarea[aria-invalid="true"]{border-color:var(--dj-feedback-bad);}
.dj-feedback-report[data-selected="true"]{background:var(--accent-soft);box-shadow:inset var(--dj-space-1) 0 var(--accent)}.dj-feedback-select input{accent-color:var(--accent);width:24px;height:24px;}.dj-feedback-pages[hidden]{display:none}.dj-feedback-report{border-top:1px solid var(--line);padding:var(--dj-space-4) 0;min-width:0;}
.dj-feedback-heading{gap:var(--dj-space-2);}.dj-feedback-select{display:grid;place-items:center;min-width:44px;min-height:44px;}
.dj-feedback-open{flex:1 1 180px;min-width:0;min-height:44px;text-align:left;color:var(--ink);background:none;border:0;display:flex;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2);font:inherit;cursor:pointer;}.dj-feedback-open>.v22-icon{--dj-icon-size:var(--dj-icon-compact,16px);flex:none;}
.dj-feedback-title{display:flex;flex-direction:column;min-width:0;}.dj-feedback-title span,.dj-feedback-meta{font-size:var(--dj-text-secondary-size);color:var(--muted);overflow-wrap:anywhere;}
.dj-feedback-status{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:28px;padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-chip,8px);background:var(--panel);color:var(--ink);font:var(--dj-text-heading-weight) var(--dj-text-secondary-size,12px)/var(--dj-text-body-line-height) var(--font-ui,inherit);white-space:nowrap;box-sizing:border-box;}
.dj-feedback-status[data-status="implemented"]{background:var(--dj-feedback-paper);border-color:var(--dj-feedback-ok);color:var(--dj-feedback-ok);}
.dj-feedback-status[data-status="not_implemented"]{background:var(--dj-feedback-paper);border-color:var(--dj-feedback-bad);color:var(--dj-feedback-bad);}
.dj-feedback-status[data-status="confirmed"]{background:var(--dj-feedback-ok);border-color:var(--dj-feedback-ok);color:var(--dj-feedback-paper);}
.dj-feedback-status[data-status="not_confirmed"]{background:var(--dj-feedback-bad);border-color:var(--dj-feedback-bad);color:var(--dj-feedback-paper);}
.dj-feedback-status[data-status="rework"]{background:var(--dj-feedback-wait);border-color:var(--dj-feedback-wait);color:var(--dj-feedback-on-wait);}
.dj-feedback-status[data-status="closed"]{background:var(--panel);border-color:var(--ink);color:var(--ink);}
.dj-feedback-rework{margin:var(--dj-space-3) 0 0;}.dj-feedback-rework>button{min-height:44px;cursor:pointer;}
.dj-feedback-flag{display:inline-flex;align-items:center;gap:var(--dj-space-2);flex-shrink:0;font-size:var(--dj-text-secondary-size);color:var(--muted);white-space:nowrap;}
.dj-feedback-flag::before{content:"";flex:none;width:var(--dj-space-3);height:var(--dj-space-3);border-radius:var(--dj-radius-circle,50%);background:var(--dj-feedback-ok);}.dj-feedback-flag[data-priority="normal"]::before{background:var(--dj-feedback-wait);}.dj-feedback-flag[data-priority="critical"]::before{background:var(--dj-feedback-bad);}
.dj-feedback-priority{gap:var(--dj-space-2);margin:var(--dj-space-3) 0;}.dj-feedback-priority>span{font-size:var(--dj-text-secondary-size);color:var(--muted);flex-basis:100%;}
.dj-feedback-priority>button{min-height:44px;padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);font:var(--dj-text-body-weight) var(--dj-text-body-size,15px)/var(--dj-text-body-line-height) var(--font-ui,inherit);cursor:pointer;}.dj-feedback-priority>button[aria-checked="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:var(--dj-text-heading-weight);}
.dj-feedback-message{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--dj-text-reading-size);font-weight:var(--dj-text-reading-weight);line-height:var(--dj-text-reading-line-height);}.dj-feedback-details[hidden]{display:none;}.dj-feedback-comment{margin:var(--dj-space-3) 0;}.dj-feedback-comment textarea{width:100%;resize:vertical;min-height:96px;}.dj-feedback-image{display:block;max-width:100%;max-height:60vh;object-fit:contain;margin:var(--dj-space-3) 0;}
.dj-feedback-pages{justify-content:flex-end;}.dj-feedback-error{color:var(--dj-feedback-bad);overflow-wrap:anywhere;}.dj-admin-feedback :focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
@media(max-width:599px){.dj-admin-feedback{padding:var(--dj-space-3);}.dj-feedback-group,.dj-feedback-analytics{grid-template-columns:repeat(auto-fill,minmax(136px,1fr));}.dj-feedback-filters label,.dj-feedback-version-filter{max-width:none;}.dj-admin-feedback .dj-feedback-top .dj-feedback-group>button{min-height:calc(2.6em + var(--dj-space-6));}}
.v43-page>.dj-admin-feedback{margin:0;padding:0;background:var(--panel);border-radius:var(--dj-radius-card)}
.v43-page>.dj-admin-feedback .dj-feedback-section>summary{min-height:56px;padding:var(--dj-space-2) var(--dj-space-4);color:var(--accent);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight);line-height:var(--dj-text-body-line-height)}
.v43-page>.dj-admin-feedback .dj-feedback-section>summary>.v22-icon{margin-left:auto;order:1}
.v43-page>.dj-admin-feedback .dj-feedback-section>:not(summary){margin-left:var(--dj-space-4);margin-right:var(--dj-space-4)}
.v43-page>.dj-admin-feedback .dj-feedback-section>:last-child{margin-bottom:var(--dj-space-4)}
@media(max-width:599px){.v43-page>.dj-admin-feedback .dj-feedback-section>summary{padding-inline:var(--dj-space-3)}.v43-page>.dj-admin-feedback .dj-feedback-section>:not(summary){margin-inline:var(--dj-space-3)}}

/* ==== assignee.css ==== */
/* Ответственный (M10.1) */
.r29-assignee-icon{width:18px;height:18px;flex:0 0 18px}
.r29-assignee-chip{display:inline-flex;align-items:center;gap:var(--dj-space-2);min-height:32px;padding:var(--dj-space-1) var(--dj-space-3);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-pill,999px);background:transparent;color:var(--muted);font:inherit;font-size:var(--dj-text-secondary-size,13px);cursor:pointer}
.r29-assignee-chip.r29-has{color:var(--ink);border-color:var(--accent)}
.r29-assignee-chip:disabled{opacity:.55;cursor:default}
.r29-assignee-menu{box-sizing:border-box;width:min(320px,calc(100vw - 16px));max-height:min(320px,60vh);overflow:auto;padding:var(--dj-space-2);border:1px solid var(--line,#0002);border-radius:var(--dj-radius-popup);background:var(--panel,#fffdf8);box-shadow:0 10px 30px #0003}
.r29-assignee-menu .r23-project-row{display:flex;align-items:center;gap:var(--dj-space-2);width:100%;box-sizing:border-box;min-height:38px;padding:var(--dj-space-1) var(--dj-space-3);border:0;border-radius:var(--dj-radius-popup-row);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.r29-assignee-menu .r23-project-row[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 16%,transparent);font-weight:var(--dj-text-heading-weight)}
.r29-role-note{margin:0 0 var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);border-radius:var(--dj-radius-card,10px);background:color-mix(in srgb,#8a7a5f 14%,var(--panel));font-size:var(--dj-text-secondary-size,13px)}

/* ==== darkside.css ==== */
/* Тёмная сторона (Revision 30) */
.r30-moon{width:20px;height:20px;flex:0 0 20px}
.r30-dark-open{color:var(--accent);border:0;background:transparent;box-shadow:none;width:44px;min-width:44px;height:44px}
.r30-dark-open>.v22-icon{color:var(--accent)}
html[data-r28-route="darkside"] body :is(.dj-workspace,.app-shell>.main,.dj-workspace>main.main){background:#0b0b0e!important;color:#fff;--panel:#0b0b0e;--ink:#fff;--muted:#c5c5cd;--line:#ffffff44;scrollbar-width:none;}
html[data-r28-route="darkside"] .main::-webkit-scrollbar{display:none;}
html[data-r28-route="darkside"] .rightbar{display:none}
.r30-dark{box-sizing:border-box;max-width:820px;margin:0 auto;padding:var(--dj-space-6) calc(var(--dj-space-4) + var(--dj-space-1)) calc(var(--dj-space-8) + var(--dj-space-2));color:#fff}
.r30-dark h1{display:flex;align-items:center;gap:var(--dj-space-3);margin:var(--dj-space-4) 0 var(--dj-space-1);font-size:var(--dj-text-title-size);font-weight:var(--dj-text-heading-weight);color:#fff}
.r30-dark-sub{margin:0 0 var(--dj-space-6);color:#ffffff99;font-size:var(--dj-text-secondary-size,14px)}
.r30-dark-back{display:inline-flex;align-items:center;gap:var(--dj-space-2,var(--dj-space-2));border:0;background:transparent;color:#ffffffcc;font:inherit;cursor:pointer;padding:var(--dj-space-2) 0}
.r30-dark-back:hover{color:#fff}
.r30-dark-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-4)}
.r30-dark-block{box-sizing:border-box;padding:var(--dj-space-4) calc(var(--dj-space-4) + var(--dj-space-1));border:1px solid #ffffff2b;border-radius:var(--dj-radius-card);background:#ffffff0d}
.r30-dark-num{font-size:var(--dj-text-title-size);line-height:var(--dj-text-heading-line-height);font-weight:var(--dj-text-heading-weight);color:#fff}
.r30-dark-label{margin:var(--dj-space-1) 0 0;color:#ffffffcc;font-size:var(--dj-text-body-size,15px)}
.r30-dark-block ul{margin:var(--dj-space-3) 0 0;padding:0;list-style:none;display:grid;gap:var(--dj-space-1);color:#ffffffb3;font-size:var(--dj-text-secondary-size,13px)}
.r30-dark-block li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.r30-dark-block .r30-more{color:#ffffff80}
.r30-dark-total{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dj-space-3);margin:var(--dj-space-6) 0 0;padding:var(--dj-space-4) calc(var(--dj-space-4) + var(--dj-space-1));border-top:1px solid #ffffff44;border-bottom:1px solid #ffffff44;font-size:var(--dj-text-heading-size,18px)}
.r30-dark-total b{font-size:var(--dj-text-title-size);font-weight:var(--dj-text-heading-weight);color:#fff}
.r30-dark-foot{margin:var(--dj-space-4) 0 0;color:#ffffff99;font-size:var(--dj-text-secondary-size,13px)}
@media (max-width:640px){.r30-dark-grid{grid-template-columns:1fr}}
.r30-dark-none{margin:var(--dj-space-4) 0;font-size:var(--dj-text-body-size);line-height:var(--dj-text-body-line-height)}

/* ==== android-updates.css ==== */
.v89-android-updates{margin-block:var(--dj-space-4)}.v89-android-updates p{max-width:72ch;overflow-wrap:anywhere}.v89-update-actions{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin-block:var(--dj-space-3)}.v89-update-notes{white-space:pre-wrap}
.v89-update-progress{display:block;width:min(360px,100%);height:10px;accent-color:var(--accent);margin-block:var(--dj-space-2)}

html body .v89-android-updates button{min-height:44px;min-width:44px;width:auto;height:auto;padding:var(--dj-space-3) var(--dj-space-4);box-sizing:border-box;font:var(--dj-text-body-weight) var(--dj-text-body-size,15px)/var(--dj-text-body-line-height) var(--font-ui,inherit);}
/* Section renderers may add plain text or actions. Keep their content inside the card's common 16px inset. */
html body :is(.sync-account,.v89-android-updates)>:not(h3):not(.settings-row){margin-inline:var(--dj-space-4,var(--dj-space-4));max-width:calc(100% - 2*var(--dj-space-4,16px));box-sizing:border-box;}
html body :is(.sync-account,.v89-android-updates) :is(.sync-actions,.v89-update-actions){justify-content:flex-start;align-items:center;}
html body :is(.sync-account,.v89-android-updates) .btn{min-height:44px;border-radius:var(--dj-radius-button,8px);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional,system-ui);}
html body .sync-conflict-dialog>.modal{display:flex;flex-direction:column;width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:var(--dj-space-4,var(--dj-space-4));overflow:hidden;}
html body .sync-conflict-dialog .sync-conflict-list{min-height:0;overflow:auto;}
html body .sync-conflict-dialog .sync-conflict-footer{flex:none;padding-bottom:env(safe-area-inset-bottom,0px);}
html body main :is(.v41-settings-section,.settings-section,.v19-settings-section)>p{margin-inline:var(--dj-space-4,var(--dj-space-4));overflow-wrap:anywhere;}
html body main :is(.v41-settings-section,.settings-section,.v19-settings-section)>.dj-settings-subheading{margin:var(--dj-space-4,var(--dj-space-4)) var(--dj-space-4,var(--dj-space-4)) var(--dj-space-2,var(--dj-space-2));font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional,system-ui);}

/* ==== design/de-boxify.css ==== */
/* "Де-карточность" — визуальный проход 2026-09-26 (см. владелец: "уменьшить ощущение «всё
 * находится в коробочках»"). НЕ redesign: цвета/радиусы/шрифты берутся из уже существующих
 * токенов (--dj-*, --accent, --line, .card), новых значений здесь не вводится — см. правило
 * §1 исходного ТЗ. Загружается последним, все правила целенаправленно узкие (конкретный
 * компонент/контекст), не глобальные переопределения .card/.border/.box-shadow.
 *
 * Каждое правило ниже промаркировано номером пункта из ТЗ владельца, чтобы легко сверить
 * с финальным отчётом (см. §21 ТЗ).
 */

/* §2.2 "Сегодня" → "Выбрать или отдохнуть": .card.task-list — тот же класс, что рисует
 * НАПОЛНЕННЫЙ список целей дня (там card уместна — группирует несколько строк), но когда
 * внутри только однострочный .empty (пустое состояние), card выглядит как большая коробка
 * ради одной фразы. :has() снимает фон/рамку/радиус ИМЕННО в пустом состоянии — список с
 * реальными целями (card НЕ содержит .empty) не затронут. */
.card.task-list:has(> .empty:only-child){
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}

/* §3 + §12 (аудит empty states по всему приложению): <div class="card empty"> — Входящие
 * пусты был самым явным случаем из ТЗ, но тот же ТОЧНО класс "card empty" нашёлся ещё в 7
 * файлах (v16/v17/v37/v39/v52/v53/v78.js — Идеи/подзадачи/Действия и т.д.), не только в
 * Входящих. .card.empty по построению ВСЕГДА лист-контейнер только с текстом пустого
 * состояния (.empty сам по себе никогда не оборачивает ничего кроме сообщения) — снимать
 * card-часть безопасно везде, где встретится это сочетание классов, не только в main. */
.card.empty{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:var(--dj-space-6) var(--dj-space-4);
}

/* §6 Редактор проекта/идеи: revision30 группирует существующие DOM-узлы,
 * сохраняя их обработчики: основное (описание/срок), связи
 * (родитель/камни/контакт), дополнительное (цвет/комментарии). Одна
 * существующая .card на группу; её строки плоские и разделены линией. */
/* Строки редактора идут обычным потоком: их собственные отступы схлопываются, и расстояние между любыми двумя строками
 * одно и то же (сетка с зазором складывала отступы и давала 28px после описания и перед комментариями). */
.r21-entity-editor .r23-project-fields{
  display:block;
}
.r21-entity-editor .r30-editor-group{
  min-width:0;
  overflow:visible;
}
.r21-entity-editor .r30-editor-group .r23-project-row{
  border:0;
  border-radius:0!important;
  background:transparent;
}
.r21-entity-editor .r30-editor-group .r23-project-row + .r23-project-row,
.r21-entity-editor .r30-editor-group .r23-description + .r23-project-stack,
.r21-entity-editor .r30-editor-group .r23-project-comments{
  border-top:1px solid var(--line);
}
.r21-entity-editor .r30-editor-group .r23-project-comments{
  margin-top:0;
}

/* §8 Строка статистики проекта: сам .project-meta-card уже ОДНА общая карточка (v07.css),
 * но 2 из 4 показателей (Вехи/Ресурсы) — это <button class="btn">, наследующие полную рамку+
 * фон+радиус обычной кнопки (styles.css .btn), а 2 других (Время/Задачи) — простые <span> без
 * рамки. Смешение даёт ровно "несколько самостоятельных mini-cards" из ТЗ. Снимаем рамку/фон/
 * тень у Вехи/Ресурсы, когда они НЕ выбраны как активный фильтр — активное состояние
 * (.primary, заливка акцентом) остаётся: это осмысленная индикация выбранного фильтра
 * списка задач, а не карточность, и его трогать не нужно. */
.project-meta-card[data-project-summary]>button.btn:not(.primary){
  border:0;
  background:transparent;
  padding:var(--dj-space-1) var(--dj-space-1);
}

/* §10 Закрытые задачи — раскрываемый заголовок, не самостоятельная card. */
.project-history>[data-project-history-toggle]{
  border:0;
  background:transparent;
  box-shadow:none;
}

/* §7 Список задач в проекте — исправлено ПОСЛЕ живой проверки реальной структуры (не только
 * чтения исходников: первая версия правки основывалась на v07.js renderProjectTaskRows,
 * которая оказалась перекрыта более новой v15.js — вживую задачи рендерятся как
 * <div class="card task-list v15-tree-list"><div class="v15-task-node">...<div class="...
 * v15-task-row">, без промежуточной обёртки). renderProjectTaskRows (v15.js) уже сама
 * оборачивает ЛЮБОЙ список задач (не только в проекте — тот же путь у Входящих, задач Камня,
 * идей) в этот .card.task-list.v15-tree-list — то есть общая карточка-группа уже задумывалась,
 * но v80.css гасит именно её (.v15-tree-list{border:0!important}), перекладывая "коробочность"
 * на каждую отдельную .v15-task-row. Восстанавливаем карточку на ВЕРХНЕМ уровне списка и
 * снимаем её с отдельных строк — тем же приёмом, что уже в Меню задачи (эталон §5). Вложенное
 * дерево подпроектов НЕ затронуто: там уже есть более специфичное и более раннее по каскаду
 * правило .v15-project-node>.project-tree>.v15-tree-list{border:0!important} (v80.css) —
 * оно продолжает выигрывать за счёт специфичности, сохраняя намеренную вложенную иерархию. */
.card.task-list.v15-tree-list{
  border:1px solid var(--line)!important;
  background:var(--panel)!important;
  overflow:hidden;
}
/* Пустые секции «Сегодня» тоже используют v15-tree-list; пустота важнее
 * правила общей карточки для НАПОЛНЕННОЙ группы задач. */
.card.task-list.v15-tree-list:has(>.empty:only-child){
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
/* de-boxify.css грузится последним — без этого правила приведённое выше border:1px выиграло бы
 * у более раннего .v15-project-node>.project-tree>.v15-tree-list{border:0!important} (v80.css)
 * по порядку каскада при равной специфичности (оба !important, 3 класса), задваивая рамку у
 * вложенного дерева подпроектов. Восстанавливаем нулевую рамку там явно, тем же селектором. */
.v15-project-node>.project-tree>.v15-tree-list{
  border:0!important;
  background:transparent!important;
}
.card.task-list.v15-tree-list>.v15-task-node>.v15-task-row{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.card.task-list.v15-tree-list>.v15-task-node+.v15-task-node>.v15-task-row{
  border-top:1px solid var(--line)!important;
}

/* ==== design/empty-states.css ==== */
/* Artwork is decorative; no card, fixed full-screen height, tint filter or new type scale. */
.dj-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--dj-space-3);padding:var(--dj-space-6) var(--dj-space-4);text-align:center;max-width:100%;color:var(--ink)}
.dj-empty-state>img{display:block;width:min(100%,calc(var(--dj-space-8)*6));height:calc(var(--dj-space-8)*6);object-fit:contain}
.dj-empty-state>h2{margin:0;font-size:var(--dj-text-body-size);font-weight:var(--dj-text-body-weight);line-height:var(--dj-text-body-line-height)}
.dj-empty-state>p{margin:0;max-width:40ch;color:var(--muted);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-secondary-weight);line-height:var(--dj-text-secondary-line-height)}
.dj-empty-state>.btn{white-space:normal;max-width:100%;min-height:44px}
.dj-empty-state--detail{padding:var(--dj-space-4);gap:var(--dj-space-2)}
.dj-empty-state--detail>p{max-width:52ch}
html body main.main>.dj-empty-replaced{display:none!important}
@media(max-height:600px){.dj-empty-state>img{height:calc(var(--dj-space-8)*4)}.dj-empty-state{padding-block:var(--dj-space-3)}}

/* ==== design/assistant-icons.css ==== */
/* System-colour surface remains on the button. Raster luminosity preserves
   gradients and pale petals without flattening them to a monochrome mask. */
html body #dv-mic:has(.dj-assistant-art),
html body [data-r26-dashboard-assistant]:has(.dj-assistant-art){isolation:isolate;padding:0!important;display:grid;place-items:center}
html body #dv-mic svg.dj-assistant-art,
html body [data-r26-dashboard-assistant] svg.dj-assistant-art{
  width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
  border-radius:var(--dj-radius-circle,50%);overflow:hidden;clip-path:circle(49.5%);mix-blend-mode:luminosity;
  filter:none!important;stroke:none!important;fill:none!important;pointer-events:none;
}
html body .dj-assistant-art image{filter:none!important;opacity:1}

/* ==== widget-domain.css ==== */
.widget-focus-selector{position:fixed;inset:0;z-index:120000;display:grid;place-items:center;padding:var(--dj-space-4);background:#0008}
.widget-focus-selector-card{position:relative;display:grid;gap:var(--dj-space-2);width:min(420px,100%);max-height:80dvh;overflow:auto;padding:calc(var(--dj-space-4) + var(--dj-space-1));border-radius:var(--dj-radius-popup,16px);background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}
.widget-focus-selector-card h2{margin:0 calc(var(--dj-space-8) + var(--dj-space-1)) var(--dj-space-2) 0;font:var(--dj-text-title-weight,700) var(--dj-text-title-size,20px)/var(--dj-text-body-line-height) var(--font,system-ui)}
.widget-focus-selector-card>button{padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-chip,10px);background:var(--panel);color:var(--ink);text-align:left}
.widget-focus-selector-card>button:nth-child(2){position:absolute;top:13px;right:13px;border:0;font-size:var(--dj-text-title-size);line-height:var(--dj-text-heading-line-height)}

/* ==== dashboard.css ==== */
/* Context content and common workspace geometry. Legacy floating geometry removed. */
.dj-day-summary{max-height:calc(100dvh - var(--dj-space-8));overflow:auto;}
.dj-day-summary>header{position:sticky;top:0;display:flex;align-items:center;gap:var(--dj-space-2);background:var(--panel);z-index:1;}
.dj-day-summary>header h2{flex:1;min-width:0;font-size:var(--dj-text-heading-size);overflow-wrap:anywhere;}
.dj-day-summary>header button{flex:none;min-width:44px;min-height:44px;border:0;background:transparent;color:var(--accent);}
.dj-day-summary>section{margin:var(--dj-space-4) 0;}
.dj-day-summary h3{font-size:var(--dj-text-body-size);}
.dj-day-summary li{font-size:var(--dj-text-reading-size);line-height:var(--dj-text-reading-line-height);overflow-wrap:anywhere;}
.dj-day-summary-note{font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-secondary-line-height);}
/* DS-SCR-24: owner's artwork, fixed width and viewport-height composition. */
.dj-capacity{--dj-capacity-height:clamp(210px,42dvh,300px);--dj-capacity-width:180px;--dj-capacity-neck:32px;--dj-capacity-sand-darkness:0.65;margin-bottom:var(--dj-space-4);}
.dj-capacity h3{font-size:var(--dj-text-body-size);margin:0 0 var(--dj-space-3);}
.dj-capacity-layout{display:flex;flex-wrap:wrap;gap:var(--dj-space-3);align-items:center;justify-content:center;}
.dj-capacity-jar{position:relative;width:var(--dj-capacity-width);max-width:100%;height:var(--dj-capacity-height);flex:none;overflow:hidden;isolation:isolate;}
/* Sand and stones are opaque and lie inside the glass: they are drawn over the jar's lines (the far rim of the floor is hidden behind them),
   and their clip follows the inner wall, so nothing fills the thickness of the glass. */
.dj-capacity-interior{position:absolute;inset:calc(var(--dj-capacity-neck) + 8px) 7% 5%;z-index:4;clip-path:inset(0 round 0 0 26% 26% / 0 0 15% 15%);}
.dj-capacity-outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;}
.dj-capacity-neck{position:absolute;inset:0 0 auto;width:100%;height:var(--dj-capacity-neck);}
.dj-capacity-glass{position:absolute;inset:var(--dj-capacity-neck) 0 0;width:100%;height:calc(100% - var(--dj-capacity-neck));}
.dj-capacity-front-rim{position:absolute;inset:var(--dj-capacity-neck) 0 0;width:100%;height:calc(100% - var(--dj-capacity-neck));z-index:5;clip-path:inset(92% 0 0);pointer-events:none;}
.dj-capacity-jar button{margin:0;padding:0;border:0;background:transparent;color:var(--ink);cursor:pointer;box-sizing:border-box;}
.dj-capacity-jar button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;}
.dj-capacity-sand{position:absolute;inset:auto 0 0;height:var(--dj-capacity-fill);z-index:1;}
.dj-capacity-sand-fill{position:absolute;inset:auto 0 0;height:var(--dj-capacity-fill);pointer-events:none;}
.dj-capacity-sand-surface{position:absolute;inset:0 0 auto;width:100%;height:min(16px,100%);}
.dj-capacity-sand-body{position:absolute;inset:min(16px,100%) 0 0;background-image:url('assets/daily-capacity/sand-texture.png');background-size:180px;}
.dj-capacity-sand-fill i{position:absolute;inset:0;pointer-events:none;filter:brightness(var(--dj-capacity-sand-darkness));}
.dj-capacity-sand-completed{filter:brightness(var(--dj-capacity-sand-darkness));}
.dj-capacity-rocks{position:absolute;inset:0;pointer-events:none;z-index:2;}
.dj-capacity-rock{position:absolute;pointer-events:auto;}
.dj-capacity-rock-shape{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.dj-capacity-rock-tint{fill:var(--dj-capacity-stone-base,var(--accent));opacity:0.27;}
.dj-capacity-rock-completed{filter:brightness(0.62);}
.dj-capacity-rock-number{position:absolute;bottom:var(--dj-space-1);left:50%;translate:-50% 0;display:grid;place-items:center;box-sizing:border-box;inline-size:var(--dj-icon-standard);block-size:var(--dj-icon-standard);min-inline-size:var(--dj-icon-standard);font-size:var(--dj-text-caption-size);line-height:var(--dj-icon-line-height);color:var(--ink);background:var(--panel);border:2px solid var(--dj-capacity-stone-base,var(--accent));border-radius:var(--dj-radius-circle);padding:0;pointer-events:none;}
.dj-capacity-summary{flex:1 0 120px;min-width:0;}
.dj-capacity-legend-name{display:flex;align-items:center;gap:var(--dj-space-2);}
.dj-capacity-legend-color{display:inline-block;width:var(--dj-space-2);height:var(--dj-space-2);flex:none;border-radius:var(--dj-radius-circle);background:var(--dj-capacity-stone-base,var(--accent));}
.dj-capacity-summary p{display:flex;flex-direction:column;gap:var(--dj-space-1);margin:0 0 var(--dj-space-3);font-size:var(--dj-text-secondary-size);overflow-wrap:anywhere;}
.dj-capacity-summary strong{font-weight:var(--dj-text-body-weight);}
.dj-capacity-over{color:var(--danger,var(--ink));}
.dj-capacity-legend{display:flex;flex-direction:column;margin-top:var(--dj-space-2);}
.dj-capacity-legend button,.dj-capacity-selection button{min-height:44px;background:transparent;border:0;border-radius:var(--dj-radius-button);color:var(--ink);padding:var(--dj-space-2);text-align:left;font:inherit;font-size:var(--dj-text-secondary-size);cursor:pointer;overflow-wrap:anywhere;}
.dj-capacity-legend button{display:flex;flex-wrap:wrap;gap:var(--dj-space-1) var(--dj-space-2);justify-content:space-between;}
.dj-capacity-legend button[aria-pressed="true"],.dj-capacity-selection button{background:var(--accent-soft);}
.dj-capacity-rock[aria-pressed="true"],.dj-capacity-sand[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--accent);}
.dj-capacity-selection,.dj-capacity-note{font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-secondary-line-height);margin:var(--dj-space-2) 0 0;overflow-wrap:anywhere;}
html[data-dj-workspace-controls] body{overflow:hidden;}
html[data-dj-workspace-controls] body .app-shell{height:var(--dolijane-viewport-height,100dvh)!important;min-height:0!important;display:grid!important;grid-template-columns:var(--r25-rail-width,220px) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;padding:0!important;max-width:100vw!important;overflow:hidden!important;}
.dj-workspace,.dj-editor-shell,.notes-editor-body[data-ws-owner]{--dj-inspector-track:0px;--dj-dock-height:56px;display:grid!important;grid-template-columns:minmax(0,1fr) 44px var(--dj-inspector-track);grid-template-rows:minmax(0,1fr) auto;position:relative;min-width:0;min-height:0;overflow:hidden;isolation:isolate;}
.dj-workspace{grid-column:2;grid-row:1;height:100%;}
[data-ws-owner][data-ws-boundary="false"]{grid-template-columns:minmax(0,1fr);}
[data-ws-side="true"][data-ws-overlay="false"][data-ws-overview="true"]{--dj-inspector-track:var(--dj-inspector-width,320px);}
html[data-dj-workspace-controls] body .dj-workspace>main.main{grid-column:1!important;grid-row:1!important;min-width:0!important;min-height:0!important;height:auto!important;max-height:none!important;margin:0!important;overflow:auto!important;padding:0 var(--dj-space-4) var(--dj-space-3)!important;position:relative!important;z-index:var(--dj-main-stack,1);}
.dj-workspace[data-ws-owner="section"][data-ws-shared-editor="false"][data-ws-overview="false"]{--dj-main-stack:auto;}
html[data-dj-workspace-controls] .v76-mobile-header{position:sticky!important;left:auto!important;right:auto!important;top:0!important;width:100%!important;}
.dj-editor-shell{width:min(940px,calc(100vw - 32px));height:min(85dvh,840px);max-height:calc(var(--dolijane-viewport-height,100dvh) - 16px);border:1px solid var(--line,#d6d6d6);border-radius:var(--dj-radius-popup,12px);background:var(--panel,#fff);}
/* The task column of a tablet or desktop is a panel of the full work height: no strip of the section shows under it. */
.dj-editor-shell[data-ws-column="true"]{height:calc(var(--dolijane-viewport-height,100dvh) - 16px);}
/* The expanded rail of a tablet lies over the work area: a scrim shows it is a panel above the section, not a cut-off screen. */
/* Сосед вместо :has(): с :has() на корневом контейнере браузер пересчитывал стили рабочей области при каждом изменении DOM. Панель стоит в разметке перед рабочей областью. */.app-shell>.sidebar.r25-rail-open~.dj-workspace::after{content:"";position:absolute;inset:0;z-index:20;background:color-mix(in srgb,var(--ink) 32%,transparent);pointer-events:none;}
html body .dj-editor-shell>form.modal{grid-column:1!important;grid-row:1!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:none!important;min-height:0!important;overflow:var(--dj-editor-form-overflow,auto)!important;margin:0!important;box-shadow:none!important;border:0!important;border-radius:0!important;position:relative!important;inset:auto!important;transform:none!important;translate:none!important;box-sizing:border-box;}
html[data-dj-workspace-controls] body .modal-backdrop:not([data-ws-shared-overview="true"]):has(>.dj-editor-shell){inset:0!important;width:auto!important;height:var(--dolijane-viewport-height,100dvh)!important;max-height:none!important;padding:var(--dj-space-2)!important;box-sizing:border-box;display:grid!important;grid-template-columns:minmax(0,1fr);place-items:center!important;align-content:center!important;overflow:hidden!important;}
.dj-editor-shell form :is(.task-head-v09,.v38-task-head,.v40-goal-head,.v39-goal-head,.r21-editor-head,h2:has(>.dj-editor-close)){position:sticky!important;top:0;z-index:6;background:var(--panel);}/* DS-SCR-08: над закреплённой шапкой и по её бокам лежит отступ формы; его закрывает собственная подложка шапки (тень для этого не годится: её снимает правило редактора задачи). */.dj-editor-shell form :is(.task-head-v09,.v38-task-head,.v40-goal-head,.v39-goal-head,.r21-editor-head,h2:has(>.dj-editor-close))::before{content:"";position:absolute;z-index:-1;inset:calc(-1*var(--dj-space-6,24px)) calc(-1*var(--dj-space-2,8px)) 0;background:var(--panel);pointer-events:none;}/* По бокам подложка уже отступа формы: выступ за него дал бы форме горизонтальную прокрутку. */
.dj-editor-shell form :is(.modal-actions,.r25-dialog-actions,.r21-editor-footer){position:sticky;bottom:0;background:var(--panel,#fff);z-index:2;}
.dj-editor-shell[data-ws-overview="true"] form :is(.modal-actions,.r25-dialog-actions,.r21-editor-footer){display:none!important;}
html body .dj-editor-shell[data-ws-overview="true"]{--dj-dock-height:0px;}
html body [data-ws-owner]>.dj-system-dock[hidden]{display:none!important;}
.dj-editor-close{border:0;background:transparent;color:var(--ink);min-width:44px;min-height:44px;font:var(--dj-icon-standard) system-ui;flex-shrink:0;}
.dj-editor-shell h2:has(>.dj-editor-close){display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);}
html[data-dj-workspace-controls] .notes-editor{right:0!important;width:var(--dolijane-viewport-width,100vw)!important;max-height:var(--dolijane-viewport-height,100dvh)!important;}
.notes-editor-body[data-ws-owner]{flex:1;grid-template-rows:minmax(0,1fr) auto auto;}
html body .notes-editor-body[data-ws-owner]>.notes-scroll{grid-column:1;grid-row:1;min-width:0;min-height:0;order:0!important;}
html body .notes-editor-body[data-ws-owner]>.notes-editor-tools{grid-column:1;grid-row:2;order:0!important;flex-direction:row!important;width:100%!important;min-height:48px;max-height:104px;overflow-x:auto!important;overflow-y:hidden!important;padding:var(--dj-space-2) var(--dj-space-2)!important;box-sizing:border-box;}
.notes-editor-body[data-ws-owner]>.dj-system-dock{grid-row:3;}
.dj-workspace-boundary{grid-column:2;grid-row:1 / -1;display:grid;place-items:center;min-height:0;border-left:0;box-shadow:inset 1px 0 var(--line,#ddd);box-sizing:border-box;background:var(--panel,#fff);z-index:5;}
.dj-system-dock{grid-column:1;grid-row:2;display:grid!important;grid-template-columns:48px 48px minmax(0,1fr) 48px;gap:var(--dj-space-2);align-items:center;min-height:56px;height:56px;box-sizing:border-box;padding:var(--dj-space-1) var(--dj-space-2);margin:0!important;background:var(--panel,#fff);border:0;border-top:1px solid var(--line,#ddd);position:relative;z-index:6;}
.dj-system-dock>[data-ws-slot="5"]{grid-column:4;}
html body .dj-system-dock>button:not([data-dj-chevron]){display:grid!important;place-items:center;position:relative;min-width:48px!important;width:48px!important;min-height:48px!important;height:48px!important;padding:var(--dj-space-1)!important;box-sizing:border-box;border:0!important;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent-soft,#f1eeee)!important;color:var(--ink,#222)!important;box-shadow:none!important;transform:none!important;rotate:0deg!important;font:inherit;}
.dj-system-dock>button :is(svg,.v22-icon){width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important;pointer-events:none;}
.dj-system-dock>button .dj-dock-label{display:none;}
.dj-system-dock>button[data-ws-action="assistant"]{background:var(--dj-control-accent,var(--accent))!important;color:white!important;}
.dj-tour .btn.primary,.dj-editor-shell button[type="submit"]{background:var(--dj-control-accent,var(--accent))!important;color:white!important;}
.dj-system-dock>button:focus-visible,.dj-workspace-boundary>button:focus-visible{outline:2px solid var(--ink,#222);outline-offset:-2px;}
.dj-system-dock>button:disabled{opacity:.4!important;cursor:default;}
.dj-system-dock .dj-dock-clock{font:var(--dj-text-heading-weight) var(--dj-text-secondary-size)/var(--dj-text-heading-line-height) var(--font-ui,system-ui);white-space:nowrap;}
.dj-system-dock[hidden],.dj-workspace-boundary[hidden],.dj-inspector[hidden],.dj-dashboard-chevron[hidden]{display:none!important;}
.dj-dashboard-chevron{position:relative!important;inset:auto!important;width:44px!important;height:72px!important;min-width:44px;min-height:72px;border:0!important;background:transparent!important;display:grid!important;place-items:center;padding:0!important;transform:none!important;rotate:0deg!important;touch-action:none;z-index:1;}
.dj-reveal-line{display:block;width:4px;height:48px;background:var(--ink,#222);border-radius:var(--dj-radius-pill,999px);pointer-events:none;}
html[data-dj-workspace-controls] body .rightbar.dj-inspector{display:flex!important;flex-direction:column;position:absolute!important;inset:auto 0 var(--dj-dock-height) 0!important;width:auto!important;height:calc(var(--dj-work-height,600px) * .6)!important;max-height:calc(var(--dj-work-height,600px) * .85)!important;min-height:0!important;margin:0!important;padding:0!important;box-sizing:border-box;overflow:hidden!important;background:var(--panel,#fff);color:var(--ink,#222);z-index:4;border-top:1px solid var(--line,#ddd);transform:none!important;rotate:0deg!important;}
html[data-dj-workspace-controls] body [data-ws-side="true"]>.rightbar.dj-inspector{position:relative!important;grid-column:3;grid-row:1;inset:auto!important;width:100%!important;height:100%!important;max-height:100%!important;border-top:0;border-left:1px solid var(--line,#ddd);}
html[data-dj-workspace-controls] body .rightbar.dj-inspector[hidden],html[data-dj-workspace-controls] body .dj-inspector [hidden]{display:none!important;}
html body .dj-editor-shell[data-ws-overview="true"]>.rightbar.dj-inspector{bottom:0!important;}
.dj-dashboard-backdrop{position:absolute;inset:0;z-index:3;background:#0003;}
.dj-dashboard-backdrop[hidden]{display:none!important;}
.dj-temporary-panel{position:absolute;left:0;right:0;bottom:var(--dj-dock-height);max-height:85%;height:max-content;display:flex;flex-direction:column;background:var(--panel,#fff);color:var(--ink,#222);border-top:1px solid var(--line,#ddd);z-index:7;animation:dj-panel-enter .2s ease-out;}
.dj-temporary-panel[data-ws-panel="assistant"]{height:calc(100% - var(--dj-dock-height));max-height:none;min-height:0;}
/* A compact composer opened on a phone can survive a Fold width change. Its
   hidden Dock must not leave a gap above the IME at any available width. */
html body [data-ws-owner][data-ws-composer-keyboard="true"]{--dj-dock-height:0px;}
.dj-temporary-panel>header[hidden]{display:none}.dj-temporary-panel>header{display:flex;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2) var(--dj-space-3);border-bottom:1px solid var(--line,#ddd);flex-shrink:0;}
.dj-temporary-panel h2{font:var(--dj-text-heading-weight) var(--dj-text-heading-size,18px)/var(--dj-text-body-line-height) var(--font-ui,system-ui);flex:1;min-width:0;margin:0;}
.dj-temporary-panel>header button{width:48px;height:48px;border:0;background:transparent;color:inherit;font:var(--dj-text-title-size) system-ui;}
.dj-temporary-content{overflow:auto;min-height:0;overscroll-behavior:contain;padding:var(--dj-space-2) var(--dj-space-3) var(--dj-space-2);}
.dj-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-2);}
.dj-section-grid button,.dj-focus-commands button,.dj-sections-assistant{min-height:48px;padding:var(--dj-space-2);border:1px solid var(--line,#ddd);border-radius:var(--dj-radius-button,8px);background:transparent;color:var(--ink,#222);font:var(--dj-text-reading-weight) var(--dj-text-secondary-size)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);display:flex;align-items:center;gap:var(--dj-space-2);min-width:0;}
.dj-section-grid button[aria-current="page"]{border-color:var(--accent);background:var(--accent-soft);font-weight:var(--dj-text-heading-weight);}
.dj-section-grid .v22-icon{width:var(--dj-icon-large,28px);flex:0 0 var(--dj-icon-large,28px);}
.dj-sections-assistant{width:100%;margin:0 0 var(--dj-space-3);}
.dj-sections-assistant small{display:block;font:var(--dj-text-reading-weight) var(--dj-text-secondary-size)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);}
.dj-assistant-surface{display:grid;place-items:center;width:44px;height:44px;position:relative;border-radius:var(--dj-radius-circle,50%);background:var(--accent);color:white;flex:0 0 44px;isolation:isolate;}
.dj-assistant-surface svg.dj-assistant-art,.dj-system-dock>[data-ws-action="sections"] svg.dj-assistant-art{width:44px!important;height:44px!important;clip-path:circle(49.5%);mix-blend-mode:luminosity;pointer-events:none;}
.dj-assistant-surface[data-ws-silent="true"]{background:var(--accent);color:white;}
.dj-keyboard-badge{--dj-icon-size:var(--dj-icon-compact,16px);position:absolute;right:0;bottom:0;width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);background:var(--panel,#fff);color:var(--ink,#222);border-radius:var(--dj-radius-detail,3px);display:grid;place-items:center;pointer-events:none;}
.dj-focus-commands{display:grid;gap:var(--dj-space-2);}
.dj-note-properties{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-2);}
.dj-note-properties button{display:flex;align-items:center;gap:var(--dj-space-2);min-height:48px;background:transparent;color:var(--ink);border:1px solid var(--line);padding:var(--dj-space-2);font:inherit;}
.dj-note-properties .v22-icon{width:var(--dj-icon-standard,20px);flex-shrink:0;}
.dj-resume-draft,.dj-weight-entry{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2);width:100%;padding:var(--dj-space-2);min-height:48px;border:1px solid var(--line);color:var(--ink);background:transparent;font:inherit;}
.dj-resume-draft{margin-top:var(--dj-space-2);}
.dj-weight-entry{margin:0 0 var(--dj-space-2);text-align:left;justify-content:space-between;}
html[data-dj-workspace-controls] body .v16-habits-list{display:flex;flex-direction:column;gap:var(--dj-space-2);background:transparent;padding:0;border:0;}
html[data-dj-workspace-controls] body .v16-habits-list>.habit{padding:var(--dj-space-3)!important;min-height:0!important;margin:0!important;border:1px solid var(--line);background:var(--panel);border-radius:var(--dj-radius-card,10px);}
html body [data-v16-habit-row].tp-row>.tp-view{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:var(--dj-space-1);min-height:0;}
/* The squares left the right column for the full-width slot under the title (D-5, R-4): the column holds the menu only. */
html body [data-v16-habit-row].tp-row .tp-right{max-width:none;width:auto;justify-self:end;}
html body [data-v16-habit-row].tp-row .tp-habit-slot{grid-column:1/-1;}
html body [data-v16-habit-row].tp-row .tp-line1{margin:0;min-height:28px;}
html body [data-v16-habit-row].tp-row .tp-title{-webkit-line-clamp:2;white-space:normal!important;display:-webkit-box!important;-webkit-box-orient:vertical;overflow:hidden;}
html body [data-v16-habit-row].tp-row :is(.tp-line2,.tp-line3){display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-1);margin-top:var(--dj-space-1);min-height:0;}
html body [data-v16-habit-row].tp-row .tp-line2:empty,html body [data-v16-habit-row].tp-row .tp-line3:empty{display:none;}
html body [data-v16-habit-row].tp-row :is(.habit-head,.habit-history-caption,.habit-history-row,.tp-habit-tools){display:none!important;}
html body .v18-habit-archive-button{width:auto!important;border-radius:var(--dj-radius-button,8px)!important;display:flex!important;align-items:center;gap:var(--dj-space-2);margin-top:var(--dj-space-2);}
html body .dj-weight-heading{display:flex;align-items:center;gap:var(--dj-space-2);justify-content:space-between;}
.dj-weight-heading .btn{display:flex;align-items:center;gap:var(--dj-space-1);min-height:48px;}
.dj-weight-heading .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);}
.dj-weight-value{font-weight:var(--dj-text-heading-weight);margin:var(--dj-space-1) 0;}
.dj-weight-date{font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-reading-line-height);margin:var(--dj-space-1) 0;color:var(--muted);}
.dj-focus-collapse{align-self:flex-start;width:44px;min-width:44px;height:44px;min-height:44px;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent-soft)!important;color:var(--accent)!important;border:1px solid var(--line)!important;padding:var(--dj-space-2);}
.dj-tour{position:fixed;inset:0;z-index:2000;background:var(--panel,#fff);color:var(--ink,#222);display:grid;place-items:center;padding:var(--dj-space-4);box-sizing:border-box;overflow:auto;}
.dj-tour-card{width:min(600px,100%);max-height:100%;display:flex;flex-direction:column;gap:var(--dj-space-3);overflow:auto;font:var(--dj-text-reading-weight) max(16px,var(--dj-text-body-size,16px))/var(--dj-text-reading-line-height) var(--font-ui,system-ui);}
.dj-tour-card :is(header,footer){display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-3);flex-shrink:0;}
.dj-tour-card h1{font-size:var(--dj-text-title-size);line-height:var(--dj-text-body-line-height);margin:0;}
.dj-tour-card p{margin:0;}
.dj-tour-card p:empty{display:none;}
.dj-tour-card button{min-height:48px;}
.dj-tour-card header button{border:0;background:transparent;color:inherit;font:inherit;}
.dj-tour-illustration{position:relative;display:flex;gap:var(--dj-space-6);justify-content:center;align-items:center;min-height:104px;flex-shrink:0;}
.dj-tour-illustration>.dj-system-dock{width:100%;flex:1;grid-column:auto;grid-row:auto;}
.dj-tour-illustration>div{display:flex;flex-direction:column;align-items:center;gap:var(--dj-space-2);}
.dj-tour .dj-tour-reveal{position:absolute!important;left:auto!important;right:0!important;top:calc(50% - 36px)!important;width:44px!important;height:72px!important;display:grid;place-items:center;background:transparent;}
.dj-tour-illustration>.dj-system-dock:has(.dj-tour-reveal){padding-right:calc(var(--dj-space-8) + var(--dj-space-6) + var(--dj-space-1));}
@media(max-width:599px){
 .dj-section-grid,.dj-section-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dj-space-2);}
 .dj-section-list button{min-width:0;min-height:64px;flex-direction:column;justify-content:center;gap:var(--dj-space-1);padding:var(--dj-space-2);text-align:center;font-size:var(--dj-text-secondary-size);}
 .dj-section-list button .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px);}
 .dj-tour .dj-tour-illustration>.dj-system-dock[data-ws-mobile="true"]:has(.dj-tour-reveal){--dj-dock-height:104px;height:104px;min-height:104px;padding:0;grid-template-rows:48px 56px;}
 .dj-tour .dj-tour-reveal{left:calc(50% - 36px)!important;right:auto!important;top:0!important;width:72px!important;height:48px!important;}
}
.dj-tour-offer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2);border:1px solid var(--line);margin-top:var(--dj-space-2);}
.dj-tour-offer>span{flex:1;}
.dj-temporary-panel .dv-text-dialog{position:relative!important;inset:auto!important;margin:0;width:100%;max-width:none;max-height:none;box-sizing:border-box;background:transparent;color:inherit;border:0;padding:0;}
.dj-temporary-panel .dv-text-dialog h3{display:none;}
.dj-inspector[data-dj-assistant="true"]>.dj-inspector-head{display:none;}
.dj-inspector[data-dj-assistant="true"]>.dj-inspector-content{display:flex;flex-direction:column;padding:0;overflow:hidden;}
/* Inside the Overview the Assistant is the panel itself: full width, no frame of a floating panel (its dialogue has its own). */
.dj-inspector .dj-temporary-panel[data-ws-panel="assistant"]{position:static;inset:auto;width:100%;height:100%;max-height:none;min-height:0;border:0;flex:1;animation:none;}
.dj-inspector .dj-temporary-panel[data-ws-panel="assistant"] .dj-temporary-content{flex:1;}
.dj-temporary-panel .dv-text-dialog input{min-height:48px;box-sizing:border-box;width:100%;font:var(--dj-text-body-size)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);}
.dv-text-dialog .dv-command-row{display:flex;align-items:center;gap:var(--dj-space-2);}
.dv-text-dialog .dv-command-row input{flex:1;min-width:0;}
.dv-text-dialog .dv-command-row button{flex:0 0 44px;min-width:44px;width:44px;min-height:44px;height:44px;padding:var(--dj-space-2);display:grid;place-items:center;}
.dv-text-dialog [data-cancel][hidden]{display:none;}
.dj-assistant-note-tools{display:flex;justify-content:flex-end;flex:none;}
.dj-temporary-panel[data-ws-panel="assistant"]>header{border-bottom:0;}
.dj-temporary-panel[data-ws-panel="assistant"] .dj-temporary-content{display:flex;flex-direction:column;gap:var(--dj-space-2,var(--dj-space-2));flex:1 1 auto;overflow:hidden;}
.dj-temporary-panel[data-ws-panel="assistant"] .dj-temporary-content>p{margin:0;}
.dj-assistant-conversation{display:flex;flex-direction:column;gap:var(--dj-space-2,var(--dj-space-2));flex:1 1 auto;min-height:var(--dj-space-8,32px);overflow:auto;overscroll-behavior:contain;scrollbar-width:none;padding:var(--dj-space-2,var(--dj-space-2));border:1px solid var(--line);border-radius:var(--dj-radius-card,10px);box-sizing:border-box;}
.dj-assistant-composer{display:flex;flex-direction:column;gap:var(--dj-space-2,var(--dj-space-2));flex:none;margin-top:auto;}
.dj-assistant-composer>p{margin:0;}.dj-assistant-composer>p:empty,.dj-assistant-composer .dv-text-question:empty{display:none;}.dj-assistant-composer .dv-text-question{margin:0 0 var(--dj-space-1,var(--dj-space-1));}
.dj-assistant-toolbar{display:flex;align-items:center;gap:var(--dj-space-2,var(--dj-space-2));min-width:0;}
.dj-assistant-modes{display:flex;flex:1 1 auto;min-width:0;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);overflow:hidden;background:var(--panel);}
.dj-assistant-modes button{flex:1 1 0;min-width:0;min-height:44px;padding:var(--dj-space-1,var(--dj-space-1));display:inline-flex;align-items:center;justify-content:center;gap:var(--dj-space-1,var(--dj-space-1));background:transparent;color:var(--ink);border:0;border-radius:0;font:var(--dj-text-body-weight) var(--dj-text-caption-size,12px)/var(--dj-text-title-line-height) var(--font-ui,inherit);white-space:nowrap;}
.dj-assistant-modes button+button{border-left:1px solid var(--line);}
.dj-assistant-modes button .v22-icon{flex:none;width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);--dj-icon-size:var(--dj-icon-compact,16px);}
.dj-assistant-modes button[aria-pressed="true"]{background:var(--accent-soft);font-weight:var(--dj-text-heading-weight);}
[data-ws-assistant-draft-status]{font:var(--dj-text-reading-weight) var(--dj-text-caption-size,12px)/var(--dj-text-reading-line-height) var(--dj-font-functional);}
[data-ws-assistant-draft-status][data-state="recognizing"]{color:var(--muted);}
[data-ws-panel="assistant"][data-assistant-mic="true"] [data-ws-voice-status]::before{content:'';display:inline-block;width:10px;height:10px;background:var(--accent);border-radius:var(--dj-radius-circle,50%);margin-right:var(--dj-space-2);animation:dv-pulse 1.2s ease-out infinite;}
@media(prefers-reduced-motion:reduce){[data-ws-panel="assistant"][data-assistant-mic="true"] [data-ws-voice-status]::before{animation:none;}}
.dj-assistant-conversation :is(p,button){flex:0 0 auto;min-width:0;margin:0;padding:var(--dj-space-2) var(--dj-space-3);max-width:85%;box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);font:var(--dj-text-reading-weight) var(--dj-text-body-size,16px)/var(--dj-text-reading-line-height) var(--dj-font-functional);text-align:left;}
[data-ws-assistant-message="command"]{align-self:flex-end;background:var(--accent-soft);border-color:var(--accent-soft);color:var(--ink);}
[data-ws-assistant-message="reply"]{align-self:flex-start;background:var(--bg);color:var(--ink);}
.dj-assistant-conversation [data-ws-assistant-result]{background:color-mix(in srgb,var(--accent) 12%,var(--panel));border-color:var(--accent);cursor:pointer;min-height:44px;}
.dj-assistant-conversation [data-ws-assistant-result]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
[data-note-dictation-status]{margin:0;color:var(--accent);font:var(--dj-text-body-weight) var(--dj-text-secondary-size)/var(--dj-text-secondary-line-height) var(--dj-font-functional)}
html[data-dj-note-dictation="true"] [data-ws-panel="assistant"] :is([data-ws-assistant-doing],[data-ws-assistant-draft-status]){display:none}
.dj-assistant-conversation [data-note-dictation-bubble]{border-color:var(--accent);background:var(--accent-soft)}
.dj-assistant-conversation [data-note-dictation-interim]{color:var(--muted);border:0;background:transparent;font-style:italic}
.dj-assistant-conversation [data-note-dictation-interim]:empty{display:none}
.dj-assistant-conversation .dj-note-dictation-continue{display:flex;gap:var(--dj-space-2);flex-wrap:wrap}
.dj-assistant-conversation .dj-note-dictation-continue button{min-height:44px;border-color:var(--accent);color:var(--accent);background:var(--panel)}
.dj-note-dictation-resume{min-height:44px;border:1px solid var(--accent);border-radius:var(--dj-radius-control);background:var(--panel);color:var(--accent);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)}
[data-ws-panel="assistant"][data-note-dictating="true"] [data-ws-assistant-microphone]{position:relative;overflow:hidden}
[data-ws-panel="assistant"][data-note-dictating="true"] [data-ws-assistant-microphone]::after{content:'';position:absolute;inset:3px;border:2px solid var(--panel);border-radius:var(--dj-radius-circle);animation:dv-pulse 1.2s ease-out infinite;pointer-events:none}
@media(prefers-reduced-motion:reduce){[data-ws-panel="assistant"][data-note-dictating="true"] [data-ws-assistant-microphone]::after{animation:none}}
.dj-assistant-search-tools{align-self:flex-start;display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2);max-width:85%;color:var(--muted);font:var(--dj-text-reading-weight) var(--dj-text-caption-size,12px)/var(--dj-text-reading-line-height) var(--dj-font-functional)}
.dj-assistant-conversation .dj-assistant-search-tools button{min-height:44px;max-width:100%;border-color:var(--accent);background:var(--panel);color:var(--accent);cursor:pointer}
.dj-temporary-panel .dv-text-dialog input[data-ws-assistant-transcript]{min-height:48px;}
.dj-assistant-note-tools button{width:44px;height:44px;min-width:44px;min-height:44px;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--accent);display:grid;place-items:center;}
.dj-assistant-note-tools button .v22-icon,.dv-command-row button .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);}
[data-ws-panel="assistant"] [data-ws-assistant-silent]{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border-radius:var(--dj-radius-circle,50%);color:var(--ink)}
[data-ws-panel="assistant"] [data-ws-assistant-silent][aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.dj-assistant-silent-icon{position:relative;display:grid;place-items:center;width:22px;height:22px}
.dj-assistant-silent-icon svg{display:block;width:22px;height:22px}
[data-ws-panel="assistant"] [data-ws-assistant-microphone]{border:0;background:transparent;color:var(--ink)}
[data-ws-panel="assistant"] [data-ws-assistant-microphone] .dj-utility-symbol{display:grid;place-items:center;width:var(--dj-icon-standard);height:var(--dj-icon-standard);line-height:1;text-align:center;transform:none}
[data-ws-panel="assistant"][data-assistant-mic="true"] [data-ws-assistant-microphone]{color:var(--accent);background:var(--accent-soft)}
[data-ws-assistant-note-action]{position:fixed;z-index:9999;min-height:44px;padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);box-shadow:var(--shadow);font:inherit}
[data-ws-assistant-transcript]{width:100%;min-height:80px;box-sizing:border-box;font:var(--dj-text-reading-weight) var(--dj-text-body-size,16px)/var(--dj-text-reading-line-height) var(--dj-font-functional);background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);padding:var(--dj-space-2);}
[data-ws-assistant-transcript][hidden]{display:none;}
/* The legacy Note/Focus pair is body-level and sits above the startup picture.
   Hide it from its first insertion; the workspace dock replaces it on first render. */
html:not([data-dolijane-ready]) body>.v18-action-dock,html[data-dj-workspace-controls] body>.v18-action-dock,html[data-dj-workspace-controls] .notes-focus-pair,html[data-dj-workspace-controls] .v18-note-focus,html[data-dj-workspace-controls] .v76-mobile-header :is([data-v76-focus],.notes-global-new,[data-v76-rose]),html[data-dj-workspace-controls] .v78-mobile-today-capacity{display:none!important;}
html[data-dj-workspace-controls] .notes-editor :is(.notes-focus-launch,.notes-editor-rose){display:none!important;}
html[data-dj-workspace-controls] body>#dv-mic-wrap{display:none!important;visibility:hidden!important;pointer-events:none!important;}
html[data-dj-focus-background="true"] .focus-overlay{display:none!important;}
html[data-dj-focus-fullscreen="true"] body>.focus-overlay{display:flex!important;z-index:2147483100!important;}
html[data-dj-full-focus="true"] .dj-system-dock,html[data-dj-full-focus="true"] .dj-workspace-boundary,html[data-dj-full-focus="true"] .dj-inspector{display:none!important;}
html[data-dj-keyboard="true"][data-ws-mobile="true"] .dj-dashboard-chevron{display:none!important;}
@keyframes dj-panel-enter{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(min-width:600px) and (max-width:1024px){html[data-dj-workspace-controls] body .app-shell{grid-template-columns:64px minmax(0,1fr)!important;}}
@media(max-width:599px){
 html[data-dj-workspace-controls] body .app-shell{grid-template-columns:minmax(0,1fr)!important;}
 html[data-dj-workspace-controls] body .app-shell>.sidebar{display:none!important;}
 .dj-workspace{grid-column:1;}
 .dj-workspace,.dj-editor-shell,.notes-editor-body[data-ws-owner]{grid-template-columns:minmax(0,1fr);--dj-dock-height:calc(56px + env(safe-area-inset-bottom,0px));}
 html[data-dj-workspace-controls] body .dj-workspace>main.main{padding:0 var(--dj-space-2) calc(var(--dj-space-8) + var(--dj-space-4))!important;}
 .dj-editor-shell{width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:calc(var(--dolijane-viewport-height,100dvh) - 16px);max-height:none;}
 html body .dj-system-dock[data-ws-mobile="true"]{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:56px;gap:0;height:var(--dj-dock-height);min-height:var(--dj-dock-height);padding:0 0 env(safe-area-inset-bottom,0px);}
 html body .dj-system-dock[data-ws-mobile="true"]>button{grid-row:1;width:100%!important;height:56px!important;min-width:48px!important;max-width:100%!important;border-radius:0!important;background:transparent!important;gap:0;padding:0 var(--dj-space-1)!important;}
 .dj-system-dock[data-ws-mobile="true"]>[data-ws-slot="1"]{grid-column:1;}.dj-system-dock[data-ws-mobile="true"]>[data-ws-slot="2"]{grid-column:2;}.dj-system-dock[data-ws-mobile="true"]>[data-ws-slot="3"]{grid-column:3;}.dj-system-dock[data-ws-mobile="true"]>[data-ws-slot="4"]{grid-column:4;}.dj-system-dock[data-ws-mobile="true"]>[data-ws-slot="5"]{grid-column:5;}
 .dj-system-dock[data-ws-mobile="true"]>button .dj-dock-label{display:block;font:var(--dj-text-reading-weight) var(--dj-text-secondary-size)/var(--dj-text-heading-line-height) var(--font-ui,system-ui);text-align:center;overflow-wrap:normal;}
 .dj-system-dock[data-ws-mobile="true"]>button[aria-current="page"]{color:var(--ink)!important;background:var(--accent-soft)!important;}
 .dj-system-dock[data-ws-mobile="true"]>button[data-ws-action="sections"] .dj-dock-label{display:none;}
 .dj-system-dock[data-ws-mobile="true"]>.dj-dashboard-chevron{position:absolute!important;top:-44px!important;left:calc(50% - 36px)!important;width:72px!important;height:44px!important;min-height:44px!important;grid-column:1 / -1!important;grid-row:1;background:transparent!important;}
 .dj-system-dock .dj-reveal-line{width:48px;height:4px;}
 .dj-system-dock[data-ws-mobile="true"]:not(:has(.dj-dashboard-chevron:not([hidden]))){--dj-dock-height:calc(56px + env(safe-area-inset-bottom,0px));}
 [data-ws-owner][data-ws-reveal="false"]{--dj-dock-height:calc(56px + env(safe-area-inset-bottom,0px));}
 html[data-dj-keyboard="true"] .dj-workspace,html[data-dj-keyboard="true"] .dj-editor-shell,html[data-dj-keyboard="true"] .notes-editor-body[data-ws-owner]{--dj-dock-height:56px;}
 /* The task composer meets the keyboard directly. Its hidden dock reserves
    neither a grid row nor an input target; note-editor controls keep their row. */
 html body .dj-system-dock>.dj-dock-center{font:inherit!important;justify-self:center;}
 .dj-system-dock>.dj-dock-center[aria-pressed="true"]{background:var(--dj-control-accent,var(--accent))!important;color:white!important;}
 .notes-editor-body[data-ws-owner]>.notes-editor-tools{min-height:48px;max-height:64px;}
 .dj-editor-shell>form.modal{padding-bottom:calc(var(--dj-space-8) + var(--dj-space-4))!important;}
}
@media(prefers-reduced-motion:reduce){.dj-inspector,.dj-temporary-panel{animation:none!important;transition:none!important;}}
/* Tablet rail: complete semantic navigation remains visible in the rail. */
@media(min-width:600px) and (max-width:1024px){
 html[data-dj-workspace-controls] body .app-shell{grid-template-columns:var(--v78-sidebar-width,64px) minmax(0,1fr)!important;}
 html[data-dj-workspace-controls] body .app-shell>.sidebar{display:block!important;overflow:auto!important;}
 .sidebar .nav-group:not([data-v76-tablet-group]){display:none!important;}
 .sidebar .v76-tablet-navigation{display:block!important;padding-bottom:var(--dj-space-3);}
 .sidebar .v76-tablet-nav-group{display:block!important;margin:var(--dj-space-2) 0 0!important;}
 .sidebar .v76-tablet-nav-group .nav-title{display:block!important;}
 /* Collapsed rail: a group title is a short horizontal tick under the icons; its text returns when the menu is open. */
 .sidebar:not(.r25-rail-open) .v76-tablet-nav-group .nav-title{width:22px;height:0;margin:var(--dj-space-3) 0 var(--dj-space-3) var(--dj-space-4);padding:0;border-top:1px solid var(--line);font-size:0;line-height:0;letter-spacing:0;overflow:hidden;}
 .sidebar .v76-tablet-nav-group .nav-item[data-route]{display:flex!important;}
}
@media(max-width:599px){
 html body .rightbar.dj-inspector>.dj-dashboard-chevron{position:absolute!important;top:0!important;left:calc(50% - 36px)!important;width:72px!important;height:44px!important;min-height:44px!important;z-index:5;}
 html body .rightbar.dj-inspector:has(>.dj-dashboard-chevron:not([hidden]))>.dj-inspector-head{padding-top:calc(var(--dj-space-8) + var(--dj-space-3));}
}
/* Tablet Inspector keeps its right edge when the workspace is too narrow to split. */
html[data-dj-workspace-controls] body [data-ws-side="true"][data-ws-overlay="true"]>.rightbar.dj-inspector{position:absolute!important;inset:0 0 var(--dj-dock-height) auto!important;width:min(var(--dj-inspector-width),calc(100% - 44px))!important;height:auto!important;max-height:none!important;grid-column:auto;grid-row:auto;box-shadow:-8px 0 24px #0002;}
html body [data-ws-side="true"][data-ws-overlay="true"][data-ws-overview="true"]>.dj-workspace-boundary{position:absolute;grid-column:1 / -1;grid-row:1;left:auto;top:0;bottom:var(--dj-dock-height);right:min(var(--dj-inspector-width),calc(100% - 44px));width:44px;}
html body .dj-editor-shell[data-ws-overlay="true"][data-ws-overview="true"]>.rightbar.dj-inspector{bottom:0!important;}
@media(min-width:600px){
 html body [data-ws-owner]>.dj-system-dock{grid-column:1 / -1;display:flex!important;justify-content:flex-end;gap:var(--dj-space-2);width:100%;height:56px;min-height:56px;}
 html body [data-ws-owner]>.dj-system-dock>button{flex:0 0 48px;margin:0!important;}
 html body [data-ws-owner]>.dj-workspace-boundary{grid-row:1;}
 .dj-editor-shell{max-width:100%;}
}
.dj-full-focus-assistant{position:absolute!important;bottom:max(12px,env(safe-area-inset-bottom,0px));left:50%;translate:-50% 0;border:0;border-radius:var(--dj-radius-circle,50%);padding:0;width:52px;min-width:52px;height:52px;min-height:52px;background:var(--accent);color:#fff;z-index:10;display:grid;place-items:center;animation:none!important;transform:none!important;}
html[data-dj-focus-fullscreen="true"] .focus-overlay{height:var(--dolijane-viewport-height,100dvh)!important;max-height:var(--dolijane-viewport-height,100dvh)!important;padding-bottom:calc(var(--dj-space-8) + var(--dj-space-8) + var(--dj-space-3));box-sizing:border-box;}
.dj-full-focus-assistant .dj-assistant-surface{width:48px;height:48px;}
html body .dj-system-dock [data-ws-action="sections"]{isolation:isolate;}
html body .dj-system-dock [data-ws-action="sections"] .dj-assistant-surface{width:44px;height:44px;}
/* The Notes desktop header keeps the local-only status on its own line.
   The later Notes rule normally prevents wrapping and otherwise sends that
   status beyond the right edge at the 1025px desktop boundary. */
@media(min-width:1025px){html[data-dj-workspace-controls][data-v74-route="notes"] body main.main>.topbar.dj-local-header{flex-wrap:wrap!important;}}
.dj-entity-create-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2);margin:var(--dj-space-2) 0 var(--dj-space-4);}
html body .dj-entity-create-row>.dj-entity-create{display:inline-flex!important;align-items:center;gap:var(--dj-space-2);flex:0 1 auto!important;width:auto!important;height:auto!important;min-width:44px!important;min-height:44px!important;max-width:100%;aspect-ratio:auto!important;border-radius:var(--dj-radius-button,8px)!important;padding:var(--dj-space-2) var(--dj-space-3)!important;font:var(--dj-text-reading-weight) var(--dj-text-body-size,14px)/var(--dj-text-reading-line-height) var(--font-ui,system-ui)!important;white-space:normal;}
html body .dj-entity-create-row>.dj-entity-create>span{display:inline!important;}
.dj-project-note{display:block;min-height:44px;width:100%;padding:var(--dj-space-3);text-align:left;background:var(--panel);color:var(--ink);border:1px solid var(--line);font:inherit;overflow-wrap:anywhere;}
.dj-inspector [data-r23-stones]{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);min-width:0;}
.dj-inspector [data-r23-stones] button{min-width:44px;min-height:44px;}
html body .tp-tag>.v22-icon{width:var(--dj-icon-standard,20px)!important;height:var(--dj-icon-standard,20px)!important;color:var(--tp-on)!important;flex-shrink:0;}
html body .tp-row:has(.tp-amount)>.r25-goal-progress>span,html body .tp-row:has(.tp-amount)>.r25-goal-progress>strong{display:none!important;}
html body .dj-editor-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:var(--dj-space-2);flex-shrink:0;background:var(--panel);z-index:3;margin-top:var(--dj-space-3);padding:var(--dj-space-2) 0;}
html body .dj-editor-footer [data-dj-control-level="secondary"]{background:var(--panel)!important;color:var(--ink)!important;border:1px solid var(--line)!important;}
html body .dj-editor-footer [data-dj-control-level="secondary"] svg{color:inherit!important;}
html body .dj-editor-shell[data-ws-overview="true"] .dj-editor-footer{display:none!important;}
html body [data-r27-entity] .r21-editor-footer [data-r21-cancel]{background:var(--panel)!important;border-color:var(--line)!important;color:var(--ink)!important;}
html body [data-r27-entity] .r21-editor-footer [data-r21-cancel] svg{color:inherit!important;}
/* Mobile Overview boundary: a 28×8 visible handle inside a 44×44 target.
   It belongs to the hairline above navigation, never to a separate pill. */
@media(max-width:599px){
 html body .dj-system-dock[data-ws-mobile="true"]{border-top:1px solid var(--line,#ddd);}
 html body .dj-system-dock[data-ws-mobile="true"]>.dj-dashboard-chevron{border-radius:0!important;background:transparent!important;top:-44px!important;}
 html body .dj-system-dock[data-ws-mobile="true"]>.dj-dashboard-chevron .dj-reveal-line{display:block;width:28px!important;height:8px!important;border-radius:var(--dj-radius-chip) var(--dj-radius-chip) 0 0;background:var(--line,#ddd);}
 html body .rightbar.dj-inspector>.dj-dashboard-chevron[hidden]+.dj-inspector-head,html body .rightbar.dj-inspector>.dj-inspector-head{padding-top:var(--dj-space-2)!important;}
}
html body .dj-system-dock[data-ws-mobile="true"]>button .dj-dock-label{white-space:nowrap;font-size:min(var(--dj-text-secondary-size),calc(var(--dj-text-dock-max-size) / var(--dj-text-zoom,1)));line-height:var(--dj-text-caption-line-height);}
html body .dj-system-dock .dj-dock-label,html body .dj-system-dock .dj-dock-label .dj-drunk-text{animation:none!important;transform:none!important;rotate:0deg!important;}
/* The Drunk visual wrapper must keep navigation captions on their fixed baseline. */
html body .dj-system-dock .dj-drunk-visual{transform:none!important;}
html body .dj-system-dock[data-ws-mobile="true"]>button:not([data-ws-action="sections"]),html body .dj-system-dock[data-ws-mobile="true"]>button:not([data-ws-action="sections"])>.dj-drunk-visual{display:grid!important;grid-template-rows:32px 16px;align-content:center;justify-items:center;align-items:center;gap:0;}
html body .dj-system-dock[data-ws-mobile="true"]>button:not([data-ws-action="sections"])>.dj-drunk-visual{height:48px;}
/* The note Center button is 44px tall; its icon and caption must fit inside that hit area. */
html body .notes-editor-body>.dj-system-dock[data-ws-mobile="true"]>.dj-dock-center{grid-template-rows:28px 16px!important;}
html body .dj-system-dock[data-ws-mobile="true"] .dj-dock-label{grid-row:2;height:16px;}
.dj-dock-clock{font:var(--dj-text-heading-weight) var(--dj-text-body-size)/var(--dj-text-secondary-line-height)px var(--font-ui,system-ui);font-variant-numeric:tabular-nums;white-space:nowrap;}
/* Shared Overview Header geometry, identical in every Overview surface. */
.rightbar.dj-inspector{background:var(--panel);}
.dj-inspector-head{display:flex;align-items:center;gap:var(--dj-space-1);flex-shrink:0;padding:var(--dj-space-2) var(--dj-space-3);border-bottom:1px solid var(--line,#ddd);background:var(--panel);}
.dj-inspector-head h2{flex:1;min-width:0;font:var(--dj-text-heading-weight) var(--dj-text-heading-size)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);margin:0;overflow-wrap:anywhere;}
.dj-inspector-head button{border-radius:var(--dj-radius-circle,50%);width:44px;min-width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:inherit;font:inherit;}
.dj-inspector-head [data-dj-pin],.dj-inspector-head [data-dj-pin]>.v22-icon{color:var(--accent);}
/* DS-NAV-10/12: on Fold the system menu belongs to the right column. */
@media(min-width:600px) and (max-width:1024px){
 html[data-dj-workspace-controls] body .v76-mobile-header [data-v76-system]{display:none}
 .dj-workspace-system{box-sizing:border-box;width:44px;height:44px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:var(--dj-space-2);border:0;border-radius:var(--dj-radius-circle);background:transparent;color:var(--accent);cursor:pointer}
 .dj-workspace-system[hidden]{display:none}
 .dj-workspace>.dj-workspace-system{position:absolute;top:var(--dj-space-2);right:var(--dj-space-2);z-index:5}
 .dj-inspector-head>.dj-workspace-system{flex:none;color:var(--accent)}
}
.dj-inspector-head [data-dj-close]>.v22-icon,.dj-inspector-head [data-dj-close]>svg{width:28px;height:28px;}
.dj-inspector-content{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--dj-space-4);overflow:auto;overscroll-behavior:contain;padding:var(--dj-space-3) var(--dj-space-4) var(--dj-space-4)!important;scrollbar-gutter:stable;background:var(--panel);}
.dj-inspector-block{margin:0;padding:0;border:0;}

.dj-inspector .compact-feed-all{display:block;padding:0;}
.dj-inspector .compact-feed{border:0;box-shadow:none;background:transparent;}
.dj-inspector .feed-entry-time{color:var(--muted);display:flex;justify-content:space-between;gap:var(--dj-space-2);}
.dj-inspector .v17-feed-delete{min-width:44px;min-height:44px;}
.dj-inspector-block h3{font:var(--dj-text-heading-weight) var(--dj-text-secondary-size)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#777);margin:0 0 var(--dj-space-2);}
/* A folding block of the task Overview (History, Comments): the whole heading is the switch, the caret shows its state. */
.dj-inspector-fold>h3{margin:0;}
.dj-inspector-fold-head{display:flex;align-items:center;justify-content:space-between;inline-size:100%;min-block-size:44px;padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:start;cursor:pointer;}
.dj-inspector-fold-head::after{content:"";inline-size:8px;block-size:8px;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;rotate:-45deg;transition:rotate .22s ease;}
.dj-inspector-fold-head[aria-expanded="true"]::after{rotate:45deg;}
@media (prefers-reduced-motion:reduce){.dj-inspector-fold-head::after{transition:none;}}
.dj-inspector-block p,.dj-inspector-content>p{margin:var(--dj-space-2) 0;font:var(--dj-text-secondary-size)/var(--dj-text-caption-line-height) var(--font-ui,system-ui);overflow-wrap:anywhere;}
.dj-inspector-metric{display:flex;gap:var(--dj-space-3);justify-content:space-between;}.dj-inspector-metric span{flex:1;min-width:0;overflow-wrap:anywhere}.dj-inspector-metric strong{flex:0 1 auto;min-width:0;max-width:55%;text-align:right;overflow-wrap:anywhere;}
.dj-habit-outcomes{display:flex;flex-direction:column;gap:var(--dj-space-1);min-width:0;}
.dj-habit-outcome{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--dj-space-1) var(--dj-space-2);width:100%;min-height:44px;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);text-align:left;font:var(--dj-text-secondary-size)/var(--dj-text-body-line-height) var(--font-ui,system-ui);cursor:pointer;}
.dj-habit-outcome strong{font-weight:var(--dj-text-heading-weight);}.dj-habit-outcome small{grid-column:1;font:var(--dj-text-caption-size)/var(--dj-text-caption-line-height) var(--font-ui,system-ui);color:var(--muted);}.dj-habit-edit{grid-column:2;grid-row:1 / span 2;color:var(--accent);}.dj-habit-outcome:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.dj-inspector-link{display:block;width:100%;min-height:44px;padding:var(--dj-space-2) 0;text-align:left;border:0;background:transparent;color:inherit;font:var(--dj-text-secondary-size)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);overflow-wrap:anywhere;}
.dj-inspector-link:focus-visible,.dj-dashboard-chevron:focus-visible{outline:2px solid var(--accent,#497a67);outline-offset:2px;}
.dj-entity-link,.dj-page-link{display:flex;align-items:center;gap:var(--dj-space-2);}
.dj-entity-link>.v22-icon{width:20px;height:20px;flex-shrink:0;}
.dj-entity-link>span:not(.v22-icon){min-width:0;}.dj-entity-link>span:last-child,.dj-page-link>span:last-child{margin-left:auto;}
.dj-entity-link:disabled{color:var(--muted);cursor:default;}
.dj-note-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(max(140px,9em),1fr));gap:var(--dj-space-2);}.dj-note-filters :is(button,span){word-break:normal;overflow-wrap:normal;}
.dj-note-filter{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--dj-space-1);min-width:0;min-height:56px;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:transparent;color:inherit;font:var(--dj-text-secondary-size)/var(--dj-text-body-line-height) var(--font-ui,system-ui);padding:var(--dj-space-2) var(--dj-space-1);overflow-wrap:anywhere;}
.dj-note-filter .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);}
.dj-note-filter[aria-pressed="true"]{background:var(--dj-control-accent,var(--accent));color:white;}
html[data-v74-route="notes"][data-dj-workspace-controls] .main .notes-catalog .notes-tools>.notes-button[data-note-action^="filter-"]{display:none!important;}
html[data-dj-workspace-controls] .main .notes-tools{flex-wrap:wrap;overflow-x:visible}
html[data-dj-workspace-controls] .main .notes-tools>[data-notes-search]{flex:1 1 160px;min-width:min(160px,100%);width:160px;min-height:48px;padding:var(--dj-space-2);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);font:inherit;}
html[data-dj-workspace-controls] .main .notes-grid>.notes-empty{color:var(--ink)}
.dj-note-filter:focus-visible,.dj-task-overview:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.project-meta-card[data-project-filters]{display:flex;align-items:center;gap:var(--dj-space-2);flex-wrap:wrap;}
.project-meta-card[data-project-filters] button{display:inline-flex;align-items:center;gap:var(--dj-space-2);}
.project-meta-card[data-project-filters] .v22-icon{width:20px;height:20px;}
@media(min-width:600px){
 .dj-project-create-actions,.dj-project-utility-actions{display:flex;align-items:center;gap:var(--dj-space-2);max-width:100%;flex-wrap:wrap;}
 .dj-project-create-actions{margin-right:auto;}.dj-project-utility-actions{margin-left:auto;justify-content:flex-end;}
 html body .r21-project-secondary .r21-secondary-tools :is(.dj-project-create-actions,.dj-project-utility-actions)>button{flex:0 0 32px;width:32px;height:32px;min-width:32px;min-height:32px;padding:0!important;border-radius:var(--dj-radius-circle,50%);}
 html body .r21-project-secondary .r21-secondary-tools [data-r27-create] :is(svg,.v22-icon){color:white!important;}
}
@media(min-width:600px){
 .sidebar .v19-favorites-drawer{margin:0;border:0;padding:var(--dj-space-1) 0 var(--dj-space-2) var(--dj-space-2);}
 .sidebar .v78-sidebar-project-tree[hidden]{display:none!important;}
 .sidebar .v78-sidebar-project-link{font:var(--dj-text-reading-weight) var(--dj-text-secondary-size)/var(--dj-text-body-line-height) var(--font,system-ui)!important;padding:var(--dj-space-2) var(--dj-space-1);border:0;border-radius:var(--dj-radius-chip);background:transparent;color:var(--muted);min-height:32px;}
 .sidebar .v78-sidebar-project-link:hover,.sidebar .v78-sidebar-project-link.active{background:var(--panel);color:var(--ink);}
 .sidebar .v78-sidebar-project-name::before,.sidebar .v78-sidebar-project-name::after{content:none!important;}
 .sidebar .v78-sidebar-project-name{font-weight:var(--dj-text-reading-weight)!important;}
 .sidebar .v78-projects-toggle [data-v78-arrow]{display:grid!important;}
 .sidebar .v78-projects-toggle>.dj-drunk-visual{display:inline-flex!important;}
 .sidebar .r27-ideas-toggle::before{content:none!important;}
 .sidebar .v78-projects-toggle[aria-expanded="true"] [data-v78-arrow="closed"],.sidebar .v78-projects-toggle[aria-expanded="false"] [data-v78-arrow="open"]{display:none!important;}
 html[data-dj-dashboard-mode] .sidebar .v78-sidebar-project-link .v78-sidebar-project-glyph{display:grid!important;width:17px;flex:0 0 17px;}
 .sidebar .v78-sidebar-project-glyph[data-dj-nav-type="project"]{font-weight:700;}
 .sidebar .v78-sidebar-project-glyph[data-dj-nav-type="project"] svg{display:none;}
 .sidebar .v78-sidebar-project-glyph[data-dj-nav-type="project"]:has(svg)::before{content:'@';}
 .sidebar .v19-favorites-drawer .v78-sidebar-project-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
}
/* Phase F — task column on tablets and full screen: the editor is always as narrow as it is with the Dashboard open; the Dashboard slides out beside it
   (the shell grows to the right) and never changes the column width or its left edge. */
@media(min-width:600px){
 html body .dj-workspace>.modal-backdrop[data-ws-shared-overview="true"]{z-index:3;display:grid;grid-template-columns:minmax(0,1fr);place-items:start;align-content:start;overflow:hidden;box-sizing:border-box;}
 html body .dj-editor-shell[data-ws-shared-overview="true"]{width:var(--dj-editor-column,420px);grid-template-columns:minmax(0,1fr);justify-self:start;}
 html body .dj-editor-shell[data-ws-column="true"]:not([data-ws-shared-overview="true"]){width:calc(var(--dj-editor-column,420px) + var(--dj-editor-aside,64px) + 2px);max-width:100%;justify-self:start;grid-template-columns:minmax(0,1fr) var(--dj-editor-aside,64px);}
 html body .dj-editor-shell[data-ws-column="true"][data-ws-overlay="true"]:not([data-ws-shared-overview="true"]){grid-template-columns:minmax(0,1fr) 64px;}
 html[data-dj-workspace-controls] body .dj-editor-shell[data-ws-column="true"][data-ws-side="true"][data-ws-overlay="false"]>.rightbar.dj-inspector{grid-column:2;}
 /* No rail column either: the card is exactly the column while the Dashboard is closed (or floats over it on a narrow screen). */
 html body [data-ws-owner][data-ws-side="true"][data-ws-column="true"]:not([data-ws-shared-overview="true"]):not([data-ws-overview="true"][data-ws-overlay="false"]){grid-template-columns:minmax(0,1fr) 64px!important;}
 /* The task window has no menu of its own: while the Dashboard is closed the quick actions are not shown at all. */
 html body .dj-editor-shell[data-ws-column="true"]>.dj-system-dock[hidden]{display:none!important;}
}
/* Habit outcomes in the Overview: the same squares as the task list, each with its standard short date. */
.dj-habit-squares{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);min-width:0;margin-top:var(--dj-space-2);}
.dj-habit-squares>.dj-habit-square{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--dj-space-1);flex:0 0 auto;width:auto;min-width:44px;height:auto;min-height:44px;padding:var(--dj-space-1);}
.dj-habit-squares>.dj-habit-square>small{font:var(--dj-text-caption-size,12px)/var(--dj-text-caption-line-height) var(--font-ui,system-ui);color:var(--muted);white-space:nowrap;}
/* UI 12: while the on-screen keyboard hides the Dock, nothing keeps a strip reserved for it. */
html[data-dj-dock-keyboard-hidden="true"] :is(.dj-workspace,.dj-editor-shell,.notes-editor-body[data-ws-owner]){--dj-dock-height:0px!important;}

/* DS-SCR-23 (D-140): on a phone the note Overview is a separate full screen with Back,
   not a sheet over a dimmed note. Other owners keep their sheet. */
.dj-inspector-head [data-dj-back]{display:none;color:var(--accent);}
html[data-ws-mobile="true"][data-ws-owner="note"] body .rightbar.dj-inspector:not(:has([data-note-dictation-active="true"])){position:fixed!important;inset:0!important;padding-top:env(safe-area-inset-top,0px);height:auto!important;max-height:none!important;min-height:0!important;border-radius:0!important;border:0!important;box-shadow:none!important;z-index:40!important;}
/* While dictating a Note, the normal mobile Overview sheet exposes the live page above it. */
html[data-ws-mobile="true"][data-ws-owner="note"] body .rightbar.dj-inspector .dj-inspector-head [data-dj-back]{display:grid;margin-inline-start:calc(-1 * var(--dj-space-2,8px));}
html[data-ws-mobile="true"][data-ws-owner="note"] body .rightbar.dj-inspector .dj-inspector-head [data-dj-close]{display:none;}
html[data-ws-mobile="true"][data-ws-owner="note"] body [data-dj-backdrop]{display:none!important;}
html[data-ws-mobile="true"][data-ws-owner="note"] body .rightbar.dj-inspector>.dj-dashboard-chevron{display:none!important;}
/* The title takes programmatic focus for screen readers; a heading shows no focus ring. */
.dj-inspector-head h2:focus{outline:none;}
/* Tool panel as a wall of the note window (owner decision 2026-10-17, D-145):
   a full-height column on the left on tablet and desktop; the phone keeps the
   full-width bottom bar (DS-NAV-07). Only contextual menus float. */
@media(min-width:600px){
 html[data-ws-mobile="false"] body .notes-editor-body[data-ws-owner]>.notes-editor-tools.notes-editor-tools{grid-column:1!important;grid-row:1!important;justify-self:start;align-self:stretch;z-index:3;display:flex!important;flex-direction:column!important;align-items:center;justify-content:flex-start;gap:var(--dj-space-1)!important;width:var(--notes-tool-wall,60px)!important;min-width:var(--notes-tool-wall,60px);height:auto!important;min-height:0!important;max-height:none!important;padding:var(--dj-space-3) 0!important;overflow-x:hidden!important;overflow-y:auto!important;border:0!important;border-right:1px solid var(--line,#ddd)!important;border-radius:0!important;background:var(--panel,#fff)!important;box-shadow:none!important;}
 html[data-ws-mobile="false"] body .notes-editor-body[data-ws-owner]>.notes-scroll{margin-left:var(--notes-tool-wall,60px);}
 html[data-ws-mobile="false"] body .notes-editor-tools.notes-editor-tools>.notes-mode-buttons{display:flex;flex-direction:column;gap:var(--dj-space-1);padding-bottom:var(--dj-space-2);margin-bottom:var(--dj-space-1);border-bottom:1px solid var(--line,#ddd);}
 html[data-ws-mobile="false"] body .notes-editor-tools.notes-editor-tools [data-note-action="undo"]{margin-top:auto;}
 html[data-ws-mobile="false"] body .notes-editor-tools.notes-editor-tools .notes-button{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;flex:0 0 44px;}
}
/* Secondary tools are bare glyphs; only the mode switch keeps its outline and a pressed tool gets the accent fill. */
html body .notes-editor-body[data-ws-owner]>.notes-editor-tools.notes-editor-tools .notes-button:not(.notes-mode-buttons .notes-button){border-color:transparent!important;background:transparent!important;box-shadow:none!important;}
html body .notes-editor-body[data-ws-owner]>.notes-editor-tools.notes-editor-tools .notes-button:not(.notes-mode-buttons .notes-button):hover{background:var(--accent-soft,#f3eadf)!important;}
html body .notes-editor-body[data-ws-owner]>.notes-editor-tools.notes-editor-tools .notes-button[aria-pressed="true"]:not(.notes-mode-buttons .notes-button){background:var(--accent)!important;color:var(--panel,#fff)!important;}
/* Phone note dock (DS-NAV-07): four actions share the width; Overview has its own handle. */
html[data-ws-mobile="true"] body .notes-editor-body[data-ws-owner]>.notes-editor-tools .notes-mode-buttons{display:none!important;}
@media(max-width:599px){html body .notes-editor-body>.dj-system-dock[data-ws-mobile="true"]{grid-template-columns:repeat(5,minmax(0,1fr));}}
html body .notes-editor-body>.dj-system-dock[data-ws-mobile="true"]>[data-note-dock]{grid-template-rows:28px 16px!important;}
/* Pin and unpin in the note Overview (audit №28): both in the system colour, no button fill; the glyph follows the icon style. */
.dj-inspector-head [data-dj-pin],.dj-inspector-head [data-dj-pin][aria-pressed="true"],.dj-inspector-head [data-dj-pin]:hover{background:transparent!important;border:0!important;box-shadow:none!important;color:var(--accent)!important;}
.dj-inspector-head [data-dj-pin] svg,.dj-inspector-head [data-dj-pin] .v22-icon{color:var(--accent)!important;fill:none;}
/* An empty "Просмотр и вложения" block is not shown (audit №8). */
.dj-inspector-block:has(>[data-dj-note-preview]):not(:has(.notes-mini-preview:not([hidden]),.notes-attached>*,.dj-inspector-metric)){display:none;}
/* Note Overview order (2026-10-17): links first, pages as number chips, details folded. */
.dj-page-chips{display:flex;flex-wrap:wrap;gap:var(--dj-space-2,8px);margin-top:var(--dj-space-2,8px);}
.dj-inspector .dj-page-chips .dj-page-chip{display:inline-grid;place-items:center;text-align:center;width:auto;min-width:44px;height:44px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button);background:transparent;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;}
.dj-inspector .dj-page-chips .dj-page-chip:hover,.dj-inspector .dj-page-chips .dj-page-chip:focus-visible{border-color:var(--accent);color:var(--accent);}
.dj-inspector-details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:44px;}
.dj-inspector-details>summary::-webkit-details-marker{display:none;}
.dj-inspector-details>summary::after{content:"";width:8px;height:8px;border:solid var(--muted);border-width:0 1.5px 1.5px 0;transform:rotate(-45deg);transition:transform .15s;margin-inline-end:var(--dj-space-2);}
.dj-inspector-details[open]>summary::after{transform:rotate(-135deg);}
.dj-inspector .dj-inspector-details>summary>h3{margin:0;}
/* Classification buttons keep their label on one line in a 320 px Overview (audit №12). */
.dj-note-properties [data-dj-note-property]{white-space:nowrap;gap:var(--dj-space-2,8px);padding-inline:var(--dj-space-2,8px);min-width:0;overflow:hidden;text-overflow:ellipsis;}
/* «Проект / Идея» takes a full row: seven buttons then form even pairs and the longest label never truncates. */
.dj-note-properties [data-dj-note-property="project"]{grid-column:1 / -1;}

/* Recorded-outcome chart (rituals, the Habits screen summary): the styles were missing, so the bars collapsed and the
   screen-reader line showed as text next to the date — «16 окт16 окт: успешно 0…» (audit E-9). */
.dj-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.dj-outcomes{display:flex;align-items:flex-end;gap:var(--dj-space-2);min-height:96px;margin-top:var(--dj-space-2)}
.dj-outcomes>div{position:relative;display:flex;flex:1 1 0;flex-direction:column;align-items:center;gap:var(--dj-space-1);min-width:0}
.dj-outcome-bars{display:flex;align-items:flex-end;gap:var(--dj-space-1);height:72px}
.dj-outcome-bars>i{display:block;width:8px;min-height:2px;border-radius:var(--dj-radius-chip) var(--dj-radius-chip) 0 0;background:var(--malachite,var(--accent))}
.dj-outcome-bars>i.failed{background:var(--brick,var(--muted))}
.dj-outcomes small{font-size:var(--dj-text-caption-size);color:var(--muted);white-space:nowrap}

/* Habit Overview (D-4, R-5): summary, month navigation and the month wall. */
.dj-habit-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dj-space-2)}
.dj-habit-summary>.dj-inspector-metric{display:flex;flex-direction:column;align-items:flex-start;margin:0}
.dj-habit-month{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);margin:var(--dj-space-3) 0 var(--dj-space-2)}
.dj-habit-month>strong{white-space:nowrap}
.dj-habit-month>button{min-width:44px;min-height:44px;font-size:var(--dj-text-heading-size)}
.dj-habit-month>button:disabled{opacity:.35;cursor:default}
.dj-habit-wall{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--dj-space-1)}
.dj-habit-weekday{text-align:center;font-size:var(--dj-text-caption-size);color:var(--muted)}
.dj-habit-day{position:relative;display:grid;place-items:center;aspect-ratio:1;min-width:0;min-height:44px;padding:0;border:0;border-radius:var(--dj-radius-button);background:transparent;color:var(--muted);font:inherit;font-size:var(--dj-text-secondary-size)}
button.dj-habit-day{cursor:pointer}
.dj-habit-day>.habit-history-cell{position:absolute;inset:3px;width:auto;height:auto;min-width:0;min-height:0;border-radius:var(--dj-radius-button)}
.dj-habit-day[data-status=""]>.habit-history-cell{background:transparent;border:1px solid var(--line)}
.dj-habit-day>.habit-history-cell.pending{background:transparent;border:2px solid var(--ink)}
.dj-habit-day-number{position:relative}
.dj-habit-day:is([data-status="done"],[data-status="failed"])>.dj-habit-day-number{color:var(--panel);font-weight:var(--dj-text-heading-weight)}
.dj-habit-day[data-future="true"]{opacity:.45}
.dj-habit-day[data-today="true"]>.dj-habit-day-number{text-decoration:none;font-weight:var(--dj-text-heading-weight);}
button.dj-habit-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* ==== design/icon-master-v8.css ==== */
/* Per-size authored art, isolated from older SVG nth-child colouring/echoes. */
.v22-icon.v22-icon-master .dj-v8-size{display:none}
.v22-icon.v22-icon-master .dj-v8-size-20{display:inline}
.v22-icon.v22-icon-master .dj-v8-size rect{fill:currentColor!important;stroke:none!important}
.v22-icon.v22-icon-master.v22-icon-large .dj-v8-size{display:none}
.v22-icon.v22-icon-master.v22-icon-large .dj-v8-size-52{display:inline}
:is(.tp-artifact,.tp-goal-mark,.tp-sub-summary-lead,.notes-card-meta) .v22-icon.v22-icon-master .dj-v8-size{display:none}
:is(.tp-artifact,.tp-goal-mark,.tp-sub-summary-lead,.notes-card-meta) .v22-icon.v22-icon-master .dj-v8-size-16{display:inline}
:is(.v22-style-picker,.v22-icon-style-row) .v22-icon.v22-icon-master .dj-v8-size{display:none}
:is(.v22-style-picker,.v22-icon-style-row) .v22-icon.v22-icon-master .dj-v8-size-28{display:inline}

/* ==== deadline-editor.css ==== */
/* Above the new task window (task-editor-2 host, 100100), which opens these sheets for its deadline, reminders and dates. */
.dj-deadline-layer{position:fixed;inset:0;height:var(--dolijane-viewport-height,100dvh);z-index:100110;display:grid;place-items:center;padding:var(--dj-space-3);box-sizing:border-box;background:#0004;}
.dj-deadline-form{width:min(100%,580px);max-height:100%;min-height:0;display:flex;flex-direction:column;background:var(--panel,#fff);color:var(--ink,#222);border:1px solid var(--line,#ddd);border-radius:var(--dj-radius-popup,12px);overflow:hidden;font:var(--dj-text-reading-weight) var(--dj-text-body-size,16px)/var(--dj-text-reading-line-height) var(--font-ui,system-ui);}
.dj-deadline-header{flex-shrink:0;padding:var(--dj-space-3) var(--dj-space-4);border-bottom:1px solid var(--line);}
.dj-deadline-header h2{font:var(--dj-text-heading-weight) var(--dj-text-heading-size,20px)/var(--dj-text-body-line-height) var(--font-ui,system-ui);}
.dj-deadline-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 var(--dj-space-4) var(--dj-space-4);}
.dj-deadline-body p{margin:var(--dj-space-2) 0;font-size:var(--dj-text-secondary-size,14px);overflow-wrap:anywhere;}
.dj-deadline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-3);}
.dj-deadline-body label{display:flex;flex-direction:column;gap:var(--dj-space-2);min-width:0;margin:var(--dj-space-2) 0;}
.dj-deadline-body input:not([type=checkbox]),.dj-deadline-body select,.dj-deadline-body textarea{min-width:0;width:100%;box-sizing:border-box;min-height:48px;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);font:inherit;}
.dj-deadline-presets{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:var(--dj-space-3) 0;}.dj-deadline-presets small{display:block;font-size:var(--dj-text-caption-size,12px);}
.dj-deadline-presets.dj-quick-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-2,var(--dj-space-2));}
.dj-quick-date-grid>button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--dj-space-1);width:100%;height:64px;min-width:0;min-height:64px;padding:var(--dj-space-2) var(--dj-space-3);text-align:left;border-radius:var(--dj-radius-button,8px);line-height:var(--dj-text-title-line-height);}
.dj-quick-date-grid>button small{min-height:1.2em;color:var(--muted);}
.dj-deadline-form button{min-height:48px;min-width:48px;font:inherit;white-space:normal;}.dj-deadline-form .btn.primary{background:var(--dj-control-accent,var(--accent));color:#fff;}
.dj-deadline-errors{color:var(--p1,#ab392f);font-size:var(--dj-text-secondary-size,14px);padding:var(--dj-space-2) 0;}
.dj-deadline-confirm{padding:var(--dj-space-4);background:var(--panel);border-top:1px solid var(--line);}.dj-deadline-confirm button{margin-right:var(--dj-space-2);}
.dj-deadline-layer [hidden]{display:none!important;}.dj-deadline-form :focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
.dj-utility-symbol{display:inline-block;vertical-align:middle;fill:currentColor!important;stroke:none!important;animation:none!important;transform:none!important;}
.tp-reminder,.tp-repeat{display:inline-flex;align-items:center;gap:var(--dj-space-1);color:var(--muted,var(--ink));}
@media(max-width:599px){.dj-deadline-layer{padding:0;background:var(--panel);place-items:stretch;}.dj-deadline-form{width:100%;height:100%;border:0;border-radius:unset;}.dj-deadline-header{padding:var(--dj-space-2) var(--dj-space-3);}.dj-deadline-body{padding:0 var(--dj-space-3) var(--dj-space-3);}}

/* Фаза B: лист «Срок» (дата → «+» секции) и самостоятельный лист «Перенос». */
.dj-postpone-layer{z-index:100120;}
.dj-deadline-form{max-width:520px;}
.dj-due-summary{margin:var(--dj-space-3) 0 var(--dj-space-1);font:var(--dj-text-heading-weight) var(--dj-text-heading-size,18px)/var(--dj-text-body-line-height) var(--font-ui,system-ui);}
.dj-quick-date-grid>button[aria-pressed="true"],.dj-due-presets>button[aria-pressed="true"],.dj-pp-options [aria-pressed="true"]{border-color:var(--dj-control-accent,var(--accent));background:var(--accent-soft);color:var(--ink);}
.dj-quick-date-grid>button{height:56px;min-height:56px;}
.dj-cal{margin:var(--dj-space-2) 0 var(--dj-space-1);}
.dj-cal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);margin-bottom:var(--dj-space-1);}
.dj-cal-head>b{font-weight:var(--dj-text-heading-weight);}
.dj-cal-head>button{width:44px;min-width:44px;height:44px;min-height:44px;border:0;background:transparent;color:inherit;font-size:var(--dj-text-heading-size);border-radius:var(--dj-radius-circle,50%);}
.dj-cal-week,.dj-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--dj-space-1);text-align:center;}
.dj-cal-week{font-size:var(--dj-text-caption-size,12px);color:var(--muted);padding-bottom:var(--dj-space-1);}
.dj-cal-grid>button{min-width:0;min-height:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--dj-radius-circle,50%);background:transparent;color:inherit;font:inherit;}
.dj-cal-grid>button.is-today{border-color:var(--line);}
.dj-cal-grid>button.is-selected{background:var(--dj-control-accent,var(--accent));color:#fff;border-color:transparent;}
.dj-due-chips{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:var(--dj-space-3) 0 var(--dj-space-1);}
.dj-chip{display:inline-flex;align-items:center;gap:var(--dj-space-1);min-height:44px;padding:0 var(--dj-space-4);border:1px dashed var(--line);border-radius:var(--dj-radius-pill,999px);background:transparent;color:var(--muted);font:inherit;}
.dj-deadline-form .dj-chip{min-width:0;}
.dj-due-sec{margin:var(--dj-space-3) 0 0;padding:var(--dj-space-2) 0 var(--dj-space-1);border-top:1px solid var(--line);}
.dj-due-sec>header{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);}
.dj-due-x{width:44px;min-width:44px;height:44px;min-height:44px;border:0;border-radius:var(--dj-radius-circle,50%);background:transparent;color:var(--muted);font-size:var(--dj-text-heading-size);line-height:var(--dj-text-heading-line-height);}
.dj-due-lead{margin-top:var(--dj-space-2);font-size:var(--dj-text-secondary-size,14px);color:var(--muted);}
.dj-due-presets{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:var(--dj-space-2) 0;}
.dj-due-presets>button{min-height:44px;}
.dj-due-help{margin:var(--dj-space-2) 0;font-size:var(--dj-text-secondary-size,14px);color:var(--muted);}
.dj-due-plan{margin:var(--dj-space-2) 0;font-weight:var(--dj-text-heading-weight);}
.dj-link{min-height:44px;min-width:0;padding:0 var(--dj-space-1);border:0;background:transparent;color:var(--dj-control-accent,var(--accent));font:inherit;text-decoration:none;font-weight:var(--dj-text-heading-weight);}
.dj-deadline-form .dj-link{min-width:0;}
.dj-due-quiet{display:flex;flex-wrap:wrap;gap:var(--dj-space-4);margin-top:var(--dj-space-2);}
.dj-due-hint{margin:var(--dj-space-3) 0;padding:var(--dj-space-3);border:1px solid var(--accent);border-radius:var(--dj-radius-button,8px);background:var(--accent-soft);}
.dj-due-hint-actions{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin-top:var(--dj-space-2);}
.dj-due-reminder{display:flex;align-items:center;justify-content:space-between;margin:var(--dj-space-1) 0;}
.dj-pp-subject{margin:var(--dj-space-3) 0 0;font-weight:var(--dj-text-heading-weight);overflow-wrap:anywhere;}
.dj-pp-now{margin:var(--dj-space-1) 0 var(--dj-space-2);color:var(--muted);}
.dj-pp-options{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2) var(--dj-space-4);margin:var(--dj-space-1) 0;}
.dj-pp-preview{margin:var(--dj-space-3) 0 0;min-height:1.4em;white-space:pre-line;font-weight:var(--dj-text-heading-weight);}
.dj-pp-preview.is-error{color:var(--p1,#ab392f);font-weight:var(--dj-text-reading-weight);}
.dj-pp-hint{margin:var(--dj-space-1) 0;font-size:var(--dj-text-secondary-size,14px);color:var(--muted);}
.dj-quick-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-2,var(--dj-space-2));margin:var(--dj-space-3) 0 var(--dj-space-1);}
.dj-deadline-body .dj-due-summary{margin:var(--dj-space-3) 0 var(--dj-space-1);font:var(--dj-text-heading-weight) var(--dj-text-heading-size,18px)/var(--dj-text-body-line-height) var(--font-ui,system-ui);color:var(--ink);}
.dj-pp-modes{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin:var(--dj-space-2) 0;}.dj-pp-modes>button[aria-pressed="true"]{border-color:var(--dj-control-accent,var(--accent));background:var(--accent-soft);color:var(--ink);}
.dj-deadline-form .dj-quick-date-grid>button{height:auto;min-height:60px;justify-content:center;}

/* ==== task-editor.css ==== */
/* Task editor «Дело» (task-editor.js, owned window task-editor-2). Tokens only: spacing --dj-space-*, radii --dj-radius-*,
   text roles --dj-text-*, colours of the theme (--panel, --ink, --muted, --line, --accent, --bg). No !important.
   The host is shared with the Workspace (it sets data-ws-* on it and may put the Overview into it); the window is ours. */
.r21-entity-backdrop:has(.entity-menu-v2){display:flex;align-items:flex-start;justify-content:center;padding:0;background:var(--bg)}
.entity-menu-v2{--dj-editor-form-overflow:hidden;display:flex;flex-direction:column;inline-size:min(100%,640px);max-inline-size:640px;block-size:var(--dolijane-viewport-height,100dvh);max-block-size:none;margin:0;padding:0;overflow:hidden;background:var(--panel);color:var(--ink);font-size:var(--dj-text-body-size);line-height:var(--dj-text-body-line-height)}
.entity-menu-v2 .entity-menu-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:var(--dj-space-2);flex:0 0 auto;margin:0;padding:var(--dj-space-3);border-block-end:1px solid var(--line);background:var(--panel)}
.entity-menu-v2 .entity-menu-head>textarea{min-inline-size:0;inline-size:100%;min-block-size:44px;border:0;background:none;color:var(--ink);font-family:var(--font-display,inherit);font-size:var(--dj-text-title-size);line-height:var(--dj-text-title-line-height);font-weight:var(--dj-text-title-weight);resize:none;overflow:hidden}
.entity-menu-v2 .entity-menu-head>.v22-icon,.entity-menu-v2 .entity-menu-head>.r21-project-mark{justify-self:center;color:var(--artifact-color,var(--accent))}
.entity-menu-v2 .entity-menu-head>.dj-local-status{grid-column:1/-1;justify-self:stretch}
.entity-menu-v2 .r21-editor-actions{display:flex;gap:var(--dj-space-1)}
.entity-menu-v2 .r21-editor-actions>button,.entity-menu-v2 [data-r21-status]{display:grid;place-items:center;inline-size:44px;block-size:44px;min-inline-size:44px;padding:0;border:0;border-radius:var(--dj-radius-button);background:none;color:var(--muted)}
.entity-menu-v2 .r21-editor-actions>[type=submit]{background:var(--accent);color:var(--panel)}
/* The project and Idea editors use the same compact right action slots as Deal:
   More 44px, Cancel/OK 32px, and 4px between slots. */
.entity-menu-v2 .r21-editor-actions{gap:var(--dj-space-1)}
.entity-menu-v2 .r21-editor-actions>[data-r21-status]{flex:0 0 44px}
.entity-menu-v2 .r21-editor-actions>:is([data-r21-cancel],[type=submit]){box-sizing:border-box;flex:0 0 32px;width:32px;min-width:32px;max-width:32px;inline-size:32px;min-inline-size:32px;max-inline-size:32px;height:44px;min-height:44px;max-height:44px;block-size:44px;min-block-size:44px;max-block-size:44px;padding:0}
.entity-menu-v2 .entity-menu-scroll{flex:1 1 auto;min-block-size:0;overflow:auto;padding:var(--dj-space-2) var(--dj-space-4) var(--dj-space-8);scrollbar-width:thin;scrollbar-color:transparent transparent}
.entity-menu-v2 .entity-menu-scroll:hover,.entity-menu-v2 .entity-menu-scroll[data-entity-scrolling="true"]{scrollbar-color:var(--muted) transparent}
.entity-menu-v2 .r23-project-fields{inline-size:100%;min-inline-size:0}
.entity-menu-v2 .r23-description{margin-block:0 var(--dj-space-3)}
.entity-menu-v2 .r23-description>.r23-project-row{border:0;background:none;color:var(--muted)}
.entity-menu-v2 .r23-description [data-r23-description-body]{margin:0;padding:0;border:0;border-radius:0;background:none}
.entity-menu-v2 .r23-description textarea{display:block;box-sizing:border-box;inline-size:calc(100% - 2*var(--dj-space-4));min-block-size:44px;margin:0 var(--dj-space-4);padding:var(--dj-space-2) 0;border:0;background:none;color:var(--ink);font-size:var(--dj-text-reading-size);line-height:var(--dj-text-reading-line-height);resize:none;overflow:hidden}
.entity-menu-v2 .r23-description textarea::placeholder{color:var(--muted)}
.entity-menu-v2 .r23-project-stack{border:1px solid var(--line);border-radius:var(--dj-radius-card);overflow:hidden}
.entity-menu-v2 .r23-project-stack[hidden],.entity-menu-v2 .r23-project-stack>.r23-project-row[hidden]{display:none}
.entity-menu-v2 .entity-menu-add-list{display:flex;flex-direction:column;gap:var(--dj-space-1);margin-block-end:var(--dj-space-2);padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-popup);background:var(--panel)}
.entity-menu-v2 .entity-menu-add-list[hidden],body>.entity-menu-add-list[hidden]{display:none}
body>.entity-menu-add-list{display:flex;flex-direction:column;gap:var(--dj-space-1)}
body>.entity-menu-add-list>button{min-block-size:44px;border:0;background:none;color:var(--ink);font:inherit;text-align:start}
.entity-menu-v2 .entity-menu-details{margin-block-start:var(--dj-space-4)}
.entity-menu-v2 .entity-menu-details-head{display:flex;align-items:center;justify-content:space-between;min-block-size:44px}
.entity-menu-v2 .entity-menu-details-title{padding:0;border:0;background:none;color:var(--muted);font:inherit;font-weight:var(--dj-text-heading-weight);cursor:pointer}
.entity-menu-v2 .entity-menu-add{min-block-size:44px;padding:0 var(--dj-space-2);border:0;background:none;color:var(--accent);font:inherit;cursor:pointer}
.entity-menu-v2 .entity-menu-add-list>button{min-block-size:44px;border:0;background:none;color:var(--ink);font:inherit;text-align:start}
.entity-menu-v2 .r23-project-row{box-sizing:border-box;display:flex;align-items:center;gap:var(--dj-space-2);inline-size:100%;min-block-size:56px;padding:0 var(--dj-space-2);border:0;border-block-end:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left}
.entity-menu-v2 .r23-project-stack>.r23-project-row:last-child{border-block-end:0}
.entity-menu-v2 .r23-project-row>.v22-icon{inline-size:var(--dj-icon-standard,20px);block-size:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px);margin-inline:var(--dj-space-3);color:var(--muted)}
.entity-menu-v2 .r23-project-row>.dj-utility-symbol{inline-size:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px);margin-inline:var(--dj-space-3);text-align:center}
.entity-menu-v2 .r23-project-row>button{min-block-size:44px;min-inline-size:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}
.entity-menu-v2 .r23-project-comments{margin-block-start:var(--dj-space-4)}
.entity-menu-v2 .r23-comment-head{min-block-size:44px;padding:0}
.entity-menu-v2 .r23-comment-head [data-r23-comments-toggle]{flex:0 1 auto;color:var(--muted);font-weight:var(--dj-text-heading-weight)}
.entity-menu-v2 .r23-comment-head .v19-count{order:1;margin:0;color:var(--muted);font-weight:var(--dj-text-heading-weight)}
.entity-menu-v2 .r23-comment-head [data-r23-comment-add]{order:2;display:grid;place-items:center;inline-size:44px;min-block-size:44px;margin-inline-start:auto;padding:0}
.entity-menu-v2 .r23-comment-head{justify-content:flex-start;gap:var(--dj-space-2)}
.entity-menu-v2 .r23-comment-head [data-r23-comments-toggle]{flex:0 0 auto;min-block-size:44px;padding:0;color:var(--muted);font-weight:var(--dj-text-heading-weight)}
.entity-menu-v2 .r23-comment-head [data-r23-comments-toggle],.entity-menu-v2 .r23-comment-head [data-r23-comments-toggle] span{color:var(--muted)}
.entity-menu-v2 .r23-comment-head .v19-count{color:var(--muted);font-variant-numeric:tabular-nums}
/* Project and Idea use the same Details typography and grouped Add sheet as Delo. */
.entity-menu-v2 :is(.entity-menu-details-head,.r23-comment-head){font-family:var(--dj-font-ui,var(--font,inherit));font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight);line-height:var(--dj-text-heading-line-height)}
.entity-menu-v2 :is(.entity-menu-details-title,.r23-comment-head [data-r23-comments-toggle],.r23-comment-head [data-r23-comments-toggle] span,.r23-comment-head .v19-count){font:inherit;color:var(--muted)}
.entity-menu-v2 .entity-menu-add{font:inherit;color:var(--accent);border:0;background:transparent;box-shadow:none}
.entity-menu-v2 .r23-project-row>:is(.v22-icon,.dj-utility-symbol,.dj-project-entity-mark){display:inline-grid;place-items:center;align-self:center;line-height:1;flex:0 0 var(--dj-icon-standard,20px);inline-size:var(--dj-icon-standard,20px);block-size:var(--dj-icon-standard,20px)}
.entity-menu-v2 .r23-project-row>:is(span:not(.v22-icon):not(.dj-utility-symbol):not(.dj-project-entity-mark),button){align-self:center;line-height:var(--dj-text-body-line-height)}
body>.entity-menu-add-list>.entity-menu-add-group{display:flex;flex-direction:column}
body>.entity-menu-add-list>.entity-menu-add-group>h3{margin:var(--dj-space-2) var(--dj-space-2) var(--dj-space-1);color:var(--muted);font-size:var(--dj-text-secondary-size);font-weight:var(--dj-text-heading-weight)}
body>.entity-menu-add-list>.entity-menu-add-group>button{min-block-size:48px;padding:0 var(--dj-space-2);border:0;background:transparent;color:var(--ink);font:var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-ui,var(--font,inherit));text-align:start}
.entity-menu-v2 .entity-comment-add{display:inline-flex;align-items:center;min-block-size:44px;padding:0;border:0;background:none;color:var(--accent);font:inherit;cursor:pointer}
.entity-menu-v2 .r23-comment-card{display:flex;flex-direction:column;gap:var(--dj-space-1);position:relative;background:var(--panel);padding-inline-end:calc(var(--dj-space-8) + var(--dj-space-3));border-radius:0}
.entity-menu-v2 .r23-comment-card small{color:var(--muted);font-size:var(--dj-text-caption-size)}
.entity-menu-v2 .r23-comment-edit{position:absolute;inset-inline-end:var(--dj-space-2);top:var(--dj-space-2)}
@media(min-width:600px){.r21-entity-backdrop:has(.entity-menu-v2){padding:var(--dj-space-4)}.entity-menu-v2{block-size:calc(var(--dolijane-viewport-height,100dvh) - 2*var(--dj-space-4));border:1px solid var(--line);border-radius:var(--dj-radius-window)}}
@media(max-width:599px){
 html body .r21-entity-backdrop>.dj-editor-shell:has(>.entity-menu-v2){inline-size:100vw;min-inline-size:100vw;max-inline-size:100vw;block-size:var(--dolijane-viewport-height,100dvh);max-block-size:none;border:0;border-radius:0}
 html body .r21-entity-backdrop>.dj-editor-shell>form.modal.entity-menu-v2{padding:0;overflow:hidden}
 .entity-menu-v2 .entity-menu-head{grid-template-columns:32px minmax(0,1fr) auto;gap:var(--dj-space-1);padding:var(--dj-space-3) var(--dj-space-3) var(--dj-space-2)}
}
.te-host{position:fixed;inset:0;z-index:100100;display:grid;place-items:start center;background:var(--bg);overflow:hidden;}
.te-host[data-ws-column="true"]{grid-template-columns:minmax(0,var(--dj-editor-column,640px)) auto;place-items:stretch;justify-content:start;}
.te-window{position:relative;display:flex;flex-direction:column;inline-size:100%;max-inline-size:640px;block-size:var(--dolijane-viewport-height,100dvh);background:var(--panel);color:var(--ink);font-size:var(--dj-text-body-size);line-height:var(--dj-text-body-line-height);}
@media (min-width:600px){
 .te-host{background:var(--bg);padding:var(--dj-space-4);}
 .te-window{block-size:calc(var(--dolijane-viewport-height,100dvh) - 2*var(--dj-space-4));border:1px solid var(--line);border-radius:var(--dj-radius-window);box-shadow:var(--shadow);overflow:hidden;}
}
@media (min-width:1025px){
 .te-host{padding:0}
 .te-window{block-size:var(--dolijane-viewport-height,100dvh);border-block:0;border-radius:0}
}
.te-visually-hidden{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}

/* Device-local fallback uses visible buttons because Android WebView did not open the native select. */
.settings-task-menu-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));inline-size:min(100%,320px);border:1px solid var(--line);border-radius:var(--dj-radius-chip);overflow:hidden;}
.settings-task-menu-choice>button{min-block-size:44px;padding:var(--dj-space-2) var(--dj-space-3);border:0;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer;}
.settings-task-menu-choice>button+button{border-inline-start:1px solid var(--line);}
.settings-task-menu-choice>button[aria-pressed="true"]{background:var(--accent-soft);font-weight:var(--dj-text-heading-weight);}
.settings-task-menu-choice>button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
@media(max-width:599px){.settings-task-menu-choice{inline-size:100%;}}

/* Header: fixed at the top, the pair Cancel / OK always visible (DS-ACT-03). */
.te-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:var(--dj-space-2);padding:var(--dj-space-3) var(--dj-space-3) var(--dj-space-2);border-block-end:1px solid var(--line);background:var(--panel);}
.te-state{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--dj-radius-pill);min-block-size:44px;}
.te-circle,.te-state-more,.te-cancel,.te-ok,.te-digit,.te-row-plus,.te-child-circle{display:inline-grid;place-items:center;min-inline-size:44px;min-block-size:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;}
.te-circle::before,.te-child-circle::before{content:"";inline-size:22px;block-size:22px;border:2px solid var(--muted);border-radius:var(--dj-radius-circle);}
.te-window[data-te-status="done"] .te-circle::before,.te-child-circle[aria-pressed="true"]::before{background:var(--accent);border-color:var(--accent);}
.te-state-more{min-inline-size:32px;color:var(--muted);}
.te-title-wrap{display:block;min-inline-size:0;}
.te-title{display:block;inline-size:100%;min-block-size:44px;padding:var(--dj-space-2) 0;border:0;background:none;color:var(--ink);resize:none;overflow:hidden;font-size:var(--dj-text-title-size);line-height:var(--dj-text-title-line-height);font-weight:var(--dj-text-title-weight);}
.te-title:focus{outline:none;}
.te-title.te-invalid::placeholder{color:var(--accent);}
.te-actions{display:inline-flex;gap:var(--dj-space-1);}
.te-cancel{color:var(--muted);border-radius:var(--dj-radius-button);}
.te-ok{color:var(--panel);background:var(--accent);border-radius:var(--dj-radius-button);}
.te-window .te-ok .v22-icon,.te-window .te-ok .v22-icon .v22-main>*{color:white;stroke:white}
.te-chips{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);padding:0 var(--dj-space-4);}
.te-chips[hidden]{display:none;}
.te-parse{padding:0 var(--dj-space-2);border-radius:var(--dj-radius-chip);background:var(--bg);color:var(--muted);font-size:var(--dj-text-caption-size);line-height:var(--dj-text-caption-line-height);}

/* Description: a quiet line under the title, no icon and no frame; grows while typing (DS-SCR-08). */
.te-description{display:block;min-block-size:44px;margin:0 var(--dj-space-4);padding:var(--dj-space-2) 0;border:0;background:none;color:var(--ink);resize:none;overflow:hidden;font-size:var(--dj-text-reading-size);line-height:var(--dj-text-reading-line-height);}
.te-description::placeholder{color:var(--muted);}
.te-description:focus{outline:none;}

.te-kinds{display:grid;grid-template-columns:repeat(3,1fr);flex:0 0 auto;min-block-size:44px;margin:var(--dj-space-2) var(--dj-space-4);border:1px solid var(--line);border-radius:var(--dj-radius-pill);overflow:hidden;}
.te-kind{display:grid;place-items:center;min-block-size:44px;border:0;background:none;color:var(--muted);font:inherit;cursor:pointer;}
.te-kind[aria-checked="true"]{background:var(--bg);color:var(--ink);font-weight:var(--dj-text-heading-weight);}

.te-scroll{flex:1 1 auto;min-block-size:0;overflow:auto;padding:var(--dj-space-2) var(--dj-space-4) var(--dj-space-8);scrollbar-width:thin;scrollbar-color:transparent transparent;}
.te-scroll:hover,.te-scroll[data-te-scrolling="true"]{scrollbar-color:var(--muted) transparent;}
.te-scroll::-webkit-scrollbar{inline-size:8px;}
.te-scroll::-webkit-scrollbar-thumb{background:transparent;border-radius:var(--dj-radius-pill);}
.te-scroll:hover::-webkit-scrollbar-thumb,.te-scroll[data-te-scrolling="true"]::-webkit-scrollbar-thumb{background:var(--muted);}
/* Grouped cards: one frame, thin dividers, rounded only at the edges. */
.te-card{border:1px solid var(--line);border-radius:var(--dj-radius-card);overflow:hidden;}
.te-card[hidden]{display:none;}
.te-card+.te-section,.te-section+.te-section{margin-block-start:var(--dj-space-4);}
.te-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;inline-size:100%;min-block-size:56px;padding:0 var(--dj-space-2) 0 0;border:0;border-block-end:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:start;}
.te-row:last-child{border-block-end:0;}
button.te-row{cursor:pointer;}
.te-icon{display:inline-grid;place-items:center;inline-size:44px;color:var(--muted);}
.te-label{min-inline-size:0;}
.te-value{justify-self:end;}
.te-muted{color:var(--muted);}
.te-digits{display:inline-flex;justify-self:end;}
.te-digit{color:var(--muted);font-size:var(--dj-text-secondary-size);}
.te-digit[aria-pressed="true"]{color:var(--ink);font-size:var(--dj-text-body-size);font-weight:var(--dj-text-heading-weight);}
.te-tags .te-chip-list{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);}
.te-chip{min-block-size:32px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-chip);background:none;color:inherit;font:inherit;cursor:pointer;}

/* Sections: a heading without a frame, the count after it, «+ Добавить» on the right. */
.te-section-head{display:flex;align-items:center;justify-content:space-between;min-block-size:44px;}
.te-section-title{padding:0;border:0;background:none;color:var(--muted);font:inherit;font-weight:var(--dj-text-heading-weight);}
button.te-section-title{cursor:pointer;}
.te-section[data-te-expanded="false"]>:not(.te-section-head){display:none;}
.te-add{min-block-size:44px;padding:0 var(--dj-space-2);border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;}
.te-list{margin:0;padding:0;list-style:none;}
.te-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;min-block-size:44px;}
.te-comment{grid-template-columns:minmax(0,1fr);padding:var(--dj-space-2) 0;border-block-end:1px solid var(--line);}
.te-quiet{display:block;inline-size:100%;min-block-size:44px;padding:0;border:0;border-block-end:1px solid transparent;background:none;color:var(--ink);font:inherit;}
.te-quiet::placeholder{color:var(--muted);}
.te-quiet:focus{outline:none;border-block-end-color:var(--line);}

/* The window's own sheet: from the bottom on a phone, a popover under the trigger otherwise. */
.te-layer{position:absolute;inset:0;z-index:2;background:color-mix(in srgb,var(--ink) 24%,transparent);}
.te-layer[hidden]{display:none;}
/* While a sheet is open the window stands above the Dock the Workspace puts beside it (z-index 6 in the host). */
.te-window[data-te-layer="open"]{z-index:7;}
.te-sheet{position:absolute;inset-inline:0;inset-block-end:var(--te-keyboard-inset,0px);display:flex;flex-direction:column;max-block-size:min(70%,calc(100% - var(--te-keyboard-inset,0px)));overflow:auto;padding:var(--dj-space-2) var(--dj-space-4) var(--dj-space-4);background:var(--panel);border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0;box-shadow:var(--shadow);}
.te-layer[data-te-layout="popover"]{background:none;}
.te-layer[data-te-layout="popover"] .te-sheet{inset-block:var(--te-layer-top,0px) auto;inset-inline:auto var(--dj-space-4);inline-size:320px;border:1px solid var(--line);border-radius:var(--dj-radius-popup);}
.te-sheet-group{margin:var(--dj-space-2) 0 0;color:var(--muted);font-size:var(--dj-text-caption-size);}
.te-sheet-row{display:flex;align-items:center;gap:var(--dj-space-2);min-block-size:var(--dj-minheight-popup-row,48px);padding:0 var(--dj-space-2);border:0;border-radius:var(--dj-radius-popup-row);background:none;color:inherit;font:inherit;text-align:start;cursor:pointer;}
.te-sheet-row small{margin-inline-start:auto;color:var(--muted);}
.te-sheet-row[aria-pressed="true"]{background:var(--bg);font-weight:var(--dj-text-heading-weight);}
.te-search{min-block-size:44px;margin-block-end:var(--dj-space-2);padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);font:inherit;}
.te-tag-choices{display:flex;flex-direction:column;}
.te-sheet-done{align-self:end;min-block-size:44px;padding:0 var(--dj-space-3);border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;}

/* Fields of «Детали» (phase 2): a link row is its value across the whole row; the name is cut only when it is longer. */
.te-value-line{grid-column:2 / 4;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.te-sheet-line{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;}
.te-sheet-line[hidden]{display:none;}
.te-pin{min-inline-size:44px;min-block-size:44px;border:0;background:none;color:var(--muted);cursor:pointer;}
.te-pin[aria-pressed="true"]{color:var(--accent);}
.te-choices{display:flex;flex-direction:column;}
/* Tree depth: one step of the spacing scale per level (8б-2). */
.te-choice{padding-inline-start:calc(var(--dj-space-2) + var(--te-depth,0px));}
.te-choice .te-icon{inline-size:auto;}
.te-dot{display:inline-block;inline-size:12px;block-size:12px;border-radius:var(--dj-radius-circle);background:currentColor;}

/* Key block of the kind (phase 3, DS-SCR-08): framed, above the card «Срок · Приоритет»; empty for a Задача. */
.te-key{display:flex;flex-direction:column;gap:var(--dj-space-2);margin-block-end:var(--dj-space-4);padding:var(--dj-space-2) var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-card);}
.te-key[hidden]{display:none;}
.te-key-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2);min-block-size:44px;}
.te-key-choice{display:inline-flex;align-items:center;gap:var(--dj-space-1);min-block-size:44px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:none;color:var(--ink);font:inherit;cursor:pointer;}
.te-key-word{color:var(--muted);}
.te-caret{display:inline-grid;place-items:center;color:var(--muted);}
.te-target{inline-size:6em;min-block-size:44px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);font:inherit;text-align:end;}
.te-key .te-kinds{grid-template-columns:repeat(2,1fr);margin:0;}
.te-toggle{justify-self:start;min-block-size:44px;padding:0 var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-pill);background:none;color:var(--muted);font:inherit;cursor:pointer;}
.te-toggle[aria-pressed="true"]{background:var(--bg);color:var(--ink);font-weight:var(--dj-text-heading-weight);}
.te-key>.te-toggle{align-self:start;}
.te-source{grid-template-columns:minmax(0,1fr) auto auto;gap:var(--dj-space-1);}
.te-source .te-row{border-block-end:0;min-block-size:44px;}
.te-more{display:inline-grid;place-items:center;min-inline-size:44px;min-block-size:44px;padding:0;border:0;background:none;color:var(--muted);font:inherit;cursor:pointer;}
.te-section[hidden]{display:none;}

/* The reason a save was refused, under the head; the window shakes a little at the same time. */
.te-error{margin:0 var(--dj-space-4);padding:var(--dj-space-1) 0;color:var(--accent);font-size:var(--dj-text-secondary-size);}
.te-error[hidden]{display:none;}

/* Motion: the window rises from the bottom of the screen and leaves the same way (the motion of the current menu). */
@keyframes te-rise{from{translate:0 100vh;opacity:.15;}to{translate:0 0;opacity:1;}}
@keyframes te-shake{0%,100%{translate:0 0;}20%{translate:-6px 0;}40%{translate:5px 0;}60%{translate:-4px 0;}80%{translate:2px 0;}}
.te-host[data-te-motion="wait"]>.te-window{translate:0 100vh;opacity:.15;}
.te-host[data-te-motion="in"]>.te-window{animation:te-rise .45s cubic-bezier(.22,.68,.24,1);}
.te-host[data-te-motion="out"]{pointer-events:none;}
.te-host[data-te-motion="out"]>.te-window{translate:0 100vh;opacity:.1;transition:translate .42s cubic-bezier(.5,0,.75,.4),opacity .42s ease;}
.te-window[data-te-shake]{animation:te-shake .32s ease-out;}
@media (prefers-reduced-motion:reduce){
 .te-host[data-te-motion]>.te-window,.te-window[data-te-shake]{animation:none;transition:none;translate:none;opacity:1;}
}

/* «Отслеживать» under «Срок» (phase 4): a three-way segment, then the condition for a period. */
.te-track{grid-template-columns:44px minmax(0,1fr);row-gap:var(--dj-space-1);padding-block:var(--dj-space-2);}
.te-track .te-track-kinds{grid-column:2 / 3;grid-template-columns:repeat(3,1fr);margin:0 var(--dj-space-2) 0 0;}
.te-track-line{grid-template-columns:minmax(0,1fr);padding:var(--dj-space-1) var(--dj-space-3);}
.te-track-line>.te-icon{display:none;}
.te-track-line .te-key-line{flex-wrap:nowrap;}
.te-track-line .te-target{inline-size:4em;}

/* Fixes after the phase 5 review (owner 2026-10-27). */
/* Phone: the Workspace puts the Dock (DS-NAV-04) into the host after the window; the window takes the rest of the height. */
@media (max-width:599px){
 .te-host{grid-template-rows:minmax(0,1fr) auto;align-items:stretch;}
 .te-window{block-size:auto;min-block-size:0;}
 .te-host>.dj-system-dock{justify-self:stretch;}
}
/* Priority: the flag and the status circle take the colour of the priority (tokens --dj-priority-N; the shared .priority-flag is rewritten by v58.js). */
.te-flag{display:inline-grid;place-items:center;min-inline-size:44px;min-block-size:44px;padding:0;border:0;background:none;cursor:pointer;}
.te-digit.te-flag[aria-pressed="true"]{background:var(--bg);border-radius:var(--dj-radius-pill);}
.te-p1{color:var(--dj-priority-1);}.te-p2{color:var(--dj-priority-2);}.te-p3{color:var(--dj-priority-3);}.te-p4{color:var(--dj-priority-4);}
.te-circle[class*="te-p"]::before{border-color:currentColor;}
/* The icon of a flag takes the colour of its button (v22.css paints every .v22-icon with the accent). */
.te-flag .v22-icon{color:inherit;}
/* A chosen flag keeps its colour (the chosen digit rule above paints it with the ink). */
.te-flag.te-p1{color:var(--dj-priority-1);}.te-flag.te-p2{color:var(--dj-priority-2);}.te-flag.te-p3{color:var(--dj-priority-3);}.te-flag.te-p4{color:var(--dj-priority-4);}
.te-window[data-te-status="done"] .te-circle[class*="te-p"]::before{background:currentColor;}
.te-danger{color:var(--accent);}
/* Comments: text, attachments, decision; edit and delete at the end of the row. */
.te-comment{grid-template-columns:minmax(0,1fr) auto auto;align-items:start;}
.te-comment-body{display:flex;flex-direction:column;gap:var(--dj-space-1);min-inline-size:0;}
.te-comment-text{margin:0;overflow-wrap:anywhere;}
.te-attachments{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);}
.te-attachment{display:inline-flex;align-items:center;gap:var(--dj-space-1);color:var(--accent);}
.te-link{align-self:start;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:var(--dj-text-secondary-size);cursor:pointer;}
.te-comment-compose{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;}
.te-host :is(button,[role="button"],[role="tab"],[role="menuitem"],summary,a,input,textarea,[contenteditable="true"]){-webkit-tap-highlight-color:transparent;}

/* ==== design/ui-typography.css ==== */
/* Bundled fonts; provenance, sizes and exact hashes: assets/fonts/ui/manifest.json. */
@font-face{font-family:Onest;src:url('assets/fonts/ui/onest-variable.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap;}
@font-face{font-family:'Cormorant Infant';src:url('assets/fonts/ui/cormorant-infant-600.woff2') format('woff2');font-style:normal;font-weight:var(--dj-text-heading-weight);font-display:swap;}
@font-face{font-family:'Dolijane Phosphor';src:url('assets/fonts/ui/phosphor-regular.woff2') format('woff2');font-style:normal;font-weight:var(--dj-text-reading-weight);font-display:block;}
@font-face{font-family:'Dolijane Phosphor Fill';src:url('assets/fonts/ui/phosphor-fill.woff2') format('woff2');font-style:normal;font-weight:var(--dj-text-reading-weight);font-display:block;}
:root{--dj-font-functional:Onest,system-ui,-apple-system,'Segoe UI',sans-serif;--dj-font-display:'Cormorant Infant',Georgia,serif;--font:var(--dj-font-functional)!important;--font-ui:var(--dj-font-functional)!important;--font-display:var(--dj-font-functional)!important;}
html body{font-family:var(--dj-font-functional);font-synthesis:none;}
html body :is(button,input,textarea,select,nav,aside,.task-row,.tp-row,.settings-section,.rightbar,.modal,.dj-temporary-panel,.v75-mobile-route,.v76-active-route strong,.r21-editor-name,.r27-contact-dialog){font-family:var(--dj-font-functional)!important;font-synthesis:none;}
html body :is(.page-title,.page-title h1,.page-title h2){font-family:var(--dj-font-functional)!important;font-weight:var(--dj-text-heading-weight)!important;}
html[data-interface-design="claude"] body :is(.page-title,.page-title h1,.page-title h2,.v76-active-route strong,.v16-cathedral-title,.v16-wall-title){font-family:var(--dj-font-display)!important;font-weight:var(--dj-text-heading-weight)!important;}
html body :is(.tp-title,.task-row-title,.notes-card h3,.r21-editor-name,input,textarea,.modal h2,.dj-editor-shell h2){font-family:var(--dj-font-functional)!important;}
/* Owner correction: the title of an opened project, idea or note is a display heading in Modern.
   Task, numeric goal and sensor titles, titles in lists, note content and every other field stay Onest (D-156). */
html[data-interface-design="claude"] body :is(.notes-title,.r21-editor-head>input[name="name"]){font-family:var(--dj-font-display)!important;font-weight:var(--dj-text-heading-weight)!important;font-size:var(--dj-text-title-size)!important;line-height:var(--dj-text-heading-line-height)!important;}
/* The title of a task, a numeric goal and a sensor is one typography in every style, colour included. */
html body :is(.v35-title-editor,[data-v40-goal-form] input[name="titleRaw"],[data-v39-goal-form] input[name="titleRaw"]){color:var(--ink)!important;}
html body :is(.dj-dock-clock,.count-chip,.chip-count,.dj-metric,.tp-time,.sync-fingerprint){font-variant-numeric:tabular-nums;}
/* Author formatting is document content. Do not synthesize UI styles or remove authored emphasis. */
.notes-text{font-synthesis:weight style!important;}
/* Размер служебного значка задаёт окружение через --dj-icon-size: стандарт — по умолчанию и в кнопках, компакт — рядом со вторичным текстом строки. */
:root,:is(button,[role="button"]){--dj-icon-size:var(--dj-icon-standard,20px);}
:is(.tp-line2,.tp-line3),:is(.tp-line2,.tp-line3) :is(button,[role="button"]),.tp-artifact,.focus-label{--dj-icon-size:var(--dj-icon-compact,16px);}
.tp-artifact:is(.tp-menu-fallback,[data-v18-habit-menu]){--dj-icon-size:var(--dj-icon-standard,20px);}
/* Заглавный значок раздела — размер «акцент». */
.v22-page-title-row{--dj-icon-size:var(--dj-icon-accent,52px);--dj-icon-color:var(--accent);}
/* Цвет служебного значка — цвет своего контрола; ведущий значок строки поля редактора и пункта меню — акцент, как у нарисованных значков соседних строк. */
:is(.r26-time-row,.r23-project-row,.v22-nav-icon,.v53-search-icon,.v19-pickers-chips>button,.v19-desc-row>button,.v18-reminder,.v76-header-button,.notes-card-menu>button,.notes-selection:is([data-kind=options],[data-kind=document],[data-kind=io],[data-kind="text-context"])>button){--dj-icon-color:var(--accent);}
.dj-utility-symbol,.dj-authored-utility{font-family:'Dolijane Phosphor'!important;font-size:var(--dj-icon-size,20px)!important;font-weight:400!important;font-style:normal!important;line-height:var(--dj-icon-size,20px)!important;width:var(--dj-icon-size,20px)!important;height:var(--dj-icon-size,20px)!important;flex:0 0 var(--dj-icon-size,20px);display:inline-block;vertical-align:middle;font-synthesis:none;font-variant:normal;letter-spacing:0;text-transform:none;white-space:nowrap;text-rendering:optimizeLegibility;color:var(--dj-icon-color,inherit);}
.dj-utility-symbol.dj-utility-filled{font-family:'Dolijane Phosphor Fill'!important;}

/* Optical artwork follows the CSS slot, never devicePixelRatio. */
.dj-authored-utility.v22-icon-large{--dj-icon-size:var(--dj-icon-accent);}
.dj-sized-entity .dj-pack-size{display:none}
.dj-sized-entity .dj-pack-size-20{display:inline}
.dj-sized-entity.v22-icon-large .dj-pack-size{display:none}
.dj-sized-entity.v22-icon-large .dj-pack-size-52{display:inline}
:is(.tp-artifact,.tp-goal-mark,.tp-sub-summary-lead,.notes-card-meta,.dj-create-plus) .dj-sized-entity .dj-pack-size{display:none}
:is(.tp-artifact,.tp-goal-mark,.tp-sub-summary-lead,.notes-card-meta,.dj-create-plus) .dj-sized-entity .dj-pack-size-16{display:inline}
:is(.v22-style-picker,.v22-icon-style-row) .dj-sized-entity .dj-pack-size{display:none}
:is(.v22-style-picker,.v22-icon-style-row) .dj-sized-entity .dj-pack-size-28{display:inline}
.dj-authored-utility .dj-authored-size{display:none;}
.dj-authored-utility .dj-authored-size-20{display:inline;}
.dj-authored-utility.v22-icon-large .dj-authored-size{display:none;}
.dj-authored-utility.v22-icon-large .dj-authored-size-52{display:inline;}
:is(.tp-artifact,.tp-goal-mark,.tp-sub-summary-lead,.notes-card-meta,.dj-create-plus) .dj-authored-utility{--dj-icon-size:var(--dj-icon-compact);}
:is(.tp-artifact,.tp-goal-mark,.tp-sub-summary-lead,.notes-card-meta,.dj-create-plus) .dj-authored-utility .dj-authored-size{display:none;}
:is(.tp-artifact,.tp-goal-mark,.tp-sub-summary-lead,.notes-card-meta,.dj-create-plus) .dj-authored-utility .dj-authored-size-16{display:inline;}
:is(.v22-style-picker,.v22-icon-style-row) .dj-authored-utility{--dj-icon-size:var(--dj-icon-large);}
:is(.v22-style-picker,.v22-icon-style-row) .dj-authored-utility .dj-authored-size{display:none;}
:is(.v22-style-picker,.v22-icon-style-row) .dj-authored-utility .dj-authored-size-28{display:inline;}
/* Modern: the title of a screen-level empty state and of the interface tour is a display heading (D-156).
   Detail notices inside a screen, the description and the button stay Onest. */
html[data-interface-design="claude"] body .dj-empty-state:not(.dj-empty-state--detail)>h2{font-family:var(--dj-font-display);font-weight:var(--dj-text-heading-weight);font-size:var(--dj-text-heading-size);line-height:var(--dj-text-heading-line-height);}
html[data-interface-design="claude"] body .dj-tour-card h1{font-family:var(--dj-font-display);font-weight:var(--dj-text-heading-weight);line-height:var(--dj-text-heading-line-height);}

/* ==== ui-followup.css ==== */
/* Owner-approved corrections; typography roles and authored document text remain intact. */
html[data-dj-workspace-controls] body .app-shell{height:calc(var(--dolijane-viewport-height,100dvh) - var(--dj-banner-height,0px))!important;}
html[data-dj-workspace-controls]{scrollbar-gutter:auto;overflow:hidden;}
/* The workspace and Inspector keep their own scrolling; native scrollbars are
   visually suppressed so the stable tab header and Dashboard edge do not gain
   a second draggable-looking vertical rail. */
@media(min-width:600px){html[data-dj-workspace-controls] .dj-workspace>main.main{scrollbar-width:none;-ms-overflow-style:none;}html[data-dj-workspace-controls] .dj-workspace>main.main::-webkit-scrollbar,html[data-dj-workspace-controls] .dj-inspector-content::-webkit-scrollbar{display:none;width:0;height:0}html[data-dj-workspace-controls] .dj-inspector-content{scrollbar-width:none;-ms-overflow-style:none;}}
.sync-approval-dialog,.dj-timezone-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(var(--dolijane-viewport-height,100dvh) - 32px);box-sizing:border-box;overflow:auto;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--dj-radius-panel,16px);padding:var(--dj-space-4);font:var(--dj-text-reading-weight) var(--dj-text-reading-size)/var(--dj-text-caption-line-height) var(--dj-font-functional);}
.sync-approval-dialog::backdrop,.dj-timezone-dialog::backdrop{background:#0006;}
.sync-approval-dialog h2,.dj-timezone-dialog h2{font:var(--dj-text-heading-weight) var(--dj-text-heading-size)/var(--dj-text-title-line-height) var(--dj-font-functional);}
.sync-approval-dialog :is(button,textarea),.dj-timezone-dialog button{min-height:44px;font:inherit;max-width:100%;}
.sync-approval-dialog textarea{width:100%;box-sizing:border-box;}
.sync-approval-dialog footer,.dj-timezone-dialog footer{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);justify-content:flex-end;}
.dj-timezone-dialog label{display:flex;gap:var(--dj-space-2);align-items:center;}.dj-timezone-dialog input{min-width:24px;min-height:24px;}
.dj-timezone-banner{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);padding:var(--dj-space-2);background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line);position:relative;z-index:20;}.dj-timezone-banner button{min-height:44px;}
html body [data-ws-action="assistant"]:has([data-ws-silent="true"]){background:var(--accent-soft)!important;color:var(--ink)!important;}
html body [data-ws-silent="true"]{background:var(--accent-soft)!important;filter:saturate(.55);opacity:1;}
html body [data-ws-silent="true"] :is(svg,.dj-assistant-art){opacity:.72;}
/* Active utility affordances never inherit metadata fade.  Disabled and silent
   Assistant states keep their intentional state treatment. */
html body :is(button,a[role="button"]):not(:disabled):not([aria-disabled="true"]):has(.dj-utility-symbol,.dj-authored-utility){opacity:1!important;}
html body :is(button,a[role="button"]):not(:disabled):not([aria-disabled="true"]) :is(.dj-utility-symbol,.v22-role-utility){opacity:1!important;}
html body .dj-utility-symbol:not([data-ws-assistant-microphone] .dj-utility-symbol){transform:none!important;filter:none!important;}
html body .dj-standard-a-actions>.dj-standard-a-button:is(:disabled,[aria-disabled="true"]),html body :is(button,a[role="button"]):is(:disabled,[aria-disabled="true"]):has(.dj-utility-symbol,.dj-authored-utility){opacity:.4!important;}
/* Utility controls remain comfortable tap targets even when an older compact
 * component supplied a 26–38px visual box. The glyph itself stays 20px. */
html body .v56-month-nav>[data-v56-calendar-shift],
html body .notes-button:not(.notes-page-footer .notes-button):not(.notes-selection .notes-button):not(.notes-project-badge),
html body .v49-ritual-expand,
html body .v26-complete-ritual.v22-icon-button{inline-size:44px!important;block-size:44px!important;min-inline-size:44px!important;min-block-size:44px!important;padding:0!important;display:grid!important;place-items:center!important;}
/* One Standard A pair for every explicit-save object editor. */
.dj-standard-a-header{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0;margin-bottom:var(--dj-space-3);}
.dj-standard-a-header>:is(input,h2){flex:1 1 auto;min-width:0;margin:0;}
/* Legacy object headers forced nowrap/absolute controls. Keep the canonical
   pair in flow; local-only status occupies its own row beneath the title. */
html body .modal:not(.entity-menu-v2)>.dj-standard-a-header{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:var(--dj-space-2)!important;}
html body .modal>.dj-standard-a-header>:is(input,h2,.v40-title-wrap,.v17-stone-title-group){flex:1 1 0!important;min-width:0!important;width:auto!important;}
html body .modal>.dj-standard-a-header>.v20-wall-title{padding-right:var(--dj-space-1)!important;}
html body .modal:not(.entity-menu-v2)>.dj-standard-a-header>.dj-standard-a-actions{position:static!important;margin-left:auto!important;}
html body .modal:not(.entity-menu-v2)>.dj-standard-a-header>.dj-standard-a-actions{align-self:flex-start!important;}
html body .modal>.dj-standard-a-header>.v35-title-editor{flex:1 1 0!important;width:auto!important;min-width:0!important;max-width:none!important;}
html body .modal>.dj-standard-a-header>.r26-editor-actions:empty{display:none!important;}
html body .dj-standard-a-actions:not(.r21-editor-actions){display:flex!important;align-items:center!important;gap:var(--dj-space-2)!important;flex:0 0 auto!important;width:max-content!important;margin-left:auto!important;order:1000!important;}
html body .dj-standard-a-actions:not(.r21-editor-actions)>.dj-standard-a-button{--dolijane-mobile-control-size:44px!important;display:grid!important;place-items:center!important;box-sizing:border-box!important;flex:0 0 44px!important;width:44px!important;min-width:44px!important;max-width:44px!important;height:44px!important;min-height:44px!important;max-height:44px!important;inline-size:44px!important;block-size:44px!important;min-inline-size:44px!important;max-inline-size:44px!important;min-block-size:44px!important;max-block-size:44px!important;padding:0!important;border-radius:var(--dj-radius-circle,50%)!important;aspect-ratio:1!important;opacity:1!important;transform:none!important;}
html body .dj-standard-a-actions:not(.r21-editor-actions)>.dj-standard-a-cancel{order:1!important;background:var(--panel)!important;border:1px solid var(--line)!important;color:var(--ink)!important;}
html body .dj-standard-a-actions:not(.r21-editor-actions)>.dj-standard-a-ok{order:2!important;background:var(--dj-ok-background,var(--dj-control-accent,var(--accent)))!important;border:var(--dj-ok-border,1px solid var(--dj-control-accent,var(--accent)))!important;color:var(--dj-ok-color,#fff)!important;}
/* Deadline and «Не сейчас» share one form; their OK is a standalone icon. */
.dj-deadline-form{--dj-ok-background:transparent;--dj-ok-border:0;--dj-ok-color:var(--accent)}
html body .dj-deadline-form .dj-standard-a-actions>.dj-standard-a-ok{box-shadow:none}
html body .dj-deadline-form .dj-standard-a-ok :is(.v22-icon,svg){color:inherit}
.notes-editor-head{--dj-ok-background:transparent;--dj-ok-border:0;--dj-ok-color:var(--accent)}
html body .notes-editor-head .dj-standard-a-actions>.dj-standard-a-ok{box-shadow:none!important}
html body .notes-editor-head .dj-standard-a-ok :is(.v22-icon,svg){color:inherit}
html body .dj-standard-a-actions>.dj-standard-a-button>.dj-utility-symbol{display:block!important;opacity:1!important;color:inherit!important;width:20px!important;height:20px!important;inline-size:20px!important;block-size:20px!important;}
.dj-standard-b{display:grid;gap:var(--dj-space-2);min-width:0;}
.dj-standard-b>p{margin:0;font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional);overflow-wrap:anywhere;}
.dj-standard-b-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--dj-space-2);}
.dj-standard-b-actions>.btn{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:44px;min-height:44px;padding:var(--dj-space-2) var(--dj-space-3);border-radius:var(--dj-radius-pill);white-space:normal;text-align:center;}
.dj-standard-b-actions>.dj-standard-b-confirm{background:transparent;color:var(--accent);border-color:var(--accent);}
html body [data-v40-goal-form]>.v40-goal-head>.dj-standard-a-actions{grid-column:-2/-1!important;grid-row:1!important;justify-self:end!important;}
html body :is([data-task-form],[data-v40-goal-form],form[data-r21-entity-form],.r27-contact-dialog,.r25-tag-dialog,[data-v17-ritual-editor],[data-v56-action-editor])>:is(.modal-actions,.r21-editor-footer,.r25-dialog-actions,.dj-editor-footer)[hidden]{display:none!important;margin:0!important;padding:0!important;height:0!important;min-height:0!important;}
.dj-section-list{display:flex;flex-direction:column;gap:var(--dj-space-1);}.dj-section-list button{min-height:44px;display:flex;align-items:center;gap:var(--dj-space-3);padding:var(--dj-space-2) var(--dj-space-3);font:inherit;text-align:left;background:transparent;color:var(--ink);border:0;border-radius:var(--dj-radius-button,8px);}
.dj-section-list .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px);}.dj-temporary-content details>summary{cursor:pointer;min-height:44px;padding:var(--dj-space-2);box-sizing:border-box;}.dj-sections-assistant{margin-top:var(--dj-space-2);border-top:1px solid var(--line)!important;}
.dj-inspector-head [data-dj-close],.dj-temporary-panel>header [data-ws-action="close-panel"]{width:44px;min-width:44px;height:44px;min-height:44px;border-radius:var(--dj-radius-circle,50%)!important;background:var(--accent-soft)!important;color:var(--ink)!important;border:1px solid var(--line)!important;padding:var(--dj-space-2);}
.dj-inspector-head [data-dj-close] .v22-icon{width:var(--dj-icon-large,28px);height:var(--dj-icon-large,28px);}
.dj-temporary-panel>header :is(.dj-rose-header-favorite,.dj-rose-header-search){width:44px;min-width:44px;height:44px;min-height:44px;display:grid;place-items:center;border-radius:var(--dj-radius-circle,50%);background:var(--panel);color:var(--accent);border:1px solid var(--line);padding:0;}.dj-temporary-panel>header :is(.dj-rose-header-favorite,.dj-rose-header-search) .v22-icon{width:20px;height:20px;}
.dj-today-total{display:flex;gap:var(--dj-space-2);align-items:center;flex-shrink:0;margin-left:auto;font-variant-numeric:tabular-nums;}.dj-today-total [data-dj-today-metric]{display:flex;gap:var(--dj-space-2);align-items:center;}.dj-today-total small{font:var(--dj-text-reading-weight) var(--dj-text-secondary-size)/var(--dj-text-body-line-height) var(--dj-font-functional);color:var(--muted);}.dj-today-total .count-chip{display:grid;place-items:center;min-width:32px;min-height:32px;padding:var(--dj-space-1);box-sizing:border-box;border-radius:var(--dj-radius-circle,50%);border:1px solid var(--line);font:var(--dj-text-body-weight) var(--dj-text-caption-size)/var(--dj-text-heading-line-height) var(--dj-font-functional);background:transparent;color:var(--muted);}.dj-today-total .count-chip.has-tasks{background:var(--panel);border-color:var(--line);color:var(--ink);}.dj-today-overdue-move{display:none;align-items:center;gap:var(--dj-space-2);min-height:44px;padding:var(--dj-space-2);border:0;border-radius:var(--dj-radius-button,8px);background:transparent;color:var(--accent);font:var(--dj-text-body-weight) var(--dj-text-secondary-size)/var(--dj-text-body-line-height) var(--dj-font-functional);}.dj-today-overdue-move .v22-icon{width:20px;height:20px;}.dj-today-empty-toggle{display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;border:0;border-radius:var(--dj-radius-circle,50%);background:transparent;color:var(--muted);}.dj-today-empty-toggle .v22-icon{width:20px;height:20px;transition:transform .16s ease;}.dj-today-empty-toggle.is-open .v22-icon{transform:rotate(180deg);}@media(max-width:599px){html[data-v74-route="today"] .dj-today-overdue-move{display:inline-flex;}}@media(prefers-reduced-motion:reduce){.dj-today-empty-toggle .v22-icon{transition:none;}}
/* A zero badge is invisible but keeps its slot, so adjacent dates, stars and
   action buttons stay on the same axis when the value changes. */
html body [data-dj-zero-count="true"][data-dj-zero-count="true"]{visibility:hidden!important;}
@media(max-width:1024px){html body [data-dj-list-filter-menu]{display:none!important;}}
/* An open phone Overview begins with its shared header. The closed-state
   reveal belongs to the dock boundary only and must never reserve a row here. */
html body .dj-inspector-head{cursor:pointer;}
html body .dj-inspector-head :is(button,a,input,textarea,select,[role="button"]){cursor:auto;}
@media(max-width:599px){html body .rightbar.dj-inspector>.dj-dashboard-chevron{display:none!important;}html body .rightbar.dj-inspector:has(>.dj-dashboard-chevron)>.dj-inspector-head,html body .rightbar.dj-inspector>.dj-inspector-head{padding-top:var(--dj-space-2)!important;}}
html body .dj-entity-create-row{display:flex;flex-wrap:nowrap!important;gap:var(--dj-space-2);min-width:0;}
html body .dj-entity-create-row>.dj-entity-create{flex:0 0 auto!important;white-space:nowrap;min-height:44px!important;padding:var(--dj-space-2)!important;font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)!important;}
html body .dj-entity-create-row>.dj-entity-create[hidden]{display:none!important;}
html body .v76-wide-more-items{display:flex;flex-direction:column;width:100%;gap:0;padding:0;}
html body .v76-wide-more-items[hidden]{display:none!important;}
html body .sidebar [data-v76-in-more][hidden],html body .sidebar .nav-group[hidden]{display:none!important;}
html body .sidebar .v76-wide-more-items>button{min-height:44px;display:flex;align-items:center;gap:var(--dj-space-3);text-align:left;width:100%;padding:var(--dj-space-2) var(--dj-space-3);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional);border:0;background:transparent;color:var(--ink);box-sizing:border-box;border-radius:var(--dj-radius-button,8px);}
html body .sidebar .v76-wide-more-items>button:is(:hover,.active){background:var(--accent-soft);}
@media(max-width:599px){html body .dj-system-dock{border-top:2px solid color-mix(in srgb,var(--ink) 35%,var(--line));}html body .dj-system-dock>.dj-dashboard-chevron .dj-reveal-line{width:96px!important;height:8px!important;background:color-mix(in srgb,var(--ink) 60%,var(--line));}}
[data-mobile-navigation-settings]{margin-block:var(--dj-space-4,var(--dj-space-4));padding-block:var(--dj-space-4,var(--dj-space-4));}
html body .v76-wide-more-items>button .v22-icon{width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);flex:0 0 var(--dj-icon-standard,20px);}
html body .v18-comments>.compact-feed[hidden]{display:none!important;}
html body .v18-comments>.compact-feed:not([hidden]){display:block!important;}
html body .v19-task-menu .v40-measure-row{flex-wrap:wrap!important;overflow:visible!important;gap:var(--dj-space-2)!important;padding:var(--dj-space-2)!important;}
html body .v19-task-menu .v40-measure-row>.v19-measure-cmp{margin-left:0!important;}
html body .v19-task-menu .v40-measure-row>:is(input[name="target"],select[name="unit"]){height:44px!important;min-height:44px!important;min-width:80px!important;width:auto!important;flex:1 1 80px;max-width:none!important;font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)!important;}
html body .v19-task-menu .v19-measure-cmp>select.v19-cmp-select,html body .v19-task-menu .v40-measure-row>select.v19-completion-select{height:44px!important;min-height:44px!important;font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)!important;}
html body .v19-task-menu .v40-measure-row>.dj-goal-mode{display:flex!important;flex:1 1 100%!important;width:100%!important;gap:0;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);overflow:hidden;}
html body .v19-task-menu .dj-goal-mode>[data-v40-mode]{display:block!important;flex:1;min-width:0;min-height:44px!important;height:auto!important;padding:var(--dj-space-2)!important;border:0!important;border-radius:0!important;font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)!important;}
html body .v19-task-menu .dj-goal-mode>[aria-pressed="true"]{background:var(--dj-control-accent,var(--accent))!important;color:white!important;}
html body .v19-task-menu :is(.subtask-panel>.section-head,.v18-comments-head,.v19-datchik-head){cursor:pointer;}
html body .v19-task-menu .r27-goal-row{min-height:var(--dj-task-property-min-height);padding:var(--dj-space-2) var(--dj-space-3);gap:var(--dj-space-2);flex-wrap:wrap;background:var(--panel);border-color:var(--line);}
html body .v19-task-menu .r27-goal-row .r27-goal-number{min-width:80px!important;min-height:44px!important;height:44px!important;flex:1 1 80px;max-width:140px;font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-button,8px);}
html body .v19-task-menu .r27-goal-row .r27-goal-value{min-height:44px;padding:var(--dj-space-2);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional);text-decoration:none;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);}
.r27-goal-segments{display:flex;width:100%;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);overflow:hidden;}
html body .r27-goal-segments>button{flex:1;min-height:44px;padding:var(--dj-space-2);border:0!important;border-radius:0!important;font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional);}
html body .r27-goal-segments>[aria-pressed="true"]{background:var(--dj-control-accent,var(--accent));color:white;}
@media(min-width:600px){
 @media(max-width:1024px){
  /* The left rail keeps a 64px layout track. Its expanded menu is an overlay;
     the right Overview is the only panel that consumes workspace width. */
  html[data-dj-workspace-controls] body .app-shell{grid-template-columns:64px minmax(0,1fr)!important;}
 }
 html body .sidebar .v76-wide-more{display:block!important;flex-shrink:0;}
 /* A tablet panel is born in its final rail geometry. It never starts as a
    centred phone sheet while workspace-controls applies its side layout. */
 html[data-dj-workspace-controls] body :not(.dj-inspector-content)>.dj-temporary-panel[data-ws-panel]{left:auto!important;right:64px!important;bottom:0!important;width:min(360px,calc(100% - 64px))!important;max-height:100%!important;border:1px solid var(--line)!important;border-right:0!important;animation:none!important;}
 html body [data-ws-owner][data-ws-side="true"]:not([data-ws-shared-overview="true"]){--dj-dock-height:0px;grid-template-columns:minmax(0,1fr) 64px!important;grid-template-rows:minmax(0,1fr)!important;}
 html body [data-ws-owner][data-ws-side="true"][data-ws-overview="true"][data-ws-overlay="false"]:not([data-ws-shared-overview="true"]){grid-template-columns:minmax(0,1fr) var(--dj-inspector-width)!important;}
 html body [data-ws-owner][data-ws-side="true"]>main.main,html body [data-ws-owner][data-ws-side="true"]>form{grid-row:1!important;grid-column:1!important;height:100%!important;}
 html body [data-ws-owner][data-ws-side="true"]>.dj-workspace-boundary{display:none!important;}
 html body [data-ws-owner][data-ws-side="true"]>.dj-system-dock{grid-column:2!important;grid-row:1!important;align-self:end;display:flex!important;flex-direction:column;justify-content:flex-end;width:64px;height:100%;min-height:0;padding:var(--dj-space-2);border:0;border-left:1px solid var(--line);gap:var(--dj-space-2);background:var(--panel);}
 html body [data-ws-owner][data-ws-side="true"]>.dj-system-dock>.dj-dashboard-chevron{order:-1;width:44px!important;min-height:44px!important;height:44px!important;margin:0!important;}
 html body [data-ws-owner][data-ws-side="true"]>.dj-inspector{grid-column:2!important;grid-row:1!important;position:relative!important;inset:auto!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;box-sizing:border-box;display:flex!important;flex-direction:column;border-left:1px solid var(--line);}
 html body [data-ws-owner][data-ws-side="true"][data-ws-overlay="true"]>.dj-inspector{grid-column:1 / -1!important;grid-row:1 / -1!important;position:absolute!important;inset:0 0 0 auto!important;width:min(var(--dj-inspector-width),calc(100% - 64px))!important;height:auto!important;}
 html body .dj-inspector>.dj-system-dock{position:relative;flex-shrink:0;display:flex!important;flex-direction:row;justify-content:flex-end;gap:var(--dj-space-2);width:100%;height:64px;min-height:64px;box-sizing:border-box;border-top:1px solid var(--line);padding:var(--dj-space-2);background:var(--panel);}
 html body .dj-inspector>.dj-system-dock>button{flex:0 0 48px;width:48px!important;height:48px!important;}
 html body .dj-inspector>.dj-inspector-content{flex:1;min-height:0;overflow:auto;}
 html body .notes-editor-body[data-ws-owner][data-ws-side="true"]{grid-template-rows:minmax(0,1fr) auto!important;}
 html body .notes-editor-body[data-ws-owner][data-ws-side="true"]>.dj-system-dock,html body .notes-editor-body[data-ws-owner][data-ws-side="true"]>.dj-inspector{grid-row:1 / -1!important;}
 html body .notes-editor-body[data-ws-owner][data-ws-side="true"]>.notes-editor-tools{grid-column:1!important;grid-row:2!important;}
 html body .dj-temporary-panel{bottom:0;right:64px;}
}
.dj-choice-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2,var(--dj-space-2));min-height:44px;width:100%;text-align:left;white-space:normal;}
.dj-choice-trigger>span{min-width:0;overflow-wrap:anywhere;}
.dj-choice-menu{position:fixed;z-index:40;overflow:auto;overscroll-behavior:contain;padding:var(--dj-space-1,var(--dj-space-1));border:1px solid var(--line);border-radius:var(--dj-radius-popup);background:var(--panel);color:var(--ink);box-shadow:var(--shadow);}
.dj-choice-menu>button{display:block;width:100%;min-height:44px;border:0;border-radius:var(--dj-radius-popup-row);padding:var(--dj-space-2,var(--dj-space-2)) var(--dj-space-3,var(--dj-space-3));background:transparent;color:inherit;font:inherit;text-align:left;white-space:normal;overflow-wrap:anywhere;}
.dj-choice-menu>button:is(:hover,:active,[aria-selected="true"]){background:var(--accent-soft);}
.v17-project-archive-bottom>[data-toggle-project-archive]{padding:0!important}
@media(max-width:1024px){
 html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu :is(.dj-state-more,.v36-subtasks-more,[data-v18-comments-toggle],.v76-mobile-priority){box-sizing:border-box;flex:0 0 44px;width:44px;min-width:44px;height:44px;min-height:44px;inline-size:44px;min-inline-size:44px;}
 html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v76-mobile-priority{flex-basis:44px!important;width:44px!important;min-width:44px!important;}
 html body .v19-task-menu.v19-task-menu.v19-task-menu.v19-task-menu .v19-pickers-chips :is(.v36-artifact,.r27-contact-chip){min-height:44px;max-height:none;}
 html body main.main :is([data-new-task],[data-v17-empty-new-wall],[data-v51-period],[data-calendar-mode],.v56-month-title,.v56-day,.v56-section-head,.v57-section-head,.v16-tag-section button,.v17-stone-empty button,.v41-settings button,.cs-actions button,[data-edit-ritual],.v27-ritual-add-task,[data-toggle-project-archive],[data-v18-open-habit-archive],[data-v56-action-archive]){min-height:44px;}
 html body main.main :is([data-toggle-project-archive],[data-v18-open-habit-archive],[data-v56-action-archive],[data-v51-period],[data-v39-log-filter],.v24-favorite-toggle,.r27-tag-edit,.v27-ritual-add-task,[data-edit-ritual]){min-width:44px;}
 html body main.main .v16-tag-section :is(.v24-favorite-toggle,.r27-tag-edit){height:44px;width:44px;}
 html body main.main .tp-row :is(button.tp-title,button.tp-artifact,[data-row-menu]){min-height:44px;}
 html body main.main .tp-row :is([data-row-menu],button.tp-artifact.tp-tag-fact){min-width:44px;}
 html body main.main .tp-line3{max-height:none;min-height:44px;overflow:visible;}
 html body main.main .tp-calendar :is(button.tp-title,button.tp-artifact){min-height:44px;}
 html body main.main .tp-calendar button.tp-artifact.tp-tag-fact{min-width:44px;}
 html body main.main .compact-feed [data-feed-add]{min-width:44px;min-height:44px;}
 html body main.main .project-tree-head :is(.project-toggle,.nav-item,.v24-favorite-toggle){min-height:44px;}
 html body main.main .project-tree-head :is(.project-toggle,.v24-favorite-toggle){min-width:44px;}
 html body main.main .dj-object-workspace :is(.r21-icon-button,.dj-object-tab,.dj-object-action){min-height:44px;}
 html body main.main .dj-object-workspace :is(.r21-icon-button,.dj-object-tab){min-width:44px;}
 html body main.main .dj-object-actionbar .dj-object-action{min-height:44px;}
 html body main.main [data-edit-tag]{min-width:44px;}
 html body main.main .v84-title-tool{min-width:44px;}
}
@media(max-width:599px){
 .dj-temporary-panel[data-ws-panel="sections"] :is(.dj-section-grid,.dj-section-list){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--dj-space-2,var(--dj-space-2))!important;}
 .dj-temporary-panel[data-ws-panel="sections"] .dj-rose-menu-tile{display:flex!important;align-items:center!important;justify-content:flex-start!important;flex-direction:row!important;gap:var(--dj-space-2)!important;width:100%!important;min-width:0!important;min-height:64px!important;height:64px!important;padding:var(--dj-space-2)!important;box-sizing:border-box!important;border:1px solid var(--line)!important;border-radius:var(--dj-radius-button,8px)!important;background:var(--panel)!important;color:var(--ink)!important;text-align:left!important;font:var(--dj-text-body-weight) var(--dj-text-body-size,14px)/var(--dj-text-body-line-height) var(--dj-font-functional)!important;}
 .dj-temporary-panel[data-ws-panel="sections"] .dj-rose-menu-tile[aria-current="page"],.dj-temporary-panel[data-ws-panel="sections"] .dj-rose-menu-tile:active{border-color:var(--accent)!important;background:var(--accent-soft)!important;}
 .dj-temporary-panel[data-ws-panel="sections"] .dj-rose-menu-tile .v22-icon{width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important;flex:0 0 var(--dj-icon-large,28px)!important;}
 .dj-temporary-panel[data-ws-panel="sections"] .dj-rose-menu-tile>span{display:-webkit-box;min-width:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;}
 .dj-rose-task-composer{display:none!important;}.dj-temporary-panel[data-ws-panel="task"] .dj-mobile-task-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--dj-space-2);margin:0;padding:0;align-items:center;}.dj-mobile-task-composer input[name="title"]{min-width:0;height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);padding:var(--dj-space-2);font:var(--dj-text-reading-weight) var(--dj-text-body-size,14px)/var(--dj-text-body-line-height) var(--dj-font-functional);}.dj-mobile-task-tools{display:flex;align-items:center;gap:var(--dj-space-2);position:relative;}.dj-mobile-task-tools>button{width:44px;min-width:44px;height:44px;min-height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);display:grid;place-items:center;padding:var(--dj-space-2);}.dj-mobile-task-tools .v22-icon{width:20px;height:20px;}.dj-mobile-task-tools>.priority-flag{font-size:var(--dj-icon-standard);line-height:var(--dj-text-heading-line-height);}.dj-mobile-task-priority{position:absolute;right:0;bottom:calc(100% + 6px);display:flex;gap:var(--dj-space-1);padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);box-shadow:0 8px 24px color-mix(in srgb,var(--ink) 18%,transparent);z-index:2;}.dj-mobile-task-priority button{width:36px;height:36px;border:0;background:transparent;}.dj-mobile-task-composer .priority-menu{z-index:3;}
 html body .dj-system-dock[data-ws-mobile="true"]>.dj-dashboard-chevron{width:48px!important;left:calc(50% - 24px)!important;top:-45px!important;height:44px!important;min-height:44px!important;}
 html body .dj-system-dock[data-ws-mobile="true"]>.dj-dashboard-chevron .dj-reveal-line{width:28px!important;height:8px!important;border:0!important;border-radius:var(--dj-radius-chip) var(--dj-radius-chip) 0 0;background:var(--line,#ddd)!important;box-sizing:border-box;position:absolute;bottom:0;top:auto;left:calc(50% - 14px);}
 html body .dj-system-dock[data-ws-mobile="true"]>.dj-dashboard-chevron .dj-reveal-line::after{content:none!important;}
 html body .dj-system-dock[data-ws-mobile="true"]{border-top:3px solid var(--line,#ddd)!important;}
 html body .dj-system-dock[data-ws-mobile="true"]{grid-template-rows:55px!important;}
 html body .dj-system-dock[data-ws-mobile="true"]>button:not([data-dj-chevron]){height:55px!important;min-height:55px!important;}
 html body .dj-inspector-head{border-left:0!important;box-shadow:none!important;}
 html body .notes-editor-body[data-ws-owner]>.notes-editor-tools{display:grid!important;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);grid-template-rows:44px;gap:0!important;padding:var(--dj-space-2) var(--dj-space-2)!important;width:100%!important;height:56px!important;min-height:56px!important;max-height:56px!important;overflow:hidden!important;box-sizing:border-box;}
 html body .notes-editor-tools>.notes-tools-lane{display:flex;align-items:center;gap:var(--dj-space-2);min-width:0;height:44px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity;}
 .notes-tools-lane[data-note-tools-lane="0"]{grid-column:1;}.notes-tools-lane[data-note-tools-lane="1"]{grid-column:3;}
 html body .notes-tools-lane :is(button,.notes-mode-buttons){flex:0 0 auto;scroll-snap-align:start;}
}
@media(min-width:600px){.notes-tools-lane{display:contents;}}
/* Persistent pair choices use the shared button tokens and wrap at large fonts. */
.dj-mobile-route-choices{display:flex;gap:var(--dj-space-2);flex-wrap:wrap;max-width:100%}
.dj-mobile-route-choices>.btn{display:inline-flex;align-items:center;gap:var(--dj-space-2);min-height:44px;max-width:100%;white-space:normal}
.dj-mobile-route-choices>.btn .v22-icon{flex:0 0 20px;color:inherit}
/* Focus keeps the selected system colour in workspace and Note menus alike. */
html body :is([data-ws-action="focus"],[data-note-action="focus"]){color:var(--dj-control-accent,var(--accent))!important;}
html body :is([data-ws-action="focus"],[data-note-action="focus"]) :is(svg,.v22-icon,.dj-dock-clock){color:var(--dj-control-accent,var(--accent))!important;}
html body .notes-editor .notes-selection button[data-note-action="focus"] svg.v22-icon{color:var(--dj-control-accent,var(--accent))!important;}
/* Mobile grid rules must not revive a hidden reveal in Task editors. */
html body .dj-system-dock[data-ws-mobile="true"]>button.dj-dashboard-chevron[hidden],html body .dj-system-dock>button.dj-dashboard-chevron[hidden],html body .dj-inspector>button.dj-dashboard-chevron[hidden]{display:none!important;}
/* Notes keep the author's inline typography, but the base paper rhythm must not
   add a second paragraph gap after every line. */
.notes-editor .notes-text{line-height:var(--dj-text-reading-line-height)}
.notes-editor .notes-text p,.notes-editor .notes-text div{margin-block:0}
.v69-restore-dialog{max-width:560px}.v69-restore-dialog p{line-height:var(--dj-text-caption-line-height)}.v69-restore-dialog .modal-actions{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);justify-content:flex-end}

/* Композер задачи на телефоне — одна строка: заголовок панели остаётся только для скринридеров (дизайн-система v1.2 §7), закрытие — Back/Esc или повторное нажатие «Задача». */
.dj-temporary-panel>header.dj-temporary-quiet-head{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
.dj-temporary-panel[data-ws-panel="task"]{padding:var(--dj-space-2) var(--dj-space-3);box-sizing:border-box;}
/* Композер задачи, фаза C: чипы распознанного, раскрытие на месте, быстрые подзадачи. */
.dj-temporary-panel[data-ws-panel="task"] .dj-temporary-content{overflow:auto;min-height:0;overscroll-behavior:contain;}
.dj-temporary-panel[data-ws-panel="task"] .dj-temporary-content:has(.dj-mobile-task-priority){overflow:visible;}
.dj-mobile-task-priority button{min-width:44px;min-height:44px;}
.dj-mobile-task-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:var(--dj-space-2);}
.dj-mobile-task-chips[hidden],.dj-mobile-task-more[hidden],.dj-mobile-task-subtasks[hidden]{display:none;}
.dj-qchip{display:inline-flex;align-items:center;gap:0;min-height:36px;padding:0 0 0 var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-pill,999px);background:var(--accent-soft);color:var(--ink);font:inherit;font-size:var(--dj-text-secondary-size,14px);line-height:var(--dj-text-title-line-height);max-width:100%;}
.dj-qchip>span{min-width:0;overflow-wrap:anywhere;}
.dj-qchip>button{flex:0 0 auto;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;border:0;background:transparent;color:inherit;font-size:var(--dj-text-heading-size);line-height:var(--dj-text-heading-line-height);opacity:.7;}
.dj-qchip.is-priority{border-color:var(--p1,var(--accent));}
.dj-qchip.is-suggest{padding:0 var(--dj-space-4);border-style:dashed;background:transparent;color:var(--dj-control-accent,var(--accent));min-height:36px;}
.dj-mobile-task-more{grid-column:1/-1;display:grid;gap:var(--dj-space-2);}
.dj-mobile-task-subtasks{display:grid;}
.dj-qsub{display:flex;align-items:center;gap:var(--dj-space-3);min-height:44px;border-bottom:1px solid var(--line);}
.dj-qsub-dot{flex:0 0 14px;width:14px;height:14px;border:1.5px solid var(--muted,#999);border-radius:var(--dj-radius-circle,50%);}
.dj-qsub-text{flex:1;min-width:0;overflow-wrap:anywhere;}
.dj-qsub>button{flex:0 0 auto;width:44px;min-width:44px;height:44px;min-height:44px;border:0;background:transparent;color:var(--muted);font-size:var(--dj-text-heading-size);line-height:var(--dj-text-heading-line-height);}
.dj-mobile-task-subtask{display:flex;align-items:center;gap:var(--dj-space-3);min-height:48px;}
.dj-mobile-task-subtask>span{flex:0 0 14px;text-align:center;color:var(--muted);font-size:var(--dj-text-heading-size);}
.dj-mobile-task-subtask>input{flex:1;min-width:0;height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);padding:var(--dj-space-2);font:var(--dj-text-reading-weight) var(--dj-text-body-size,14px)/var(--dj-text-body-line-height) var(--dj-font-functional);}
.dj-mobile-task-project-list{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);}
.dj-mobile-task-project-list[hidden]{display:none;}
.dj-qproject{min-height:40px;padding:0 var(--dj-space-4);border:1px solid var(--line);border-radius:var(--dj-radius-pill,999px);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--dj-text-secondary-size,14px);}
.dj-mobile-task-foot{display:flex;align-items:center;gap:var(--dj-space-2);}
.dj-mobile-task-foot .dj-mobile-task-link{min-height:44px;padding:0 var(--dj-space-1);border:0;background:transparent;color:var(--dj-control-accent,var(--accent));font:inherit;text-decoration:none;font-weight:var(--dj-text-heading-weight);}
.dj-mobile-task-foot .dj-mobile-task-create{margin-left:auto;display:grid;place-items:center;width:48px;min-width:48px;height:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--dj-control-accent,var(--accent));font-size:var(--dj-text-title-size);}
.dj-mobile-task-composer.is-expanded input[name="title"]{font-size:var(--dj-text-body-size,16px);}
/* Редактор задачи на телефоне, фаза C: меньше шума. Только задача (не цель с цифрами), только узкий экран. */
@media(max-width:599px){
 /* Название — отдельной строкой на всю ширину: кружок слева, кнопки действий справа сверху. */
 html body .v19-task-menu:not([data-v40-goal-form])>.task-head-v09{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto!important;grid-template-areas:"dot more . actions" "title title title title" "status status status status"!important;align-items:center!important;column-gap:var(--dj-space-2)!important;row-gap:0!important;padding-right:0!important;min-height:0!important;flex-shrink:0!important;}
 html body .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.task-state-check{grid-area:dot!important;align-self:center!important;margin-top:0!important;}
 html body .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.v35-title-editor{grid-area:title!important;width:100%!important;max-width:100%!important;min-width:0!important;order:0!important;}
 html body .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.v76-task-state-wrap{grid-area:more!important;margin:0!important;}
 html body .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.dj-standard-a-actions{grid-area:actions!important;margin:0!important;}
 html body .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.dj-local-status{grid-area:status!important;order:0!important;}
 /* Кнопки «Проект / Тэги / Напоминание / Описание …» — компактные таблетки в несколько строк, а не два столбца по 104 px. */
 html body .v19-task-menu:not([data-v40-goal-form]) .v19-pickers-chips{display:flex!important;flex-wrap:wrap!important;gap:var(--dj-space-2)!important;overflow:visible!important;padding:var(--dj-space-1) 0!important;}
 html body .v19-task-menu:not([data-v40-goal-form]) .v19-pickers-chips::after{display:none!important;}
 html body .dj-entity-editor.v19-task-menu.v19-task-menu.v19-task-menu:not([data-v40-goal-form]) .v19-pickers-chips>button{flex:0 0 auto!important;flex-basis:auto!important;width:auto!important;min-width:0!important;min-height:44px!important;max-height:none!important;padding:0 var(--dj-space-4) 0 var(--dj-space-3)!important;border-radius:var(--dj-radius-pill,999px)!important;}
 /* Нулевые комментарии не рисуются, но сохраняют ось строки. */
 html body .v19-task-menu.v19-task-menu .v19-count:not([data-dj-subtask-count])[data-v19-n="0"],html body .v19-task-menu.v19-task-menu .v19-count:not([data-dj-subtask-count])[data-dj-zero-count="true"]{visibility:hidden!important;}
}

/* Планшет и полный экран: узкая колонка задачи читается как телефонный редактор — то же упрощение шапки и подсказок (фаза F). */
@media(min-width:600px){
 /* Название — отдельной строкой на всю ширину: кружок слева, кнопки действий справа сверху. */
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form])>.task-head-v09{margin-top:0!important;display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto auto!important;grid-template-areas:"dot more . . actions" "title title title title title" "status status status status status"!important;align-items:center!important;column-gap:var(--dj-space-2)!important;row-gap:0!important;padding-right:0!important;min-height:0!important;flex-shrink:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.task-state-check{grid-area:dot!important;align-self:center!important;margin-top:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.v35-title-editor{grid-area:title!important;width:100%!important;max-width:100%!important;min-width:0!important;order:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.v76-task-state-wrap{grid-area:more!important;margin:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.dj-standard-a-actions{grid-area:actions!important;margin:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form])>.task-head-v09>.dj-local-status{grid-area:status!important;order:0!important;}
 /* Кнопки «Проект / Тэги / Напоминание / Описание …» — компактные таблетки в несколько строк, а не два столбца по 104 px. */
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form]) .v19-pickers-chips{display:flex!important;flex-wrap:wrap!important;gap:var(--dj-space-2)!important;overflow:visible!important;padding:var(--dj-space-1) 0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu:not([data-v40-goal-form]) .v19-pickers-chips::after{display:none!important;}
 html body .dj-editor-shell[data-ws-column="true"] .dj-entity-editor.v19-task-menu.v19-task-menu.v19-task-menu:not([data-v40-goal-form]) .v19-pickers-chips>button{flex:0 0 auto!important;flex-basis:auto!important;width:auto!important;min-width:0!important;min-height:44px!important;max-height:none!important;padding:0 var(--dj-space-4) 0 var(--dj-space-3)!important;border-radius:var(--dj-radius-pill,999px)!important;}
 /* Нулевые комментарии не рисуются, но сохраняют ось строки. */
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu.v19-task-menu .v19-count:not([data-dj-subtask-count])[data-v19-n="0"],html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu.v19-task-menu .v19-count:not([data-dj-subtask-count])[data-dj-zero-count="true"]{visibility:hidden!important;}
}

/* Композер: тип создаваемого (задача / числовая цель / датчик) и поля числовой цели. */
.dj-mobile-task-type{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--dj-space-2);}
.dj-mobile-task-type>button,.dj-mobile-task-seg>button{min-height:40px;padding:0 var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--dj-text-secondary-size,14px);line-height:var(--dj-text-heading-line-height);}
.dj-mobile-task-type>button[aria-checked="true"],.dj-mobile-task-seg>button[aria-pressed="true"]{border-color:var(--dj-control-accent,var(--accent));background:var(--accent-soft);}
.dj-mobile-task-numeric{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--dj-space-2);}
.dj-mobile-task-numeric[hidden],.dj-mobile-task-note[hidden],.dj-mobile-task-seg[hidden]{display:none;}
.dj-mobile-task-numeric>label{display:grid;gap:var(--dj-space-1);min-width:0;font-size:var(--dj-text-caption-size,12px);color:var(--muted);}
.dj-mobile-task-numeric input,.dj-mobile-task-numeric select{min-width:0;height:44px;box-sizing:border-box;border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);padding:var(--dj-space-2);font:var(--dj-text-reading-weight) var(--dj-text-body-size,16px)/var(--dj-text-body-line-height) var(--dj-font-functional);}
.dj-mobile-task-seg{display:grid;grid-template-columns:1fr 1fr;gap:var(--dj-space-2);grid-column:1/-1;}
.dj-mobile-task-note{margin:0;font-size:var(--dj-text-secondary-size,14px);color:var(--muted);}
.dj-mobile-task-composer.is-typed [data-ws-subtask-block]{display:none;}

/* Единое создание в полном редакторе: переключатель типа сверху у НОВОЙ задачи или цели. */
.r30-type-switch{display:flex;align-items:center;flex-wrap:nowrap;gap:0;margin:var(--dj-space-2,var(--dj-space-2)) 0 0;grid-column:1/-1;flex:1 0 100%;width:100%;min-width:0;box-sizing:border-box;}
.r30-type-switch>[data-r30-type]{flex:1 1 auto;min-width:0;min-height:44px;padding:0 var(--dj-space-1,var(--dj-space-1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid var(--line);border-radius:0;background:var(--panel);color:var(--ink);font:inherit;font-size:var(--dj-text-secondary-size,14px);line-height:var(--dj-text-heading-line-height);}
.r30-type-switch>[data-r30-type]+[data-r30-type]{border-left:0;}
.r30-type-switch>[data-r30-type]:first-child{border-radius:var(--dj-radius-button,8px) 0 0 var(--dj-radius-button,8px);}
.r30-type-switch>[data-r30-type]:nth-last-child(1 of [data-r30-type]){border-radius:0 var(--dj-radius-button,8px) var(--dj-radius-button,8px) 0;}
.r30-type-switch>[data-r30-type][aria-checked="true"]{background:var(--accent-soft);font-weight:var(--dj-text-heading-weight);}

/* Своя единица числовой цели: строка ввода под списком единиц (быстрая строка и полный редактор). */
.dj-custom-unit{display:grid;gap:var(--dj-space-1);margin:var(--dj-space-2) 0 0;min-width:0;font-size:var(--dj-text-caption-size,12px);color:var(--muted);}
.dj-custom-unit>input{min-width:0;height:44px;box-sizing:border-box;padding:0 var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-button,8px);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--dj-text-body-size,16px);}
.dj-mobile-task-numeric>.dj-custom-unit{grid-column:1/-1;margin:0;}
/* The measure block is a flex item of a height-limited form: it must not shrink below its rows (the mode switch used to touch the «Срок» row). */
html body .v19-task-menu .v40-measure-row{flex-shrink:0!important;}
/* Кнопка «Обзор задачи» в шапке окна задачи (планшет и полный экран): значок-панель справа, без фона. */
.dj-overview-toggle{display:grid;place-items:center;width:44px;min-width:44px;height:44px;padding:0;border:0!important;background:transparent!important;color:var(--ink);cursor:pointer;grid-area:overview;}
.dj-overview-toggle svg{width:24px;height:24px;}
.dj-overview-toggle[aria-pressed="true"]{color:var(--dj-control-accent,var(--accent));}
.dj-overview-toggle[hidden]{display:none!important;}
/* Окно числовой цели и датчика: название — отдельной строкой во всю ширину, как у задачи (длинное название в стиле «Модерн» не обрезается). */
@media(max-width:599px){
 html body .v19-task-menu[data-v40-goal-form]>.v40-goal-head{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto!important;grid-template-areas:"dot more . actions" "title title title title" "status status status status"!important;align-items:center!important;column-gap:var(--dj-space-2)!important;row-gap:0!important;flex-shrink:0!important;}
 html body .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.task-state-check{grid-area:dot!important;align-self:center!important;margin-top:0!important;}
 html body .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.v40-title-wrap{grid-area:title!important;width:100%!important;max-width:100%!important;min-width:0!important;}
 html body .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.v76-task-state-wrap{grid-area:more!important;margin:0!important;}
 html body .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.dj-standard-a-actions{grid-area:actions!important;margin:0!important;}
 html body .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.dj-local-status{grid-area:status!important;order:0!important;}
}
@media(min-width:600px){
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu[data-v40-goal-form]>.v40-goal-head{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto auto!important;grid-template-areas:"dot more . . actions" "title title title title title" "status status status status status"!important;align-items:center!important;column-gap:var(--dj-space-2)!important;row-gap:0!important;flex-shrink:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.task-state-check{grid-area:dot!important;align-self:center!important;margin-top:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.v40-title-wrap{grid-area:title!important;width:100%!important;max-width:100%!important;min-width:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.v76-task-state-wrap{grid-area:more!important;margin:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.dj-standard-a-actions{grid-area:actions!important;margin:0!important;}
 html body .dj-editor-shell[data-ws-column="true"] .v19-task-menu[data-v40-goal-form]>.v40-goal-head>.dj-local-status{grid-area:status!important;order:0!important;}
}
/* Меню статусов у кружка: прежняя кнопка «≡» в шапке скрыта, рядом с кружком маленькая стрелка. */
html body .v19-task-menu .dj-state-more{grid-area:more;display:grid;place-items:center;width:28px;min-width:28px;height:44px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer;}
.dj-state-more svg{width:var(--dj-icon-compact,16px);height:var(--dj-icon-compact,16px);}
/* DS-SCR-08: кружок статуса и «Другие статусы» — одна скруглённая кнопка: подложка лежит в сетке шапки над ячейками dot и more. */
.v19-task-menu .dj-state-pill{grid-column:dot-start/more-end;grid-row:1;align-self:center;justify-self:stretch;height:36px;margin-left:calc(-1*var(--dj-space-2,var(--dj-space-2)));border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);pointer-events:none;}
.dj-state-more[aria-expanded="true"]{color:var(--dj-control-accent,var(--accent));}
/* Название в списках — не больше двух строк, дальше многоточие; полное название в подсказке. */
html body .tp-row .tp-title,html body .task-row .tp-title{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;word-break:break-word;}

@media(min-width:600px){.dj-system-dock .dj-reveal-line{visibility:hidden}.dj-workspace>main.main>.topbar{padding-top:var(--dj-space-4)}}
.notes-editor-tools [data-note-action="fit-page"]{white-space:nowrap;justify-self:center}.dj-system-dock :is([data-ws-action="center"],.dj-dock-center) .dj-dock-label{white-space:nowrap}
[data-mobile-navigation-settings]{margin-block:var(--dj-space-6)}
.v76-title-create{position:relative;}
.v76-title-create .dj-create-plus,.v82-create-button .dj-create-plus{position:absolute;inset-inline-end:3px;inset-block-end:3px;display:grid;place-items:center;box-sizing:content-box;inline-size:var(--dj-icon-compact);block-size:var(--dj-icon-compact);padding:3px;border-radius:var(--dj-radius-circle,50%);background-color:inherit;color:var(--dj-on-accent,white);--dj-icon-large:var(--dj-icon-compact);--dj-icon-standard:var(--dj-icon-compact);--dj-icon-size:var(--dj-icon-compact);}
.v82-create-button>.dj-create-plus>:is(.v22-icon,.dj-utility-symbol){inline-size:100%;block-size:100%;}
[data-ws-group]>summary{display:flex;align-items:center;gap:var(--dj-space-2);min-block-size:44px;list-style:none;}
[data-ws-group]>summary::-webkit-details-marker{display:none;}
[data-ws-group-arrow]{display:grid;place-items:center;}
[data-ws-group-arrow]>.v22-icon{inline-size:var(--dj-icon-compact);block-size:var(--dj-icon-compact);}
.dj-cathedral-date{min-block-size:44px;max-inline-size:100%;padding:var(--dj-space-1);border:0;background:transparent;color:var(--accent);font:inherit;text-align:start;overflow-wrap:anywhere;}
[data-v57-cathedral-short]:empty::before,[data-v57-cathedral-long]:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none;}
.dj-source-layout{display:flex;flex-direction:column;gap:var(--dj-space-2);max-block-size:calc(var(--dolijane-viewport-height,100dvh) - var(--dj-space-6));overflow:hidden auto;}
.dj-source-head{display:flex;align-items:center;gap:var(--dj-space-2);}
.dj-source-head>b{flex:1;min-inline-size:0;overflow-wrap:anywhere;font-size:var(--dj-text-body-size);}
.dj-source-layout button{min-block-size:44px;min-inline-size:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);font:inherit;}
.dj-source-head>button{display:grid;place-items:center;flex:0 0 44px;inline-size:44px;margin:0;padding:0;border:0;color:var(--accent);}
.dj-source-layout :is(.v22-icon,.dj-utility-symbol){inline-size:var(--dj-icon-standard);block-size:var(--dj-icon-standard);flex-shrink:0;}
.dj-source-types{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);}
.dj-source-types>button,.dj-source-focus,.dj-source-choice{display:flex;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2);text-align:start;}
.dj-source-types>button{flex:1 1 auto;}
.dj-source-types>button[aria-pressed=true],.dj-source-focus[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);}
.dj-source-choice>span{flex:1;min-inline-size:0;overflow-wrap:anywhere;}
.dj-source-options{display:grid;gap:var(--dj-space-2);padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field);}
.dj-source-options label{display:flex;align-items:center;gap:var(--dj-space-2);min-block-size:44px;overflow-wrap:anywhere;}
.dj-source-options[hidden],.dj-source-layout button[hidden]{display:none;}
.dj-karma-chart-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--dj-space-1);text-align:center;font-size:var(--dj-text-caption-size);line-height:var(--dj-text-caption-line-height);}
.dj-karma-chart-labels>div{display:flex;flex-direction:column;gap:var(--dj-space-1);}
.dj-chart-help{margin:var(--dj-space-2) var(--dj-space-4);font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-secondary-line-height);color:var(--muted);overflow-wrap:anywhere;}
.dj-tag-color-swatch{display:inline-block;inline-size:var(--dj-icon-standard);block-size:var(--dj-icon-standard);border:1px solid var(--line);border-radius:var(--dj-radius-circle);flex-shrink:0;}
[data-v56-add-mutation]{display:flex;align-items:center;gap:var(--dj-space-2);}
[data-dj-parent-selected]{display:flex;align-items:flex-start;gap:var(--dj-space-2);max-inline-size:100%;min-inline-size:0;}
[data-dj-parent-selected]>.v22-icon{flex-shrink:0;}
[data-dj-parent-selected]>span{flex:1;min-inline-size:0;white-space:normal;overflow-wrap:anywhere;}

html body .v56-month-nav .v56-today-jump{width:auto;min-width:0;max-width:none;min-height:44px;height:auto;aspect-ratio:auto;padding:0;border:0;border-radius:0;background:transparent;color:var(--dj-control-accent,var(--accent));font:inherit;font-size:var(--dj-text-secondary-size);text-decoration:none;font-weight:var(--dj-text-heading-weight);}
.closed-task-meta{grid-column:2/-1;white-space:nowrap;font-size:var(--dj-text-secondary-size);color:var(--muted);}
.dj-today-total{margin-left:auto;}

html body .dj-entity-editor.v19-task-menu.v19-task-menu .v19-pickers-chips>button[hidden]{display:none!important;}

html body .dj-entity-editor.v19-task-menu.v19-task-menu [data-dj-extra-hidden="true"],html body .dj-entity-editor.v19-task-menu.v19-task-menu .v19-pickers-chips>[data-dj-chosen="true"],html body .dj-entity-editor.v19-task-menu.v19-task-menu[data-dj-thought="true"] .time-line{display:none!important;}

.dj-metaphor-help{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);align-items:center;margin-block:var(--dj-space-3);padding:var(--dj-space-3);border:1px solid var(--line);background:var(--panel);border-radius:var(--dj-radius-card);font-size:var(--dj-text-body-size);}
.dj-metaphor-help p{flex:1 1 240px;margin:0;}.dj-metaphor-help button{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--dj-space-2);flex:0 0 auto;min-height:44px;min-inline-size:184px;white-space:nowrap;}
.stone-section-title>.chip{margin-inline-start:auto;}
[data-dj-zero-nav="true"]{visibility:hidden;}

.v82-create-button{position:relative;}
.v56-calendar-shell{container-type:inline-size;}
.v56-calendar-agenda.three{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;align-items:start;}
.tp-calendar-right .tp-right-owner .tp-artifact>.tp-artifact-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;}
@container(max-width:719px){.v56-calendar-agenda.three{grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;}}
.tp-title.tp-title>.dj-drunk-visual{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;overflow-wrap:anywhere;}
[data-mobile-navigation-settings]>:not(h3){margin-inline:var(--dj-space-4,var(--dj-space-4));}
@media(max-width:600px){.dj-metaphor-help{align-items:stretch;}.dj-metaphor-help p{flex-basis:100%;}.dj-metaphor-help button{flex:1 1 0;min-inline-size:0;white-space:normal;}}
/* Плитка срока Собора занимает всю строку: подпись и действие не переносятся посреди слова. */
.r26-dashboard-metric:has(>.v19-cathedral-target-date){grid-column:1/-1;}
.r26-dashboard-metric:has(>.v19-cathedral-target-date)>:is(span,.v19-cathedral-target-date){white-space:nowrap;}
/* Подпись зоны дня («Расписание») помещается целиком. */
.agenda-row{grid-template-columns:84px minmax(0,1fr);}
.agenda-side{padding-inline:var(--dj-space-1,var(--dj-space-1));}
@media(max-width:600px){.v56-calendar-agenda .agenda-row{grid-template-columns:56px minmax(0,1fr)}.v56-calendar-agenda .agenda-side{white-space:normal;overflow-wrap:normal;word-break:normal}}
/* Full-width choices in legacy popups share the responsive popup-row minimum. */
.r25-status-menu button,
.idea-artifact-menu>button,.idea-artifact-menu>label,
.tp-category-menu>.tp-artifact,
.r27-critical-menu .r27-critical-option,
.notes-link-choices>button{min-height:var(--dj-minheight-popup-row)!important;}
/* Empty Today sections keep the explanation close to its creation action. */
[data-v38-today-section] .empty [data-dj-empty-today-copy]{margin:0 0 var(--dj-space-2,var(--dj-space-2));}
/* Settings opens each section as a stable window under the page title. */
html[data-dj-settings-window="list"] .dj-settings-host>.v19-settings-section>:not(h3),
html[data-dj-settings-window="list"] .dj-settings-host>.v41-settings-section>:not(h3),
html[data-dj-settings-window="list"] .dj-settings-host>.settings-section>:not(h3){display:none}
html[data-dj-settings-window="open"] .dj-settings-host>.v19-settings-section:not(.dj-settings-window),
html[data-dj-settings-window="open"] .dj-settings-host>.v41-settings-section:not(.dj-settings-window),
html[data-dj-settings-window="open"] .dj-settings-host>.settings-section:not(.dj-settings-window){display:none}
html[data-dj-settings-window="open"] .dj-settings-host>.dj-settings-window{display:block}
html[data-dj-settings-window="open"] .dj-settings-host>.dj-settings-window>h3{display:flex;align-items:center;gap:var(--dj-space-2);cursor:pointer}
/* The checkbox itself is the switch: no second painted control beneath it. */
html body .dj-settings-host input.dj-settings-switch{appearance:none;display:block;position:relative;inset:auto;box-sizing:border-box;flex:0 0 42px;justify-self:end;width:42px;min-width:42px;max-width:42px;height:24px;min-height:24px;max-height:24px;margin:0 0 0 auto;opacity:1;border:1px solid var(--line-strong);border-radius:var(--dj-radius-pill);background:var(--soft);box-shadow:none;cursor:pointer;vertical-align:middle}
html body .dj-settings-host .settings-row>input.dj-settings-switch{width:42px;height:24px}
html body .dj-settings-host input.dj-settings-switch::after{content:"";position:absolute;top:50%;left:2px;width:18px;height:18px;border-radius:var(--dj-radius-circle);background:white;box-shadow:var(--shadow-control);transform:translateY(-50%);transition:transform .16s ease}
html body .dj-settings-host input.dj-settings-switch:checked{border-color:var(--accent);background:var(--accent)}
html body .dj-settings-host input.dj-settings-switch:checked::after{transform:translate(18px,-50%)}
html body .dj-settings-host input.dj-settings-switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
html body .dj-settings-host :is(.settings-row,.v41-settings-row)>label:has(>input.dj-settings-switch){display:flex;align-items:center;gap:var(--dj-space-3);width:100%;min-width:0}
html body .dj-settings-host label>input.dj-settings-switch{order:99;margin-left:auto;align-self:center}
html body .dj-settings-host :is(.settings-row,.v41-settings-row)>.v41-switch{grid-column:2;justify-self:end;margin-left:auto}
.ts-main-section .ts-main-head{display:inline-flex;align-items:center;gap:var(--dj-space-2);min-height:44px;padding:0;border:0;background:transparent;color:var(--accent);text-align:left;cursor:pointer;font:inherit}
.ts-main-section .ts-main-title{display:inline-flex;align-items:center;gap:var(--dj-space-2);min-width:0}
.ts-main-section .ts-main-title>.v22-icon{width:20px;height:20px;color:var(--accent)}
.ts-main-section .ts-main-result>.v22-icon{width:20px;height:20px}
.ts-main-section .ts-main-result-done{color:var(--green)}
.ts-main-section .ts-main-result-failed{color:var(--danger)}
.ts-main-section .ts-main-content[hidden]{display:none!important}
.ts-main-section.ts-main-collapsed{padding-block:0!important;margin-block:var(--dj-space-1)!important}
.ts-main-section.ts-main-collapsed>.section-head{padding-block:0!important;margin-bottom:0!important}
@media(max-width:599px){
 html[data-v74-route="today"] main.main>.v54-close-day-row:has(>[data-v18-moved-command]){display:none}
 html[data-v74-route="today"] main.main>:is(.ts-main-section.ts-main-collapsed,section[data-v38-today-section]){margin-block:0!important}
 html[data-v74-route="today"] main.main>:is(.ts-main-section.ts-main-collapsed,section[data-v38-today-section])>.section-head{min-height:44px;padding-block:0!important;margin:0!important}
}
.ts-main-content>.v14-today-task.tp-row{margin-inline:calc(-1 * var(--dj-space-1));padding-block:0!important}
.ts-main-content>.v14-today-task.tp-row .tp-view{display:grid!important;grid-template-columns:44px minmax(0,1fr) minmax(0,max-content);grid-template-rows:auto auto;align-items:center;column-gap:var(--dj-space-2);row-gap:var(--dj-space-1);width:100%}
.ts-main-content>.v14-today-task.tp-row .tp-disclosure-slot{grid-column:1;grid-row:1 / -1;align-self:start}
.ts-main-content>.v14-today-task.tp-row .tp-copy,.ts-main-content>.v14-today-task.tp-row .tp-right{display:contents!important}
.ts-main-content>.v14-today-task.tp-row .tp-line1{grid-column:2;grid-row:1}
.ts-main-content>.v14-today-task.tp-row .tp-line2{grid-column:2;grid-row:2;margin-top:0}
.ts-main-content>.v14-today-task.tp-row .tp-right-top{grid-column:3;grid-row:1;justify-self:end;position:static}
.ts-main-content>.v14-today-task.tp-row .tp-right-owner{grid-column:3;grid-row:2;justify-self:end;position:static;margin:0}
/* Every day row reserves a second line for the project, including all-day tasks with notes. */
html[data-v74-route="today"] main .tp-row[data-tp-task]>.tp-view{display:grid!important;grid-template-columns:44px minmax(0,1fr) minmax(0,38%);grid-template-rows:auto auto auto;align-items:start;column-gap:var(--dj-space-2);row-gap:var(--dj-space-1);width:100%}
html[data-v74-route="today"] main .tp-row[data-tp-task] .tp-disclosure-slot{grid-column:1;grid-row:1 / -1}
html[data-v74-route="today"] main .tp-row[data-tp-task] :is(.tp-copy,.tp-right){display:contents!important}
html[data-v74-route="today"] main .tp-row[data-tp-task] .tp-line1{grid-column:2;grid-row:1;min-width:0}
html[data-v74-route="today"] main .tp-row[data-tp-task] .tp-line2{grid-column:2;grid-row:2;min-height:20px;margin:0}
html[data-v74-route="today"] main .tp-row[data-tp-task] .tp-line3{grid-column:2 / 4;grid-row:3}
html[data-v74-route="today"] main .tp-row[data-tp-task] .tp-right-top{grid-column:3;grid-row:1;justify-self:end;position:static;white-space:nowrap}
html[data-v74-route="today"] main .tp-row[data-tp-task] .tp-right-owner{grid-column:3;grid-row:2;justify-self:end;position:static;max-width:100%;margin:0}
/* Completed tasks keep their semantic color and glyph without a strike-through. */
html body :is(.tp-title.tp-status-done,.tp-title.tp-status-failed,.task-title.done,.task-title.failed,.closed-task-title.done,.closed-task-title.failed,.v14-today-task.status-done .v14-today-title,.v14-today-task.status-failed .v14-today-title,.v40-title-wrap>input.done,.v40-title-wrap>input.failed){text-decoration:none}
html body .v17-today-project{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--dj-space-1);min-width:0;margin-inline-start:auto}
html body .v17-today-project>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
html body .v17-today-project>.v17-today-project-at{flex:0 0 auto;color:var(--artifact-color,var(--accent));font-weight:var(--dj-text-heading-weight)}
html body .dj-archive-toggle{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--accent);cursor:pointer}
html body .dj-archive-toggle>.v22-icon{width:20px;height:20px;color:inherit}
html body .r27-contact-archive-toggle.dj-archive-toggle{margin-top:var(--dj-space-2);width:44px;min-width:44px;padding:0}
/* A nested Idea keeps the same right-hand note/star/count columns as its Project. */
html body .v15-projects-card .idea-tree-node>summary.idea-card{width:100%;margin-inline-end:0;padding-inline-end:0}
html body .v15-projects-card .idea-tree-node>summary.idea-card>.idea-tree-note{flex:0 0 44px;width:44px;min-width:44px}
html body .v15-projects-card .idea-tree-node>summary.idea-card>.v24-favorite-toggle{flex:0 0 44px;width:44px}
html body .v15-projects-card .idea-tree-node>summary.idea-card>.idea-active-count{flex:0 0 32px;width:32px;margin-inline-end:0}
html body .r27-contact-dialog .dj-standard-a-actions>.r28-contact-ok{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none;color:var(--accent)}
html body .r27-contact-dialog .r28-contact-ok>.v22-icon{color:inherit}
html body [data-contact-page] .r28-contact-delete-bottom{display:inline-flex;align-items:center;gap:var(--dj-space-2);justify-self:start;min-height:44px;padding:var(--dj-space-2);border:0;background:transparent;color:var(--danger);font:inherit;cursor:pointer}
html body .r28-contact-edit-head{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--accent);border-radius:var(--dj-radius-circle);background:transparent;color:var(--accent);box-shadow:none}
html body .r27-contact-note>summary>.idea-note-caret{display:none}
html body .r27-contact-note>summary>.r28-contact-note-title{min-width:0;min-height:44px;flex:1 1 auto;padding:0;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
/* Project and Idea detail rows share the Delo icon/text center line. */
html body .r21-entity-editor .r23-project-row>:is(.v22-icon,.dj-utility-symbol,.dj-project-entity-mark){display:inline-grid;place-items:center;align-self:center;flex:0 0 var(--dj-icon-standard,20px);width:var(--dj-icon-standard,20px);height:var(--dj-icon-standard,20px);line-height:1;margin:0}
html body .r21-entity-editor .r23-project-row>:is(span:not(.v22-icon):not(.dj-utility-symbol):not(.dj-project-entity-mark),button){align-self:center;line-height:var(--dj-text-body-line-height)}

/* ==== weight-onboarding.css ==== */
/* Weight Habit opt-in (weight-onboarding.js). The question reuses the weight card look from dashboard.css. */
html body .card.dj-weight-ask,html[data-interface-design] body .card.dj-weight-ask{margin:0 0 var(--dj-space-3);padding:0;border:0;background:transparent;box-shadow:none}
.dj-weight-ask .dj-weight-ask-row{display:block;border:1px solid var(--line);border-radius:var(--dj-radius-card,12px);background:var(--panel);box-shadow:none;padding:var(--dj-space-4,var(--dj-space-4))}
.dj-weight-ask-actions{display:flex;flex-wrap:wrap;gap:var(--dj-space-2);margin-top:var(--dj-space-3)}
.dj-weight-ask-actions .btn{min-height:44px}
/* Settings → «Привычка «Вес»» off: the card was only hidden for the legacy cell markup (v68.css); hide the current card too.
   The question card is never hidden by it. */
html[data-v68-weight="false"] .dj-weight-card:not(.dj-weight-ask-row){display:none!important}

/* ==== design/crisp-icons.css ==== */
/* Чёткие значки: без opacity, прозрачности, осветления и размытых «эхо»-копий.
 * Правило владельца (2026-10-02). Подключается последним, перекрывает v22/v32/v55/v80,
 * guest-icons.css и notes/styles.css, а также inline-атрибуты fill-opacity/stroke-opacity/opacity
 * из авторского пакета icons-user-selected.js (отклонение от «tonesPreserved» зафиксировано). */
/* .v22-icon повторён для специфичности: перебивает v80.css и notes/styles.css (!important там тоже есть). */
.v22-icon.v22-icon.v22-icon.v22-icon,.v22-icon.v22-icon.v22-icon.v22-icon *{opacity:1!important;stroke-opacity:1!important;fill-opacity:1!important}
.v22-icon .v22-echo,.v22-icon .v22-whorl,.v22-icon .architect-echo,.v22-icon .echo,.v22-icon .guide,.v22-icon .wash{display:none!important}
.v22-icon .v22-main>*{stroke:currentColor!important}
.v22-icon .detail,.v22-icon .stroke-a2,.v22-icon .v22-selected-icon-art .stroke-a2{stroke:currentColor!important;stroke-width:inherit}
.v22-icon .fill-a2{fill:currentColor!important}
.v22-icon,.v22-icon *{shape-rendering:geometricPrecision}
.v22-icon-button .v22-icon,.v22-nav-icon .v22-icon{overflow:visible}
/* Минимальная толщина линий — тонкие штрихи без осветления выглядят «выцветшими». */
.v22-icon-vangogh{stroke-width:1.6}
.v22-icon-shekhtel{stroke-width:1.75}
.v22-icon-architect{stroke-width:1.7}
/* Owner microphone pack: one glyph at its native optical size in every style. */
.dj-microphone-icon.dj-microphone-icon{display:inline-block;width:20px;height:20px;min-width:0;min-height:0;flex:none;vertical-align:middle;background-color:currentColor;mask:var(--dj-mic-mask) center / contain no-repeat;-webkit-mask:var(--dj-mic-mask) center / contain no-repeat}
.dj-microphone-icon.dj-microphone-icon[data-dj-microphone-size="16"]{width:16px;height:16px}
.dj-microphone-icon.dj-microphone-icon[data-dj-microphone-size="28"]{width:28px;height:28px}
.dj-microphone-icon.dj-microphone-icon[data-dj-microphone-size="52"]{width:52px;height:52px}
/* Кнопки с ✓/✕ из пакета: без фона, границы и тени — значок сам несёт форму и акцент (метка ставится в pack-icons.js).
   Повышенная специфичность: перекрывает Standard A (.dj-standard-a-button) и прочие правила кнопок с !important. */
html body button[data-dj-bare-icon][data-dj-bare-icon],html body [role="button"][data-dj-bare-icon][data-dj-bare-icon]{background:none!important;background-color:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important;outline-offset:2px;min-width:0;padding:2px!important}
html body button[data-dj-bare-icon][data-dj-bare-icon]:is(:hover,:active,:focus-visible),html body [role="button"][data-dj-bare-icon][data-dj-bare-icon]:hover{background:none!important;background-color:transparent!important;box-shadow:none!important;filter:none}
html body [data-dj-bare-icon][data-dj-bare-icon]>.v22-icon{width:var(--dj-icon-large,28px)!important;height:var(--dj-icon-large,28px)!important;color:inherit}

/* 93f227bd: a coloured artifact carries its own colour in its adjacent glyph.
   Names use the normal readable text colour at every viewport and in every style. */
:is(.idea-tree-title,.v18-task-artifact,.v36-artifact,.v56-project-ref,.v56-artifact,
    .v39-task-project,.v58-tag-chip,[data-v38-tag-artifact],.v59-wall-stone,
    .v17-stone-projects [data-project],.calendar-project-link,
    .v25-project-picker [data-v17-project-choice],
    .v25-stone-form label>span,.v63-global-suggest>button:not(.v64-priority-suggestion)) {
  color:var(--ink)!important;
}
:is(.idea-tree-title,.v18-task-artifact,.v36-artifact,.v56-project-ref,.v56-artifact,
    .v39-task-project,.v58-tag-chip,[data-v38-tag-artifact],.v59-wall-stone,
    .v17-stone-projects [data-project],.calendar-project-link,
    .v25-project-picker [data-v17-project-choice],
    .v25-stone-form label>span,.v63-global-suggest>button:not(.v64-priority-suggestion))
    >:is(.v22-icon,.dj-utility-symbol,.dj-authored-utility,.v19-stone-icon,.v56-project-icon) {
  --dj-icon-color:var(--artifact-color,var(--choice-color,var(--accent)));
  color:var(--artifact-color,var(--choice-color,var(--accent)))!important;
}
:is(.idea-tree-title,.v18-task-artifact,.v36-artifact,.v56-project-ref,.v56-artifact,
    .v39-task-project,.v58-tag-chip,[data-v38-tag-artifact],.v59-wall-stone,
    .v17-stone-projects [data-project],.calendar-project-link,
    .v25-project-picker [data-v17-project-choice],
    .v25-stone-form label>span,.v63-global-suggest>button:not(.v64-priority-suggestion))
    >.v22-icon .v22-main>* {stroke:currentColor!important;color:inherit!important;}

/* The tree and picker had their own name colouring in inline styles and older rules. */
.idea-tree-title>strong,.sidebar .v78-sidebar-project-link .v78-sidebar-project-name,
.v36-artifact-picker .v36-artifact-choice>span:last-child,
.v36-artifact-picker:is(.project,.idea) .v36-artifact-choice>span:not(.v19-pi-icon):not(.v22-icon),
.v17-today-project {color:var(--ink)!important;}
.idea-tree-title>.v22-icon,.sidebar .v78-sidebar-project-link .v78-sidebar-project-glyph,
.v36-artifact-picker .v36-artifact-choice>:is(.v19-pi-icon,.v19-tag-icon,.v22-icon),
.v17-today-project>.v22-icon {
  --dj-icon-color:var(--artifact-color,var(--choice-color,var(--accent)));
  color:var(--artifact-color,var(--choice-color,var(--accent)))!important;
}
/* Drunk style inserts a visual wrapper inside buttons without changing the
   artifact role. Keep the same colour split after that wrapper is added. */
:is(.idea-tree-title,.v18-task-artifact,.v36-artifact,.v56-project-ref,.v56-artifact,
    .v39-task-project,.v58-tag-chip,[data-v38-tag-artifact],.v59-wall-stone,
    .v17-stone-projects [data-project],.calendar-project-link,
    .v25-project-picker [data-v17-project-choice],
    .v25-stone-form label>span,.v63-global-suggest>button:not(.v64-priority-suggestion))
    >.dj-drunk-visual>:is(.v22-icon,.dj-utility-symbol,.dj-authored-utility,.v19-stone-icon,.v56-project-icon) {
  --dj-icon-color:var(--artifact-color,var(--choice-color,var(--accent)));
  color:var(--artifact-color,var(--choice-color,var(--accent)))!important;
}
.idea-tree-title>.dj-drunk-visual>strong,
.sidebar .v78-sidebar-project-link .dj-drunk-visual>.v78-sidebar-project-name,
.v36-artifact-picker .v36-artifact-choice>.dj-drunk-visual>span:last-child{
  color:var(--ink)!important;
}
.sidebar .v78-sidebar-project-link .dj-drunk-visual>.v78-sidebar-project-glyph,
.v36-artifact-picker .v36-artifact-choice>.dj-drunk-visual>:is(.v19-pi-icon,.v19-tag-icon,.v22-icon){
  color:var(--artifact-color,var(--choice-color,var(--accent)))!important;
}
.v36-artifact-picker .v36-artifact-choice>:is(.v19-pi-icon,.v19-tag-icon) .v22-icon,
.sidebar .v78-sidebar-project-link .v78-sidebar-project-glyph .v22-icon {
  color:inherit!important;
}

/* Selected tags used a solid artifact-coloured fill that made the icon disappear.
   Keep the shared editor field surface and give every tag its adjacent glyph. */
html body .v19-task-menu.v19-task-menu.v19-task-menu
  .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual)>button {
  background:var(--dj-editor-field-bg,var(--panel))!important;
  border-color:var(--line)!important;
  color:var(--ink)!important;
}
html body .v19-task-menu.v19-task-menu.v19-task-menu
  .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="tag"],[data-artifact-row="stone"],[data-artifact-row="ritual"],.tag,.stone,.ritual)>button>span:not(.v22-icon):not(.v19-stone-icon) {
  color:var(--ink)!important;
}
html body .v19-task-menu.v19-task-menu.v19-task-menu
  .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button:not([data-v18-system])>.v22-icon {
  display:inline-flex!important;
}
html body .v19-task-menu.v19-task-menu.v19-task-menu
  .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button>.v22-icon {
  color:var(--artifact-color,var(--accent))!important;
}
html body .v19-task-menu.v19-task-menu.v19-task-menu
  .v18-artifact-row:not(.v18-artifact-pickers)[data-artifact-row="tag"]>button>.dj-drunk-visual>.v22-icon {
  display:inline-flex!important;
  color:var(--artifact-color,var(--accent))!important;
}
html body .v19-task-menu.v19-task-menu.v19-task-menu
  .v18-artifact-row:not(.v18-artifact-pickers):is([data-artifact-row="project"],[data-artifact-row="idea"])>button>span:not(.v22-icon) {
  color:var(--ink)!important;
}

/* Activity/history chips and other entity references may still receive an
   inline important colour from older adapters; only the glyph inherits it. */
:is(.v18-task-artifact,.v36-artifact,.v56-project-ref,.v56-artifact,.v39-task-project,
    .v58-tag-chip,[data-v38-tag-artifact],.v59-wall-stone,.v59-wall-label,
    .v63-global-suggest>button:not(.v64-priority-suggestion))
    >span:not(.v22-icon):not(.dj-utility-symbol):not(.dj-authored-utility):not(.v19-stone-icon):not(.v82-system-tag) {
  color:var(--ink)!important;
}
.v36-artifact{border-color:var(--line)!important;}

/* Current task rows formerly painted a full tag pill; each tag now follows
   the same icon/name rule as project, idea, stone and ritual references. */
.tp-artifact.tp-tag{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  color:var(--ink)!important;
}
.tp-artifact.tp-tag>.v22-icon{color:var(--tp-color,var(--accent))!important;}
.tp-artifact.tp-tag>span:not(.v22-icon){color:var(--ink)!important;}
.tp-artifact.tp-tag>.dj-drunk-visual>.v22-icon{color:var(--tp-color,var(--accent))!important;}
.tp-artifact.tp-tag>.dj-drunk-visual>span:not(.v22-icon){color:var(--ink)!important;}

.v38-artifact-icon>.v22-icon{color:var(--artifact-color,var(--accent))!important;}
.cs-wall-name{color:var(--ink)!important;}
.cs-wall-name>.v22-icon{color:var(--cs-color,var(--accent))!important;}
.r26-favorite-project-icon{margin-left:0!important;color:var(--artifact-color,var(--accent))!important;}
.r26-favorite-project-icon .v22-icon{color:inherit!important;}
.r26-favorite-row>.dj-drunk-visual>.r26-favorite-project-icon{color:var(--artifact-color,var(--accent))!important;}
.r26-favorite-row>.dj-drunk-visual>.r26-favorite-glyph{color:var(--muted)!important;}
.r26-favorite-project .r26-favorite-glyph{color:var(--muted)!important;}
.r26-favorite-row:not([data-r26-favorite-expand]):not([data-r26-favorite-idea-expand]) .r26-favorite-glyph{
  color:var(--artifact-color,var(--accent))!important;
}
.notes-card-artifact>.v22-icon{color:inherit!important;}
.dj-entity-link[data-dj-note-link]{color:var(--ink)!important;}
.dj-entity-link[data-dj-note-link]>.v22-icon,
.dj-entity-link[data-dj-note-link]>.dj-drunk-visual>.v22-icon{
  color:var(--artifact-color,var(--accent))!important;
}
.dj-entity-link[data-dj-note-link]>.dj-drunk-visual>span:not(.v22-icon),
.dj-entity-link[data-dj-note-link]>span:not(.v22-icon){color:var(--ink)!important;}
.dj-entity-link[data-dj-note-link]>.dj-drunk-visual>span[aria-hidden],
.dj-entity-link[data-dj-note-link]>span[aria-hidden]{color:var(--muted)!important;}
.idea-ritual,.r25-ritual-name,.v24-semantic-token{color:var(--ink)!important;}
.idea-ritual>.v22-icon,.r25-ritual-name>.v22-icon,.v24-semantic-token>.v22-icon,
.idea-ritual>.dj-drunk-visual>.v22-icon,.r25-ritual-name>.dj-drunk-visual>.v22-icon{
  color:var(--artifact-color,var(--accent))!important;
}
.idea-ritual>span:not(.v22-icon),.r25-ritual-name>b,.v24-semantic-token>span:not(.v22-icon):not(.v24-token-sigil),
.idea-ritual>.dj-drunk-visual>span:not(.v22-icon),.r25-ritual-name>.dj-drunk-visual>b{color:var(--ink)!important;}
.v24-semantic-token{background:var(--soft)!important;}
.v43-goal-project>span:not(.v22-icon),.v42-goal-source>span:not(.v22-icon),
.notes-card-artifact>span:not(.v22-icon),.v60-artifact-choice>span:not(.v22-icon):not(.v56-tag-actions),
[data-v56-suggestion]>span:not(.v22-icon),.v56-popup [data-v56-value]>span:not(.v22-icon),
:is(.v52-action-row,.v53-action-row) .entity-link>b{color:var(--ink)!important;}

/* ==== search-window.css ==== */
/* One owned Search and Action editor, with the same layout on every entry. */
.dj-search-window,.dj-search-actions{display:grid;gap:var(--dj-space-3);min-width:0;max-width:960px;margin-inline:auto;padding-block-end:var(--dj-space-8)}
.dj-search-desktop-title{margin:0;font-size:var(--dj-text-title-size);font-weight:var(--dj-text-title-weight);line-height:var(--dj-text-title-line-height)}
.dj-search-window .topbar{margin-block-end:0}
.dj-search-window button,.dj-search-actions button{cursor:pointer}
.dj-search-window :is(.dj-search-trail,.dj-search-groups,.dj-search-toolbar,.dj-search-type-choices,.dj-search-choices){display:flex;flex-wrap:wrap;gap:var(--dj-space-2);align-items:center}
.dj-search-trail>button,.dj-search-groups>button,.dj-search-toolbar>button,.dj-search-advanced button,.dj-search-operation button,.dj-search-window [data-search-save-start],.dj-search-window [data-search-save-action],.dj-search-window [data-search-save-box] button,.dj-search-window [data-search-operation-box] button,.dj-search-window [data-search-confirm-box] button{min-height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);padding:var(--dj-space-2) var(--dj-space-3);font:inherit}
.dj-search-trail>button[aria-current=step],.dj-search-groups>button[aria-pressed=true],.dj-search-advanced button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.dj-search-window [data-search-form],.dj-search-name{display:grid;gap:var(--dj-space-1);min-width:0}
.dj-search-window [data-search-form]>label,.dj-search-name,.dj-search-limit{font-size:var(--dj-text-secondary-size);color:var(--muted)}
.dj-search-window :is(.dj-search-name input,.dj-search-limit input){width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);padding-inline:var(--dj-space-2);font:inherit}
.dj-search-input{display:grid;grid-template-columns:auto minmax(0,1fr) 44px auto;align-items:center;gap:var(--dj-space-1);min-width:0;border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);padding:var(--dj-space-1)}
.dj-search-input>span{display:grid;place-items:center;color:var(--muted)}
.dj-search-input>input{min-width:0;width:100%;border:0;background:transparent;color:var(--ink);font:inherit;outline:0}
.dj-search-input>button{min-height:44px;border:0;background:transparent;color:var(--accent);font:inherit;padding-inline:var(--dj-space-2)}
.dj-search-input>button[data-search-mic]{display:grid;place-items:center;padding:0}
.dj-search-input>button[data-search-mic][aria-pressed="true"]{color:var(--panel);background:var(--accent);border-radius:var(--dj-radius-button)}
.dj-search-understanding{display:flex;flex-wrap:wrap;gap:var(--dj-space-1);align-items:center;color:var(--muted);font-size:var(--dj-text-secondary-size)}
.dj-search-chip{min-height:32px;padding:var(--dj-space-1) var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);font:inherit}
.dj-search-chip[data-kind=meta]{color:var(--accent)}
.dj-search-chip[data-kind=text]{border-style:dashed}
.dj-search-conditions{display:grid;gap:var(--dj-space-1);padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-card);background:var(--panel)}
.dj-search-conditions h2,.dj-search-conditions p{margin:0;font-size:var(--dj-text-secondary-size)}
.dj-search-conditions p{color:var(--muted)}
.dj-search-conditions ul{display:grid;gap:var(--dj-space-1);margin:0;padding-inline-start:var(--dj-space-3);list-style:none;border-inline-start:1px solid var(--line)}
.dj-search-conditions>ul{padding:0;border:0}
.dj-search-condition-head,.dj-search-condition-leaf{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-1);min-height:44px}
.dj-search-condition-head>span,.dj-search-condition-leaf>span{flex:1 1 120px;min-width:0}
.dj-search-conditions button{min-height:44px;padding:var(--dj-space-1) var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);font:inherit}
.dj-search-conditions button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.dj-search-scope,.dj-search-total{margin:0;color:var(--muted)}
.dj-search-total{font-weight:var(--dj-text-heading-weight);color:var(--ink)}
.dj-search-group{display:grid;gap:var(--dj-space-1);min-width:0}
.dj-search-group>h2{margin:var(--dj-space-2) 0 0;font-size:var(--dj-text-heading-size)}
.dj-search-result,.dj-search-action-row{display:grid;min-width:0;width:100%;border:1px solid var(--line);border-radius:var(--dj-radius-card);background:var(--panel);color:var(--ink);padding:var(--dj-space-2) var(--dj-space-3);text-align:start}
.dj-search-window .dj-search-result{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-flow:row;gap:var(--dj-space-1);min-height:44px;font:inherit}
.dj-search-window .dj-search-result>.dj-drunk-visual{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--dj-space-1);min-width:0}
.dj-search-result small,.dj-search-action-row small{display:block;color:var(--muted);font-size:var(--dj-text-secondary-size);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dj-search-result .dj-search-why{white-space:normal}
.dj-search-result mark{background:color-mix(in srgb,var(--accent) 18%,transparent);color:inherit;border-radius:var(--dj-radius-field)}
.dj-search-empty,.dj-search-error{margin:0;padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-card)}
.dj-search-error{color:var(--danger)}
.dj-search-ambiguity{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dj-space-2);padding:var(--dj-space-2)}
.dj-search-ambiguity p{width:100%;margin:0;color:var(--ink)}
.dj-search-ambiguity button{min-height:40px;padding:var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);font:inherit}
.dj-search-advanced,.dj-search-operation,.dj-search-window [data-search-save-box]:not([hidden]),.dj-search-window [data-search-operation-box]:not([hidden]),.dj-search-window [data-search-confirm-box]:not([hidden]){display:grid;gap:var(--dj-space-2);padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-card);background:var(--panel)}
.dj-search-advanced h2,.dj-search-operation h2,.dj-search-window [data-search-operation-box] h2{margin:0;font-size:var(--dj-text-heading-size)}
.dj-search-operation>label{display:grid;gap:var(--dj-space-1)}
.dj-search-operation select{min-width:0;width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-field);background:var(--panel);color:var(--ink);padding-inline:var(--dj-space-2);font:inherit}
.dj-search-confirm-groups{display:grid;gap:var(--dj-space-2)}
.dj-search-confirm-groups>label{display:flex;align-items:center;gap:var(--dj-space-2);min-height:44px}
.dj-search-confirm-groups input{width:20px;height:20px;flex:none;accent-color:var(--accent)}
.dj-search-confirm-groups small{color:var(--muted)}
.dj-search-window [data-search-execute]:disabled{opacity:.5;cursor:default}
.dj-search-limit input{max-width:110px}
.dj-search-action-row{grid-template-columns:minmax(0,1fr) 44px;align-items:center}
.dj-search-action-row>button{border:0;background:transparent;color:inherit;text-align:start;font:inherit;min-height:44px}
@media(max-width:600px){.dj-search-window,.dj-search-actions{gap:var(--dj-space-2)}.dj-search-input{grid-template-columns:auto minmax(0,1fr) 44px auto}.dj-search-input>button[type=submit]{padding-inline:var(--dj-space-1)}.dj-search-group>h2{font-size:var(--dj-text-body-size)}}
/* DS-ACT-02/DS-SHAPE-01/DS-A11Y-01: one primary action, compact segments and full touch targets. */
.dj-search-window :is(.dj-search-toolbar>button,.dj-search-trail>button,.dj-search-advanced button,.dj-search-operation button,.dj-search-ambiguity button,.dj-search-window [data-search-save-box] button,.dj-search-window [data-search-operation-box] button,.dj-search-window [data-search-confirm-box] button,.dj-search-window [data-search-return-assistant]){min-height:44px;border-radius:var(--dj-radius-button);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)}
.dj-search-window :is(.dj-search-toolbar>button,.dj-search-trail>button,.dj-search-window [data-search-return-assistant],[data-search-save-cancel],[data-search-operation-cancel],[data-search-confirm-cancel]){border-color:transparent;background:transparent;color:var(--ink)}
.dj-search-window :is([data-search-preview],[data-search-save-start],[data-search-operation],[data-search-save-action]){border-color:var(--line);background:var(--dj-action-secondary-bg);color:var(--accent)}
.dj-search-window :is(.dj-search-input>button[type=submit],[data-search-save-confirm],[data-search-execute]){border:1px solid var(--accent);border-radius:var(--dj-radius-button);background:var(--accent);color:var(--panel);font-weight:var(--dj-text-heading-weight)}
.dj-search-window :is(.dj-search-input>button[type=submit],[data-search-save-confirm],[data-search-execute]):disabled{opacity:.45}
.dj-search-window :is(.dj-search-chip,.dj-search-type-choices>button){min-height:44px;border-radius:var(--dj-radius-chip)}
.dj-search-window .dj-search-type-choices>button[aria-pressed=true]{background:var(--accent-soft)}
.dj-search-window .dj-search-groups{flex-wrap:nowrap;gap:0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--dj-radius-chip);background:var(--panel);scrollbar-width:none}
.dj-search-window .dj-search-groups::-webkit-scrollbar{display:none}
.dj-search-window .dj-search-groups>button{flex:none;min-height:44px;border:0;border-radius:0;background:transparent;white-space:nowrap}
.dj-search-window .dj-search-groups>button+button{border-inline-start:1px solid var(--line)}
.dj-search-window .dj-search-groups>button[aria-pressed=true]{background:var(--accent-soft)}
.dj-search-window .dj-search-choices{gap:0}
.dj-search-window .dj-search-choices>span{flex-basis:100%;margin-block-end:var(--dj-space-1)}
.dj-search-window .dj-search-choices>button{border-radius:0}
.dj-search-window .dj-search-choices>button:first-of-type{border-start-start-radius:var(--dj-radius-chip);border-end-start-radius:var(--dj-radius-chip)}
.dj-search-window .dj-search-choices>button:last-of-type{border-start-end-radius:var(--dj-radius-chip);border-end-end-radius:var(--dj-radius-chip)}
.dj-search-window .dj-search-choices>button+button{border-inline-start:0}
.dj-search-window :is(button,input,select):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dj-search-operation-step{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);min-height:44px;border-block-end:1px solid var(--line)}
.dj-search-window .dj-search-operation-step>button{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:var(--dj-radius-circle);background:transparent;color:var(--ink)}
.dj-search-window [data-search-confirm-box] :is(ol,ul){margin-block:0;padding-inline-start:var(--dj-space-5)}
.dj-search-project-shade{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ink) 28%,transparent);padding:var(--dj-space-4)}
.dj-search-project-shade[hidden]{display:none}
.dj-search-project-menu{width:min(520px,100%);max-height:min(78vh,700px);overflow-y:auto;border:1px solid var(--line);border-radius:var(--dj-radius-popup);box-shadow:var(--shadow);background:var(--panel);scrollbar-width:thin}
.dj-search-project-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2);padding:var(--dj-space-2);background:var(--panel);z-index:1}
.dj-search-project-head>strong{font:var(--dj-text-heading-weight) var(--dj-text-heading-size)/var(--dj-text-heading-line-height) var(--dj-font-functional)}
.dj-search-window .dj-search-project-head>button{min-height:44px;border:0;background:transparent;color:var(--ink)}
.dj-search-priority-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--dj-space-2);padding:var(--dj-space-3)}
.dj-search-window .dj-search-priority-choices>button{min-height:44px;border:1px solid var(--line);border-radius:var(--dj-radius-button);background:var(--panel);color:var(--ink);font:var(--dj-text-body-weight) var(--dj-text-body-size)/var(--dj-text-body-line-height) var(--dj-font-functional)}
@media(max-width:599px){.dj-search-project-shade{align-items:flex-end;padding:0}.dj-search-project-menu{width:100%;max-height:75dvh;border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0}}
@media(max-width:1024px){.dj-search-window>.topbar:not(:has([data-search-back-actions])){display:none}.dj-search-window>.topbar:has([data-search-back-actions]){display:flex;flex-direction:row;justify-content:flex-start;margin:0}.dj-search-window>.topbar:has([data-search-back-actions])>div:first-child{display:none}}
@media(max-width:1024px){.dj-search-desktop-title{display:none}}
.dj-search-window .dj-search-menu-shade:not([hidden]){position:fixed;inset:0;z-index:109;display:flex;align-items:center;justify-content:center;max-width:none;max-height:none;margin:0;padding:var(--dj-space-4);border:0;border-radius:0;background:color-mix(in srgb,var(--ink) 28%,transparent)}
.dj-search-menu{display:grid;gap:var(--dj-space-1);width:min(460px,100%);max-height:78dvh;overflow-y:auto;padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-popup);background:var(--panel);box-shadow:var(--shadow)}
.dj-search-menu>button{text-align:start}
@media(max-width:599px){.dj-search-window .dj-search-menu-shade:not([hidden]){align-items:flex-end;padding:0}.dj-search-menu{width:100%;max-height:75dvh;border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0}}
.dj-search-run-report{display:grid;gap:var(--dj-space-2);padding:var(--dj-space-3);border:1px solid var(--line);border-radius:var(--dj-radius-card);background:var(--panel)}
.dj-search-run-report h2,.dj-search-run-report p{margin:0}
.dj-search-run-report h2{font:var(--dj-text-heading-weight) var(--dj-text-heading-size)/var(--dj-text-heading-line-height) var(--dj-font-functional)}
.dj-search-run-report ul{margin:0;padding-inline-start:var(--dj-space-5)}
.dj-search-run-report summary{min-height:44px;display:flex;align-items:center;color:var(--accent);cursor:pointer}
/* Search interpretation remains editable; shape and weight carry meaning alongside the theme accent. */
.dj-search-understanding{gap:var(--dj-space-1)}
.dj-search-window .dj-search-chip{min-height:44px;padding:var(--dj-space-1) var(--dj-space-2);border-radius:var(--dj-radius-chip);font:var(--dj-text-body-weight) var(--dj-text-secondary-size)/var(--dj-text-secondary-line-height) var(--dj-font-functional)}
.dj-search-window .dj-search-chip[data-role=entity]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.dj-search-window .dj-search-chip[data-role=logic],.dj-search-window .dj-search-chip[data-role=group]{min-width:44px;border-color:transparent;background:transparent;color:var(--ink);padding-inline:var(--dj-space-1)}
.dj-search-window .dj-search-chip[data-role=text]{border-style:dashed;border-color:var(--line);background:var(--panel);color:var(--ink)}
.dj-search-window .dj-search-conditions{display:block;padding:0;border:0;border-block-end:1px solid var(--line);border-radius:0;background:transparent}
.dj-search-conditions>summary{display:flex;align-items:center;min-height:44px;color:var(--muted);font:var(--dj-text-body-weight) var(--dj-text-secondary-size)/var(--dj-text-secondary-line-height) var(--dj-font-functional);cursor:pointer;list-style:none}
.dj-search-conditions>summary::-webkit-details-marker{display:none}
.dj-search-condition-caret{display:inline-grid;place-items:center;width:24px;color:var(--accent);transition:transform .15s ease}
.dj-search-conditions[open] .dj-search-condition-caret{transform:rotate(90deg)}
.dj-search-conditions>ul{margin-block-end:var(--dj-space-2)}
.dj-search-conditions .dj-search-ignored{padding-block:var(--dj-space-1) var(--dj-space-2);color:var(--muted)}
.dj-search-conditions .dj-search-ignored del{color:var(--muted);text-decoration-thickness:1px}
.dj-search-filterbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--dj-space-1);min-width:0}
.dj-search-window .dj-search-filterbar>button{display:inline-flex;align-items:center;justify-content:center;gap:var(--dj-space-1);min-height:44px;padding:var(--dj-space-1) var(--dj-space-2);border:1px solid var(--line);border-radius:var(--dj-radius-chip);background:var(--panel);color:var(--ink);font:var(--dj-text-body-weight) var(--dj-text-secondary-size)/var(--dj-text-secondary-line-height) var(--dj-font-functional)}
.dj-search-window .dj-search-filterbar>button:first-child{border-color:var(--accent);color:var(--accent)}
.dj-search-window .dj-search-filter-chip{background:var(--accent-soft)}
.dj-search-filter-head{display:flex;align-items:center;justify-content:space-between;gap:var(--dj-space-2)}
.dj-search-filter-head>h2{margin:0}
.dj-search-window .dj-search-filter-head>button{display:grid;place-items:center;min-width:44px;min-height:44px;border:0;border-radius:var(--dj-radius-circle);background:transparent;color:var(--accent)}
.dj-search-window .dj-search-filter-shade{min-width:0}
@media(max-width:599px){
 .dj-search-window{gap:var(--dj-space-1);padding-block-end:var(--dj-space-4)}
 .dj-search-window [data-search-form]>label{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
 .dj-search-window .dj-search-input{min-height:52px}
 .dj-search-window .dj-search-understanding{margin-block:0}
 .dj-search-window .dj-search-group{gap:0}
 .dj-search-window .dj-search-group>h2{margin:var(--dj-space-1) 0 0;font:var(--dj-text-heading-weight) var(--dj-text-heading-size)/var(--dj-text-heading-line-height) var(--dj-font-functional)}
 .dj-search-window .dj-search-result{border:0;border-block-end:1px solid var(--line);border-radius:0;background:transparent;padding:var(--dj-space-2) 0;gap:0}
 .dj-search-window .dj-search-result small{margin-block-start:var(--dj-space-1)}
 .dj-search-window .dj-search-empty{border:0;padding:var(--dj-space-2) 0}
 .dj-search-window .dj-search-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--dj-space-1);margin-block-start:var(--dj-space-1)}
 .dj-search-window .dj-search-toolbar>button:is([data-search-refine],[data-search-operation],[data-search-save-start]){width:100%;padding-inline:var(--dj-space-1);border:1px solid var(--line);border-radius:var(--dj-radius-chip);background:var(--panel);color:var(--ink);font-size:var(--dj-text-secondary-size);line-height:var(--dj-text-secondary-line-height);text-align:center;white-space:normal}
 .dj-search-window .dj-search-toolbar>button[data-search-save-start]{border-color:var(--accent);color:var(--accent)}
 .dj-search-window .dj-search-filter-shade{position:fixed;inset:0;z-index:112;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--ink) 28%,transparent);padding:0}
 .dj-search-window .dj-search-advanced{width:100%;max-height:82dvh;overflow-y:auto;border-radius:var(--dj-radius-popup) var(--dj-radius-popup) 0 0;border-block-end:0;box-shadow:var(--shadow);padding:var(--dj-space-3)}
 .dj-search-window .dj-search-advanced .dj-search-type-choices{gap:var(--dj-space-1)}
 .dj-search-window .dj-search-advanced .dj-search-choices{row-gap:var(--dj-space-1)}
}

