/* Карточка задачи (панель/шторка), модальные окна, меню статуса, уведомления. */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:50;display:grid;place-items:center;padding:var(--sp-4);animation:fade var(--dur) var(--ease)}
.modal{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4);animation:pop var(--dur) var(--ease)}
.modal form{display:flex;flex-direction:column;gap:var(--sp-4)}
.mh{display:flex;align-items:center;gap:var(--sp-2)}
.mh h2{font-size:var(--fs-lg)}
.mh .x{margin-left:auto}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.colors{display:flex;gap:var(--sp-2);min-height:42px;align-items:center;flex-wrap:wrap;border:0}
.colors label{position:relative;width:28px;height:28px;border-radius:var(--r-sm);background:var(--c);cursor:pointer}
.colors input{position:absolute;opacity:0;inset:0;cursor:pointer}
.colors label:has(input:checked){outline:2px solid var(--ink);outline-offset:2px}
.colors label:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:3px}
.tpl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);border:0}
.tpl label{border:1px solid var(--line);border-radius:var(--r-md);padding:10px var(--sp-3);font-size:13px;font-weight:600;cursor:pointer;position:relative;min-height:var(--touch)}
.tpl input{position:absolute;opacity:0;inset:0;cursor:pointer}
.tpl small{display:block;font-weight:400;color:var(--muted);font-size:var(--fs-xs);margin-top:2px}
.tpl label:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.tpl label:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
fieldset.field{border:0;min-width:0}
fieldset.field legend{font-size:13px;font-weight:600;color:var(--ink2);margin-bottom:6px}
.mf{display:flex;gap:var(--sp-2);justify-content:flex-end;padding-top:var(--sp-1);flex-wrap:wrap}
.mf .left{margin-right:auto}

/* карточка задачи */
.drawer{position:fixed;top:0;right:0;bottom:0;width:var(--drawer-w);max-width:100%;z-index:40;overflow:auto;background:var(--surface);border-left:1px solid var(--line);padding:20px 22px;display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:var(--shadow-drawer);animation:slide-in var(--dur) var(--ease)}
.drawer-scrim{display:none}
.drawer .dh{display:flex;align-items:center;gap:var(--sp-2)}
.drawer .dh .x{margin-left:auto}
.drawer .ttl-inp{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.01em;line-height:1.3;border:1px solid transparent;border-radius:var(--r-sm);padding:4px 6px;margin:-4px -6px;width:calc(100% + 12px);resize:none;background:transparent;overflow:hidden}
.drawer .body-inp{border-color:transparent;background:transparent;margin:0 -6px;padding:6px;width:calc(100% + 12px);min-height:60px;font-size:14px;color:var(--ink2)}
.drawer .ttl-inp:hover,.drawer .body-inp:hover{border-color:var(--line)}
.drawer .ttl-inp:focus,.drawer .body-inp:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);background:var(--surface)}
.statusbar{display:flex;gap:6px;flex-wrap:wrap}
.statusbar .chip{height:30px;padding:0 10px;border:1px solid transparent;cursor:pointer}
.statusbar .chip[aria-pressed="true"]{border-color:currentColor}
.fields{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px var(--sp-3);font-size:var(--fs-sm);align-items:center}
.fields>label,.fields>.dt{color:var(--muted)}
.fields .sel{min-height:36px;font-size:13.5px}
.switch{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;min-height:36px}
.switch input{width:18px;height:18px;accent-color:var(--primary)}
.box{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3) 14px}
.box h4,.hist h4{font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-2)}
.chk{display:flex;gap:var(--sp-2);font-size:var(--fs-sm);align-items:flex-start;min-height:32px}
.chk label{display:flex;gap:var(--sp-2);align-items:flex-start;flex:1;cursor:pointer;padding:4px 0;overflow-wrap:anywhere;min-width:0}
.chk input{width:16px;height:16px;margin-top:3px;accent-color:var(--s-done);flex:none}
.chk input:checked+span{color:var(--muted);text-decoration:line-through}
.chk .rm{opacity:.0;transition:opacity var(--dur) var(--ease)}
.chk:hover .rm,.chk .rm:focus-visible{opacity:1}
.addrow{display:flex;gap:6px;margin-top:var(--sp-2)}
.addrow .inp,.addrow .sel{min-height:36px;font-size:13.5px}
.addrow .sel-wrap{flex:none;width:120px}
.evi{display:flex;gap:var(--sp-2);align-items:center;font-size:13px;padding:var(--sp-2) 10px;border-radius:var(--r-sm);background:var(--sunk);margin-top:6px;min-width:0}
.evi .v{flex:1;min-width:0;overflow-wrap:anywhere}
.evi small{color:var(--muted);font-size:11.5px;display:block}
.warn{display:flex;gap:10px;font-size:13px;background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--r-md);padding:10px var(--sp-3);align-items:flex-start}
.warn svg{margin-top:1px}
.hist{font-size:12.5px;color:var(--muted)}
.hist li{padding:3px 0}
.hist b{color:var(--ink2);font-weight:500}
.dfoot{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-2)}
.dfoot .acts{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.dfoot .acts .pri{flex:1}
.dfoot form{display:grid;gap:var(--sp-2)}
.del-confirm{display:flex;align-items:center;gap:var(--sp-2);font-size:13.5px;flex-wrap:wrap}

/* меню статуса */
.menu{position:fixed;z-index:70;min-width:200px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:6px;animation:pop var(--dur) var(--ease)}
.menu [role="menuitemradio"]{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:40px;padding:0 10px;border-radius:var(--r-sm);text-align:left}
.menu [role="menuitemradio"]:hover,.menu [role="menuitemradio"]:focus-visible{background:var(--sunk);outline:none}
.menu .ok{margin-left:auto;color:var(--primary)}
.menu .mt{font-size:var(--fs-xs);color:var(--muted);padding:6px 10px 4px}
.menu-scrim{position:fixed;inset:0;z-index:69;background:transparent}

/* уведомления */
.toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;display:flex;flex-direction:column;gap:var(--sp-2);align-items:center;width:min(480px,calc(100% - 32px));pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--sp-3);background:var(--ink);color:var(--bg);border-radius:var(--r-md);padding:10px 10px 10px var(--sp-4);font-size:14px;box-shadow:var(--shadow-lg);width:100%;animation:pop var(--dur) var(--ease)}
.toast span{flex:1;min-width:0}
.toast .btn{background:transparent;border-color:color-mix(in srgb,var(--bg) 30%,transparent);color:var(--bg);min-height:34px}
.toast.bad{background:var(--danger);color:var(--avatar-ink)}

