/* Tasks List View */
.taskslist{
  flex:1 1 auto;
  min-height:0;
  min-width:0;
  display:flex;
  flex-direction:column;
  /* Shadow-safe padding so row shadows/focus rings don’t clip against the scrollport edges. */
  padding:var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 6px)) var(--two-dos-edge-inset, var(--two-dos-gutter, var(--two-dos-gap, 16px)));
  height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  scroll-padding-inline:var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 10px));
  width:100%;
  box-sizing:border-box;
}
.taskslist__groups{display:flex; flex-direction:column; gap:24px; padding:8px 0 16px; width:100%; min-width:0; box-sizing:border-box;}
.taskslist__group{background:transparent; border:0; border-radius:12px; width:100%; max-width:100%; min-width:0; box-sizing:border-box;}
.taskslist__group-header{display:flex; align-items:center; justify-content:space-between; padding:0 2px; margin:0 0 10px;}
.taskslist__group-title{ margin:0; font-size:15px; font-weight:600; color:var(--text-900); letter-spacing:.5px; line-height:1.2; padding:0 2px; display:inline-block; flex:1 1 auto; }
.taskslist__group-actions{display:flex; gap:6px;}
.taskslist__sort{display:none;}
/* Header buttons (Sort/Order and View toggle) */
/* header action button styles are centralized in components.css */

.taskslist__table{display:flex; flex-direction:column; gap:6px !important; width:100%; max-width:100%; min-width:0; overflow-x:hidden; position:relative; box-sizing:border-box;}
.taskslist__table.taskslist__table--incol{width:100% !important;}
.tasksboard__column .taskslist__table.taskslist__table--incol{width:100% !important;}
.tasksboard__column .taskadd-card--list{width:100% !important;}

.taskslist__row{display:grid; grid-template-columns: 20px minmax(0, 1fr) 1fr max-content max-content 28px; align-items:flex-start; gap:12px; background:var(--surface); border:1px solid var(--muted); border-radius:10px; padding:8px 12px; box-shadow:var(--shadow-1); font-size:13px; width:100%; max-width:100%; min-width:0; overflow:visible; box-sizing:border-box; transition: transform .18s ease, opacity .18s ease, margin .18s ease;}
.taskslist__row--head{background:transparent; border:0; box-shadow:none; padding:0 4px; color:var(--text-500); font-size:12px; height:24px; align-items:center; margin-top:6px;}

