:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#292b36;background:#f7f8fa;font-size:16px;--accent:#6864d9;--muted:#878a99;--border:#ececf1;--tint:#efedfb;--shadow:0 10px 40px #23233c0a}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button{border:0;background:none;color:inherit}a{color:var(--accent);text-decoration:none}button:disabled{opacity:.5;cursor:wait}input,textarea,select{border:1px solid #e1e2e9;border-radius:9px;background:#fff;color:inherit;padding:10px 12px;min-width:0;max-width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #aaa5eb;outline-offset:1px}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}label{display:flex;flex-direction:column;gap:7px;font-size:1rem;font-weight:500}h1,h2,h3,p{margin-top:0}h1{font-size:2.25rem;letter-spacing:-.9px;font-weight:650;margin-bottom:8px}h2{font-size:1.4375rem;letter-spacing:-.3px}h3{font-size:1.125rem}p{line-height:1.6}.muted{color:var(--muted)}.sidebar{width:270px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--border);padding:30px 18px 16px;display:flex;flex-direction:column;z-index:20;overflow-y:auto}.brand{display:grid;grid-template-columns:36px auto;gap:0 10px;color:#2d2e3a;font-size:1.75rem;font-weight:700;align-items:center;padding:0 10px;margin-bottom:39px;letter-spacing:-.7px}.brand-icon{background:var(--accent);color:white;border-radius:11px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:650;grid-row:span 2}.personal-label{font-size:0.8125rem;letter-spacing:.1px;font-weight:400;color:var(--muted);margin-top:2px}.sidebar-caption{font-size:0.8125rem;color:#9698a6;letter-spacing:1.5px;font-weight:600;padding:0 12px 12px}.nav-item{display:flex;width:100%;align-items:center;gap:12px;padding:11px 13px;border-radius:9px;text-align:left;margin-bottom:4px;color:#717584;font-size:1rem;min-height:40px}.nav-item:hover{background:#f6f6fa}.nav-item.active{color:var(--accent);background:var(--tint);font-weight:600}.nav-symbol{width:18px;font-size:1.25rem;text-align:center}.nav-count{margin-left:auto;color:#9a9dab;font-size:0.875rem}.nav-item.active .nav-count{color:var(--accent)}.tags-heading{display:flex;align-items:center;justify-content:space-between;margin-top:28px;padding-bottom:4px}.icon-button{border-radius:8px;min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:1.5625rem;color:#9294a2}.icon-button:hover{background:#ededf5;color:var(--accent)}.tag-dot{width:8px;height:8px;border-radius:50%;background:var(--tag);display:inline-block;flex-shrink:0}.sidebar-bottom{margin-top:auto;padding-top:36px}.workspace{margin-left:270px;min-height:100dvh}.topbar{height:77px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 46px;color:var(--muted);font-size:0.9375rem}.content{max-width:1280px;margin:auto;padding:40px 46px 60px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:27px}.page-heading p{font-size:1rem;margin-bottom:0}.eyebrow{font-size:0.8125rem;font-weight:600;color:#9a98b2;letter-spacing:1.6px;margin-bottom:10px}.primary,.quiet,.button{padding:10px 15px;border-radius:9px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:1rem;white-space:nowrap}.primary{background:var(--accent);color:#fff;box-shadow:0 3px 7px #6864d922}.primary:hover{background:#5955c5}.quiet{background:#f2f3f7;color:#747787}.quiet:hover{background:#e9e9f2}.overview{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}.stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:17px 19px;display:flex;align-items:center;gap:13px;text-align:left}.stat-icon{width:37px;height:37px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:var(--tint);color:var(--accent);font-size:1.4375rem}.stat:nth-child(2) .stat-icon{color:#b57c4e;background:#fcf3eb}.stat:nth-child(3) .stat-icon{color:#4f9c81;background:#edf7f2}.stat-number{display:block;font-size:1.6875rem;line-height:1.2;font-weight:600;letter-spacing:-.6px}.stat-label{font-size:0.875rem;color:var(--muted);display:block;margin-top:4px}.task-panel{border:1px solid var(--border);border-radius:13px;background:#fff;box-shadow:var(--shadow);overflow:hidden}.quick-add{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--border)}.quick-plus{color:var(--accent);font-size:1.8125rem}.quick-add input{flex:1;border:0;background:none;padding:8px 0;box-shadow:none;font-size:1rem}.quick-add input:focus{outline:none}.quick-add button{color:#9c99b1;font-size:0.9375rem;padding:8px}.toolbar{display:flex;gap:12px;align-items:center;padding:13px 20px;border-bottom:1px solid var(--border);flex-wrap:wrap}.search{display:flex;align-items:center;flex:1;min-width:160px;gap:8px;color:#a0a3af}.search>span{font-size:1.75rem}.search input{border:0;padding:4px 0;width:100%;font-size:0.9375rem;background:transparent}.search input:focus{outline:none}.toolbar .quiet{padding:7px 10px;font-size:0.875rem}.compact-label{font-size:0.8125rem;color:#a3a4af;gap:1px}.compact-label select{border:0;font-size:0.875rem;padding:2px 14px 2px 0;background:transparent;color:#747786}.filter-panel{display:flex;flex-wrap:wrap;gap:14px;padding:20px;background:#fafafd;border-bottom:1px solid var(--border);align-items:end}.filter-panel[hidden]{display:none}.filter-panel fieldset{flex-basis:100%}.filter-panel label{font-size:0.875rem}.group-heading{display:flex;align-items:center;gap:9px;padding:18px 21px 9px;color:#9193a2;font-size:0.8125rem;letter-spacing:.7px;text-transform:uppercase;font-weight:600}.group-heading .icon-button{font-size:1rem;width:18px;min-width:18px;height:18px}.group-count{letter-spacing:0;text-transform:none;background:#f1f2f6;color:#9c9eaa;padding:2px 6px;border-radius:4px;font-size:0.8125rem}.task-row{display:flex;gap:13px;padding:15px 22px;align-items:flex-start;position:relative;border-bottom:1px solid #f2f3f6}.task-row:hover{background:#fcfcfe}.complete{width:19px;height:19px;border:1.5px solid #d5d8e3;border-radius:50%;margin-top:2px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:0.875rem;color:var(--accent);padding:0}.complete:hover{background:var(--tint);border-color:var(--accent)}.task-row.done .complete{background:#eaf5ef;border-color:#8bbfa5;color:#4c9675}.task-main{flex:1;min-width:0}.task-title{font-size:1rem;text-align:left;padding:0;line-height:1.6;display:block;word-break:break-word}.task-title:hover{color:var(--accent)}.task-row.done .task-title{text-decoration:line-through;color:#a0a2af}.task-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:7px;font-size:0.8125rem;color:#a3a5b2}.tag-chip{color:var(--tag);background:color-mix(in srgb,var(--tag) 9%,white);border-radius:5px;padding:3px 7px;display:inline-flex;align-items:center;gap:5px}.tag-chip .tag-dot{width:5px;height:5px}.date-chip{color:#989aaa}.date-chip.overdue{color:#c46b6b}.date-chip.today{color:var(--accent)}.task-actions{display:flex;gap:2px;align-items:center;margin-left:auto}.task-actions button{font-size:1rem;min-width:26px;width:26px;height:26px}.task-actions .reorder-button{opacity:0}.task-row:hover .reorder-button,.task-row:focus-within .reorder-button{opacity:1}.empty{text-align:center;padding:58px 20px 65px;color:var(--muted)}.empty-icon{display:block;font-size:2.875rem;color:#a9a5db;margin-bottom:17px}.empty h2{font-size:1.25rem;color:#696c7c;font-weight:500}.empty p{font-size:0.9375rem;max-width:340px;margin:0 auto 18px}.empty .primary{margin:auto}.list-footer{padding:14px 21px;display:flex;justify-content:space-between;gap:10px;font-size:0.8125rem;color:#aaaeba;background:#fdfdfe}.list-footer span:last-child{font-style:italic}dialog{border:0;padding:0;background:#fff;color:inherit;box-shadow:0 15px 70px #24233f26}dialog::backdrop{background:#292a4340;backdrop-filter:blur(2px)}.drawer{margin:0 0 0 auto;width:510px;max-width:100%;height:100dvh;max-height:100dvh;border-radius:15px 0 0 15px}.drawer form{display:flex;flex-direction:column;height:100%}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:22px 25px}.dialog-header h2{margin:0}.drawer-body{padding:25px;overflow-y:auto;flex:1}.drawer-body>label,.modal form>label{margin-bottom:20px}.title-label input{font-size:1.25rem;font-weight:500}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-bottom:20px}.dialog-footer{display:flex;gap:8px;justify-content:flex-end;padding:17px 25px;border-top:1px solid var(--border)}.dialog-footer .danger{margin-right:auto}.danger{color:#b96068}.field-hint{font-size:0.875rem;line-height:1.6;color:#989baa;margin-top:-9px;margin-bottom:23px}fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}legend{font-size:1rem;font-weight:500;margin-bottom:10px;padding:0}.tag-picker{display:flex;flex-wrap:wrap;gap:7px}.tag-option{position:relative;cursor:pointer;display:inline-flex;flex-direction:row;align-items:center;gap:5px;border:1px solid var(--border);padding:6px 9px;border-radius:7px;font-size:0.875rem;color:#8d90a0;font-weight:400}.tag-option:has(input:checked){background:var(--tint);border-color:#c7c2ef;color:var(--accent)}.tag-option input{width:12px;height:12px;margin:0}.tag-option:focus-within{outline:2px solid var(--accent)}.text-button{color:var(--accent);font-size:0.9375rem;padding:9px 0}.subtask{display:flex;gap:8px;align-items:center;margin-bottom:7px}.subtask input[type=text]{flex:1;font-size:0.9375rem;padding:8px 10px}.subtask .icon-button{font-size:1.375rem;min-width:25px;width:25px}.form-error{color:#bf6268;font-size:0.9375rem;line-height:1.5}.modal{width:490px;max-width:calc(100% - 24px);border-radius:14px;max-height:90dvh;padding:0 25px 25px}.modal>.dialog-header{margin:0 -25px 22px}.modal>p{font-size:0.9375rem}.modal hr{border:0;border-top:1px solid var(--border);margin:25px 0}.modal .form-grid{margin-bottom:15px}.check-label{display:flex;flex-direction:row;align-items:center;font-weight:400}.tag-edit-row{display:flex;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:0.9375rem}.tag-edit-row>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}.tag-edit-row .quiet{padding:5px 8px;font-size:0.875rem}.tag-edit-row small{color:var(--muted)}#tag-form{margin-top:24px}.tag-actions{display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;bottom:24px;left:calc(50% + 135px);transform:translateX(-50%);background:#323344;color:#fff;padding:14px 18px;box-shadow:0 6px 30px #292a4322;border-radius:10px;z-index:99;display:flex;align-items:center;gap:18px;max-width:90vw;font-size:0.9375rem}.toast[hidden]{display:none}.toast button{color:#c7c2ff;font-weight:600;font-size:0.9375rem}.login-page{display:grid;place-items:center;min-height:100dvh;padding:24px;background:radial-gradient(ellipse at 40% 10%,#eae8f8,transparent 65%),#f7f8fa}.login-card{width:370px;max-width:100%;background:#fff;border:1px solid var(--border);border-radius:20px;padding:36px;box-shadow:var(--shadow)}.login-card>.brand-icon{width:46px;height:46px;font-size:2.1875rem;margin-bottom:22px;border-radius:14px}.login-card h1{font-size:2.125rem}.login-card p{font-size:1rem}.login-card form{margin-top:25px}.login-card label{margin-bottom:17px}.login-card .primary{width:100%;margin-top:7px}.portal-link{display:block;color:#a1a2b1;font-size:0.875rem;margin-top:24px;text-align:center}.mobile-only,.mobile-scrim{display:none}
@media(max-width:1100px){.content{padding:30px 25px}.topbar{padding:0 25px}.sidebar{width:250px;padding-left:12px;padding-right:12px}.workspace{margin-left:250px}.toast{left:calc(50% + 125px)}.task-actions .reorder-button{opacity:1}.toolbar{gap:9px}.compact-label{max-width:140px}.overview{gap:9px}.stat{padding:15px 13px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:270px;transition:transform .18s}.sidebar.open{transform:translateX(0)}.mobile-only{display:inline-flex}.mobile-scrim.visible{display:block;position:fixed;inset:0;background:#282a3d50;z-index:19}.workspace{margin-left:0}.topbar{height:59px;padding:0 17px;gap:10px}.topbar-label{display:none}.topbar time{margin-left:auto;font-size:0.875rem}.content{padding:26px 15px 45px}.page-heading{align-items:flex-start;gap:10px;margin-bottom:22px;flex-wrap:wrap}h1{font-size:1.875rem}.page-heading .primary{font-size:0.875rem;padding:10px 12px;margin-top:0}.page-heading p{font-size:0.875rem}.overview{gap:7px;margin-bottom:20px}.stat{padding:13px 10px;gap:8px;border-radius:10px}.stat-icon{width:27px;height:30px;font-size:1.1875rem;border-radius:7px}.stat-number{font-size:1.4375rem}.stat-label{font-size:0.8125rem}.toolbar{padding:12px 14px;gap:10px}.search{min-width:60%;flex:1}.compact-label{flex:1;max-width:none}.quick-add{padding:12px 14px}.quick-add button{font-size:0.875rem}.task-row{padding:14px;gap:10px}.task-title{font-size:1rem}.task-actions{gap:0;flex-direction:column}.task-actions button{height:22px}.list-footer{padding:13px 15px}.list-footer span:last-child{display:none}.group-heading{padding-left:14px}.toast{left:50%;bottom:16px;max-width:94vw;min-width:240px}.drawer{border-radius:0}.drawer-body{padding:21px}.dialog-header{padding:18px 21px}.dialog-footer{padding:15px 21px}.empty{padding:45px 20px}.filter-panel{padding:15px}.filter-panel>label{flex:1}.form-grid{gap:13px}.modal{padding-left:20px;padding-right:20px}.modal>.dialog-header{margin-left:-20px;margin-right:-20px}.tag-edit-row{flex-wrap:wrap}}
@media(max-width:480px){.stat{min-width:0;align-items:flex-start}.stat-icon{display:none}.stat-label{overflow-wrap:anywhere}.overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}.date-time-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.65fr);gap:14px;margin-bottom:17px}.reminder-section>label{margin-bottom:13px}.reminder-options{margin-bottom:14px}.custom-reminder{display:flex;gap:8px;margin-bottom:14px}.custom-reminder input{flex:1;width:0}.custom-reminder select{width:100px}.reminder-preview{margin:0 0 6px;font-size:.875rem}.push-actions{display:flex;gap:9px;flex-wrap:wrap}.push-status{font-size:.9375rem;line-height:1.6;background:var(--tint);border-radius:9px;padding:12px 14px}.date-time-grid label{min-width:0}input[type=time],input[type=date]{width:100%}

