/* Toast notifications */
.twodos-toasts{ position:fixed; z-index:9999; top:14px; right:14px; display:flex; flex-direction:column; gap:10px; width:260px; pointer-events:none; }
.toast{ position:relative; background:var(--surface); border:1px solid var(--muted); border-radius:8px; padding:10px 12px 10px 34px; font:500 13px/1.3 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; box-shadow:0 4px 18px rgba(17,24,39,.12), 0 2px 6px rgba(17,24,39,.08); opacity:0; transform:translateY(-6px) scale(.96); transition:opacity .35s cubic-bezier(.4,0,.2,1), transform .45s cubic-bezier(.4,0,.2,1); cursor:pointer; pointer-events:auto; }
.toast--in{ opacity:1; transform:translateY(0) scale(1); }
.toast__icon{ position:absolute; left:10px; top:50%; transform:translateY(-50%); width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:600; border-radius:4px; background:var(--chip-bg); color:var(--text-700); }
.toast--success .toast__icon{ background:var(--success-bg); color:var(--success-text); }
.toast--error .toast__icon{ background:var(--danger-bg); color:var(--danger-text); }
.toast--warn .toast__icon{ background:var(--warn-bg); color:var(--warn-text); }
.toast--info .toast__icon{ background:var(--info-bg); color:var(--info-text); }
.toast:hover{ box-shadow:0 6px 22px rgba(17,24,39,.16), 0 3px 8px rgba(17,24,39,.10); }
.toast__msg{ display:block; word-break:break-word; }
@media (max-width:600px){ .twodos-toasts{ left:8px; right:8px; width:auto; top:auto; bottom:12px; } }

/* Shortcode progress bar (card variant) */
.twodos-progress{max-width:420px; background:var(--surface); border:1px solid var(--muted); border-radius:10px; padding:12px 14px; font:500 14px/1.3 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; box-shadow:var(--shadow-1);}
.twodos-progress__head{display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; font-size:13px; font-weight:600;}
.twodos-progress__level-label{color:var(--text-900);}
.twodos-progress__next{color:var(--text-500); font-weight:500; font-size:12px;}
.twodos-progress__track{position:relative; height:12px; border-radius:6px; background:var(--track-grad); overflow:hidden; margin-bottom:6px;}
.twodos-progress__fill{position:absolute; inset:0; width:0; background:var(--fill-grad); transition:width .6s cubic-bezier(.4,0,.2,1);} 
.twodos-progress__meta{display:flex; justify-content:space-between; font-size:12px; color:var(--text-700); font-weight:500;}
.twodos-progress__segment{color:var(--text-700);} 
.twodos-progress__total{color:var(--text-500);} 
.twodos-progress--guest{background:var(--surface-soft); color:var(--text-500); font-style:italic;}

/* Guest login view */
.twodos-app.twodos-app--guest{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0;
  padding:var(--two-dos-edge-inset, var(--two-dos-gap, 16px));
  overflow:auto;
}
.twodos-guest-auth{
  width:min(420px, 100%);
  border:1px solid var(--muted);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow-2);
  padding:18px 18px 16px;
  box-sizing:border-box;
}
.twodos-guest-auth__title{
  margin:0 0 6px;
  color:var(--text-900);
  font-size:22px;
  line-height:1.2;
  font-weight:600;
  text-align:center;
}
.twodos-guest-auth__subtitle{
  margin:0 0 14px;
  color:var(--text-500);
  font-size:14px;
  line-height:1.35;
  text-align:center;
}
#twodos-guest-login-form{
  display:grid;
  gap:10px;
}
#twodos-guest-login-form p{
  margin:0;
}
#twodos-guest-login-form label{
  display:grid;
  gap:6px;
  color:var(--text-700);
  font-size:13px;
  font-weight:600;
}
#twodos-guest-login-form .input{
  width:100%;
  min-height:40px;
  border:1px solid var(--muted);
  border-radius:8px;
  background:var(--surface);
  color:var(--text-900);
  font-size:14px;
  line-height:1.25;
  padding:8px 10px;
  box-sizing:border-box;
}
#twodos-guest-login-form .input:focus{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
#twodos-guest-login-form .login-remember label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:500;
}
#twodos-guest-login-form .login-remember input[type="checkbox"]{
  width:16px;
  height:16px;
  margin:0;
  flex:0 0 16px;
}
#twodos-guest-login-form .login-submit{
  margin-top:2px;
}
#twodos-guest-submit{
  width:100%;
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px solid var(--accent);
  border-radius:10px;
  background:var(--accent);
  color:#fff;
  font:600 14px/1.1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
  cursor:pointer;
  box-shadow:var(--shadow-2);
}
#twodos-guest-submit:hover{
  opacity:.94;
}
.twodos-guest-auth__meta{
  margin:10px 0 0;
  text-align:center;
}
.twodos-guest-auth__link{
  display:inline-block;
  color:var(--text-700);
  font-size:13px;
  text-decoration:none;
}
.twodos-guest-auth__link:hover{
  color:var(--accent);
  text-decoration:underline;
}

/* Inline shortcode minimal variant */
.twodos-progress-inline{display:inline-flex; align-items:center; gap:10px; font:600 14px/1.2 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;}
.twodos-progress-inline__label{color:var(--text-900); white-space:nowrap;}
.twodos-progress-inline__bar{--bar-h:8px; position:relative; display:inline-block; width:160px; height:var(--bar-h); background:var(--chip-hover); border-radius:6px; overflow:hidden;}
.twodos-progress-inline__fill{position:absolute; inset:0; width:0; background:var(--fill-grad); transition:width .6s cubic-bezier(.4,0,.2,1);} 
@media (max-width:500px){ .twodos-progress-inline__bar{ width:120px; } }

/* Tabs + action buttons */
.tabs{display:flex; flex-wrap:nowrap; align-items:center; gap:10px; padding:16px calc(58px + var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 10px))) 10px var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 10px)); overflow-x:auto; overflow-y:visible; position:relative; min-width:0; width:100%; max-width:100%; box-sizing:border-box; scrollbar-width:thin; scrollbar-color:var(--muted) transparent; scroll-padding-inline:var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 10px));}
.tab{ display:inline-block; font-size:.9em; line-height:1; background:transparent; border:0; border-radius:var(--radius); box-shadow:var(--shadow-1); cursor:pointer; transition:transform .2s ease, box-shadow .2s ease, background .2s ease; position:relative; padding-right:40px; display:inline-flex; align-items:center; }
.tab:hover{transform:scale(1.02); box-shadow:var(--shadow-3)}
.tabs .tab::after{ display:none; }
.tabs .tab{--tab-h:40px; background:var(--surface); font-size:13px; line-height:1; padding:0 16px; height:40px; border:1px solid var(--muted); color:var(--text-700); gap:8px; flex:0 0 auto;} 
.tabs .tab:not(.editing),
.tags .tag:not(.editing){
  user-select:none;
  -webkit-user-select:none;
}
.tabs .tab.active{background:var(--surface); box-shadow:var(--shadow-2); border-color:var(--accent); color:var(--text-900);} 
.tabs .tab.tab--add{border:1px dashed var(--muted) !important; background:transparent; color:rgba(55,65,81,.5);} 
.tabs .tab.tab--add:hover, .tabs .tab.tab--add:focus-visible{border-color:var(--accent); background:var(--surface); color:var(--text-900);} 
.tabs .tab.tab--placeholder{border:1px dashed var(--accent); background:var(--surface-soft); box-shadow:none; opacity:.65; pointer-events:none;}
.tabs__spacer{ flex:1 1 auto; min-width:10px; }
.tab.tab--archive-toggle{
  margin-left:auto;
  margin-right:0;
  position:relative;
  right:auto;
  top:auto;
  transform:none;
  z-index:4;
  align-self:center;
  flex:0 0 auto;
  box-shadow:var(--shadow-2);
}
.tab.tab--archive-toggle::before{
  content:none;
}
.tab.tab--archive-toggle:hover{ transform:none; }
.tab__label{display:inline-block; white-space:nowrap;}
.tab__grip{display:inline-flex; width:10px; height:14px; align-items:center; justify-content:center; opacity:.55; cursor:grab; margin-right:2px; background-image:radial-gradient(circle at 2px 2px, var(--text-500) 1px, transparent 1.5px), radial-gradient(circle at 2px 8px, var(--text-500) 1px, transparent 1.5px), radial-gradient(circle at 7px 2px, var(--text-500) 1px, transparent 1.5px), radial-gradient(circle at 7px 8px, var(--text-500) 1px, transparent 1.5px); background-repeat:no-repeat;}
.tab.editing .tab__grip{opacity:0;}
.tab.editing > :not(.tab__edit){opacity:0; pointer-events:none;}
.tab__actions{position:absolute; top:-10px; right:-10px; display:flex; gap:6px; opacity:0; transition:opacity .18s ease, transform .18s ease; background:transparent; padding:0; pointer-events:none; z-index:3;}
.tab:hover .tab__actions, .tab:focus-within .tab__actions{opacity:1;}
.tab__btn{background:var(--surface); border:1px solid var(--muted); width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; padding:0; box-shadow:var(--shadow-1); font-size:12px; line-height:1; transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;}
.tab__btn:hover{background:var(--surface); border-color:var(--muted-hover); box-shadow:var(--shadow-2); transform:translateY(-2px);} 
.tab__btn:active{transform:translateY(0); box-shadow:var(--shadow-1);} 
.tab.editing{overflow:hidden;}
.tab__edit{position:absolute; inset:0; width:100%; height:100%; border:0; background:transparent; color:var(--text-900); font:inherit; font-size:13px; line-height:calc(var(--tab-h, 40px) - 2px); padding:0 12px; border-radius:inherit; outline:none; box-sizing:border-box; appearance:none;}
.tab.editing .tab__actions{opacity:0 !important; pointer-events:none;}
.tab.tab--new{background:var(--chip-bg); border:1px dashed var(--muted); display:inline-flex; align-items:center; gap:6px; height:var(--tab-h);} 
.tab__new-actions{display:flex; gap:4px; align-items:center;}
.tab__new-input{border:1px solid var(--muted); padding:6px 8px; border-radius:6px; font:inherit; height:28px;}
.tabs__loading, .tabs__empty{font-size:13px; color:var(--text-500); font-style:italic; padding:4px 2px;}
.twodos-app.twodos-app--guided-empty .tabs__empty,
.twodos-app.twodos-app--guided-empty .tags__empty{
  display:none;
}