.taskslist__cell{min-width:0; overflow:hidden;}
/* Checkbox cell: vertically center and tuck closer to title */
.taskslist__cell--check{ display:flex; align-items:flex-start; margin-right:-4px; padding-top:0; }
/* Title cell: ensure baseline/center alignment and single-line truncation; span two columns for more room */
.taskslist__cell--title{ display:flex; flex-direction:column; align-items:stretch; min-width:0; grid-column: 2 / 4; gap:1px; }
.taskslist__title-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; min-width:0; }
.taskslist__title-mainrow{ display:flex; align-items:flex-start; gap:6px; min-width:0; flex:1 1 auto; }
.taskslist__title-mainrow .taskcard__title{ flex:1 1 auto; min-width:0; font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.35; padding-right:0; }
.taskslist__title-mainrow .taskcard__title .taskcard__title-main{ font-size:13px; line-height:1.25; font-weight:400; }
.taskslist__prio-inline{ margin-left:auto; flex:0 0 auto; align-self:flex-start; }
.taskslist__cell--title .taskcard__title-sub{display:none;}
.taskslist__descrow{ display:flex; align-items:flex-end; gap:8px; min-width:0; min-height:0; }
.taskslist__desc{
  flex:1 1 auto;
  min-width:0;
  font-size:12px;
  line-height:1.35;
  color:var(--text-600);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.taskslist__due-inline{ margin-left:auto; flex:0 0 auto; align-self:flex-end; }
.taskslist__cell--title.is-editing{position:relative;}
.taskslist__cell--title.is-editing > :not(.taskcard__edit){opacity:0; pointer-events:none;}
.taskslist__cell--title.is-editing .taskcard__edit{position:absolute; inset:0; width:100%; height:100%; padding:0 8px;}
.taskslist__cell--due{display:flex; align-items:center; gap:12px; white-space:nowrap; font-size:.9em;}
.taskslist__cell--tags{display:flex; align-items:center; gap:12px; white-space:nowrap; justify-content:flex-end; flex-wrap:nowrap; font-size:.9em; overflow:hidden;}
.taskslist__cell--prio{display:flex; align-items:center; white-space:nowrap; font-size:.9em;}
.taskslist__cell--rightmeta{grid-column:4 / 7; justify-self:end; min-width:0;}
.taskslist__rightrow{display:flex; align-items:center; gap:12px; white-space:nowrap;}
.taskslist__rightlead{display:inline-flex; align-items:center; flex:0 0 auto;}
.taskslist__righttrail{display:inline-flex; align-items:center; gap:12px; margin-left:auto; flex-wrap:wrap; justify-content:flex-end;}
.taskslist__due-meta{ margin-left:0; flex:0 0 auto; }
.taskslist__cell--actions{display:flex; justify-content:flex-end; align-items:center;}

/* List-in-column rows stack meta beneath title to prevent narrow-width title collapse. */
.taskslist__table--incol .taskslist__row:not(.taskslist__row--meta){
	grid-template-columns:20px minmax(0,1fr);
	gap:8px;
  padding:8px 10px;
}
.taskslist__table--incol .taskslist__cell--title{
	grid-column:2 / 3;
	min-width:0;
}
.taskslist__table--incol .taskslist__title-mainrow .taskcard__title{
	white-space:normal;
	overflow:visible;
	text-overflow:clip;
	overflow-wrap:anywhere;
	word-break:break-word;
}
.taskslist__table--incol .taskslist__desc{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.taskslist__table--incol .taskslist__cell--rightmeta{
	grid-column:2 / 3;
	justify-self:stretch;
	min-width:0;
	margin-top:2px;
}
.taskslist__table--incol .taskslist__cell--meta{ grid-column:2 / 3; }
.taskslist__table--incol .taskslist__rightrow{
	width:100%;
	gap:6px 8px;
	max-width:100%;
	overflow:visible;
	flex-wrap:nowrap;
	white-space:normal;
	justify-content:flex-start;
}
.taskslist__table--incol .taskslist__righttrail{
  gap:6px 8px;
  margin-left:auto;
}

.taskslist__row--meta{background:transparent; border:0; box-shadow:none; padding:0 4px; height:0; overflow:hidden; margin:0 !important;}
.taskslist__cell--meta{grid-column:2 / 6; padding:4px 0 8px;}

.taskadd-card--list{width:100%; max-width:100%; min-width:0; box-sizing:border-box;}
@media (max-width: 900px){ .taskslist__table, .taskadd-card--list{ width:100%; } }

/* Hide delete until hover */
.taskslist__row .taskcard__del{opacity:0; pointer-events:none; transition:opacity .18s ease;}
.taskslist__row:hover .taskcard__del, .taskslist__row:focus-within .taskcard__del{opacity:1; pointer-events:auto;}

/* Completed rows styling */
.taskslist__row.taskslist__row--done{opacity:.25; filter:grayscale(100%); transition:opacity .18s ease, filter .18s ease; align-items:center;}
.taskslist__row:has(.taskcard__check:checked){opacity:.25; filter:grayscale(100%); transition:opacity .18s ease, filter .18s ease;}
.taskslist__row--done .taskcard__title,
.taskslist__row:has(.taskcard__check:checked) .taskcard__title{
  text-decoration-line: line-through;
  text-decoration-color: rgba(17,24,39,.4);
  text-decoration-thickness: 1.25px;
  text-decoration-skip-ink: auto;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-overflow:ellipsis;
  -webkit-line-clamp:1;
  line-clamp:1;
  max-height:1.5em;
}
.taskslist__table--incol .taskslist__row--done .taskslist__title-mainrow .taskcard__title,
.taskslist__table--incol .taskslist__row:has(.taskcard__check:checked) .taskslist__title-mainrow .taskcard__title{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.taskslist__row--done .taskslist__descrow,
.taskslist__row--done .taskslist__cell--due,
.taskslist__row--done .taskslist__cell--tags,
.taskslist__row--done .taskslist__cell--rightmeta,
.taskslist__row--done .taskcard__details,
.taskslist__row--done .taskcard__repeat,
.taskslist__row:has(.taskcard__check:checked) .taskslist__descrow,
.taskslist__row:has(.taskcard__check:checked) .taskslist__cell--due,
.taskslist__row:has(.taskcard__check:checked) .taskslist__cell--tags,
.taskslist__row:has(.taskcard__check:checked) .taskslist__cell--rightmeta,
.taskslist__row:has(.taskcard__check:checked) .taskcard__details,
.taskslist__row:has(.taskcard__check:checked) .taskcard__repeat{ display:none !important; }
.taskslist__row.taskslist__row--done:hover, .taskslist__row.taskslist__row--done:focus-within{opacity:1;}
.taskslist__row:has(.taskcard__check:checked):hover, .taskslist__row:has(.taskcard__check:checked):focus-within{opacity:1; filter:none;}
.taskslist__row.taskslist__row--future{opacity:.5;}
.taskslist__row.taskslist__row--future:hover,
.taskslist__row.taskslist__row--future:focus-within{opacity:1;}

/* Standardize pills heights */
.taskslist .taskcard__due, .taskslist .taskcard__priority, .taskslist .taskcard__tag, .taskslist .taskcard__repeat{height:24px; padding:0 8px; display:inline-flex; align-items:center; font-weight:500;}
.taskslist .taskcard__amount{height:24px; padding:0 8px; display:inline-flex; align-items:center; font-weight:500;}
.taskslist .taskcard__tag .tag__dot{ width:8px; height:8px; border-radius:50%; background:#cdd3de; display:inline-block; margin-right:4px; }

/* Match checkbox sizing in list to card view */
.taskslist .taskcard__check{ width:18px; height:18px; flex:0 0 18px; min-width:18px; min-height:18px; align-self:flex-start; margin-top:-1px; }

/* DnD visuals for list */
.taskslist__table.is-dragover{background:var(--dragover-grad); box-shadow:inset 0 0 0 2px rgba(59,130,246,.25); border-radius:12px;}
.taskslist__row.is-dragging{opacity:.75; transform:translateY(-2px) scale(1.004); box-shadow:0 12px 28px rgba(17,24,39,.24), 0 6px 18px rgba(17,24,39,.12); z-index:20;} 

/* Archived list empty */
.taskslist__empty-archived{font-size:12px; color:var(--text-500); padding:4px 2px; font-style:italic;}
.is-archived-view .taskslist__row .taskcard__priority .prioicon,
.is-archived-view .taskslist__row .taskcard__tag,
.is-archived-view .taskslist__row .taskcard__due,
.is-archived-view .taskslist__row .taskcard__repeat,
.is-archived-view .taskslist__row .subcount{ filter: grayscale(1); opacity: .55; }
.is-archived-view .taskslist__cell{ color: var(--text-700); }

/* Collapse list-mode add form like board variant */
.taskadd-card--list.is-collapsed .taskadd-card__tags,
.taskadd-card--list.is-collapsed .taskadd-card__date,
.taskadd-card--list.is-collapsed .taskadd-card__select,
.taskadd-card--list.is-collapsed .taskadd-card__repeat,
.taskadd-card--list.is-collapsed .taskcard__priority{display:none !important;}

/* Completed sections (Today / Yesterday / Older) */
.taskslist__section{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 2px 8px;
  margin-top:4px;
  color:var(--text-500);
  font-size:12px;
  border-bottom:1px solid rgba(148,163,184,.24);
}
.taskslist__section-title{ font-weight:600; letter-spacing:.3px; }
.taskslist__section .sectiontoggle{ display:inline-flex; align-items:center; gap:8px; border:0; background:transparent; color:inherit; font:inherit; font-size:12px; cursor:pointer; padding:0; }
.taskslist__section .sectiontoggle__arrow{ width:14px; height:14px; display:inline-flex; align-items:center; justify-content:center; }
.taskslist__section .sectiontoggle__arrow svg{ width:14px; height:14px; display:block; }
.taskslist__section .sectiontoggle__count{ color:var(--text-400); }
.taskslist__section .sectiontoggle__value{
  display:inline-flex;
  align-items:center;
  margin-left:4px;
  padding:0 6px;
  min-height:18px;
  border-radius:999px;
  border:1px solid var(--muted);
  background:var(--chip-bg);
  color:var(--text-600);
  font-size:11px;
  font-weight:600;
  line-height:1;
  font-variant-numeric:tabular-nums;
}

/* Responsive list pass */
@media (max-width: 1024px){
  .taskslist{
    padding:var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 6px)) var(--two-dos-edge-inset, 10px);
  }
  .taskslist__groups{
    gap:18px;
    padding-bottom:10px;
  }
}

@media (max-width: 900px){
  .taskslist__group-header{
    flex-wrap:wrap;
    gap:8px;
  }
  .taskslist__group-actions{
    width:100%;
    justify-content:flex-end;
  }
  .taskslist__row--head{
    display:none;
  }
  .taskslist__row:not(.taskslist__row--meta):not(.taskslist__row--head){
    grid-template-columns:20px minmax(0, 1fr) auto;
    gap:8px;
    align-items:flex-start;
  }
  .taskslist__cell--title{
    grid-column:2 / -1;
  }
  .taskslist__cell--rightmeta{
    grid-column:2 / -1;
    justify-self:stretch;
    margin-top:4px;
  }
  .taskslist__rightrow{
    display:flex;
    flex-wrap:wrap;
    gap:6px 8px;
    white-space:normal;
  }
  .taskslist__cell--actions{
    grid-column:3 / 4;
    align-self:center;
  }
  .taskslist__row--meta .taskslist__cell--meta{
    grid-column:2 / -1;
    padding-top:2px;
  }
}

@media (max-width: 560px){
  .taskslist{
    padding:var(--two-dos-shadow-safe, var(--two-dos-shadow-bleed, 6px)) var(--two-dos-edge-inset, 8px);
  }
  .taskslist__groups{
    gap:14px;
  }
  .taskslist__row:not(.taskslist__row--meta):not(.taskslist__row--head){
    padding:9px 10px;
  }
  .taskslist .taskcard__due,
  .taskslist .taskcard__priority,
  .taskslist .taskcard__tag,
  .taskslist .taskcard__repeat,
  .taskslist .taskcard__amount{
    height:22px;
    padding:0 7px;
    font-size:11px;
  }
}