/* Оформление применяется и к системным полям даты, времени и выпадающим спискам. */
:root{color-scheme:light}
.theme-hint{margin-top:10px;margin-bottom:0}
:root[data-theme=dark]{color-scheme:dark;color:#e5eaf3;background:#12151c;--accent:#b2a7ff;--muted:#acb6c9;--border:#323b4b;--tint:#302b4a;--shadow:0 10px 40px #00000024;--surface:#1b202a;--surface-raised:#252d3b;--surface-hover:#293243;--text:#e5eaf3;--secondary:#acb6c9;--button:#7060d9;--button-hover:#7563dc}
:root[data-theme=dark] .sidebar,
:root[data-theme=dark] .stat,
:root[data-theme=dark] .task-panel,
:root[data-theme=dark] .login-card,
:root[data-theme=dark] dialog{background:var(--surface)}
:root[data-theme=dark] input,
:root[data-theme=dark] textarea,
:root[data-theme=dark] select{background:var(--surface-raised);border-color:var(--border);color:var(--text)}
:root[data-theme=dark] input::placeholder,
:root[data-theme=dark] textarea::placeholder{color:#98a4b9;opacity:1}
:root[data-theme=dark] input:-webkit-autofill{-webkit-text-fill-color:var(--text);caret-color:var(--text);box-shadow:0 0 0 1000px var(--surface-raised) inset}
:root[data-theme=dark] input:focus,
:root[data-theme=dark] textarea:focus,
:root[data-theme=dark] select:focus{outline-color:var(--accent)}
:root[data-theme=dark] .quick-add input,
:root[data-theme=dark] .search input,
:root[data-theme=dark] .compact-label select{background:transparent}
:root[data-theme=dark] .brand{color:var(--text)}
:root[data-theme=dark] .sidebar-caption,
:root[data-theme=dark] .nav-item,
:root[data-theme=dark] .nav-count,
:root[data-theme=dark] .icon-button,
:root[data-theme=dark] .eyebrow,
:root[data-theme=dark] .quick-add button,
:root[data-theme=dark] .search,
:root[data-theme=dark] .compact-label,
:root[data-theme=dark] .compact-label select,
:root[data-theme=dark] .group-heading,
:root[data-theme=dark] .group-count,
:root[data-theme=dark] .task-meta,
:root[data-theme=dark] .date-chip,
:root[data-theme=dark] .field-hint,
:root[data-theme=dark] .tag-option,
:root[data-theme=dark] .portal-link{color:var(--secondary)}
:root[data-theme=dark] .nav-item.active,
:root[data-theme=dark] .nav-item.active .nav-count,
:root[data-theme=dark] .date-chip.today{color:var(--accent)}
:root[data-theme=dark] .nav-item:hover,
:root[data-theme=dark] .icon-button:hover,
:root[data-theme=dark] .task-row:hover{background:var(--surface-hover)}
:root[data-theme=dark] .nav-item.active{background:var(--tint)}
:root[data-theme=dark] .icon-button:hover{color:var(--accent)}
:root[data-theme=dark] .brand-icon,
:root[data-theme=dark] .primary{background:var(--button);color:#fff;box-shadow:none}
:root[data-theme=dark] .primary:hover{background:var(--button-hover)}
:root[data-theme=dark] .quiet{background:var(--surface-raised);color:#c4cde0}
:root[data-theme=dark] .quiet:hover{background:var(--surface-hover)}
:root[data-theme=dark] .group-count{background:var(--surface-raised)}
:root[data-theme=dark] .filter-panel,
:root[data-theme=dark] .list-footer{background:#181d27}
:root[data-theme=dark] .list-footer{color:#a0acc2}
:root[data-theme=dark] .task-row{border-color:var(--border)}
:root[data-theme=dark] .complete{border-color:#78859c}
:root[data-theme=dark] .complete:hover{background:var(--tint);border-color:var(--accent)}
:root[data-theme=dark] .task-row.done .complete{background:#213c32;border-color:#60967f;color:#a1debf}
:root[data-theme=dark] .task-row.done .task-title{color:#9ca9bf}
:root[data-theme=dark] .tag-chip{color:color-mix(in srgb,var(--tag) 45%,white);background:color-mix(in srgb,var(--tag) 18%,var(--surface))}
:root[data-theme=dark] .date-chip.overdue,
:root[data-theme=dark] .danger,
:root[data-theme=dark] .form-error{color:#ffabb3}
:root[data-theme=dark] .stat:nth-child(2) .stat-icon{color:#edbe8c;background:#3b3026}
:root[data-theme=dark] .stat:nth-child(3) .stat-icon{color:#9bd5b6;background:#213c32}
:root[data-theme=dark] .empty-icon{color:#b0a7e5}
:root[data-theme=dark] .empty h2{color:#cbd4e5}
:root[data-theme=dark] .tag-option:has(input:checked){color:var(--accent);background:var(--tint);border-color:#8b7bd0}
:root[data-theme=dark] dialog{box-shadow:0 15px 70px #00000070}
:root[data-theme=dark] dialog::backdrop{background:#05080cb3}
:root[data-theme=dark] .toast{background:#303c50;color:#f0f3fa;box-shadow:0 6px 30px #00000050}
:root[data-theme=dark] .toast button{color:#d4caff}
:root[data-theme=dark] .login-page{background:radial-gradient(ellipse at 40% 10%,#2d2946,transparent 65%),#12151c}
:root[data-theme=dark] .mobile-scrim.visible{background:#05080cb3}
:root[data-theme=dark] ::selection{background:#7767e899;color:#fff}

/* Дерево тегов: каждый уровень сдвинут на 28 px, ветви соединены линиями. */
.tag-tree{--tree-line:#cdd1df;list-style:none;margin:0;padding:0}
.tag-tree .tag-children{list-style:none;margin:0 0 0 17px;padding:0 0 0 11px}
.tag-branch{position:relative;min-width:0}
.tag-children>.tag-branch::before,.tag-children>.tag-branch::after{content:"";position:absolute;left:-11px;pointer-events:none;border-color:var(--tree-line)}
.tag-children>.tag-branch::before{top:0;bottom:0;border-left:1px solid var(--tree-line)}
.tag-children>.tag-branch:last-child::before{bottom:auto;height:24px}
.tag-children>.tag-branch::after{top:23px;width:10px;border-top:1px solid var(--tree-line)}
.tag-tree .nav-item{gap:9px;min-height:46px;margin-bottom:0}
.tag-tree .tag-label{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.45}
.tag-tree .nav-count{flex-shrink:0}
.tag-parent>.nav-item>.tag-label,.tag-parent>.tag-edit-row>.tag-label{font-weight:600}
.tag-tree>.tag-branch+.tag-branch{margin-top:6px}
.tag-tree .tag-edit-row{min-height:46px}
.tag-tree .tag-edit-row>.tag-label{flex-basis:80px}
.tag-tree .tag-edit-row small{display:block;font-weight:400}
#tag-form .form-grid{grid-template-columns:minmax(0,1fr) 64px}
#tag-form .form-grid>label{min-width:0}
:root[data-theme=dark] .tag-tree{--tree-line:#52617b}

/* Приоритет читается по всей строке и подписи, а не только по цвету. */
:root{
  --priority-high:#bd2945;--priority-high-bg:#fff0f3;--priority-high-hover:#ffe3e9;
  --priority-medium:#a16207;--priority-medium-bg:#fff8e8;--priority-medium-hover:#fff0cc;
  --priority-low:#4868b2;--priority-low-bg:#f2f6ff;--priority-low-hover:#e7eeff;
  --priority-ink:#fff;
}
:root[data-theme=dark]{
  --priority-high:#ff91a7;--priority-high-bg:#32212d;--priority-high-hover:#422735;
  --priority-medium:#f4c26b;--priority-medium-bg:#302b21;--priority-medium-hover:#3e3525;
  --priority-low:#9bbaff;--priority-low-bg:#212b3e;--priority-low-hover:#2a3650;
  --priority-ink:#191c24;
}
.task-row[data-priority="3"]{--priority-color:var(--priority-high);--priority-bg:var(--priority-high-bg);--priority-hover:var(--priority-high-hover)}
.task-row[data-priority="2"]{--priority-color:var(--priority-medium);--priority-bg:var(--priority-medium-bg);--priority-hover:var(--priority-medium-hover)}
.task-row[data-priority="1"]{--priority-color:var(--priority-low);--priority-bg:var(--priority-low-bg);--priority-hover:var(--priority-low-hover)}
:root .task-row:not(.done):is([data-priority="1"],[data-priority="2"],[data-priority="3"]){background:var(--priority-bg);box-shadow:inset 5px 0 var(--priority-color)}
:root .task-row:not(.done):is([data-priority="1"],[data-priority="2"],[data-priority="3"]):hover{background:var(--priority-hover)}
.task-row:not(.done)[data-priority="3"] .task-title{font-weight:700}
.task-row:not(.done)[data-priority="2"] .task-title{font-weight:600}
.priority-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid var(--priority-color);border-radius:6px;background:var(--priority-color);color:var(--priority-ink);font-size:.8125rem;font-weight:650;line-height:1.35}
.priority-badge>span{font-size:1rem;font-weight:700;line-height:1}
.task-row.done .priority-badge{background:transparent;border-color:var(--border);color:var(--muted);font-weight:500}

/* Подзадачи остаются внутри карточки и отмечаются независимо от основного дела. */
:root{--done-bg:#eaf5ef;--done-text:#356b52;--done-border:#8bbfa5}
:root[data-theme=dark]{--done-bg:#213c32;--done-text:#a1debf;--done-border:#60967f}
.task-row.has-subtasks{margin:8px 12px;border:1px solid var(--border);border-radius:10px}
.subtask-list{list-style:none;margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--border);display:grid;gap:6px}
.subtask-item{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:transparent}
.subtask-toggle{display:flex;flex-direction:row;align-items:center;gap:10px;flex:1;min-width:0;font-weight:400;font-size:.9375rem;cursor:pointer;line-height:1.5}
.subtask-toggle input{flex-shrink:0;margin:0;width:18px;height:18px}
.subtask-text{overflow-wrap:anywhere}
.subtask-time{flex-shrink:0;font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;color:inherit}
.subtask-item.is-done,.subtask.is-done{background:var(--done-bg);border-color:var(--done-border);color:var(--done-text)}
.subtask-item.is-done .subtask-text{text-decoration:line-through}
.subtask-item.is-done input,.subtask.is-done input[type=checkbox]{accent-color:var(--done-text)}
.subtask{display:grid;grid-template-columns:18px minmax(0,1fr) 28px;gap:9px;align-items:start;padding:10px;border:1px solid var(--border);border-radius:8px;margin-bottom:9px}
.subtask>input[type=checkbox]{margin:12px 0 0}
.subtask-fields{display:grid;gap:8px;min-width:0}
.subtask-fields>input{width:100%}
.subtask-time-field{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;font-size:.8125rem;color:inherit;font-weight:400}
.subtask-time-field input[type=time]{width:135px;padding:6px 8px;font-size:.875rem}
@media(max-width:760px){.task-row.has-subtasks{margin:7px 8px;padding:12px 10px}.subtask-item{padding:6px 8px;gap:6px}.subtask-toggle{gap:8px}}