@keyframes fade{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:scale(.97)}}
@keyframes slide-in{from{transform:translateX(24px);opacity:0}}
@keyframes slide-up{from{transform:translateY(40px);opacity:0}}

@media (max-width:1023px){
  .toasts{bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom))}
}
@media (max-width:767px){
  .drawer-scrim{display:block;position:fixed;inset:0;background:var(--scrim);z-index:39;animation:fade var(--dur) var(--ease)}
  .drawer{top:auto;left:0;width:100%;max-height:90dvh;border-left:0;border-radius:20px 20px 0 0;padding:10px var(--sp-4) calc(24px + env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);animation:slide-up var(--dur) var(--ease)}
  .drawer::before{content:"";display:block;width:40px;height:5px;border-radius:3px;background:var(--line-strong);margin:0 auto var(--sp-1);flex:none}
  .fields{grid-template-columns:110px minmax(0,1fr)}
  .fields .sel{min-height:var(--touch)}
  .menu.sheet{left:0!important;right:0;top:auto!important;bottom:0;border-radius:20px 20px 0 0;padding:10px var(--sp-4) calc(24px + env(safe-area-inset-bottom));animation:slide-up var(--dur) var(--ease)}
  .menu.sheet [role="menuitemradio"]{min-height:52px;border-top:1px solid var(--line);border-radius:0}
  .menu.sheet [role="menuitemradio"]:first-of-type{border-top:0}
  .menu-scrim.sheet{background:var(--scrim)}
  .two{grid-template-columns:1fr}
  .tpl{grid-template-columns:1fr}
  .modal{padding:20px var(--sp-4)}
  .chk .rm{opacity:1}
}
/* flex-колонки с прокруткой не должны сжимать содержимое (textarea схлопывалась) */
.drawer>*,.modal>*,.modal form>*{flex-shrink:0}