/* Tags + Filters row */
.tags{padding:14px var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 10px)) 12px; width:100%; box-sizing:border-box; scroll-padding-inline:var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 10px));}
.tags__row{display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; box-sizing:border-box; min-width:0;}
.tags__left-wrap{position:relative; display:block; flex:1 1 auto; min-width:0; padding-block:2px; --tags-fade-bg:var(--surface-soft);}
.tags__left-wrap::before,
.tags__left-wrap::after{
  content:"";
  position:absolute;
  top:2px;
  bottom:2px;
  width:28px;
  pointer-events:none;
  z-index:2;
  opacity:0;
  transition:opacity .16s ease;
}
.tags__left-wrap::before{left:0; background:linear-gradient(to right, var(--tags-fade-bg), rgba(0,0,0,0));}
.tags__left-wrap::after{right:0; background:linear-gradient(to left, var(--tags-fade-bg), rgba(0,0,0,0));}
.tags__left-wrap.has-overflow-left::before{ opacity:1; }
.tags__left-wrap.has-overflow-right::after{ opacity:1; }
.tags__left{display:flex; flex-wrap:nowrap; gap:10px; align-items:center; min-width:0; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; -ms-overflow-style:none; padding:6px 3px; margin:0;}
.tags__left::-webkit-scrollbar{display:none; width:0; height:0;}
.tags__right{display:flex; gap:8px; align-items:center; flex:0 0 auto; white-space:nowrap;}
.tags__controls{display:flex; align-items:center; gap:8px; flex:0 0 auto;}
.tags__actions{display:flex; align-items:center; gap:8px; flex:0 0 auto;}
/* When inside board or builder board, keep tags bar sticky under tabs */
.tasksboard > .tags,
.board .tags{ position: sticky; top: 0; z-index: 6; background: var(--sticky-tags-bg); backdrop-filter: saturate(180%) blur(2px); padding-top: 10px; padding-bottom: 6px; margin-top: 0; }

/* Skipped badge for archived tasks */
.taskcard__badge{ display:inline-flex; align-items:center; justify-content:center; height:20px; padding:0 8px; border-radius:999px; font-size:11px; font-weight:600; line-height:1; margin-right:6px; }
.taskcard__badge--skipped{ background: var(--info-bg); color: var(--info-text); border:1px solid rgba(3,105,161,.25); }
.tag{ display:inline-flex; align-items:center; gap:8px; padding:6px 12px; background:var(--chip-bg); color:var(--text-700); border:1px solid transparent; border-radius:999px; cursor:pointer; box-shadow:var(--shadow-1); position:relative; transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .12s ease; }
.tag::before{content:""; width:6px; height:6px; border-radius:50%; background:#cdd3de; transition:background .2s ease}
.tag:hover{background:var(--chip-hover); box-shadow:var(--shadow-2); transform:translateY(-1px)}
.tag:active{transform:translateY(0); box-shadow:var(--shadow-1)}
.tag.active{background:var(--accent-subtle); border-color:var(--accent); box-shadow:0 2px 8px var(--accent-shadow)}
.tag.active::before{background:var(--accent)}
.tag:focus-visible{outline:2px solid var(--accent-ring); outline-offset:2px}
.tags .tag::before{content:none !important; display:none !important;}
.tags .tag{ position:relative; height:32px; padding:0 14px; font-size:12px; line-height:1; letter-spacing:.01em; background:var(--tag-bg, var(--chip-bg)) !important; color:var(--tag-fg, var(--text-700)); border:1px solid var(--tag-border, transparent) !important; border-radius:999px; box-shadow:var(--shadow-1); max-width:none; min-width:max-content; flex:0 0 auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;} 
.tags .tag, .tags .tag.active{ font-weight:500; }
.tag__dot{display:inline-block; width:8px; height:8px; border-radius:50%; background:#cdd3de;}
.tag.notice .tag__dot{background:var(--notice);} 
.tag.active .tag__dot{background:var(--accent);} 
.tags .tag:hover{background:var(--tag-bg-hover, var(--chip-hover)) !important; box-shadow:var(--shadow-2); transform:translateY(-1px);}
.tags .tag:active{transform:translateY(0); box-shadow:var(--shadow-1);}
.tags .tag.active{
  background:var(--tag-active-bg, var(--accent-subtle)) !important;
  border-color:var(--tag-active-border, var(--accent)) !important;
  color:var(--tag-active-fg, var(--text-900));
  box-shadow:0 0 0 2px var(--tag-active-ring, var(--accent-ring)), var(--shadow-2);
}
.tags .tag.active::after{
  content:"\2713";
  font-size:10px;
  opacity:.9;
}
.tags .tag:disabled{
  opacity:.58;
  cursor:not-allowed;
  filter:saturate(.65);
}
.tags .tag:focus-visible{
  outline:2px solid currentColor;
  outline-offset:2px;
}
.tag__actions{position:absolute; top:-6px; right:-6px; display:flex; gap:4px; opacity:0; transition:opacity .18s ease; pointer-events:none;}
.tag:hover .tag__actions, .tag:focus-within .tag__actions{opacity:1; pointer-events:auto;}
.tag__btn{background:var(--surface); border:1px solid var(--muted); width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; padding:0; border-radius:6px; font-size:12px; line-height:1; box-shadow:var(--shadow-1); cursor:pointer; transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;}
.tag__btn:hover{background:var(--surface); border-color:var(--muted-hover); box-shadow:var(--shadow-2); transform:translateY(-2px);} 
.tag__btn:active{transform:translateY(0); box-shadow:var(--shadow-1);} 
.tag.editing .tag__actions{opacity:0 !important; pointer-events:none;}
.tags .tag.editing{color:transparent !important;}
.tags .tag.editing::after{content:none !important;}
.tag.editing{color:transparent;}
.tag.editing > :not(.tag__edit){opacity:0; pointer-events:none;}
.tag__edit{position:absolute; inset:0; width:100%; height:100%; border:0; background:transparent; color:var(--text-700); font:inherit; line-height:1; padding:0 18px; padding-left:34px; border-radius:inherit; outline:none; box-sizing:border-box; display:flex; align-items:center;}
.tag.tag--add{border:1px dashed var(--muted); background:transparent; height:28px; color:rgba(55,65,81,.5);} 
.tag.tag--add:hover, .tag.tag--add:focus-visible{border-color:var(--accent); background:var(--surface); color:var(--text-900);} 
.tag.tag--new{border:1px dashed var(--muted); background:var(--chip-bg); display:inline-flex; align-items:center; gap:8px; height:28px; padding:0 12px;}
.tag.tag--showall{border:1px solid var(--muted); background:var(--surface); max-width:none; min-width:max-content;}
.tag.tag--showall:hover{border-color:var(--muted-hover);}
.tag__new-actions{display:flex; gap:4px; margin-left:4px;}
.tag__new-input{border:1px solid var(--muted); padding:6px 8px; border-radius:8px; font:inherit; height:18px; line-height:1; min-width:140px;}
.tags__loading, .tags__empty{
  min-height:32px;
  display:flex;
  align-items:center;
  width:100%;
  box-sizing:border-box;
  font-size:13px;
  color:var(--text-500);
  font-style:italic;
  padding:0 3px;
}
.tags__group-header{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:32px;
  padding:0 8px;
  border-radius:8px;
  border:1px solid rgba(148,163,184,.45);
  background:transparent;
  color:var(--text-500);
  font-size:11px;
  font-weight:600;
  letter-spacing:.01em;
  flex:0 0 auto;
  appearance:none;
  cursor:pointer;
  line-height:1;
  position:relative;
}
.tags__group-header.is-renameable{
  cursor:text;
}
.tags__group-header.is-renameable:hover{
  border-color:rgba(100,116,139,.55);
}
.tags__group-header:hover{
  background:rgba(148,163,184,.09);
}
.tags__group-header:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tags__group-check{
  width:13px;
  height:13px;
  border:1px solid var(--muted-hover);
  border-radius:3px;
  background:var(--surface);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  position:relative;
  box-sizing:border-box;
}
.tags__group-check-mark{
  width:8px;
  height:8px;
  display:block;
  position:relative;
}
.tags__group-check-mark::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:0;
  transform-origin:center;
  transition:opacity .16s ease;
}
.tags__group-header.is-checked .tags__group-check,
.tags__showall-group-title.is-checked .tags__group-check{
  border-color:var(--accent);
  background:var(--accent);
}
.tags__group-header.is-checked .tags__group-check-mark::before,
.tags__showall-group-title.is-checked .tags__group-check-mark::before{
  width:5px;
  height:9px;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  left:1px;
  top:-1px;
  transform:rotate(45deg);
  opacity:1;
}
.tags__group-header.is-mixed .tags__group-check,
.tags__showall-group-title.is-mixed .tags__group-check{
  border-color:var(--accent);
  background:var(--accent-subtle);
}
.tags__group-header.is-mixed .tags__group-check-mark::before,
.tags__showall-group-title.is-mixed .tags__group-check-mark::before{
  width:7px;
  height:2px;
  background:var(--accent);
  left:0;
  top:3px;
  border:0;
  transform:none;
  opacity:1;
}
.tags__group-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#9ca3af;
  border:1px solid rgba(15,23,42,.08);
}
.tags__group-dot--neutral{
  background:rgba(100,116,139,.35);
}
.tags__group-swatches,
.tags__showall-group-swatches{
  display:inline-flex;
  align-items:center;
  gap:3px;
}
.tags__group-name{
  white-space:nowrap;
  color:var(--text-600);
}
.tags__group-count{
  font-size:10px;
  color:var(--text-500);
  letter-spacing:0;
  opacity:.9;
}
.tags__group-rename-hint{
  opacity:0;
  font-size:10px;
  letter-spacing:0;
  color:var(--text-500);
  text-transform:none;
  transition:opacity .16s ease;
}
.tags__group-header.is-renameable:hover .tags__group-rename-hint,
.tags__group-header.is-renameable:focus-visible .tags__group-rename-hint{
  opacity:.85;
}
.tags__group-header.is-editing .tags__group-rename-hint{
  opacity:0;
}
.tags__group-edit{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:transparent;
  color:var(--text-700);
  font:inherit;
  line-height:1;
  border-radius:inherit;
  padding:0 10px;
  box-sizing:border-box;
  outline:none;
}
.tags__group-header.is-editing > :not(.tags__group-edit),
.tags__showall-group-title.is-editing > :not(.tags__group-edit){
  opacity:0;
  pointer-events:none;
}
/* Filter icon buttons match chip visuals */
.tag.tag--prio, .tag.tag--status{ display:inline-flex; align-items:center; justify-content:center; width:36px; height:28px; padding:0 10px; }
.tag.tag--prio .prioicon{ display:inline-flex; gap:3px; }
.tag.tag--prio .prioicon__dot{ width:6px; height:6px; border-radius:50%; background:#d1d5db; }
.tag.tag--prio.p-1 .prioicon__dot:nth-child(-n+1){ background:#4f46e5; }
.tag.tag--prio.p-2 .prioicon__dot:nth-child(-n+2){ background:#b45309; }
.tag.tag--prio.p-3 .prioicon__dot:nth-child(-n+3){ background:#b91c1c; }
.tags__showall-panel{
  position:fixed;
  z-index:9999;
  width:min(460px, calc(100vw - 16px));
  max-height:65vh;
  overflow-y:auto;
  overflow-x:hidden;
  border:1px solid var(--muted);
  border-radius:10px;
  background:var(--surface);
  box-shadow:var(--shadow-3);
  padding:10px;
  display:grid;
  gap:10px;
  scrollbar-width:thin;
  scrollbar-color:var(--muted) transparent;
}
.tags__showall-title{
  font-size:12px;
  font-weight:600;
  color:var(--text-500);
  margin:0;
}
.tags__showall-list{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:10px;
  min-width:0;
}
.tags__showall-group{
  display:grid;
  gap:6px;
}
.tags__showall-group-title{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  font-weight:600;
  color:var(--text-500);
  letter-spacing:.01em;
  border:1px solid rgba(148,163,184,.45);
  border-radius:8px;
  background:transparent;
  padding:4px 8px;
  min-height:24px;
  line-height:1;
  appearance:none;
  cursor:pointer;
  position:relative;
}
.tags__showall-group-title.is-renameable{
  cursor:text;
}
.tags__showall-group-title.is-renameable:hover{
  border-color:rgba(100,116,139,.55);
}
.tags__showall-group-title:hover{
  background:rgba(148,163,184,.09);
}
.tags__showall-group-title:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tags__showall-group-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-transform:none;
}
.tags__showall-group-count{
  font-size:10px;
  color:var(--text-500);
  letter-spacing:0;
  opacity:.9;
}
.tags__showall-group-rename-hint{
  opacity:0;
  font-size:10px;
  color:var(--text-500);
  text-transform:none;
  transition:opacity .16s ease;
}
.tags__showall-group-title.is-renameable:hover .tags__showall-group-rename-hint,
.tags__showall-group-title.is-renameable:focus-visible .tags__showall-group-rename-hint{
  opacity:.85;
}
.tags__showall-group-title.is-editing .tags__showall-group-rename-hint{
  opacity:0;
}
.tags__showall-collapse{
  margin-left:auto;
  border:0;
  background:transparent;
  color:var(--text-500);
  cursor:pointer;
  width:20px;
  height:20px;
  border-radius:6px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.tags__showall-collapse:hover{
  background:rgba(148,163,184,.16);
}
.tags__showall-collapse:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:1px;
}
.tags__showall-group.is-collapsed .tags__showall-group-items{
  display:none;
}
.tags__showall-group-items{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:6px;
}
.tags__showall-item{
  border:1px solid var(--tag-border, var(--muted));
  border-radius:8px;
  background:var(--tag-bg, var(--surface-soft));
  color:var(--tag-fg, var(--text-700));
  min-height:34px;
  padding:6px 8px;
  width:100%;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  text-align:left;
  transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
.tags__showall-item.is-active{
  background:var(--tag-active-bg, var(--accent-subtle));
  border-color:var(--tag-active-border, var(--accent));
  color:var(--tag-active-fg, var(--text-900));
  box-shadow:0 0 0 2px var(--tag-active-ring, var(--accent-ring)), var(--shadow-1);
}
.tags__showall-item:hover{border-color:var(--tag-active-border, var(--muted-hover)); background:var(--tag-bg-hover, var(--chip-hover)); transform:translateY(-1px);}
.tags__showall-item:focus-visible{outline:2px solid var(--accent-ring); outline-offset:2px;}
.tags__showall-name{
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.3;
}
.tags__showall-mark{
  margin-left:auto;
  font-weight:700;
  color:currentColor;
  flex:0 0 auto;
  opacity:.85;
}
.tags__showall-footer{
  border-top:1px solid var(--muted);
  padding-top:8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}
.tags__showall-manage,
.tags__showall-reset{
  border:1px solid var(--muted);
  background:var(--chip-bg);
  color:var(--text-700);
  border-radius:8px;
  padding:5px 10px;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  box-shadow:var(--shadow-1);
}
.tags__showall-manage:hover{
  background:var(--chip-hover);
}
.tags__showall-manage:focus-visible,
.tags__showall-reset:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tags__showall-reset{
  border-color:rgba(185, 28, 28, .35);
  background:rgba(239, 68, 68, .08);
  color:#b91c1c;
}
.tags__showall-reset:hover{
  background:rgba(239, 68, 68, .16);
}
.tags__showall-reset:disabled{
  opacity:.55;
  cursor:not-allowed;
}
.tags__showall-panel::-webkit-scrollbar{width:8px;}
.tags__showall-panel::-webkit-scrollbar-thumb{background:var(--muted); border-radius:10px;}
.tags__showall-panel::-webkit-scrollbar-track{background:transparent;}
body.twodos-showall-open{overflow:hidden;}
@media (max-width:560px){
  .tags__showall-group-items{ grid-template-columns:minmax(0, 1fr); }
}

/* Shared DnD drop indicator used by board and list */
.twodos-drop-indicator{
  position:absolute;
  left:8px;
  right:8px;
  height:0;
  border-top:2px solid var(--accent);
  border-radius:2px;
  box-shadow:0 0 0 1px var(--accent-shadow);
  pointer-events:none;
  z-index:70;
  opacity:.92;
}

/* Unified sortable polish */
body.twodos-dnd--dragging{
  cursor:grabbing !important;
}
body.twodos-dnd--dragging,
body.twodos-dnd--dragging *{
  user-select:none !important;
  -webkit-user-select:none !important;
}

.twodos-dnd__ghost{
  pointer-events:none !important;
  opacity:.92;
  box-shadow:0 16px 34px rgba(15,23,42,.24), 0 6px 18px rgba(15,23,42,.14);
  border-radius:10px;
  will-change:transform;
}

.twodos-dnd__placeholder{
  pointer-events:none;
  border:1px dashed var(--accent);
  border-radius:10px;
  background:var(--surface-soft);
  opacity:.28;
}

.twodos-dnd__dragging-item{
  opacity:.7;
}

.twodos-dnd--animating{
  transition:transform 140ms cubic-bezier(0.2, 0, 0.2, 1);
  will-change:transform;
}

@media (prefers-reduced-motion: reduce){
  .twodos-dnd--animating{
    transition:none !important;
    will-change:auto;
  }
  .twodos-dnd__ghost{
    transition:none !important;
  }
}

.twodos-app .tabs .tab.is-dragging{
  opacity:.85;
  transform:scale(1.01);
  border-color:var(--accent);
  box-shadow:0 12px 30px rgba(15,23,42,.25);
  transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
  cursor:grabbing;
}
.twodos-app .tabs .tab.tab--drop-target{
  outline:2px solid rgba(59,130,246,.6);
  outline-offset:2px;
  box-shadow:0 0 0 1px rgba(59,130,246,.35);
}
.twodos-app .tabs .tab.tab--drop-before::before,
.twodos-app .tabs .tab.tab--drop-after::after{
  content:"";
  position:absolute;
  top:6px;
  bottom:6px;
  width:3px;
  background:var(--accent);
  border-radius:3px;
  box-shadow:0 0 0 1px var(--accent-shadow);
  pointer-events:none;
}
.twodos-app .tabs .tab.tab--drop-before::before{left:-6px;}
.twodos-app .tabs .tab.tab--drop-after::after{right:-6px;}
.twodos-app .twodos-drop-placeholder{
  pointer-events:none;
  margin:0;
  transition:height .12s ease, width .12s ease, opacity .12s ease;
}

/* Small header action buttons for sort/order toggles in group headers */
.tasksboard__column-actions .viewtoggle__btn,
.taskslist__group-actions .viewtoggle__btn{border:1px solid var(--muted); background:var(--surface); color:var(--text-700); width:28px; height:28px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; box-shadow:var(--shadow-1); cursor:pointer;}
.tasksboard__column-actions .viewtoggle__btn[disabled],
.taskslist__group-actions .viewtoggle__btn[disabled]{opacity:.45; cursor:not-allowed; filter:saturate(.6);} 

/* Folders */
.folder{ display:block; width:100%; padding:6px 6px 6px 18px; margin-bottom:8px; font-size:14px; color:var(--text-700); background:var(--surface); border-radius:var(--radius); border: 1px solid transparent; box-shadow:var(--shadow-1); cursor:pointer; position:relative; display:flex; align-items:center; min-height:52px; transition:background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .18s ease, color .25s ease }
.folder::before{content:""; position:absolute; top:6px; bottom:6px; left:0; width:5px; border-radius:4px; background:var(--accent); transform:scaleY(0); transform-origin:top center; transition:transform .35s cubic-bezier(.4,0,.2,1);}
.folder:hover{background:var(--surface); box-shadow:var(--shadow-2); transform:translateY(-2px)}
.folder:active{transform:translateY(0); box-shadow:var(--shadow-1)}
.folder:focus-visible{outline:2px solid var(--accent-ring); outline-offset:2px}
.folder:hover::before, .folder:focus-visible::before, .folder.active::before{transform:scaleY(1)}
.folder.active{background:var(--surface); color:var(--text-900); box-shadow:0 4px 12px rgba(0,0,0,.08)}
.folder{padding-right:56px;}
.folder__actions{position:absolute; top:-10px; right:-10px; display:flex; gap:6px; opacity:0; transition:opacity .18s ease; pointer-events:none;}
.folder:hover .folder__actions, .folder:focus-within .folder__actions{opacity:1; pointer-events:auto;}
.folder__btn{background:var(--surface); border:1px solid var(--muted); width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border-radius:8px; padding:0; box-shadow:var(--shadow-1); font-size:12px; line-height:1; cursor:pointer;}
.folder__btn:hover{background:var(--surface); border-color:var(--muted-hover); box-shadow:var(--shadow-2);} 
.folder.is-dragging{ opacity:.6; }
.folder__icon{ display:inline-flex; width:20px; height:20px; align-items:center; justify-content:center; margin-right:10px; }
.folder__icon img{ width:16px; height:16px; opacity:.8; }
.folder__name{flex:1 1 auto;}
.folder.editing .folder__actions{opacity:0 !important; pointer-events:none;}
.folder.editing > :not(.folder__edit){opacity:0; pointer-events:none;}
.folder__edit{position:absolute; top:0; bottom:0; left:0; right:48px; width:auto; height:100%; border:0; background:transparent; font:inherit; padding:6px 6px 6px 18px; border-radius:inherit; line-height:1.2; margin:0; display:flex; align-items:center; box-sizing:border-box; outline:none;}
.folder.folder--new{background:var(--chip-bg); border:1px dashed var(--muted); display:grid; grid-template-columns: minmax(0,1fr) auto; align-items:center; gap:10px; padding:12px 16px !important;}
.folder.folder--new::before{display:none !important;}
.folder__new-actions{display:flex; flex-direction:column; gap:6px; align-items:flex-end; margin:0; justify-content:center;}
.folder.folder--new .folder__btn{width:28px; height:28px; border-radius:8px; background:var(--surface); border:1px solid var(--muted); box-shadow:var(--shadow-1); display:inline-flex; align-items:center; justify-content:center; padding:0;}
.folder.folder--new .folder__btn:hover{box-shadow:var(--shadow-2);} 
.folder.folder--new .folder__create{ background:var(--chip-bg); color:var(--text-700); border:1px solid var(--muted); }
.folder.folder--new .folder__create:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.folder__add-btn{display:flex; align-items:center; justify-content:center; width:100%; padding:6px 6px 6px 18px; margin-top:6px; background:transparent; border:1px dashed var(--muted); border-radius:var(--radius); cursor:pointer; font-size:14px; color:var(--text-700); min-height:52px; box-sizing:border-box; opacity:.5;}
.folder__add-btn:hover{background:var(--surface); border-color:var(--muted-hover); box-shadow:var(--shadow-2);} 
.folder__add-btn:hover, .folder__add-btn:focus-visible{opacity:1;}
.folders__empty, .folders__loading{padding:10px 12px; font-size:13px; color:var(--text-500); font-style:italic;}
.folders--compact{
  display:block;
  min-height:0;
}
.folders__selectrow{
  display:block;
  width:100%;
}
.folder__select{
  width:100%;
  height:44px;
  border:1px solid var(--muted);
  border-radius:var(--radius);
  background:var(--surface);
  color:var(--text-900);
  padding:0 12px;
  box-shadow:var(--shadow-1);
  font:500 14px/1.2 inherit;
}
.folder__select:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}

/* Scoped sidebar hardening:
   - Many themes define generic `.folder` styles that can shrink the row height.
   - The sidebar list scroll container clips negative-positioned action buttons; keep actions inside. */
.twodos-app .twodos-app__sidebar .folder,
.twodos-app .twodos-app__sidebar .folder__add-btn{
  box-sizing:border-box;
  min-height:52px !important;
  line-height:1.2;
}
.twodos-app .twodos-app__sidebar .folder{
  display:flex !important;
  align-items:center !important;
  padding:6px 6px 6px 18px !important;
}
.twodos-app .twodos-app__sidebar .folder__actions{
  top:6px;
  right:6px;
}
.twodos-app .twodos-app__sidebar .folder__name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Folder Icon Picker (popover + options) */
.folder__icon-pop{ background:var(--surface); border:1px solid var(--muted); border-radius:10px; padding:10px; box-shadow:var(--shadow-3); width:240px; max-height:320px; overflow:auto; z-index:9999; font-size:13px; }
.folder__icon-search{ width:100%; border:1px solid var(--muted); border-radius:8px; padding:6px 8px; margin-bottom:8px; box-sizing:border-box; background:var(--surface); color:var(--text-900); font-size:13px; line-height:1.2; min-height:34px; }
.folder__icon-list{ display:flex; flex-wrap:wrap; gap:6px; align-items:flex-start; }
.folder__icon-option{ display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid var(--muted); border-radius:8px; background:var(--surface-soft); color:var(--text-900); cursor:pointer; line-height:1; font-size:13px; }
.folder__icon-option:hover{ background:var(--chip-hover); border-color:var(--muted-hover); }
.folder__icon-option:focus-visible{ outline:2px solid var(--accent-ring); outline-offset:2px; }
.folder__icon-option img,
.folder__icon-option svg{ width:16px; height:16px; opacity:.85; flex:0 0 16px; }

/* Card component */
.card{ display:block; width:100%; padding:16px; margin-bottom:12px; font-size:14px; color:var(--text-700); background:var(--surface); border-radius:var(--radius); border:1px solid var(--muted); box-shadow:var(--shadow-1); cursor:pointer; transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .12s ease }
.card:hover{border-color:var(--muted-hover); box-shadow:var(--shadow-3); transform:translateY(-2px)}
.card:active{transform:translateY(0); box-shadow:var(--shadow-1)}
.card.completed{opacity:.7; text-decoration:line-through}
.card:focus-visible{outline:2px solid var(--accent-ring); outline-offset:2px}
.card h4{margin:0 0 6px; color:var(--text-900)}
.card .card-meta{margin:0 0 10px; color:var(--text-500); font-size:13px}
.card .checklist{display:grid; gap:6px; margin:10px 0 0}
.checklist .item{display:flex; align-items:flex-start; gap:8px}

/* Add Menu */
.new{position:relative;}
.addBtn{position:relative; z-index:60; width:100%; display:block; text-align:left; padding:10px 14px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--muted); box-shadow:var(--shadow-1); color:var(--text-700); font:600 14px/1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;}
.addBtn:hover{box-shadow:var(--shadow-2);}

/* Attachments UI */
.attachments{ margin: 6px 0 2px; padding: 6px 8px; background: rgba(0,0,0,0.02); border: 1px solid rgba(0,0,0,0.08); border-radius: 6px; }
.attachments.is-empty{ display:none; }
.attachments__head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.attachments__label{ display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--text-500); font-weight:600; }
.attachments__label-icon{ width:14px; height:14px; display:inline-flex; align-items:center; justify-content:center; color:var(--text-500); }
.attachments__label-icon svg{ width:14px; height:14px; display:block; }
.attachments__add{
  width:26px;
  min-width:26px;
  height:26px;
  padding:0;
  gap:0;
}
.attachments__add-plus{ display:none; }
.attachments__add svg{ width:14px; height:14px; }
.attachments__list{ display:flex; flex-direction:column; gap:6px; }
.attachments__row{ display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:center; gap:8px; padding:4px 0; border-bottom:1px dashed rgba(0,0,0,0.06); min-width:0; overflow:visible; }
.attachments__row:last-child{ border-bottom:0; }
.attachments__meta{ display:flex; align-items:center; gap:4px; min-width:0; flex:1 1 auto; max-width:100%; }
.attachments__name{ font-size:12px; color: var(--twodos-fg, #222); white-space:normal; overflow-wrap:anywhere; }
.attachments__size{ font-size:11px; color: var(--twodos-fg-muted, #666); }
.attachments__actions{ display:flex; align-items:center; gap:6px; flex:0 0 auto; justify-self:end; margin-left:0; }
.attachments__btn{ font-size:12px; color: var(--twodos-link, #2563eb); background: transparent; border:0; padding:2px 4px; cursor:pointer; }
.attachments__btn--danger{ color: var(--twodos-danger, #b91c1c); }
/* Icon buttons for attachments (download/delete) */
.attachments__iconbtn{ width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--muted); border-radius:8px; background:var(--surface); color:var(--text-600); cursor:pointer; box-shadow:var(--shadow-1); padding:0; }
.attachments__iconbtn:hover{ background:var(--surface); border-color:var(--muted-hover); box-shadow:var(--shadow-2); }
.attachments__iconbtn--danger{ color:var(--twodos-danger, #b91c1c); border-color:rgba(185,28,28,.25); }
.attachments__controls{ display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-top:8px; }
.attachments__controls .attachments__iconbtn{ width:26px; height:26px; }
.attachments__iconbtn--upload:disabled{ opacity:.55; cursor:not-allowed; }
.attachments__empty{ font-size:12px; color: var(--twodos-fg-muted, #666); }

/* Hide attachments UI inside cards unless the card is open */
/* Hide by default inside cards; show only when open and non-empty */
.taskcard .attachments{ display:none; }
.taskcard.is-open .attachments{ display:block; }
.taskcard.is-open .attachments.is-empty{ display:block; }
.taskcard.is-open .taskcard__open-attachments-panel.attachments{ display:block; width:100%; max-width:100%; box-sizing:border-box; }
.taskcard.is-open .taskcard__open-attachments-panel.attachments.is-empty{ display:block; }
.taskcard.is-open .taskcard__open-attachments-panel .attachments__list{
  max-height:min(30vh, 220px);
  overflow:auto;
  padding-right:0;
  scrollbar-gutter:auto;
}
.taskcard.is-open .taskcard__open-attachments-panel{ overflow:visible; }
@media (min-width: 700px){
  .taskcard.is-open .taskcard__open-attachments-panel .attachments__list{ max-height:min(34vh, 280px); }
}
@media (max-width: 520px){
  .attachments__row{ grid-template-columns:minmax(0, 1fr); }
  .attachments__actions{ justify-self:start; }
}

/* Attachment count pill in meta */
.attcount{ display:inline-flex; align-items:center; justify-content:center; gap:6px; font-weight:600; font-size:.9em; line-height:1; height:24px; padding:0 8px; border-radius:999px; background:var(--chip-bg); color:var(--text-500); vertical-align:middle; }
.attcount__icon{ display:inline-block; width:14px; height:14px; color:var(--text-400); opacity:.85; }
.attcount__num{ font-size:inherit; font-weight:600; color:inherit; padding:0; background:transparent; border-radius:0; font-variant-numeric: tabular-nums; }
.addMenu{ display:flex; align-items:center; gap:10px; background:var(--surface); border-radius:var(--radius); box-shadow:var(--shadow-1); position:relative; cursor:pointer; }
.addMenu.addMenuPanel{position:absolute; left:0; box-shadow:var(--shadow-2); border:1px solid var(--muted); background:var(--surface); border-radius:var(--radius); transform-origin:bottom center; transform:translateY(4px) scaleY(.85); opacity:0; pointer-events:none; visibility:hidden; will-change:transform, opacity, bottom, left, width; transition:transform .28s cubic-bezier(.4,0,.2,1), opacity .2s ease, visibility 0s linear .2s; z-index:850; width:auto; min-width:200px; display:flex; flex-direction:column;}
.addMenu.addMenuPanel.addMenu--open{transform:translateY(0) scaleY(1); opacity:1; pointer-events:auto; visibility:visible;}
.addMenu.addMenuPanel nav ul{list-style:none; margin:0; padding:0;}
.addMenu.addMenuPanel nav a{display:block; text-decoration:none; color:var(--text-900); font-weight:500;}
.addMenu.addMenuPanel nav a:hover{color:var(--accent);} 
.addMenu.addMenuPanel .newTask{background:var(--accent-subtle);} 
.addMenu.addMenuPanel .newTask a{font-weight:600;}
.twodos-import-fallback{margin:8px 0 0;}
.twodos-import-fallback__btn{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
  box-shadow:var(--shadow-2);
}
.twodos-import-fallback__btn:hover{opacity:.94;}
@supports (color: color-mix(in srgb, red 50%, white 50%)){
  .twodos-import-fallback__btn{
    background:color-mix(in srgb, var(--accent) 90%, #fff 10%);
  }
}

/* Import modal */
.twodos-import-modal[hidden]{display:none;}
.twodos-import-modal{position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:20px;}
.twodos-import-modal__backdrop{position:absolute; inset:0; background:rgba(16,24,40,.45);}
.twodos-import-modal__panel{position:relative; width:min(640px, 100%); max-height:min(92vh, 860px); overflow:auto; background:var(--surface); border:1px solid var(--muted); border-radius:var(--radius); box-shadow:var(--shadow-3); padding:16px; font-size:14px; line-height:1.35;}
.twodos-import-modal__header{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px;}
.twodos-import-modal__title{margin:0; font-size:18px; line-height:1.2; color:var(--text-900);}
.twodos-import-modal__close{border:1px solid var(--muted); background:var(--chip-bg); color:var(--text-700); border-radius:8px; padding:6px 10px; font:600 12px/1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; cursor:pointer;}
.twodos-import-modal__close:hover{background:var(--chip-hover);}
.twodos-import-form{display:grid; gap:12px;}
.twodos-import-field{display:grid; gap:6px;}
.twodos-import-field__label{font-size:13px; font-weight:600; color:var(--text-700);}
.twodos-import-field__label--legend{display:block; margin:0; padding:0 6px;}
.twodos-import-field__summary{margin:0; font-size:13px; color:var(--text-700); line-height:1.35;}
.twodos-import-field__control{width:100%; min-height:38px; border:1px solid var(--muted); border-radius:8px; background:var(--surface); color:var(--text-900); font-size:14px; line-height:1.25; padding:8px 10px; box-sizing:border-box;}
.twodos-import-field__control::placeholder{color:var(--text-500);}
.twodos-import-field__control[type="file"]{padding:6px 10px; line-height:1.2;}
.twodos-import-field__control[type="file"]::file-selector-button{
  margin-right:10px;
  border:1px solid var(--muted);
  border-radius:8px;
  background:var(--chip-bg);
  color:var(--text-800);
  padding:6px 10px;
  font:600 13px/1.1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
  cursor:pointer;
}
.twodos-import-field__control[type="file"]::-webkit-file-upload-button{
  margin-right:10px;
  border:1px solid var(--muted);
  border-radius:8px;
  background:var(--chip-bg);
  color:var(--text-800);
  padding:6px 10px;
  font:600 13px/1.1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
  cursor:pointer;
}
.twodos-import-field__control:focus{outline:2px solid var(--accent-ring); outline-offset:2px;}
.twodos-import-field--strategy{display:block; border:1px solid var(--muted); border-radius:8px; padding:10px;}
.twodos-import-field--ai{display:block; border:1px solid var(--muted); border-radius:8px; padding:10px;}
.twodos-import-radio{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-700);}
.twodos-import-radio input[type="checkbox"],
.twodos-import-radio input[type="radio"]{width:16px; height:16px; margin:0; flex:0 0 16px;}
/* Force strategy/verification controls visible even when host themes hide native inputs. */
.twodos-import-modal .twodos-import-radio input[type="checkbox"],
.twodos-import-modal .twodos-import-radio input[type="radio"]{
  -webkit-appearance:auto !important;
  appearance:auto !important;
  opacity:1 !important;
  visibility:visible !important;
  display:inline-block !important;
  position:static !important;
  pointer-events:auto !important;
  width:16px !important;
  height:16px !important;
  margin:0 !important;
  accent-color:var(--accent);
}
.twodos-import-modal__footer{display:flex; justify-content:flex-end;}
.twodos-import-modal__preview{border:1px solid var(--accent); background:var(--accent); color:#fff; border-radius:8px; padding:9px 14px; font:600 13px/1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; cursor:pointer;}
.twodos-import-modal__execute{margin-left:8px; border-color:var(--muted); background:var(--surface); color:var(--text-900);}
.twodos-import-modal__preview:disabled{opacity:.55; cursor:not-allowed;}
.twodos-import-error{border:1px solid rgba(185,28,28,.35); background:rgba(254,242,242,.75); color:#991b1b; border-radius:8px; padding:8px 10px; font-size:12px;}
.twodos-import-error--duplicate{border-color:var(--muted); background:var(--surface-soft); color:var(--text-800);}
.twodos-import-error--duplicate .twodos-import-error__action{border-color:var(--muted); color:var(--text-900);}
.twodos-import-duplicate__title{margin:0 0 6px; font-size:13px; color:var(--text-900);}
.twodos-import-duplicate__summary{margin:0; font-size:12px; color:var(--text-700);}
.twodos-import-duplicate__label{margin:10px 0 4px; font-size:12px; font-weight:600; color:var(--text-800);}
.twodos-import-duplicate__tasks{margin:0; padding-left:18px; display:grid; gap:4px; color:var(--text-700);}
.twodos-import-error__action{margin-top:8px; border:1px solid rgba(185,28,28,.45); background:#fff; color:#7f1d1d; border-radius:8px; padding:6px 10px; font:600 12px/1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; cursor:pointer;}
.twodos-import-error__action:hover{background:rgba(255,255,255,.7);}
.twodos-import-preview__card{border:1px solid var(--muted); border-radius:8px; background:var(--surface-soft); padding:10px;}
.twodos-import-preview__title{margin:0 0 8px; font-size:14px; color:var(--text-900);}
.twodos-import-preview__rows{margin:0; display:grid; gap:6px;}
.twodos-import-preview__row{display:grid; grid-template-columns:120px minmax(0,1fr); gap:8px; font-size:12px;}
.twodos-import-preview__row dt{margin:0; color:var(--text-500);}
.twodos-import-preview__row dd{margin:0; color:var(--text-800);}
.twodos-import-preview__warning{margin:10px 0 0; font-size:12px; color:var(--text-600);}
.twodos-import-preview__tasks{margin-top:10px;}
.twodos-import-preview__list{margin:0; padding-left:18px; display:grid; gap:8px;}
.twodos-import-preview__item-title{font-size:12px; font-weight:600; color:var(--text-900);}
.twodos-import-preview__item-meta{font-size:11px; color:var(--text-600);}
.twodos-import-preview__checklist{margin:6px 0 0; padding-left:16px; font-size:11px; color:var(--text-700);}
.twodos-import-ai{margin-top:12px; border:1px solid var(--muted); border-radius:8px; background:var(--surface); padding:10px;}
.twodos-import-ai__title{margin:0 0 8px; font-size:13px; color:var(--text-900);}
.twodos-import-ai__summary{margin:0 0 8px; font-size:12px; color:var(--text-700);}
.twodos-import-ai__list{margin:0; padding-left:18px; display:grid; gap:6px;}
.twodos-import-ai__line{font-size:12px; color:var(--text-900);}
.twodos-import-ai__evidence{margin-top:2px; font-size:11px; color:var(--text-600);}
.twodos-import-ai__apply{margin-top:10px; border:1px solid var(--accent); background:var(--accent); color:#fff; border-radius:8px; padding:7px 10px; font:600 12px/1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; cursor:pointer;}
.twodos-import-ai__apply:hover{opacity:.92;}
.twodos-import-ai__meta{margin:8px 0 0; font-size:11px; color:var(--text-500);}
.twodos-import-ai__hint{margin:8px 0 0; font-size:12px; color:var(--text-600);}

/* Options fly-out for column/list headers */
.colopts{display:inline-flex; align-items:center; justify-content:flex-end; position:relative; width:28px; height:28px; z-index:20;}
.colopts__btn{border:1px solid var(--muted); background:var(--surface); color:var(--text-700); width:28px; height:28px; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; box-shadow:var(--shadow-1); cursor:pointer;}
.colopts__btn:hover{background:var(--surface); border-color:var(--muted-hover); box-shadow:var(--shadow-2);} 
.colopts.open .colopts__btn{opacity:0; pointer-events:none; transition:opacity .16s ease;}
.colopts__panel{
	position:absolute;
	right:0;
	top:50%;
	display:inline-flex;
	gap:6px;
	padding:4px;
	border:1px solid var(--muted);
	border-radius:10px;
	background:var(--surface);
	box-shadow:var(--shadow-2);
	white-space:nowrap;
	opacity:0;
	pointer-events:none;
	transform:translateY(-50%) translateX(4px);
	transition:opacity .18s ease, transform .22s cubic-bezier(.4,0,.2,1);
}
.colopts.open .colopts__panel{opacity:1; pointer-events:auto; transform:translateY(-50%) translateX(0);} 

/* Subtasks (checklist) - shared between board and list meta rows */
.subcount{display:inline-flex; align-items:center; justify-content:center; gap:6px; font-weight:600; font-size:.9em; line-height:1; height:24px; padding:0 8px; border-radius:999px; background:var(--chip-bg); color:var(--text-500); vertical-align:middle;}
.subcount__icon{display:inline-block; width:14px; height:14px; color:var(--text-400); opacity:.85;}
.subcount__num{font-size:inherit; font-weight:600; color:inherit; padding:0; background:transparent; border-radius:0;}
.taskcard:hover .subcount, .taskslist__row:hover .subcount{ background:var(--chip-hover); }

.subtasks{display:flex; flex-direction:column; gap:6px; margin-top:6px; padding:6px 0 6px 12px; border-left:2px solid var(--muted);} 
.subtasks.is-open{padding-top:6px;}
.subtasks__heading{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--text-500);
  font-weight:600;
  margin:0;
}
.subtasks__heading-icon{
  width:14px;
  height:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text-500);
}
.subtasks__heading-icon svg{
  width:14px;
  height:14px;
  display:block;
}
.subtasks__item{display:flex; flex-direction:column; gap:4px; min-width:0;}
.subtasks__children{display:flex; flex-direction:column; gap:4px; margin-left:14px; padding-left:10px; border-left:1px dashed var(--muted);}
/* Board cards: hide subtasks by default, show when card is open */
.taskcard .subtasks{display:none; opacity:1; transform:none; max-height:none; overflow:visible; transition:none;}
.taskcard.is-open .subtasks{display:flex;}
/* List meta row: hide by default, show when .subtasks itself has .is-open */
.taskslist__row--meta .subtasks{display:none; opacity:1; transform:none; max-height:none; overflow:visible; transition:none;}
.taskslist__row--meta .subtasks.is-open{display:flex;}
.subtask{display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--text-700); line-height:1.35; padding:4px 8px; border-radius:8px; transition:background .15s ease; position:relative;}
.subtask:hover{ background:var(--surface-soft); }
.subtask input[type="checkbox"]{margin-top:2px; cursor:pointer; width:16px; height:16px; flex:0 0 16px; min-width:16px; min-height:16px; }
.subtask__title{flex:1 1 auto; min-width:0; word-break:break-word;}
.subtask__title--done{text-decoration:line-through; opacity:.65;}
.subtask__del{background:transparent; border:0; color:var(--text-300); cursor:pointer; padding:2px 6px; border-radius:6px; align-self:flex-start; line-height:1; margin-left:6px;}
.subtask__del:hover{color:#6b7280;}
.subtask.is-editing > :not(.subtask__edit){opacity:0; pointer-events:none;}
.subtask__edit{position:absolute; top:0; bottom:0; left:24px; right:0; width:auto; border:1px solid var(--muted); border-radius:6px; background:var(--surface); color:var(--text-700); font:inherit; font-size:12px; line-height:1.35; padding:4px 8px; box-sizing:border-box; box-shadow:var(--shadow-1);}
.subtask__edit:focus{outline:2px solid var(--accent-ring-strong); outline-offset:2px;}
.subtasks__add{display:flex; gap:8px; align-items:center; margin-top:6px;}
.subtasks__inputwrap{position:relative; flex:1 1 auto;}
.subtasks__input{width:100%; border:1px solid var(--muted); border-radius:8px; padding:4px 58px 4px 10px; font:inherit; font-size:12px; height:28px; box-sizing:border-box; background:var(--surface); color:var(--text-700);} 
.subtasks__input:focus{outline:2px solid var(--accent-ring); outline-offset:2px; box-shadow:0 0 0 1px var(--accent-shadow);} 
.subtasks__btn{position:absolute; right:4px; top:4px; bottom:4px; transform:none; border:1px solid var(--muted); background:var(--chip-bg); color:var(--text-700); padding:0 10px; border-radius:8px; font-size:8px; cursor:pointer; font-weight:600; box-shadow:var(--shadow-1);} 
.subtasks__btn:hover{background:var(--accent); border-color:var(--accent); color:#fff; box-shadow:var(--shadow-2);} 

/* Shortcode Avatar overrides: enforce requested size inside theme wrappers */
.twodos-avatar{display:block; max-width:none !important; max-height:none !important;}
.avatar .twodos-avatar{max-width:none !important;}

/* Theme Picker */
.theme-picker{ margin-top:8px; }
.theme-picker__select{ width:100%; border:1px solid var(--muted); border-radius:8px; background:var(--surface); color:var(--text-700); font:inherit; font-size:12px; height:28px; padding:0 8px; box-shadow:var(--shadow-1); }
.theme-picker__select:hover{ border-color: var(--muted-hover); }

/* User menu: Quick stats section (frontend) */
.userMenu__stats-wrap { padding-top: 6px; }
.userMenu__stats-title { font-weight: 600; font-size: 13px; margin: 6px 0 6px; color: var(--text-900); }
.userMenu__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; font-size: 12px; line-height: 1.2; color: var(--text-700); }
.userMenu__stat { display: block; text-align: left; padding: 4px 2px; background: transparent; border: 0; border-radius: 6px; cursor: pointer; appearance: none; -webkit-appearance: none; }
.userMenu__stat:hover { background: var(--chip-hover); }
.userMenu__stat:focus-visible { outline: 2px solid var(--accent-ring); outline-offset: 2px; }
.userMenu__stat-value { font-weight: 600; color: var(--text-900); font-size: 13px; }
.userMenu__stat-label { opacity: 0.85; color: var(--text-700); }
.userMenu__stats-loading { opacity: 0.8; padding: 2px 0; }
.userMenu__divider { margin: 8px 0; border-top: 1px solid var(--muted); }

/* User menu: Integrations section */
.userMenu__integrations { margin-top: 8px; }
.userMenu__integrations-title { font-weight: 600; font-size: 13px; margin: 6px 0 6px; color: var(--text-900); }
.userMenu__integrations-list { display: flex; flex-direction: column; gap: 10px; }
.userMenu__integration { font-size: 13px; color: var(--text-700); }
.userMenu__integration-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.userMenu__integration-name { font-weight: 500; color: var(--text-900); }
.userMenu__integration-toggle { flex: 0 0 auto; width: 16px; height: 16px; }
.userMenu__integration-details { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.userMenu__integration-note { color: var(--text-500); font-size: 12px; }
.userMenu__integration-secret { width: 100%; border: 1px solid var(--muted); border-radius: 8px; background: var(--surface); color: var(--text-700); font: inherit; font-size: 12px; height: 28px; padding: 0 8px; box-shadow: var(--shadow-1); }
.userMenu__integration-secret::placeholder { color: var(--text-500); opacity: .9; }
.userMenu__integration-secret:focus { outline: 2px solid var(--accent-ring); outline-offset: 2px; box-shadow: 0 0 0 1px var(--accent-shadow); }

/* Compact buttons inside user menu */
.userMenu .button { border: 1px solid var(--muted); background: var(--chip-bg); color: var(--text-700); border-radius: 8px; padding: 4px 10px; font: 600 12px/1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif; cursor: pointer; box-shadow: var(--shadow-1); }
.userMenu .button:hover { background: var(--chip-hover); }
.userMenu .button:focus-visible { outline: 2px solid var(--accent-ring); outline-offset: 2px; }
.userMenu .button.button-small { padding: 4px 8px; font-size: 12px; }

/* Tag color popover */
.tagcolor-pop{ position:fixed; z-index:10020; background:var(--surface); border:1px solid var(--muted); border-radius:10px; box-shadow:var(--shadow-3); padding:8px; width:220px; }
.tagcolor-pop__grid{ display:grid; grid-template-columns: repeat(8, 1fr); gap:6px; }
.tagcolor-pop__swatch{ width:18px; height:18px; border-radius:50%; border:1px solid var(--muted); background:var(--sw); padding:0; cursor:pointer; box-shadow:var(--shadow-1); }
.tagcolor-pop__swatch:hover{ transform:scale(1.06); }
.tagcolor-pop__loading{ grid-column:1 / -1; font-size:11px; color:var(--text-500); padding:4px 2px; }
.tagcolor-pop__actions{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-top:8px; }
.tagcolor-pop__btn{ border:1px solid var(--muted); background:var(--chip-bg); color:var(--text-700); border-radius:8px; padding:4px 8px; font-size:12px; cursor:pointer; box-shadow:var(--shadow-1); }
.tagcolor-pop__btn:hover{ background:var(--chip-hover); }
.tagcolor-pop__customwrap{ position:relative; display:inline-flex; align-items:center; justify-content:center; padding:4px 8px; }
.tagcolor-pop__customwrap .tagcolor-pop__colorinput{ position:absolute; inset:0; opacity:0; cursor:pointer; border:0; padding:0; margin:0; width:100%; height:100%; }

/* Manage colors popover */
.tagcolor-manage{
  position:fixed;
  z-index:10000;
  width:min(560px, calc(100vw - 16px));
  max-height:70vh;
  overflow:auto;
  border:1px solid var(--muted);
  border-radius:10px;
  background:var(--surface);
  box-shadow:var(--shadow-3);
  padding:10px;
  display:grid;
  gap:8px;
}
.tagcolor-manage__title{
  font-size:12px;
  font-weight:700;
  color:var(--text-800);
  letter-spacing:.03em;
  text-transform:uppercase;
}
.tagcolor-manage__help{
  font-size:12px;
  color:var(--text-500);
}
.tagcolor-manage__subtitle{
  font-size:11px;
  color:var(--text-500);
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:700;
}
.tagcolor-manage__group-tools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.tagcolor-manage__toggle-empty{
  border:1px solid var(--muted);
  background:var(--chip-bg);
  color:var(--text-700);
  border-radius:8px;
  padding:4px 8px;
  font-size:11px;
  cursor:pointer;
  box-shadow:var(--shadow-1);
}
.tagcolor-manage__toggle-empty:hover{
  background:var(--chip-hover);
}
.tagcolor-manage__toggle-empty:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tagcolor-manage__hidden-info{
  font-size:11px;
  color:var(--text-500);
  text-align:right;
}
.tagcolor-manage__groups{
  display:grid;
  gap:8px;
  width:100%;
}
.tagcolor-manage__group{
  border:1px solid rgba(148,163,184,.35);
  border-radius:10px;
  background:rgba(148,163,184,.05);
  overflow:hidden;
  width:100%;
  box-sizing:border-box;
}
.tagcolor-manage__group-header{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto auto;
  align-items:center;
  gap:6px;
  padding:6px 8px;
}
.tagcolor-manage__caret{
  width:22px;
  height:22px;
  border:1px solid var(--muted);
  border-radius:7px;
  background:var(--surface);
  color:var(--text-600);
  cursor:pointer;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:var(--shadow-1);
}
.tagcolor-manage__caret:hover{
  background:var(--chip-hover);
}
.tagcolor-manage__group-namewrap{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:6px;
}
.tagcolor-manage__group-create{
  display:flex;
  justify-content:flex-start;
}
.tagcolor-manage__group-namebtn{
  min-width:0;
  border:1px solid transparent;
  background:transparent;
  color:var(--text-700);
  border-radius:7px;
  padding:3px 6px;
  font-size:13px;
  font-weight:600;
  text-align:left;
  cursor:text;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tagcolor-manage__group-namebtn:hover{
  border-color:rgba(100,116,139,.4);
  background:rgba(148,163,184,.12);
}
.tagcolor-manage__group-namebtn:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tagcolor-manage__group-count{
  font-size:11px;
  color:var(--text-500);
  white-space:nowrap;
}
.tagcolor-manage__group-edit{
  height:28px;
  min-width:120px;
}
.tagcolor-manage__group-colors{
  display:grid;
  gap:6px;
  padding:0 10px 10px;
  width:100%;
  box-sizing:border-box;
}
.tagcolor-manage__group-empty{
  display:grid;
  gap:8px;
  font-size:11px;
  color:var(--text-500);
  padding:6px 2px 2px;
}
.tagcolor-manage__group-empty-text{
  color:var(--text-500);
}
.tagcolor-manage__group-empty-actions{
  display:grid;
  grid-template-columns:auto minmax(170px, 1fr) minmax(56px, max-content);
  align-items:center;
  gap:8px;
}
.tagcolor-manage__group-empty-add{
  white-space:nowrap;
}
.tagcolor-manage__group-empty-move{
  min-width:0;
}
.tagcolor-manage__group-empty-actions .tagcolor-manage__status{
  justify-self:start;
  text-align:left;
}
.tagcolor-manage__color-row{
  display:grid;
  grid-template-columns:28px minmax(0, 1fr) minmax(150px, 180px) minmax(56px, max-content);
  align-items:center;
  gap:8px;
  padding:2px 0;
  width:100%;
  box-sizing:border-box;
}
.tagcolor-manage__swatch{
  width:28px;
  height:28px;
  border-radius:50%;
  border:1px solid var(--muted);
  background:var(--sw);
  padding:0;
  margin:0;
  cursor:pointer;
  box-shadow:var(--shadow-1);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.tagcolor-manage__swatch:hover{
  transform:scale(1.05);
}
.tagcolor-manage__swatch:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tagcolor-manage__swatch:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
}
.tagcolor-manage__color-row.is-temp{
  border:1px dashed rgba(100,116,139,.45);
  border-radius:9px;
  padding:4px 6px;
  background:rgba(148,163,184,.06);
}
.tagcolor-manage__input{
  width:100%;
  border:1px solid var(--muted);
  border-radius:8px;
  background:var(--surface);
  color:var(--text-700);
  font:inherit;
  font-size:12px;
  height:26px;
  padding:0 8px;
  box-sizing:border-box;
}
.tagcolor-manage__input:focus{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tagcolor-manage__select{
  width:100%;
  border:1px solid var(--muted);
  border-radius:8px;
  background:var(--surface);
  color:var(--text-700);
  font:inherit;
  font-size:12px;
  height:26px;
  padding:0 6px;
  box-sizing:border-box;
}
.tagcolor-manage__select:focus{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.tagcolor-manage__save,
.tagcolor-manage__close{
  border:1px solid var(--muted);
  background:var(--chip-bg);
  color:var(--text-700);
  border-radius:8px;
  padding:4px 8px;
  font-size:12px;
  cursor:pointer;
  box-shadow:var(--shadow-1);
}
.tagcolor-manage__save:hover,
.tagcolor-manage__close:hover{
  background:var(--chip-hover);
}
.tagcolor-manage__save:disabled,
.tagcolor-manage__close:disabled{
  opacity:.55;
  cursor:not-allowed;
  filter:saturate(.7);
}
.tagcolor-manage__status{
  font-size:11px;
  color:var(--text-500);
  min-width:56px;
  text-align:right;
  justify-self:end;
}
.tagcolor-manage__empty{
  font-size:12px;
  color:var(--text-500);
}

/* Shared delete confirmation dialog */
.twodos-confirm{
  position:fixed;
  inset:0;
  z-index:2200;
  display:grid;
  place-items:center;
  padding:16px;
}
.twodos-confirm__backdrop{
  position:absolute;
  inset:0;
  background:rgba(12,18,31,.56);
  backdrop-filter:blur(1.5px);
}
.twodos-confirm__panel{
  position:relative;
  width:min(460px, 100%);
  max-height:min(88vh, 700px);
  overflow:auto;
  background:var(--surface);
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  box-shadow:0 20px 44px rgba(15,23,42,.22), 0 4px 12px rgba(15,23,42,.1);
  padding:14px 14px 12px;
  color:var(--text-900);
}
.twodos-confirm__header{
  margin-bottom:8px;
}
.twodos-confirm__title{
  margin:0;
  font-size:17px;
  font-weight:650;
  letter-spacing:-.01em;
  line-height:1.3;
  color:var(--text-900);
}
.twodos-confirm__body{
  display:grid;
  gap:8px;
  color:var(--text-700);
  font-size:13.5px;
  line-height:1.5;
}
.twodos-confirm__message p{
  margin:0 0 6px;
}
.twodos-confirm__message p:last-child{
  margin-bottom:0;
}
.twodos-confirm__choices{
  margin:0;
  padding:8px 9px;
  border:1px solid var(--muted);
  border-radius:11px;
  display:grid;
  gap:7px;
}
.twodos-confirm__choices-legend{
  padding:0 4px;
  font-size:12px;
  color:var(--text-500);
}
.twodos-confirm__choice{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:6px 10px;
  align-items:flex-start;
  color:var(--text-800);
}
.twodos-confirm__choice input{
  margin-top:1px;
}
.twodos-confirm__choice-help{
  grid-column:2;
  font-size:12px;
  color:var(--text-500);
}
.twodos-confirm__phrase{
  display:grid;
  gap:5px;
}
.twodos-confirm__phrase-label{
  font-size:12px;
  color:var(--text-600);
}
.twodos-confirm__phrase-input{
  width:100%;
  max-width:220px;
  border:1px solid var(--muted);
  border-radius:8px;
  background:var(--surface);
  color:var(--text-900);
  font:inherit;
  font-size:13px;
  height:32px;
  padding:0 10px;
  box-sizing:border-box;
}
.twodos-confirm__phrase-input:focus{
  outline:2px solid var(--accent-ring);
  outline-offset:2px;
}
.twodos-confirm__footer{
  margin-top:12px;
  display:flex;
  justify-content:flex-end;
  gap:9px;
}
.twodos-confirm__btn{
  border:1px solid var(--muted);
  border-radius:10px;
  min-height:37px;
  padding:0 14px;
  font:600 13px/1 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
  letter-spacing:.01em;
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease, transform .12s ease, box-shadow .15s ease;
}
.twodos-confirm__btn--cancel{
  background:var(--surface);
  color:var(--text-700);
  border-color:rgba(15,23,42,.2);
}
.twodos-confirm__btn--cancel:hover{
  background:var(--chip-hover);
  border-color:rgba(15,23,42,.28);
}
.twodos-confirm__btn--danger{
  background:linear-gradient(180deg, #cf3325 0%, #b42318 100%);
  border-color:#b42318;
  color:#fff;
  box-shadow:0 4px 10px rgba(180,35,24,.26);
}
.twodos-confirm__btn--danger:hover{
  background:linear-gradient(180deg, #bb2b1f 0%, #991b1b 100%);
  border-color:#991b1b;
}
.twodos-confirm__btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}
.twodos-contextmenu{
  background:var(--surface);
  color:var(--text-800);
  border:1px solid rgba(15,23,42,.12);
  border-radius:12px;
  box-shadow:0 14px 30px rgba(15,23,42,.14);
  padding:3px;
  z-index:11040;
  overflow:auto;
  box-sizing:border-box;
}
.twodos-contextmenu__item{
  width:100%;
  min-height:30px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:inherit;
  display:flex;
  align-items:center;
  gap:7px;
  text-align:left;
  padding:0 8px;
  cursor:pointer;
  font:500 12px/1.15 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
  letter-spacing:.003em;
}
.twodos-contextmenu__item:hover{
  background:var(--chip-hover);
}
.twodos-contextmenu__item:focus-visible{
  outline:2px solid var(--accent-ring);
  outline-offset:0;
}
.twodos-contextmenu__item:disabled{
  opacity:.5;
  cursor:not-allowed;
}
.twodos-contextmenu__item--danger{
  color:var(--twodos-danger, #b91c1c);
}
.twodos-contextmenu__item--section-start,
.twodos-contextmenu__item--danger-first{
  margin-top:3px;
  border-top:1px solid rgba(15,23,42,.08);
  padding-top:4px;
}
.twodos-contextmenu__icon{
  width:13px;
  height:13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text-500);
  flex:0 0 13px;
}
.twodos-contextmenu__item--danger .twodos-contextmenu__icon{
  color:inherit;
}
.twodos-contextmenu__icon svg{
  width:13px;
  height:13px;
  display:block;
}
.twodos-contextmenu__label{
  min-width:0;
  flex:1 1 auto;
}
@media (max-width: 560px){
  .twodos-confirm{
    padding:12px;
  }
  .twodos-confirm__panel{
    width:100%;
    border-radius:14px;
    padding:12px 12px 10px;
  }
  .twodos-confirm__footer{
    justify-content:stretch;
  }
  .twodos-confirm__btn{
    flex:1 1 0;
    text-align:center;
  }
}

/* Responsive component pass */
@media (max-width: 1024px){
  .tabs{
    gap:8px;
    padding:10px 10px 6px;
  }
  .tabs .tab{
    --tab-h: 36px;
    height:36px;
    padding:0 12px;
    font-size:12px;
  }
  .tab.tab--archive-toggle{
    margin-left:8px;
  }
  .tags{
    padding:8px 10px;
  }
  .tags__row{
    flex-wrap:wrap;
    row-gap:8px;
  }
  .tags__left-wrap{
    flex:1 1 100%;
  }
  .tags__right{
    width:100%;
    justify-content:space-between;
  }
  .tags__controls,
  .tags__actions{
    flex-wrap:wrap;
  }
  .twodos-import-modal{
    padding:12px;
  }
  .twodos-import-modal__panel{
    width:min(720px, 100%);
    max-height:calc(100dvh - 24px);
    border-radius:12px;
  }
  .twodos-import-preview__row{
    grid-template-columns:minmax(0, 1fr);
    gap:2px;
  }
  .twodos-import-preview__row dt{
    font-weight:600;
  }
  .tagcolor-manage{
    width:min(640px, calc(100vw - 12px));
    max-height:76vh;
  }
}

@media (max-width: 760px){
  .tabs{
    padding:8px 8px 4px;
  }
  .tabs .tab{
    --tab-h: 34px;
    height:34px;
    padding:0 10px;
    font-size:11.5px;
  }
  .tab__actions{
    top:4px;
    right:4px;
    gap:4px;
  }
  .tab__btn{
    width:22px;
    height:22px;
  }
  .tags{
    padding:6px 8px;
  }
  .tags .tag{
    height:30px;
    padding:0 12px;
    font-size:11px;
  }
  .tags__group-header{
    height:30px;
  }
  .tags__right{
    justify-content:flex-start;
  }
  .tags__controls,
  .tags__actions{
    width:100%;
  }
  .tags__showall-panel{
    width:calc(100vw - 10px);
    max-height:72vh;
    padding:8px;
  }
  .tagcolor-pop,
  .tagcolor-manage,
  .tags__showall-panel,
  .twodos-contextmenu{
    max-width:calc(100vw - 10px);
    box-sizing:border-box;
  }
  .tagcolor-pop{
    width:min(220px, calc(100vw - 10px));
  }
  .tags__showall-footer{
    flex-direction:column;
    align-items:stretch;
  }
  .tags__showall-manage,
  .tags__showall-reset{
    width:100%;
    text-align:center;
  }
  .folder,
  .folder__add-btn{
    min-height:46px !important;
    padding-left:14px !important;
  }
  .folder__select{
    height:42px;
    font-size:13px;
  }
  .folder{
    padding-right:48px !important;
  }
  .folder__actions{
    top:4px;
    right:4px;
  }
  .twodos-import-modal{
    padding:8px;
  }
  .twodos-import-modal__panel{
    padding:12px;
  }
  .twodos-import-modal__header{
    align-items:flex-start;
    flex-direction:column;
  }
  .twodos-import-modal__footer{
    flex-wrap:wrap;
    gap:8px;
  }
  .twodos-import-modal__preview,
  .twodos-import-modal__execute{
    margin-left:0;
    width:100%;
  }
  .twodos-guest-auth{
    padding:14px 14px 12px;
  }
  .twodos-import-fallback{
    display:none !important;
  }
}

@media (hover: none), (pointer: coarse){
  .tab__actions,
  .tag__actions,
  .folder__actions{
    opacity:1;
    pointer-events:auto;
  }
  .taskslist__row .taskcard__del{
    opacity:1;
    pointer-events:auto;
  }
  .tab__btn,
  .tag__btn,
  .folder__btn{
    min-width:26px;
    min-height:26px;
  }
  .tab:hover,
  .tag:hover,
  .folder:hover,
  .tags .tag:hover{
    transform:none;
  }
}
