/* ==========================================================================
   Task Management dashboard (/tasks) — all classes are td- prefixed.
   Ported from the task-dashboard prototype; --primary-theme resolves to the
   app theme colour with a sensible fallback.
   ========================================================================== */
/* Every td-/td2- rule reads its colour through these, so pointing them at the app's
   central Appearance tokens is what makes the whole screen follow the chosen theme,
   light/dark mode and the Text-contrast setting — one place instead of 900 rules.
   Each keeps its original value as the fallback, so light mode renders as authored
   except where the central token is deliberately sharper (--tc-*, which is also what
   carries "boost"/"max" contrast).
     accent fill/border -> --theme-default      accent TEXT -> --theme-text
     surfaces -> --sf-card/subtle/raised        borders -> --bd
     neutrals -> --tc-strong/text/muted/faint
   The surface and border tokens are defined in dark mode only, so light mode falls
   back to the value each token was authored with; the --tc- neutrals are defined in
   both modes because they also carry the Text-contrast setting.
   NOTE: never write a token glob with a star immediately before a slash in a CSS
   comment - that sequence ends the comment early and the rest of this block would
   be parsed as a selector, silently dropping every custom property below. */
.td-page{
  --primary-theme:var(--theme-default,#17457b);
  /* Accent as TEXT needs the mode-aware variant: the fill is a deep navy that
     disappears on dark paper. Mirrors .spq-atd-tab.is-active in appearance.css. */
  --primary-theme-text:var(--theme-text,var(--theme-default,#17457b));
  --td-soft:var(--sf-raised,#e8eef7);
  --td-softer:var(--sf-subtle,#f3f7fc);
  --td-bg:var(--app-paper,#f4f6f9);
  --td-surface:var(--sf-card,#fff);
  --td-border:var(--bd,#dfe5ee);
  --td-border-soft:var(--bd,#edf1f7);
  --td-text:var(--tc-text,#1e2a38);
  --td-muted:var(--tc-muted,#6b7a90);
  /* Status inks are dark colours on light paper; on dark paper they blend toward
     near-white so they stay legible, exactly like the theme-surfaces ink pass. */
  --td-danger:color-mix(in srgb, #c8322b var(--ink-keep,100%), var(--ink-flip,#c8322b));
  --td-success:color-mix(in srgb, #1d7a3f var(--ink-keep,100%), var(--ink-flip,#1d7a3f));
  --td-radius:.5rem;
  --td-shadow-sm:0 1px 2px rgba(16,24,40,.06);
  color:var(--td-text);
  font-size:.875rem;
}

/* Company context bar */
.td-contextbar{background:var(--td-surface);border:1px solid var(--td-border);border-radius:var(--td-radius);padding:.45rem .75rem;}
.td-context-picker{width:280px;}

/* Stat strip */
.td-stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem;}
.td-stat{background:var(--td-surface);border:1px solid var(--td-border);border-left:3px solid var(--acc,var(--primary-theme));border-radius:var(--td-radius);box-shadow:var(--td-shadow-sm);padding:.5rem .65rem;cursor:pointer;user-select:none;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;}
.td-stat:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(16,24,40,.12);}
.td-stat.active{border-color:var(--acc,var(--primary-theme));box-shadow:0 0 0 2px var(--acc,var(--primary-theme));background:var(--td-softer);}
.td-stat .num{font-size:1.25rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);line-height:1.1;}
.td-stat .lbl{font-size:.68rem;color:var(--td-muted);font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-stat.a-red{--acc:#dc2626;}
.td-stat.a-amber{--acc:#d3a512;}
.td-stat.a-green{--acc:#16a34a;}
.td-stat.a-purple{--acc:#7c3aed;}
.td-stat.a-blue{--acc:#2563eb;}
.td-stat.a-slate{--acc:#64748b;}

/* Toolbar / filters */
.td-toolbar{background:var(--td-surface);border:1px solid var(--td-border);border-radius:var(--td-radius);padding:.6rem .7rem;}
.td-toolbar label{font-size:.66rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.15rem;display:block;}
.td-toolbar .form-control,.td-toolbar .form-select{font-size:.8rem;padding:.3rem .5rem;}
.td-search-wrap{position:relative;}
.td-search-wrap i{position:absolute;left:.55rem;top:50%;translate:0 -50%;color:var(--td-muted);font-size:.78rem;z-index:2;}
.td-search-wrap input{padding-left:1.7rem;}
.td-clearbtn{font-size:.72rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);text-decoration:none;white-space:nowrap;color:var(--primary-theme-text);}

/* View toggle */
.td-viewtoggle .btn{font-size:.78rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.3rem .65rem;}

/* Column visibility + reorder panel */
.td-colpanel{width:250px;box-shadow:0 6px 18px rgba(16,24,40,.14);background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:.45rem;padding:.5rem;position:absolute;z-index:1060;}
.td-colpanel-wrap{position:relative;}
.td-colpanel-head{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #42506b);text-transform:uppercase;letter-spacing:.03em;padding:.15rem .3rem .4rem;}
.td-colpanel-hint{font-size:.68rem;color:var(--td-muted);padding:0 .3rem .4rem;}
.td-col-row{display:flex;align-items:center;gap:.4rem;padding:.35rem .4rem;border-radius:.35rem;font-size:.82rem;cursor:default;background:var(--sf-card, #fff);}
.td-col-row:hover{background:var(--td-softer);}
.td-col-row.dragging{opacity:.4;}
.td-col-row.drag-over{border-top:2px solid var(--primary-theme);}
.td-col-handle{cursor:grab;color:var(--tc-faint, #aab6c8);font-size:.85rem;flex:none;}
.td-col-row label{flex:1;margin:0;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);cursor:pointer;}
.td-col-row.locked .td-col-handle{color:#d3dbe8;}

/* Grid / table */
.td-grid-wrap{overflow:auto;border:1px solid var(--td-border);border-radius:var(--td-radius);background:var(--td-surface);}
table.td-grid{margin:0;font-size:.81rem;min-width:900px;}
.td-grid thead th{position:sticky;top:0;background:var(--td-softer);color:var(--tc-text, #33415c);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;font-weight:var(--spq-font-weight, 800);border-bottom:1px solid var(--td-border);padding:.5rem .6rem;white-space:nowrap;z-index:1;}
.td-grid tbody td{padding:.45rem .6rem;vertical-align:middle;border-color:var(--td-border-soft);white-space:nowrap;}
.td-grid tbody tr{cursor:pointer;}
.td-grid tbody tr:hover{background:var(--sf-subtle, #f7f9fc);}
.td-task-id{font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);}
.td-cell-title{max-width:230px;overflow:hidden;text-overflow:ellipsis;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;}
.td-gstin{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.74rem;color:var(--tc-text, #3d4c63);}
.td-due-overdue{color:var(--td-danger);font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}

/* Status + priority chips */
.td-status{display:inline-flex;align-items:center;gap:.32rem;font-size:.68rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);padding:.16rem .5rem;border-radius:999px;border:1px solid transparent;white-space:nowrap;}
.td-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;}
.st-draft{color:var(--tc-muted, #5b6b81);background:var(--sf-subtle, #f1f5f9);border-color:var(--bd, #dde5ee);}
.st-assigned{color:color-mix(in srgb, #1d4ed8 var(--ink-keep, 100%), var(--ink-flip, #1d4ed8));background:var(--sf-raised, #e7eefc);border-color:#cddcf8;}
.st-progress{color:var(--theme-text, var(--theme-default));background:color-mix(in srgb, var(--theme-default) 15%, var(--tint-base, #fff));border-color:color-mix(in srgb, var(--theme-default) 31%, var(--tint-base, #fff));}
.st-wclient{color:color-mix(in srgb, #b45309 var(--ink-keep, 100%), var(--ink-flip, #b45309));background:color-mix(in srgb, #fdf1e0 var(--pastel-keep, 100%), var(--sf-card, #fdf1e0));border-color:#f5dfba;}
.st-wreview{color:color-mix(in srgb, #6d28d9 var(--ink-keep, 100%), var(--ink-flip, #6d28d9));background:var(--sf-raised, #f1eafe);border-color:#e0d1fb;}
.st-approved{color:color-mix(in srgb, #15803d var(--ink-keep, 100%), var(--ink-flip, #15803d));background:var(--sf-raised, #e5f5ea);border-color:color-mix(in srgb, #c7e8d2 var(--pastel-keep,100%), var(--bd, #c7e8d2));}
.st-filed{color:color-mix(in srgb, #047857 var(--ink-keep, 100%), var(--ink-flip, #047857));background:var(--sf-raised, #dcf3ec);border-color:#b8e5d8;}
.st-completed{color:color-mix(in srgb, #14532d var(--ink-keep, 100%), var(--ink-flip, #14532d));background:var(--sf-raised, #d9efe1);border-color:#bce2cb;}
.st-onhold{color:var(--tc-text, #475569);background:var(--sf-raised, #e9edf3);border-color:var(--bd, #d6dde7);}
.st-cancelled{color:color-mix(in srgb, #b91c1c var(--ink-keep, 100%), var(--ink-flip, #b91c1c));background:var(--sf-raised, #fdeaea);border-color:#f6cfcf;}

.td-status-select{display:inline-block;width:auto;font-size:.68rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);padding:.16rem 1.6rem .16rem .5rem;border-radius:999px;border:1px solid transparent;cursor:pointer;}
.td-kcard-status{max-width:140px;}

.td-priority{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;}
.td-priority::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--pc);flex:none;}
.pr-low{--pc:#16a34a;}
.pr-medium{--pc:#2563eb;}
.pr-high{--pc:#ea580c;}
.pr-urgent{--pc:#dc2626;color:color-mix(in srgb, #b91c1c var(--ink-keep, 100%), var(--ink-flip, #b91c1c));}
.td-unassigned{color:var(--td-muted);font-style:italic;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);}

/* System-generated Due Status badge */
.td-duestatus{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);padding:.15rem .5rem;border-radius:.35rem;border:1px solid transparent;white-space:nowrap;}
.td-duestatus::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;}
.due-future{color:color-mix(in srgb, #1d4ed8 var(--ink-keep, 100%), var(--ink-flip, #1d4ed8));background:var(--sf-raised, #e7eefc);border-color:#cddcf8;}
.due-tomorrow{color:color-mix(in srgb, #92660a var(--ink-keep, 100%), var(--ink-flip, #92660a));background:color-mix(in srgb, #fdf6dd var(--pastel-keep, 100%), var(--sf-card, #fdf6dd));border-color:#f0e3ae;}
.due-today{color:color-mix(in srgb, #b45309 var(--ink-keep, 100%), var(--ink-flip, #b45309));background:color-mix(in srgb, #fdf1e0 var(--pastel-keep, 100%), var(--sf-card, #fdf1e0));border-color:#f5dfba;}
.due-overdue-hrs{color:color-mix(in srgb, #c2410c var(--ink-keep, 100%), var(--ink-flip, #c2410c));background:color-mix(in srgb, #fdece0 var(--pastel-keep, 100%), var(--sf-card, #fdece0));border-color:#f6cba3;}
.due-overdue-days{color:color-mix(in srgb, #b91c1c var(--ink-keep, 100%), var(--ink-flip, #b91c1c));background:var(--sf-raised, #fdeaea);border-color:#f6cfcf;}
.due-closed{color:var(--tc-muted, #5b6b81);background:var(--sf-subtle, #f1f5f9);border-color:var(--bd, #dde5ee);}
.due-none{color:color-mix(in srgb, #7c3aed var(--ink-keep, 100%), var(--ink-flip, #7c3aed));background:var(--sf-raised, #f1eafe);border-color:#e0d1fb;}

/* Kanban */
.td-kanban{display:flex;gap:.65rem;overflow-x:auto;padding-bottom:.5rem;}
.td-kcol{flex:0 0 260px;background:var(--td-softer);border:1px solid var(--td-border);border-radius:var(--td-radius);display:flex;flex-direction:column;max-height:74vh;}
.td-kcol-head{padding:.5rem .6rem;font-size:.74rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #33415c);border-bottom:1px solid var(--td-border);display:flex;align-items:center;gap:.4rem;position:sticky;top:0;background:var(--td-softer);border-radius:var(--td-radius) var(--td-radius) 0 0;}
.td-kcol-count{background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:999px;font-size:.65rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);padding:.02rem .45rem;color:var(--td-muted);margin-left:auto;}
.td-kcol-body{padding:.5rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.5rem;}
.td-kcard{background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:.45rem;padding:.5rem .6rem;box-shadow:var(--td-shadow-sm);cursor:pointer;}
.td-kcard:hover{border-color:#c7d3e4;}
.td-kcard .id{font-size:.66rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);}
.td-kcard .title{font-size:.8rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);margin:.1rem 0 .3rem;}
.td-kcard .meta{font-size:.68rem;color:var(--td-muted);display:flex;align-items:center;justify-content:space-between;gap:.4rem;}
.td-kcard .due{font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-kcard .due.late{color:var(--td-danger);}
.td-empty-col{font-size:.72rem;color:var(--td-muted);text-align:center;padding:1rem .5rem;font-style:italic;}

/* Empty state */
.td-empty{text-align:center;padding:2.5rem 1rem;color:var(--td-muted);}
.td-empty i{font-size:2rem;display:block;margin-bottom:.5rem;color:#c3cede;}

/* Modal — header uses the app theme colour */
.td-modal .modal-content{border:1px solid var(--td-border);border-radius:var(--td-radius);}
.td-modal .modal-header{background:var(--theme-default,#17457b);color:#fff;padding:.55rem .9rem;border-radius:calc(var(--td-radius) - 1px) calc(var(--td-radius) - 1px) 0 0;}
.td-modal .modal-header .btn-close{filter:invert(1) grayscale(100%) brightness(200%);}
.td-modal .modal-title {
    font-size: .9rem;
    font-weight: clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);
    color: var(--bs-white);
}
.td-modal .modal-body{padding:.85rem .9rem;}

/* Task detail modal — compact header + info bar */
.td-detail-modal-header{gap:.6rem;}
.td-detail-header-title{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;overflow:hidden;}
.td-task-code-badge{display:inline-flex;align-items:center;gap:.2rem;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:.72rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);padding:.15rem .5rem;border-radius:.35rem;white-space:nowrap;flex-shrink:0;}
.td-task-header-name{color:#fff;font-size:.88rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Task info bar — Task No., Created date, and action buttons */
.td-task-infobar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;background:var(--td-softer);border-bottom:1px solid var(--td-border);padding:.45rem .9rem;}
.td-task-infobar-meta{display:flex;align-items:center;gap:.3rem .6rem;flex-wrap:wrap;flex:1;min-width:0;}
.td-task-infobar-no{font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);font-size:.8rem;display:inline-flex;align-items:center;gap:.15rem;}
.td-task-infobar-dot{color:var(--td-muted);font-size:.75rem;}
.td-task-infobar-created{color:var(--td-muted);font-size:.75rem;display:inline-flex;align-items:center;}
.td-task-infobar-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0;}
.td-infobar-btn{background:var(--sf-card, #fff);border:1px solid var(--td-border);color:var(--td-text);font-size:.74rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.3rem .65rem;border-radius:.4rem;display:inline-flex;align-items:center;gap:.35rem;transition:background .15s,border-color .15s,color .15s;}
.td-infobar-btn:hover{background:var(--td-softer);border-color:var(--primary-theme);color:var(--primary-theme-text);}
.td-infobar-btn-lbl{white-space:nowrap;}
@media (max-width:767.98px){
  .td-task-infobar{padding:.4rem .75rem;}
  .td-infobar-btn{min-height:40px;min-width:40px;justify-content:center;padding:.3rem .5rem;}
  .td-infobar-btn-lbl{display:none;}
  .td-task-infobar-dot{display:none;}
  .td-task-infobar-meta{gap:.2rem;}
}
.td-modal .row{--bs-gutter-x:.75rem;}
.td-form .form-label{margin-bottom:.15rem;font-size:.71rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #42506b);}
.td-form .form-control,.td-form .form-select{font-size:.83rem;padding:.32rem .55rem;}
.td-req{color:var(--td-danger);}

/* Task type toggle */
.td-tasktype .btn{font-size:.8rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.35rem .8rem;}

/* Searchable dropdown */
.td-searchable-select{position:relative;}
.td-ss-input{width:100%;}
.td-ss-compact .td-ss-input{font-size:.78rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.25rem .4rem;}
.td-ss-dropdown{position:absolute;top:100%;left:0;right:0;z-index:1080;background:var(--sf-card, #fff);border:1px solid var(--td-border);border-top:0;border-radius:0 0 .4rem .4rem;box-shadow:0 6px 16px rgba(16,24,40,.12);max-height:220px;overflow-y:auto;}
.td-ss-item{padding:.4rem .6rem;font-size:.8rem;cursor:pointer;border-bottom:1px solid var(--td-border-soft);}
.td-ss-item:last-child{border-bottom:0;}
.td-ss-item:hover,.td-ss-item.active{background:var(--td-softer);}
.td-ss-item .name{font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-ss-item .sub{font-size:.68rem;color:var(--td-muted);}
.td-ss-item.td-ss-add{color:var(--primary-theme-text);font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);background:var(--td-softer);}
.td-ss-empty{padding:.5rem .6rem;font-size:.78rem;color:var(--td-muted);font-style:italic;}

/* Quick-add inline client box */
.td-quickadd{background:var(--td-softer);border:1px dashed #cfdcf0;border-radius:.4rem;padding:.6rem .7rem;}
.td-quickadd-title{font-size:.74rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);margin-bottom:.4rem;}

/* Company-context auto-fill banner */
.td-context-banner{display:flex;align-items:center;gap:.4rem;background:var(--td-softer);border:1px solid #cfdcf0;color:var(--primary-theme-text);border-radius:.4rem;padding:.45rem .65rem;font-size:.78rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);}
.td-context-banner a{font-size:.72rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);text-decoration:none;white-space:nowrap;color:var(--primary-theme-text);}

/* Print options modal */
.td-print-scope .form-check{border:1px solid var(--td-border);border-radius:.4rem;padding:.55rem .65rem .55rem 2.1rem;margin-bottom:.5rem;}
.td-print-scope .form-check:hover{border-color:#c7d3e4;background:var(--td-softer);}
.td-print-scope .form-check-input{margin-top:.3rem;}
.td-print-scope label strong{font-size:.85rem;}
.td-send-note{font-size:.68rem;color:var(--td-muted);margin-top:.5rem;line-height:1.4;}

/* Task detail header block */
.td-detail-headbar{background:var(--td-softer);border:1px solid var(--td-border);border-radius:.5rem;padding:.65rem .8rem;}
.td-detail-headbar .kv{font-size:.66rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.1rem;}
.td-detail-headbar .val{font-size:.84rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}

.td-flexrow{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem;}
.td-field{flex:0 0 auto;min-width:110px;}
.td-field-sm{width:150px;flex:0 0 150px;}
.td-field-grow{flex:1 1 100%;min-width:0;}
@media (max-width:575.98px){
  .td-field{flex:1 1 45%;min-width:45%;}
  .td-field-sm{flex:1 1 45%;width:auto;min-width:45%;}
}
.td-tag-general{display:inline-flex;align-items:center;background:var(--sf-raised, #eef2f6);border:1px solid var(--td-border);color:var(--tc-text, #42506b);font-size:.76rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.3rem .6rem;border-radius:.4rem;}
.td-headbar-divider{border-top:1px dashed var(--td-border);}

/* Task Detail: section labels + collaboration panel */
.td-section-label{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem;}
.td-section-label .bi{font-size:.85rem;}
.td-collab-panel{background:var(--td-surface);border:1px solid var(--td-border);border-radius:.5rem;padding:.7rem .8rem;}
.td-collab-flex{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:flex-start;}
.td-collab-watchers{flex:1 1 320px;min-width:280px;}
.td-collab-reminders{flex:0 1 auto;min-width:220px;}
.td-collab-col-divider{border-left:1px dashed var(--td-border);padding-left:1.5rem;}
@media (max-width:767.98px){ .td-collab-col-divider{border-left:0;border-top:1px dashed var(--td-border);padding-left:0;padding-top:.75rem;margin-top:.25rem;flex-basis:100%;} }
.td-icon-btn{display:inline-flex;align-items:center;justify-content:center;position:relative;}
.td-reminder-summary-badge{font-size:.72rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);background:var(--td-softer);border:1px solid var(--td-border);border-radius:999px;padding:.2rem .65rem;}
.td-attach-count{position:absolute;top:-6px;right:-6px;background:var(--primary-theme);color:#fff;border-radius:999px;font-size:.6rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 .2rem;}
.btn-outline-purple{--bs-btn-color:#7c3aed;--bs-btn-border-color:#7c3aed;--bs-btn-hover-bg:#7c3aed;--bs-btn-hover-border-color:#7c3aed;--bs-btn-hover-color:#fff;--bs-btn-active-bg:#7c3aed;--bs-btn-active-border-color:#7c3aed;font-size:.78rem;}
.td-watchers{display:flex;flex-wrap:wrap;gap:.4rem;min-height:1.8rem;}
.td-watcher-chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:999px;padding:.15rem .6rem .15rem .2rem;font-size:.74rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #33415c);box-shadow:var(--td-shadow-sm);}
.td-watcher-chip.admin{background:var(--td-softer);border-color:#cfdcf0;color:var(--primary-theme-text);padding-left:.6rem;}
.td-watcher-chip .rm{cursor:pointer;color:var(--td-muted);font-size:.7rem;line-height:1;margin-left:.15rem;}
.td-watcher-chip .rm:hover{color:var(--td-danger);}
.td-watcher-picker{max-width:260px;}
.td-avatar{width:26px;height:26px;border-radius:50%;background:var(--primary-theme);color:#fff;display:inline-grid;place-items:center;font-size:.62rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);flex:none;}
.td-avatar.sm{width:20px;height:20px;font-size:.56rem;}
.td-avatar.a3{background:#0d9488;}

/* Reminder modal rows */
.td-reminder-row{border:1px solid var(--td-border);border-radius:.4rem;padding:.5rem .65rem;margin-bottom:.5rem;background:var(--sf-card, #fff);}
.td-reminder-row .rem-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;}
.td-reminder-row .rem-head strong{font-size:.82rem;flex:1;}
.td-reminder-row .rem-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.76rem;}
.td-reminder-row .rem-kind-picker{width:190px;}
.td-reminder-row .rem-controls input[type="time"],
.td-reminder-row .rem-controls input[type="number"]{font-size:.78rem;padding:.2rem .4rem;width:auto;display:inline-block;}
.td-reminder-row .rem-channels{display:flex;gap:.7rem;font-size:.72rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #42506b);}
.td-reminder-row.disabled{opacity:.5;}
.td-reminder-remove{margin-left:auto;color:var(--td-muted);cursor:pointer;}
.td-reminder-remove:hover{color:var(--td-danger);}

/* AI draft flag + composer extras */
.td-ai-flag{background:var(--sf-raised, #f1eafe);border:1px solid #ded0fb;color:color-mix(in srgb, #6d28d9 var(--ink-keep, 100%), var(--ink-flip, #6d28d9));font-size:.68rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.3rem .55rem;border-radius:.45rem .45rem 0 0;}
.td-attach-preview{display:flex;flex-wrap:wrap;gap:.35rem;padding:.4rem .5rem 0;}
.td-filechip{display:inline-flex;align-items:center;gap:.35rem;background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:.35rem;padding:.15rem .55rem;font-size:.71rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #33415c);}
.td-filechip .rm{cursor:pointer;color:var(--td-muted);}
.td-filechip .rm:hover{color:var(--td-danger);}
.td-filechip a{color:inherit;text-decoration:none;}
.td-channel-row{white-space:nowrap;}

/* Client access + preview */
.td-preview-client-btn{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.5);color:#fff;font-size:.72rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-preview-client-btn:hover{background:rgba(255,255,255,.28);color:#fff;}
.td-client-banner{background:var(--sf-subtle, #eef7f0);border:1px solid #cdebd6;color:color-mix(in srgb, #166534 var(--ink-keep, 100%), var(--ink-flip, #166534));border-radius:.4rem;padding:.55rem .75rem;font-size:.78rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);}
.td-due-edit-btn{font-size:.66rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);text-decoration:none;color:var(--primary-theme-text);}
.td-due-edit{background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:.4rem;padding:.4rem;margin-top:.3rem;}

/* Activity + comments timeline */
.td-timeline{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:.55rem;padding:.75rem;background:var(--sf-subtle, #f7f9fc);border:1px solid var(--td-border);border-radius:.45rem;}
.td-tl-sys{text-align:center;font-size:.68rem;color:var(--td-muted);}
.td-tl-sys span{background:var(--sf-card, #fff);border:1px dashed var(--td-border);border-radius:999px;padding:.12rem .6rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);}
.td-tl-comment{background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:.6rem;padding:.5rem .65rem;box-shadow:var(--td-shadow-sm);}
.td-tl-comment .meta{font-size:.68rem;color:var(--td-muted);display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem;flex-wrap:wrap;}
.td-tl-comment .meta b{color:var(--td-text);}
.td-tl-comment .txt{font-size:.83rem;white-space:pre-wrap;}
.td-tag{font-size:.58rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);letter-spacing:.05em;padding:.08rem .4rem;border-radius:.25rem;text-transform:uppercase;}
.td-tag.internal{background:color-mix(in srgb, #f6e5b8 var(--pastel-keep, 100%), var(--sf-card, #f6e5b8));color:color-mix(in srgb, #8a5b00 var(--ink-keep, 100%), var(--ink-flip, #8a5b00));}
.td-tag.public{background:color-mix(in srgb, #cdebd6 var(--pastel-keep, 100%), var(--sf-card, #cdebd6));color:color-mix(in srgb, #166534 var(--ink-keep, 100%), var(--ink-flip, #166534));}
.td-tl-comment.internal{background:var(--sf-card, #fffdf4);border-color:#f0dfae;}
.td-tl-comment.public{background:var(--sf-subtle, #f7fcf8);border-color:#cdebd6;}

/* Composer */
.td-composer{border:1px solid var(--td-border);border-radius:.45rem;background:var(--sf-card, #fff);margin-top:.6rem;}
.td-composer.public-scope{border-color:#9ed8ae;}
.td-composer textarea{border:0;box-shadow:none!important;resize:none;font-size:.83rem;}
.td-composer-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem .55rem;border-top:1px dashed var(--td-border);}
.td-scope .btn{font-size:.7rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.18rem .55rem;}
.td-mail-note{font-size:.68rem;color:var(--td-muted);}
.td-composer-toolbtns{display:flex;gap:.4rem;}

/* Notifications bell */
.td-bell-wrap{position:relative;}
.td-bell-badge{position:absolute;top:-6px;right:-6px;background:#dc2626;color:#fff;border-radius:999px;font-size:.6rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 .25rem;}
.td-bell-panel{position:absolute;right:0;top:100%;z-index:1070;width:340px;max-height:380px;overflow-y:auto;background:var(--sf-card, #fff);border:1px solid var(--td-border);border-radius:.45rem;box-shadow:0 8px 22px rgba(16,24,40,.16);}
.td-bell-head{display:flex;align-items:center;justify-content:space-between;padding:.5rem .65rem;border-bottom:1px solid var(--td-border);font-size:.74rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #33415c);}
.td-bell-item{padding:.5rem .65rem;border-bottom:1px solid var(--td-border-soft);cursor:pointer;font-size:.76rem;}
.td-bell-item:hover{background:var(--td-softer);}
.td-bell-item.unread{background:var(--sf-subtle, #f3f8ff);}
.td-bell-item .t{font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-bell-item .m{color:var(--td-muted);font-size:.72rem;}
.td-bell-item .when{color:var(--td-muted);font-size:.66rem;}

/* misc */
.td-fs-7{font-size:.75rem;}
.td-modal-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.5);z-index:1050;}
.td-page .modal.show.d-block{z-index:1055;}

@media (max-width:767.98px){
  .td-toolbar .col-filter{flex:0 0 100%;max-width:100%;}
  .td-kcol{flex:0 0 84vw;}
  table.td-grid{min-width:760px;}
}

/* ==========================================================================
   Mobile / Native-app UX  (≤767.98px)
   All changes behind the mobile breakpoint — desktop layout unchanged.
   ========================================================================== */

/* ── Page: themed top accent on mobile ─────────────────────────────────── */
@media (max-width:767.98px){
  .td-page{ border-top:3px solid var(--theme-default,#17457b); }
}

/* ── Context bar: themed left border on mobile ──────────────────────────── */
@media (max-width:767.98px){
  .td-contextbar{
    border-left:3px solid var(--theme-default,#17457b);
    border-radius:0 var(--td-radius) var(--td-radius) 0;
  }
}

/* ── Stat strip: 4-column grid — all 7 cards in 2 rows, no scroll ── */
@media (max-width:767.98px){
  .td-stat-strip{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    overflow-x:visible;
    gap:.35rem;
    padding-bottom:0;
  }
  .td-stat{
    flex:none;
    min-height:54px;padding:.35rem .4rem;
    display:flex;flex-direction:column;justify-content:center;
  }
  .td-stat .num{font-size:1.1rem;}
  .td-stat .lbl{font-size:.59rem;white-space:normal;line-height:1.2;}
  /* "Total Tasks" card spans first 2 columns — anchors the left of row 1 */
  .td-stat-strip .td-stat:first-child{
    grid-column:span 2;
    flex-direction:row;
    align-items:center;
    gap:.5rem;
    border-left-width:4px;
  }
  .td-stat-strip .td-stat:first-child .num{font-size:1.3rem;}
  .td-stat-strip .td-stat:first-child .lbl{font-size:.68rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
}

/* ── Context bar: full-width picker on mobile ───────────────────────────── */
@media (max-width:767.98px){
  .td-context-picker{width:100%!important;}
}

/* ── Mobile compact action bar ──────────────────────────────────────────── */
.td-mob-bar{align-items:center;gap:.4rem;}
.td-filter-toggle-btn{
  font-size:.79rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);text-align:left;
  display:inline-flex;align-items:center;gap:.25rem;
}
.td-filter-toggle-btn .bi-chevron-up,
.td-filter-toggle-btn .bi-chevron-down{font-size:.7rem;margin-left:auto;}
.td-filter-block-open{padding-top:.15rem;}

/* Advanced/date-range toggle link */
.td-adv-toggle{
  font-size:.72rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);text-decoration:none!important;
  color:var(--primary-theme-text);white-space:nowrap;
}

/* ── Touch targets: ≥44 px for all interactive elements on mobile ────────── */
@media (max-width:767.98px){
  .td-mob-bar .btn{min-height:42px;min-width:42px;display:inline-flex;align-items:center;justify-content:center;}
  .td-toolbar .form-control,
  .td-toolbar .td-ss-input{min-height:44px;font-size:.875rem;padding:.45rem .55rem;}
  .td-toolbar .btn{min-height:42px;}
  .td-stat{min-height:60px;}
  .td-kcard{padding:.7rem .75rem;}
  .td-kcard-status{min-height:36px;}
}

/* ── Bottom-sheet modals on mobile ─────────────────────────────────────── */
@media (max-width:767.98px){
  .td-modal .modal-dialog{
    margin:0!important;
    max-width:100%!important;
    width:100%;
    position:fixed;
    bottom:0;left:0;right:0;
    top:auto!important;
    transform:none!important;
    animation:tdSheetSlideUp .28s cubic-bezier(0.16,1,0.3,1) both;
  }
  .td-modal .modal-content{
    border-radius:1.1rem 1.1rem 0 0!important;
    border-left:none;border-right:none;border-bottom:none;
    max-height:92vh;
    display:flex;flex-direction:column;
    overflow:hidden;
  }
  .td-modal .modal-header{
    border-radius:calc(1.1rem - 1px) calc(1.1rem - 1px) 0 0;
    flex-direction:column;
  }
  .td-modal .modal-header::before{
    content:'';
    display:block;
    width:36px;height:4px;border-radius:2px;
    background:rgba(255,255,255,.4);
    margin:0 auto .4rem;
    align-self:center;
    flex-shrink:0;
  }
  .td-modal .modal-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .td-modal .modal-title{align-self:flex-start;}
  .td-modal .btn-close{position:absolute;top:.65rem;right:.75rem;}
  @keyframes tdSheetSlideUp{
    from{transform:translateY(100%);}
    to{transform:translateY(0);}
  }
}

/* ── Kanban on mobile: taller cards, better touch area ─────────────────── */
@media (max-width:767.98px){
  .td-kcol{flex:0 0 84vw;}
  .td-kcard .title{font-size:.82rem;}
}

/* ── Grid: compact header on mobile ────────────────────────────────────── */
@media (max-width:767.98px){
  .td-page.container-fluid{padding-left:.65rem!important;padding-right:.65rem!important;}
}

/* ==========================================================================
   Shared task notification bell (tnb-) — rendered from MainLayout, fixed in
   the header area on every screen.
   ========================================================================== */
.tnb-host{position:fixed;top:.7rem;right:265px;z-index:1039;font-size:.875rem;color:var(--tc-strong, #1e2a38);}
@media (max-width:991.98px){ .tnb-host{right:120px;} }
.tnb-bell{position:relative;width:38px;height:38px;border-radius:50%;border:1px solid var(--bd, #dfe5ee);background:var(--sf-card, #fff);color:var(--theme-text, var(--theme-default,#17457b));display:grid;place-items:center;font-size:1rem;box-shadow:0 1px 3px rgba(16,24,40,.12);cursor:pointer;}
.tnb-bell:hover{background:var(--sf-subtle, #f3f7fc);}
.tnb-badge{position:absolute;top:-5px;right:-5px;background:#dc2626;color:#fff;border-radius:999px;font-size:.6rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);min-width:17px;height:17px;display:flex;align-items:center;justify-content:center;padding:0 .25rem;border:2px solid var(--bd, #fff);}
.tnb-backdrop{position:fixed;inset:0;z-index:1040;background:transparent;}
.tnb-panel{position:absolute;right:0;top:calc(100% + .5rem);z-index:1041;width:400px;max-width:92vw;max-height:520px;overflow-y:auto;background:var(--sf-card, #fff);border:1px solid var(--bd, #dfe5ee);border-radius:.55rem;box-shadow:0 12px 32px rgba(16,24,40,.2);}
.tnb-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;border-bottom:1px solid var(--bd, #dfe5ee);font-size:.78rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #33415c);position:sticky;top:0;background:var(--sf-card, #fff);z-index:1;}
.tnb-head-actions{display:flex;gap:.75rem;}
.tnb-head-actions a{font-size:.7rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);text-decoration:none;color:var(--theme-text, var(--theme-default,#17457b));white-space:nowrap;}
.tnb-empty{padding:1.2rem .75rem;text-align:center;font-size:.78rem;color:var(--tc-muted, #6b7a90);}
.tnb-item{border-bottom:1px solid var(--bd, #edf1f7);}
.tnb-item.unread{background:var(--sf-subtle, #f3f8ff);}
.tnb-item.done{opacity:.72;}
.tnb-item-main{padding:.55rem .75rem;cursor:pointer;}
.tnb-item-main:hover{background:var(--sf-subtle, #f7f9fc);}
.tnb-item-title{font-size:.78rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-strong, #1e2a38);}
.tnb-item-msg{font-size:.73rem;color:var(--tc-muted, #6b7a90);margin-top:.1rem; white-space: normal;}
.tnb-item-meta{display:flex;align-items:center;gap:.5rem;font-size:.66rem;color:var(--tc-faint, #8e99ab);margin-top:.2rem;}
.tnb-chip{display:inline-flex;align-items:center;font-size:.62rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);padding:.05rem .45rem;border-radius:999px;border:1px solid transparent;}
.tnb-chip.done{color:color-mix(in srgb, #15803d var(--ink-keep, 100%), var(--ink-flip, #15803d));background:var(--sf-raised, #e5f5ea);border-color:color-mix(in srgb, #c7e8d2 var(--pastel-keep,100%), var(--bd, #c7e8d2));}
.tnb-chip.reply{color:color-mix(in srgb, #1d4ed8 var(--ink-keep, 100%), var(--ink-flip, #1d4ed8));background:var(--sf-raised, #e7eefc);border-color:#cddcf8;}
.tnb-actions{padding:.35rem .75rem .65rem;background:var(--sf-card, #fbfcfe);border-top:1px dashed var(--bd, #e3e9f2);display:flex;flex-direction:column;gap:.5rem;}
.tnb-reply-box{display:flex;flex-direction:column;gap:.4rem;}
.tnb-reply-box textarea{font-size:.76rem;}
.tnb-reply-bar{display:flex;align-items:center;}
.tnb-check{font-size:.7rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #42506b);display:flex;align-items:center;gap:.35rem;margin:0;cursor:pointer;}
.tnb-btnrow{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;}
.tnb-btnrow .btn{font-size:.7rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.2rem .55rem;}
.tnb-snooze{position:relative;}
.tnb-snooze-menu{position:absolute;top:100%;left:0;z-index:5;background:var(--sf-card, #fff);border:1px solid var(--bd, #dfe5ee);border-radius:.4rem;box-shadow:0 6px 16px rgba(16,24,40,.14);min-width:170px;padding:.25rem 0;display:flex;flex-direction:column;}
.tnb-snooze-menu a{padding:.35rem .7rem;font-size:.74rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text, #33415c);text-decoration:none;white-space:nowrap;}
.tnb-snooze-menu a:hover{background:var(--sf-subtle, #f3f7fc);}

/* Bell now lives inside PageHeader's notification li */
.tnb-header-li{position:relative;}

/* Pop-up Alert Dialog for Task Notifications (1-minute sequential queue) */
.td-notif-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(15, 23, 42, 0.35);
  backdrop-filter: blur(2px);
  z-index: 1085;
  animation: tdFadeIn 0.2s ease-out;
}

.td-notification-popup-alert {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 1090;
  width: 500px;
  max-width: 94vw;
  background: var(--sf-card, #ffffff);
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-top: 4px solid #3b82f6;
  border-radius: 0.75rem;
  box-shadow: 0 20px 40px -8px rgba(15, 23, 42, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.05);
  padding: 1.1rem;
  animation: tdNotifSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes tdNotifSlideIn {
  from { transform: translateY(30px) scale(0.96); opacity: 0; }
  to { transform: translateY(0) scale(1); opacity: 1; }
}

@keyframes tdFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.td-notification-popup-alert .td-notif-header {
  border-bottom: 1px solid var(--bd, #f1f5f9);
  padding-bottom: 0.5rem;
  margin-bottom: 0.65rem;
}

.td-notification-popup-alert .td-notif-title {
  font-size: 0.92rem;
  font-weight: clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);
  color: var(--tc-strong, #0f172a);
}

.td-notification-popup-alert .td-notif-badge {
  font-size: 0.7rem;
  font-weight: clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);
  padding: 0.15rem 0.45rem;
  border-radius: 0.35rem;
  background: var(--sf-subtle, #eff6ff);
  color: color-mix(in srgb, #2563eb var(--ink-keep, 100%), var(--ink-flip, #2563eb));
  border: 1px solid #bfdbfe;
}

.td-notification-popup-alert .td-notif-msg {
  font-size: 0.83rem;
  line-height: 1.45;
  color: var(--tc-text, #334155);
}

.td-notification-popup-alert .td-notif-actions {
  margin-top: 0.85rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--bd, #f1f5f9);
}

.tnb-header-li .tnb-panel{top:calc(100% + 12px);right:-10px;text-align:left;}

/* ==========================================================================
   Mobile compact density pass — make stat cards, filter bar, and spacing
   tighter so more content fits on screen (native-app feel).
   ========================================================================== */
@media (max-width:767.98px){
  /* Tighter page vertical padding */
  .td-page.container-fluid{ padding-top:.4rem!important; padding-bottom:.4rem!important; }

  /* Reduce gaps between contextbar / stat strip / toolbar */
  .td-contextbar{ margin-bottom:.4rem!important; padding:.3rem .6rem; }
  .td-stat-strip{ margin-bottom:.4rem!important; gap:.3rem; }
  .td-toolbar{ margin-bottom:.4rem!important; padding:.4rem .5rem; }

  /* Compact stat cards */
  .td-stat{
    min-height:40px!important;
    padding:.22rem .3rem!important;
  }
  .td-stat .num{ font-size:.9rem!important; }
  .td-stat .lbl{ font-size:.55rem!important; line-height:1.15!important; }

  /* Total Tasks span-2 card — row layout, shorter */
  .td-stat-strip .td-stat:first-child{
    min-height:40px!important;
    padding:.18rem .4rem!important;
    gap:.4rem!important;
  }
  .td-stat-strip .td-stat:first-child .num{ font-size:1.05rem!important; }
  .td-stat-strip .td-stat:first-child .lbl{ font-size:.62rem!important; }

  /* Compact mobile action bar buttons */
  .td-mob-bar .btn{ min-height:36px!important; min-width:36px!important; padding:.2rem .45rem!important; font-size:.76rem!important; }
  .td-mob-bar .td-filter-toggle-btn{ font-size:.76rem!important; }

  /* Compact filter inputs */
  .td-toolbar .form-control,
  .td-toolbar .td-ss-input{ min-height:38px!important; font-size:.82rem!important; padding:.3rem .5rem!important; }
  .td-toolbar .btn{ min-height:36px!important; }
}

/* ==========================================================================
   Dark mode (Appearance -> Dark) — re-map the td- palette + hardcoded whites
   ========================================================================== */
body.dark-only .td-page{
  --td-soft:#1c2c50;
  --td-softer:#182747;
  --td-bg:var(--sf-card, #0f1830);
  --td-surface:var(--sf-card, #14213f);
  --td-border:var(--bd, #26365c);
  --td-border-soft:var(--bd, #223052);
  --td-text:#e6ecf7;
  --td-muted:#94a3b8;
  --td-shadow-sm:0 1px 2px rgba(0,0,0,.4);
}
body.dark-only .td-colpanel{background:var(--sf-card, #14213f);}
body.dark-only .td-colpanel-head,
body.dark-only .td-form .form-label,
body.dark-only .td-kcol-head,
body.dark-only .td-reminder-row .rem-channels{color:var(--tcd-text, #b6c2d9);}
body.dark-only .td-col-row{background:var(--sf-card, #14213f);}
body.dark-only .td-grid thead th{color:var(--tcd-text, #b6c2d9);}
body.dark-only .td-grid tbody tr:hover{background:var(--sf-raised, #1c2c50);}
body.dark-only .td-gstin{color:var(--tcd-text, #a7b6cf);}
body.dark-only .td-kcol-count{background:var(--sf-card, #14213f);}
body.dark-only .td-kcard{background:var(--sf-card, #14213f);}
body.dark-only .td-kcard:hover{border-color:var(--bd, #3a4d78);}
body.dark-only .td-tag-general{background:var(--sf-raised, #1c2c50);color:var(--tcd-text, #c4d0e4);}
body.dark-only .td-watcher-chip{background:var(--sf-card, #14213f);color:var(--tcd-text, #c4d0e4);}
body.dark-only .td-reminder-row{background:var(--sf-card, #14213f);}
body.dark-only .td-filechip{background:var(--sf-card, #14213f);color:var(--tcd-text, #c4d0e4);}
body.dark-only .td-timeline{background:var(--sf-card, #101a37);}
body.dark-only .td-tl-sys span{background:var(--sf-card, #14213f);}
body.dark-only .td-tl-comment{background:var(--sf-card, #14213f);}
body.dark-only .td-tl-comment.internal{background:var(--sf-raised, #1d2340);border-color:#57501f;}
body.dark-only .td-tl-comment.public{background:var(--sf-card, #152b3d);border-color:#1e5233;}
body.dark-only .td-composer{background:var(--sf-card, #14213f);}
body.dark-only .td-composer textarea{background:transparent;color:var(--td-text);}
body.dark-only .td-ss-dropdown{background:var(--sf-card, #14213f);}
body.dark-only .td-due-edit{background:var(--sf-card, #14213f);}
body.dark-only .td-infobar-btn{background:var(--sf-card, #14213f);color:var(--td-text);}
body.dark-only .td-quickadd{background:var(--sf-raised, #182747);border-color:var(--bd, #2b3d66);}
body.dark-only .td-context-banner{background:var(--sf-raised, #182747);border-color:var(--bd, #2b3d66);}
body.dark-only .td-client-banner{background:#12301f;border-color:#1e5233;color:#7fd8a0;}
body.dark-only .td-bell-panel{background:var(--sf-card, #14213f);border-color:var(--bd, #26365c);}
body.dark-only .td-bell-head{color:var(--tcd-text, #b6c2d9);border-bottom-color:var(--bd, #26365c);}
body.dark-only .td-bell-item{border-bottom-color:var(--bd, #223052);}
body.dark-only .td-bell-item.unread{background:var(--sf-raised, #1a2c52);}
body.dark-only .td-print-scope .form-check:hover{border-color:#3a4d78;}
body.dark-only .tnb-host{color:var(--tcd-strong, #e6ecf7);}
body.dark-only .tnb-bell{background:var(--sf-card, #14213f);border-color:var(--bd, #2b3d66);}
body.dark-only .tnb-bell:hover{background:var(--sf-raised, #1c2c50);}
body.dark-only .tnb-panel{background:var(--sf-card, #14213f);border-color:var(--bd, #26365c);}
body.dark-only .tnb-head{background:var(--sf-card, #14213f);color:var(--tcd-text, #b6c2d9);border-bottom-color:var(--bd, #26365c);}
body.dark-only .tnb-empty{color:var(--tcd-muted, #94a3b8);}
body.dark-only .tnb-item{border-bottom-color:var(--bd, #223052);}
body.dark-only .tnb-item.unread{background:var(--sf-raised, #1a2c52);}
body.dark-only .tnb-item-main:hover{background:var(--sf-raised, #1c2c50);}
body.dark-only .tnb-item-title{color:var(--tcd-strong, #e6ecf7);}
body.dark-only .tnb-item-msg{color:var(--tcd-muted, #94a3b8);}
body.dark-only .tnb-actions{background:var(--sf-card, #101a37);border-top-color:var(--bd, #26365c);}
body.dark-only .tnb-check{color:var(--tcd-text, #c4d0e4);}
body.dark-only .tnb-snooze-menu{background:var(--sf-card, #14213f);border-color:var(--bd, #26365c);}
body.dark-only .tnb-snooze-menu a{color:var(--tcd-text, #c4d0e4);}
body.dark-only .tnb-snooze-menu a:hover{background:var(--sf-raised, #1c2c50);}
body.dark-only .td-notification-popup-alert{background:var(--sf-card, #14213f);border-color:var(--bd, #26365c);border-top-color:#3b82f6;}
body.dark-only .td-notification-popup-alert .td-notif-header{border-bottom-color:var(--bd, #26365c);}
body.dark-only .td-notification-popup-alert .td-notif-title{color:var(--tcd-strong, #e6ecf7);}
body.dark-only .td-notification-popup-alert .td-notif-msg{color:var(--tcd-text, #c4d0e4);}
body.dark-only .td-notification-popup-alert .td-notif-actions{border-top-color:var(--bd, #26365c);}

/* ==========================================================================
   REVAMP 2026-09 — Task create/edit form + task detail workspace.
   Two-pane detail (activity stream left, properties rail right) and a
   rail-based activity timeline, following the Jira / Linear / Asana pattern.
   All new classes are td2- prefixed so nothing above is affected.
   ========================================================================== */

/* -- Wider dialogs for the revamped surfaces ------------------------------ */
.td2-dlg-wide{max-width:1120px;}
.td2-dlg-form{max-width:820px;}
@media (max-width:1199.98px){ .td2-dlg-wide{max-width:96vw;} }

/* -- Generic card used by both the form and the detail panes -------------- */
.td2-card{background:var(--sf-card,#fff);border:1px solid var(--td-border);border-radius:.55rem;box-shadow:var(--td-shadow-sm);}
.td2-card + .td2-card{margin-top:.7rem;}
.td2-card-head{display:flex;align-items:center;gap:.45rem;padding:.5rem .75rem;border-bottom:1px solid var(--td-border-soft);background:var(--td-softer);border-radius:.55rem .55rem 0 0;}
.td2-card-head .bi{font-size:.9rem;color:var(--primary-theme-text);}
.td2-card-title{font-size:.72rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text,#33415c);text-transform:uppercase;letter-spacing:.05em;}
.td2-card-hint{margin-left:auto;font-size:.68rem;color:var(--td-muted);font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;}
.td2-card-body{padding:.75rem;}
.td2-card-body.tight{padding:.6rem .75rem;}

/* -- Create / edit form -------------------------------------------------- */
.td2-form .form-label{margin-bottom:.2rem;font-size:.69rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);text-transform:uppercase;letter-spacing:.04em;}
.td2-form .form-control,.td2-form .form-select,.td2-form .td-ss-input{font-size:.85rem;padding:.4rem .6rem;}
.td2-form .form-text{font-size:.68rem;}
.td2-form textarea.form-control{line-height:1.5;}
.td2-form .td2-title-input{font-size:1rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.5rem .65rem;}

/* Segmented task-type switch */
.td2-seg{display:inline-flex;background:var(--td-softer);border:1px solid var(--td-border);border-radius:.5rem;padding:.2rem;gap:.2rem;}
.td2-seg button{border:0;background:transparent;border-radius:.38rem;padding:.4rem .9rem;font-size:.8rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);display:inline-flex;align-items:center;gap:.4rem;transition:background .15s,color .15s,box-shadow .15s;}
.td2-seg button:hover{color:var(--primary-theme-text);}
.td2-seg button.on{background:var(--sf-card,#fff);color:var(--primary-theme-text);box-shadow:var(--td-shadow-sm);}

/* Inline notice strip (general-task hint, context auto-fill) */
.td2-note{display:flex;align-items:center;gap:.45rem;background:var(--td-softer);border:1px solid var(--td-border);border-left:3px solid var(--primary-theme);border-radius:.4rem;padding:.45rem .65rem;font-size:.76rem;color:var(--tc-text,#42506b);}
.td2-note .bi{color:var(--primary-theme-text);}
.td2-note.muted{border-left-color:var(--td-muted);}
.td2-note.muted .bi{color:var(--td-muted);}

/* Footer sits flush and always visible */
.td2-footer{display:flex;align-items:center;gap:.5rem;padding:.6rem .85rem;border-top:1px solid var(--td-border);background:var(--td-softer);}
.td2-footer .td2-footer-note{font-size:.7rem;color:var(--td-muted);margin-right:auto;}
.td2-footer .btn{font-size:.8rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.38rem .9rem;}

/* -- Detail workspace: activity stream + properties rail ----------------- */
.td2-ws{display:flex;gap:.85rem;align-items:flex-start;}
.td2-ws-main{flex:1 1 58%;min-width:0;display:flex;flex-direction:column;}
.td2-ws-side{flex:0 0 320px;width:320px;display:flex;flex-direction:column;}
@media (max-width:991.98px){
  .td2-ws{flex-direction:column;}
  .td2-ws-main,.td2-ws-side{flex:1 1 auto;width:100%;}
  .td2-ws-side{order:1;}
  .td2-ws-main{order:2;}
}

/* Summary block at the top of the main pane */
.td2-summary-title{font-size:1rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);line-height:1.35;color:var(--td-text);}
.td2-summary-desc{font-size:.82rem;line-height:1.55;color:var(--tc-text,#42506b);white-space:pre-wrap;margin-top:.35rem;}
.td2-summary-desc.empty{color:var(--td-muted);font-style:italic;}
.td2-client-row{display:flex;flex-wrap:wrap;gap:.3rem .5rem;align-items:center;margin-bottom:.5rem;}
.td2-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--td-softer);border:1px solid var(--td-border);border-radius:999px;padding:.15rem .6rem;font-size:.73rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text,#33415c);}
.td2-chip .bi{font-size:.75rem;color:var(--td-muted);}
.td2-chip.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.71rem;}

/* Properties rail - label/value rows */
.td2-props{display:flex;flex-direction:column;}
.td2-prop{display:flex;align-items:flex-start;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--td-border-soft);}
.td2-prop:last-child{border-bottom:0;}
.td2-prop-k{flex:0 0 96px;width:96px;font-size:.68rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);text-transform:uppercase;letter-spacing:.04em;padding-top:.28rem;line-height:1.3;}
.td2-prop-v{flex:1 1 auto;min-width:0;font-size:.82rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td2-prop-v .td-ss-input{width:100%;}
.td2-prop-sub{font-size:.68rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);margin-top:.1rem;}
.td2-prop-sub.late{color:var(--td-danger);font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.td2-inline-edit{font-size:.66rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);background:none;border:0;padding:0;margin-left:auto;text-decoration:none;white-space:nowrap;}
.td2-inline-edit:hover{text-decoration:underline;}
.td2-prop-k-row{display:flex;align-items:center;gap:.3rem;}

/* Watchers + reminders inside the rail */
.td2-side-list{display:flex;flex-wrap:wrap;gap:.35rem;}
.td2-rem-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}

/* -- Activity timeline - rail with avatar nodes -------------------------- */
.td2-tl-wrap{flex:1 1 auto;min-height:0;}
.td2-tl{position:relative;max-height:min(46vh,420px);overflow-y:auto;padding:.35rem .25rem .35rem 0;}
.td2-tl::before{content:"";position:absolute;left:15px;top:.6rem;bottom:.6rem;width:2px;background:var(--td-border);border-radius:2px;}
.td2-tl-empty{position:relative;text-align:center;color:var(--td-muted);font-size:.78rem;font-style:italic;padding:1.5rem .5rem;}

/* Day separator */
.td2-tl-day{position:relative;display:flex;align-items:center;justify-content:center;margin:.55rem 0 .45rem;}
.td2-tl-day span{background:var(--sf-card,#fff);border:1px solid var(--td-border);border-radius:999px;padding:.1rem .7rem;font-size:.66rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);text-transform:uppercase;letter-spacing:.05em;color:var(--td-muted);}

/* One entry = node + body */
.td2-tl-item{position:relative;display:flex;gap:.6rem;padding:.2rem 0 .45rem 0;}
.td2-tl-node{flex:0 0 32px;width:32px;display:flex;justify-content:center;padding-top:.1rem;}
.td2-tl-body{flex:1 1 auto;min-width:0;}

/* System / audit event - small dot node, single muted line */
.td2-tl-dot{width:20px;height:20px;border-radius:50%;background:var(--td-softer);border:2px solid var(--sf-card,#fff);box-shadow:0 0 0 1px var(--td-border);display:grid;place-items:center;color:var(--td-muted);font-size:.6rem;flex:none;}
.td2-tl-sysline{font-size:.75rem;color:var(--td-muted);line-height:1.5;padding-top:.15rem;}
.td2-tl-sysline b{color:var(--tc-text,#42506b);font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td2-tl-sysline .when{font-size:.68rem;color:var(--tc-faint,#8e99ab);margin-left:.3rem;white-space:nowrap;}

/* Comment - avatar node + bubble card */
.td2-tl-avatar{width:30px;height:30px;border-radius:50%;background:var(--primary-theme);color:#fff;display:inline-grid;place-items:center;font-size:.66rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);border:2px solid var(--sf-card,#fff);box-shadow:0 0 0 1px var(--td-border);flex:none;}
.td2-tl-avatar.c2{background:#0d9488;}
.td2-tl-avatar.c3{background:#7c3aed;}
.td2-tl-avatar.c4{background:#b45309;}
.td2-tl-avatar.c5{background:#be123c;}
.td2-tl-card{background:var(--sf-card,#fff);border:1px solid var(--td-border);border-radius:.55rem;box-shadow:var(--td-shadow-sm);overflow:hidden;}
.td2-tl-card-head{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.4rem .6rem;border-bottom:1px solid var(--td-border-soft);background:var(--td-softer);}
.td2-tl-who{font-size:.78rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--td-text);}
.td2-tl-when{font-size:.68rem;color:var(--tc-faint,#8e99ab);margin-left:auto;white-space:nowrap;}
.td2-tl-text{font-size:.83rem;line-height:1.55;white-space:pre-wrap;padding:.5rem .6rem;}
.td2-tl-files{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 .6rem .55rem;}
.td2-tl-item.internal .td2-tl-card{border-color:color-mix(in srgb, #ecd9a4 var(--pastel-keep,100%), var(--bd, #ecd9a4));}
.td2-tl-item.internal .td2-tl-card-head{background:color-mix(in srgb, #fdf6e3 var(--pastel-keep,100%), var(--sf-card,#fdf6e3));}
.td2-tl-item.public .td2-tl-card{border-color:color-mix(in srgb, #bfe3cb var(--pastel-keep,100%), var(--bd, #bfe3cb));}
.td2-tl-item.public .td2-tl-card-head{background:color-mix(in srgb, #eef8f1 var(--pastel-keep,100%), var(--sf-card,#eef8f1));}

/* -- Composer ------------------------------------------------------------ */
.td2-composer{margin-top:.6rem;border:1px solid var(--td-border);border-radius:.55rem;background:var(--sf-card,#fff);box-shadow:var(--td-shadow-sm);}
.td2-composer.public-scope{border-color:color-mix(in srgb, #9ed8ae var(--pastel-keep,100%), var(--bd, #9ed8ae));}
.td2-composer-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem .55rem;border-bottom:1px solid var(--td-border-soft);background:var(--td-softer);border-radius:.55rem .55rem 0 0;}
.td2-composer textarea{border:0;box-shadow:none!important;resize:vertical;min-height:62px;font-size:.84rem;line-height:1.5;border-radius:0;}
.td2-composer-bar{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;padding:.45rem .55rem;border-top:1px dashed var(--td-border);}
.td2-scope{display:inline-flex;background:var(--sf-card,#fff);border:1px solid var(--td-border);border-radius:.45rem;padding:.15rem;gap:.15rem;}
.td2-scope button{border:0;background:transparent;border-radius:.34rem;padding:.25rem .6rem;font-size:.71rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);display:inline-flex;align-items:center;gap:.3rem;}
.td2-scope button.on.internal{background:color-mix(in srgb, #fbeec4 var(--pastel-keep,100%), var(--sf-card,#fbeec4));color:color-mix(in srgb, #8a5b00 var(--ink-keep,100%), var(--ink-flip,#8a5b00));}
.td2-scope button.on.public{background:color-mix(in srgb, #cdebd6 var(--pastel-keep,100%), var(--sf-card,#cdebd6));color:color-mix(in srgb, #166534 var(--ink-keep,100%), var(--ink-flip,#166534));}
.td2-composer-note{font-size:.69rem;color:var(--td-muted);}
.td2-composer-spacer{flex:1 1 auto;}
.td2-composer-bar .btn{font-size:.75rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.28rem .7rem;}

/* -- Mobile: native-app feel for the revamped surfaces ------------------- */
@media (max-width:767.98px){
  .td2-card-body{padding:.65rem;}
  .td2-seg{width:100%;}
  .td2-seg button{flex:1 1 0;justify-content:center;min-height:44px;}
  .td2-form .form-control,.td2-form .form-select,.td2-form .td-ss-input{min-height:44px;font-size:.9rem;}
  .td2-footer{position:sticky;bottom:0;padding:.6rem .7rem calc(.6rem + env(safe-area-inset-bottom));}
  .td2-footer .btn{min-height:44px;flex:1 1 0;justify-content:center;}
  .td2-footer .td2-footer-note{display:none;}
  .td2-prop{flex-direction:column;gap:.15rem;padding:.5rem 0;}
  .td2-prop-k{flex:none;width:auto;padding-top:0;}
  .td2-tl{max-height:none;}
  .td2-composer textarea{min-height:80px;font-size:.9rem;}
  .td2-scope{width:100%;}
  .td2-scope button{flex:1 1 0;justify-content:center;min-height:40px;}
  .td2-composer-bar .btn{min-height:40px;}
}

/* ==========================================================================
   Subtasks — one big task owning smaller ones. Parent rows carry a progress
   badge, children are marked in the grid, and the detail dialog gets a
   compact subtask table with an inline composer.
   ========================================================================== */

/* Parent breadcrumb shown when the OPEN task is itself a subtask */
.td2-parentcrumb{display:flex;align-items:center;gap:.4rem;background:var(--td-softer);border:1px solid var(--td-border);border-left:3px solid var(--primary-theme);border-radius:.4rem;padding:.35rem .6rem;margin-bottom:.55rem;font-size:.75rem;cursor:pointer;transition:background .15s,border-color .15s;}
.td2-parentcrumb:hover{background:var(--sf-subtle,#eef4fb);border-color:var(--primary-theme);}
.td2-parentcrumb .bi{color:var(--primary-theme-text);flex:none;}
.td2-crumb-lbl{color:var(--td-muted);font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);flex:none;}
.td2-crumb-code{font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);flex:none;}
.td2-crumb-title{color:var(--tc-text,#42506b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}

/* Progress bar over the subtask list */
.td2-progress{height:6px;border-radius:999px;background:var(--td-border);overflow:hidden;margin:.15rem 0 .55rem;}
.td2-progress-fill{height:100%;border-radius:999px;background:var(--primary-theme);transition:width .25s ease;}
.td2-progress-fill.full{background:var(--td-success,#1d7a3f);}

/* Subtask rows */
.td2-sub-list{display:flex;flex-direction:column;}
.td2-sub-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .1rem;border-bottom:1px solid var(--td-border-soft);}
.td2-sub-row:last-child{border-bottom:0;}
.td2-sub-row:hover{background:var(--td-softer);}
.td2-sub-code{flex:0 0 auto;font-size:.71rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);white-space:nowrap;cursor:pointer;}
.td2-sub-code:hover{text-decoration:underline;}
.td2-sub-title{flex:1 1 auto;min-width:0;font-size:.8rem;font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.td2-sub-title:hover{text-decoration:underline;}
.td2-sub-who{flex:0 0 auto;display:flex;align-items:center;}
.td2-sub-who .td-unassigned{font-size:.68rem;}
.td2-sub-due{flex:0 0 52px;text-align:right;font-size:.71rem;color:var(--td-muted);font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;}
.td2-sub-due.late{color:var(--td-danger);}
.td2-sub-status{flex:0 0 132px;max-width:132px;}
.td2-sub-row.done .td2-sub-title{text-decoration:line-through;color:var(--td-muted);}
.td2-sub-row.done .td2-sub-code{opacity:.7;}

/* Empty state + add button */
.td2-sub-empty{display:flex;align-items:flex-start;gap:.45rem;font-size:.75rem;color:var(--td-muted);padding:.35rem .1rem .5rem;line-height:1.5;}
.td2-sub-empty .bi{font-size:.95rem;flex:none;margin-top:.1rem;}
.td2-sub-addbtn{margin-top:.45rem;background:none;border:1px dashed var(--td-border);border-radius:.4rem;width:100%;padding:.35rem .6rem;font-size:.75rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);display:inline-flex;align-items:center;justify-content:center;gap:.35rem;transition:background .15s,border-color .15s;}
.td2-sub-addbtn:hover{background:var(--td-softer);border-color:var(--primary-theme);border-style:solid;}

/* Inline composer */
.td2-sub-add{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.5rem;padding:.5rem;background:var(--td-softer);border:1px solid var(--td-border);border-radius:.4rem;}
.td2-sub-add-title{flex:1 1 200px;min-width:160px;}
.td2-sub-add-who{flex:0 0 150px;width:150px;}
.td2-sub-add-due{flex:0 0 190px;width:190px;}
.td2-sub-add .btn{flex:none;}

/* Grid / kanban markers */
.td2-sub-marker{color:var(--td-muted);font-size:.78rem;margin-right:.2rem;}
.td2-sub-badge{display:inline-flex;align-items:center;gap:.22rem;margin-left:.4rem;background:var(--td-softer);border:1px solid var(--td-border);border-radius:999px;padding:.02rem .42rem;font-size:.63rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);vertical-align:middle;white-space:nowrap;}
.td2-sub-badge .bi{font-size:.62rem;}
.td2-sub-badge.full{color:color-mix(in srgb, #166534 var(--ink-keep,100%), var(--ink-flip,#166534));background:color-mix(in srgb, #e5f5ea var(--pastel-keep,100%), var(--sf-card,#e5f5ea));border-color:color-mix(in srgb, #c7e8d2 var(--pastel-keep,100%), var(--bd, #c7e8d2));}

@media (max-width:767.98px){
  /* Stack each subtask into two lines so nothing is cut off on a phone */
  .td2-sub-row{flex-wrap:wrap;gap:.3rem .5rem;padding:.55rem .1rem;}
  .td2-sub-title{flex:1 1 100%;order:2;white-space:normal;}
  .td2-sub-code{order:1;}
  .td2-sub-who{order:3;}
  .td2-sub-due{order:4;flex:0 0 auto;text-align:left;}
  .td2-sub-status{order:5;flex:1 1 auto;max-width:none;min-height:38px;}
  .td2-sub-add-title,.td2-sub-add-who,.td2-sub-add-due{flex:1 1 100%;width:100%;min-height:44px;}
  .td2-sub-add .btn{flex:1 1 0;min-height:44px;}
  .td2-sub-addbtn{min-height:44px;}
  .td2-crumb-title{display:none;}
}

/* ==========================================================================
   Task categories — what a task is about (Registration, Hearing, Notice u/s 73).
   ========================================================================== */
.td2-cat-chip{display:inline-flex;align-items:center;max-width:180px;background:var(--td-softer);border:1px solid var(--td-border);border-radius:999px;padding:.1rem .55rem;font-size:.7rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--tc-text,#42506b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.td2-cat-add-input{flex:1 1 220px;min-width:180px;}
@media (max-width:767.98px){
  .td2-cat-add-input{flex:1 1 100%;min-height:44px;}
}

/* ==========================================================================
   Detail dialog v2 — tabbed activity, compact properties rail, client-access
   toggle in the action bar, and a comment composer docked to the bottom.
   ========================================================================== */

/* The dialog is a flex column: header / infobar / scrolling body / dock.
   The dock is a sibling of .modal-body (like a modal footer), which is what
   keeps it pinned while the activity list scrolls behind it. */
.td2-detail{display:flex;flex-direction:column;max-height:92vh;}
.td2-detail .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;}

/* ── Client-access toggle, sitting with Print / Preview ──────────────────── */
.td2-access-toggle{display:inline-flex;align-items:center;gap:.35rem;background:var(--sf-card,#fff);border:1px solid var(--td-border);color:var(--td-muted);font-size:.74rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.3rem .6rem;border-radius:.4rem;cursor:pointer;margin:0;transition:background .15s,border-color .15s,color .15s;}
.td2-access-toggle:hover{border-color:var(--primary-theme);}
.td2-access-toggle input{margin:0;cursor:pointer;flex:none;}
.td2-access-toggle.on{color:color-mix(in srgb, #166534 var(--ink-keep,100%), var(--ink-flip,#166534));background:color-mix(in srgb, #eaf6ee var(--pastel-keep,100%), var(--sf-card,#eaf6ee));border-color:color-mix(in srgb, #bfe3cb var(--pastel-keep,100%), var(--bd, #bfe3cb));}

/* ── Activity tabs ───────────────────────────────────────────────────────── */
.td2-tabs{display:flex;gap:.15rem;padding:.35rem .5rem 0;border-bottom:1px solid var(--td-border);background:var(--sf-card,#fff);overflow-x:auto;scrollbar-width:none;}
.td2-tabs::-webkit-scrollbar{display:none;}
.td2-tab{display:inline-flex;align-items:center;gap:.3rem;border:0;background:transparent;border-bottom:2px solid transparent;padding:.35rem .6rem .45rem;font-size:.75rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);white-space:nowrap;transition:color .15s,border-color .15s;}
.td2-tab:hover{color:var(--primary-theme-text);}
.td2-tab.on{color:var(--primary-theme-text);border-bottom-color:var(--primary-theme);}
.td2-tab .bi{font-size:.8rem;}
.td2-tab-count{background:var(--td-softer);border:1px solid var(--td-border);border-radius:999px;font-size:.62rem;padding:0 .35rem;min-width:18px;text-align:center;color:var(--td-muted);}
.td2-tab.on .td2-tab-count{background:var(--primary-theme);border-color:var(--primary-theme);color:#fff;}

/* ── Compact properties rail ─────────────────────────────────────────────── */
.td2-props.compact .td2-prop{padding:.28rem 0;gap:.4rem;align-items:center;}
.td2-props.compact .td2-prop-k{flex:0 0 72px;width:72px;font-size:.64rem;padding-top:0;letter-spacing:.03em;}
.td2-props.compact .td2-prop-v{font-size:.78rem;}
.td2-props.compact .td-ss-compact .td-ss-input{padding:.2rem .4rem;font-size:.76rem;}
.td2-prop-line{display:flex;align-items:center;gap:.4rem;min-width:0;}
.td2-prop-line > span:first-child{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td2-val-muted{color:var(--td-muted);font-weight:clamp(1, calc(600 + var(--spq-fw-delta, 0)), 1000);font-size:.75rem;}
.td2-val-late{color:var(--td-danger);font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}

/* ── Docked composer ─────────────────────────────────────────────────────── */
.td2-dock{flex:none;border-top:1px solid var(--td-border);background:var(--td-softer);border-radius:0 0 calc(var(--td-radius) - 1px) calc(var(--td-radius) - 1px);}
.td2-dock.public-scope{border-top-color:color-mix(in srgb, #9ed8ae var(--pastel-keep,100%), var(--bd, #9ed8ae));box-shadow:inset 0 2px 0 color-mix(in srgb, #cdebd6 var(--pastel-keep,100%), var(--bd, #cdebd6));}
.td2-dock-locked{display:flex;align-items:center;gap:.45rem;padding:.5rem .75rem;font-size:.74rem;color:var(--td-muted);}
.td2-dock-flag{padding:.3rem .75rem 0;font-size:.68rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);color:color-mix(in srgb, #6d28d9 var(--ink-keep,100%), var(--ink-flip,#6d28d9));}
.td2-dock-files{display:flex;flex-wrap:wrap;gap:.35rem;padding:.45rem .75rem 0;}

.td2-dock-editor{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem .35rem;}
.td2-dock-editor .td-avatar{margin-top:.3rem;}
.td2-dock-input{flex:1 1 auto;min-width:0;resize:none;font-size:.83rem;line-height:1.5;min-height:38px;max-height:132px;padding:.4rem .6rem;border-radius:.45rem;border:1px solid var(--td-border);background:var(--sf-card,#fff);transition:min-height .15s ease;}
/* Grows once you are actually writing, so the activity list keeps the space
   the rest of the time. */
.td2-dock-input:focus{min-height:84px;}

.td2-dock-bar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding:.45rem .75rem .55rem;}
.td2-dock-spacer{flex:1 1 auto;}
.td2-dock-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--td-border);background:var(--sf-card,#fff);border-radius:.4rem;color:var(--td-muted);font-size:.9rem;cursor:pointer;margin:0;transition:color .15s,border-color .15s;}
.td2-dock-icon:hover{color:var(--primary-theme-text);border-color:var(--primary-theme);}
.td2-dock-note{display:inline-flex;align-items:center;gap:.3rem;font-size:.69rem;color:var(--td-muted);white-space:nowrap;}
.td2-dock-note.public{color:color-mix(in srgb, #166534 var(--ink-keep,100%), var(--ink-flip,#166534));}
.td2-dock-close{flex:none;}

/* ── Split Post button + its scope menu ──────────────────────────────────── */
.td2-postsplit{position:relative;display:inline-flex;flex:none;}
.td2-post-main,.td2-post-caret{border:1px solid var(--primary-theme);background:var(--primary-theme);color:#fff;font-size:.76rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:.34rem .7rem;display:inline-flex;align-items:center;justify-content:center;transition:filter .15s;}
.td2-post-main{border-radius:.4rem 0 0 .4rem;border-right-color:rgba(255,255,255,.35);}
.td2-post-caret{border-radius:0 .4rem .4rem 0;padding:.34rem .45rem;border-left:0;}
.td2-post-main:hover:not(:disabled),.td2-post-caret:hover{filter:brightness(1.08);}
.td2-post-main:disabled{opacity:.55;}
.td2-post-main.public,.td2-post-caret.public{background:#15803d;border-color:#15803d;}
.td2-postsplit.open .td2-post-caret .bi{transform:rotate(180deg);}
.td2-post-caret .bi{transition:transform .15s ease;}

.td2-post-menu{position:absolute;bottom:calc(100% + .4rem);right:0;z-index:7;width:268px;background:var(--sf-card,#fff);border:1px solid var(--td-border);border-radius:.5rem;box-shadow:0 10px 26px rgba(16,24,40,.2);padding:.25rem;}
.td2-post-opt{display:flex;align-items:flex-start;gap:.5rem;width:100%;border:0;background:transparent;border-radius:.4rem;padding:.45rem .55rem;text-align:left;color:var(--td-text);}
.td2-post-opt:hover{background:var(--td-softer);}
.td2-post-opt.on{background:var(--td-softer);}
.td2-post-opt > .bi{font-size:.9rem;margin-top:.15rem;color:var(--td-muted);flex:none;}
.td2-post-opt b{display:block;font-size:.78rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.td2-post-opt small{display:block;font-size:.68rem;color:var(--td-muted);line-height:1.35;}
.td2-post-menu-sec{border-top:1px dashed var(--td-border);margin-top:.25rem;padding:.45rem .55rem .3rem;}
.td2-post-menu-lbl{font-size:.64rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);text-transform:uppercase;letter-spacing:.04em;color:var(--td-muted);margin-bottom:.25rem;}
.td2-post-menu-sec .form-check-label{font-size:.75rem;}
.td2-menu-backdrop{position:fixed;inset:0;background:transparent;z-index:5;}
.td2-postsplit{z-index:6;}

/* ── Mobile: the dialog behaves like a native sheet ──────────────────────── */
@media (max-width:767.98px){
  .td2-detail{max-height:100%;}

  /* Tabs stay reachable with a thumb and scroll sideways rather than wrapping. */
  .td2-tabs{padding:.3rem .4rem 0;gap:0;}
  .td2-tab{padding:.5rem .55rem;min-height:42px;font-size:.72rem;}
  .td2-tab-lbl{display:none;}
  .td2-tab.on .td2-tab-lbl{display:inline;}   /* only the active tab spells itself out */

  /* Client access keeps its label off the bar; the switch alone is the control. */
  .td2-access-toggle{min-height:40px;padding:.3rem .5rem;}

  /* Properties rail: flex-basis on .td2-prop-k sets HEIGHT (not width) in column
     layout, creating a huge blank gap below each label. Restore horizontal rows
     so the key sits left and the dropdown right — the native-app pattern. */
  .td2-props.compact .td2-prop{flex-direction:row;align-items:center;min-height:46px;padding:.3rem 0;gap:.5rem;}
  .td2-props.compact .td2-prop-k{flex:0 0 82px;width:82px;font-size:.62rem;}
  .td2-props.compact .td-ss-compact .td-ss-input{min-height:40px;font-size:15px;padding:.35rem .5rem;}
  /* Inline due-date edit and category add panels: full width + tappable buttons */
  .td2-props.compact .td-due-edit input.form-control{min-height:44px;font-size:15px;}
  .td2-props.compact .td-due-edit .btn{min-height:40px;}

  /* The dock is the app's bottom bar: above the home indicator, always visible. */
  .td2-dock{position:sticky;bottom:0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -4px 14px rgba(16,24,40,.1);}
  .td2-dock-editor{padding:.45rem .6rem .3rem;}
  .td2-dock-editor .td-avatar{display:none;}
  .td2-dock-input{font-size:16px;min-height:42px;}   /* 16px stops iOS zooming on focus */
  .td2-dock-input:focus{min-height:96px;}
  .td2-dock-bar{padding:.4rem .6rem .5rem;gap:.35rem;}
  .td2-dock-icon{width:40px;height:40px;}
  .td2-dock-note{display:none;}                       /* the Post button already says the scope */
  .td2-post-main,.td2-post-caret{min-height:40px;}
  .td2-post-main{flex:1 1 auto;}
  .td2-dock-close{min-height:40px;}

  /* Full-width menu sheet rather than a narrow popover. */
  .td2-post-menu{width:auto;left:.6rem;right:.6rem;bottom:calc(100% + .5rem);}
  .td2-post-opt{padding:.6rem .55rem;}
}

/* Very small phones: Close collapses to an icon-sized button so Post keeps room. */
@media (max-width:399.98px){
  .td2-dock-close{padding-left:.5rem;padding-right:.5rem;}
  .td2-post-main{padding-left:.5rem;padding-right:.5rem;}
}

/* ==========================================================================
   Refresh (16-Oct-2026) — page header, elevated cards, phone list rows, FAB.
   Desktop: softer radius and depth only. All phone rules sit in media queries.
   ========================================================================== */
.td-page{--td-radius:.75rem;--td-shadow-sm:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);}

/* Page header */
.td-hero{display:flex;align-items:center;gap:.85rem;}
.td-hero-icon{width:44px;height:44px;flex:none;border-radius:.75rem;display:grid;place-items:center;font-size:1.25rem;color:#fff;background:linear-gradient(135deg,var(--theme-default,#17457b),color-mix(in srgb,var(--theme-default,#17457b) 70%,#000));box-shadow:0 4px 12px color-mix(in srgb,var(--theme-default,#17457b) 30%,transparent);}
.td-hero-text{min-width:0;}
.td-hero-title{margin:0;font-size:1.3rem;line-height:1.2;letter-spacing:-.01em;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--td-text);}
.td-hero-sub{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .6rem;font-size:.8rem;color:var(--td-muted);}
.td-hero-alert{display:inline-flex;align-items:center;gap:.3rem;color:var(--td-danger);font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}

/* Surfaces */
.td-contextbar,.td-toolbar,.td-grid-wrap{border-color:var(--td-border-soft);box-shadow:var(--td-shadow-sm);}
.td-toolbar{padding:.75rem .85rem;}

/* Stat cards: number, label, faint icon */
.td-stat{position:relative;overflow:hidden;border-left-width:1px;padding:.7rem .8rem;}
.td-stat::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--acc,var(--primary-theme));}
.td-stat .num{font-size:1.45rem;letter-spacing:-.02em;color:var(--td-text);}
.td-stat .lbl{text-transform:uppercase;letter-spacing:.05em;font-size:.64rem;}
.td-stat-ic{position:absolute;right:.65rem;top:50%;translate:0 -50%;font-size:1.5rem;color:var(--acc,var(--primary-theme));opacity:.18;transition:opacity .15s ease;}
.td-stat:hover .td-stat-ic,.td-stat.active .td-stat-ic{opacity:.4;}
.td-stat.active{box-shadow:0 0 0 2px color-mix(in srgb,var(--acc,var(--primary-theme)) 55%,transparent);}

/* Table */
.td-grid thead th{background:var(--td-surface);border-bottom:1px solid var(--td-border);}
.td-grid tbody tr{transition:background .12s ease;}
.td-grid tbody tr:hover{background:color-mix(in srgb,var(--theme-default,#17457b) 5%,var(--td-surface));}

/* Kanban */
.td-kcard{border-radius:.6rem;transition:transform .12s ease,box-shadow .12s ease;}
.td-kcard:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(16,24,40,.10);}

/* Phone list rows */
.td-mlist{display:flex;flex-direction:column;gap:.55rem;}
.td-mrow{display:flex;align-items:stretch;gap:.6rem;width:100%;text-align:left;background:var(--td-surface);border:1px solid var(--td-border-soft);border-radius:.85rem;padding:.75rem .7rem .75rem 0;box-shadow:var(--td-shadow-sm);color:var(--td-text);min-height:72px;transition:transform .1s ease,background .1s ease;-webkit-tap-highlight-color:transparent;}
.td-mrow:active{transform:scale(.985);background:var(--td-softer);}
.td-mrow-bar{width:4px;flex:none;border-radius:0 4px 4px 0;background:var(--pc,var(--td-border));}
.td-mrow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem;}
.td-mrow-top,.td-mrow-meta,.td-mrow-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0;}
.td-mrow-code{font-size:.72rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);color:var(--primary-theme-text);display:inline-flex;gap:.25rem;align-items:center;}
.td-mrow-title{font-size:.95rem;line-height:1.3;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.td-mrow-meta,.td-mrow-foot{font-size:.76rem;color:var(--td-muted);}
.td-mrow-client,.td-mrow-who{display:inline-flex;align-items:center;gap:.3rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td-mrow-sub{display:inline-flex;align-items:center;gap:.25rem;flex:none;}
.td-mrow.is-late .td-mrow-title{color:var(--td-text);}
.td-mrow-chev{align-self:center;color:var(--tc-faint, #aab6c8);font-size:.9rem;flex:none;}

/* Floating action button */
.td-fab{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(1rem + env(safe-area-inset-bottom) + var(--spq-bottomnav-h,0px));z-index:1040;width:56px;height:56px;border:0;border-radius:1rem;display:grid;place-items:center;font-size:1.5rem;color:#fff;background:var(--theme-default,#17457b);box-shadow:0 8px 20px color-mix(in srgb,var(--theme-default,#17457b) 40%,transparent),0 2px 6px rgba(0,0,0,.15);transition:transform .12s ease;}
.td-fab:active{transform:scale(.92);}

@media (max-width:767.98px){
  .td-page{border-top:0;padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))!important;}
  .td-hero{gap:.7rem;}
  .td-hero-icon{width:40px;height:40px;font-size:1.1rem;}
  .td-hero-title{font-size:1.2rem;}

  /* Stats become one swipeable row of chips — no wrapping grid of tiny tiles */
  .td-stat-strip{display:flex;grid-template-columns:none;overflow-x:auto;gap:.5rem;margin-left:-.65rem;margin-right:-.65rem;padding:0 .65rem .25rem;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .td-stat-strip::-webkit-scrollbar{display:none;}
  .td-stat{flex:0 0 auto;min-width:112px;min-height:64px;scroll-snap-align:start;}
  .td-stat:hover{transform:none;}
  .td-stat-ic{font-size:1.2rem;}

  /* Sticky filter bar under the app header */
  .td-toolbar{position:sticky;top:var(--spq-header-h,0px);z-index:20;padding:.55rem .6rem;}
  .td-mob-bar .td-viewtoggle .btn{min-width:44px;min-height:44px;}
}
.td-mrow.pr-urgent{color:var(--td-text);}

/* ==========================================================================
   Reminder board (16-Oct-2026) — replaces the one-at-a-time alert popup.
   Desktop: centred wide panel with Kanban columns. Phone: bottom sheet,
   columns swipe sideways with snap, 44px targets.
   ========================================================================== */
.td-rem-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:34px;padding:.3rem .75rem;border-radius:999px;border:1px solid var(--td-border);background:var(--td-surface);color:var(--td-text);font-size:.78rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-rem-btn:hover{border-color:var(--theme-default,#17457b);color:var(--primary-theme-text);}
.td-rem-btn.has .bi{color:#d97706;}
.td-rem-count{min-width:20px;height:20px;padding:0 .35rem;border-radius:999px;display:inline-grid;place-items:center;background:#dc2626;color:#fff;font-size:.68rem;}

.td-rb-backdrop{position:fixed;inset:0;z-index:1068;background:rgba(15,23,42,.45);backdrop-filter:blur(2px);animation:tdRbFade .15s ease;}
.td-rb{position:fixed;z-index:1069;left:50%;top:50%;translate:-50% -50%;width:min(1180px,94vw);max-height:86vh;display:flex;flex-direction:column;background:var(--sf-card,#fff);color:var(--tc-text,#1e2a38);border:1px solid var(--bd,#dfe5ee);border-radius:1rem;box-shadow:0 24px 60px rgba(15,23,42,.28);animation:tdRbPop .18s ease;}
.td-rb-head{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem .75rem;border-bottom:1px solid var(--bd,#edf1f7);}
.td-rb-titles{flex:1;min-width:0;}
.td-rb-title{margin:0;font-size:1.05rem;display:flex;align-items:center;gap:.45rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.td-rb-title .bi{color:#d97706;}
.td-rb-sub{font-size:.76rem;color:var(--tc-muted,#6b7a90);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.td-rb-bulk{display:flex;gap:.4rem;flex-wrap:wrap;}
.td-rb-close{width:36px;height:36px;border-radius:.6rem;border:0;background:transparent;color:var(--tc-muted,#6b7a90);display:grid;place-items:center;}
.td-rb-close:hover{background:var(--sf-subtle,#f3f7fc);}
.td-rb-cols{display:flex;gap:.75rem;padding:.85rem 1rem 1rem;overflow:auto;flex:1;min-height:0;}
.td-rb-col{flex:1 0 250px;max-width:340px;display:flex;flex-direction:column;background:var(--sf-subtle,#f5f7fb);border-radius:.8rem;border-top:3px solid var(--bc,#94a3b8);min-height:0;}
.td-rb-col.b-overdue{--bc:#dc2626;} .td-rb-col.b-today{--bc:#d97706;} .td-rb-col.b-upcoming{--bc:#2563eb;}
.td-rb-col.b-nodate{--bc:#7c3aed;} .td-rb-col.b-updates{--bc:#64748b;}
.td-rb-colhead{display:flex;align-items:center;gap:.4rem;padding:.6rem .7rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--tc-text,#33415c);font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.td-rb-colhead .bi{color:var(--bc);}
.td-rb-colcount{margin-left:auto;min-width:22px;text-align:center;padding:.05rem .4rem;border-radius:999px;background:var(--sf-card,#fff);border:1px solid var(--bd,#dfe5ee);font-size:.68rem;}
.td-rb-colbody{display:flex;flex-direction:column;gap:.55rem;padding:0 .6rem .7rem;overflow-y:auto;}
.td-rb-card{background:var(--sf-card,#fff);border:1px solid var(--bd,#e6ebf2);border-left:4px solid var(--pc,#94a3b8);border-radius:.7rem;box-shadow:0 1px 3px rgba(16,24,40,.06);overflow:hidden;color:var(--tc-text,#1e2a38);}
.td-rb-card.pr-urgent{color:var(--tc-text,#1e2a38);}
.td-rb-card-main{display:flex;flex-direction:column;gap:.25rem;width:100%;text-align:left;border:0;background:transparent;color:inherit;padding:.65rem .75rem .5rem;}
.td-rb-card-main:hover{background:var(--sf-subtle,#f8fafc);}
.td-rb-card-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;}
.td-rb-code{font-size:.7rem;color:var(--primary-theme-text,#17457b);font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.td-rb-due{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;color:var(--tc-muted,#6b7a90);}
.b-overdue .td-rb-due{color:var(--td-danger,#c8322b);font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-rb-card-title{font-size:.88rem;line-height:1.3;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.td-rb-client{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;color:var(--tc-muted,#6b7a90);}
.td-rb-msg{font-size:.74rem;color:var(--tc-muted,#6b7a90);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.td-rb-actions,.td-rb-snooze{display:flex;flex-wrap:wrap;gap:.35rem;padding:.45rem .6rem .6rem;border-top:1px dashed var(--bd,#e6ebf2);}
.td-rb-act{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-height:32px;border:1px solid var(--bd,#dfe5ee);border-radius:.5rem;background:var(--sf-card,#fff);color:var(--tc-text,#33415c);font-size:.74rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-rb-act:hover{border-color:var(--theme-default,#17457b);color:var(--primary-theme-text,#17457b);}
.td-rb-act.ok{color:color-mix(in srgb, #15803d var(--ink-keep, 100%), var(--ink-flip, #15803d));}
.td-rb-chip{display:inline-flex;align-items:center;gap:.3rem;min-height:32px;padding:.2rem .7rem;border-radius:999px;border:1px solid var(--bd,#dfe5ee);background:var(--sf-card,#fff);color:var(--tc-text,#33415c);font-size:.74rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-rb-chip:hover{background:var(--theme-default,#17457b);border-color:var(--theme-default,#17457b);color:#fff;}
.td-rb-chip.ghost{padding:.2rem .5rem;}
.td-rb-empty{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:3rem 1rem;color:var(--tc-muted,#6b7a90);}
.td-rb-empty .bi{font-size:2.4rem;color:#16a34a;}
.td-rb-empty strong{color:var(--tc-text,#1e2a38);}
.td-rb-grab{display:block;width:40px;height:5px;border-radius:999px;background:var(--bd,#cbd5e1);margin:.5rem auto 0;}
@keyframes tdRbFade{from{opacity:0}to{opacity:1}}
@keyframes tdRbPop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes tdRbUp{from{transform:translateY(100%)}to{transform:none}}

@media (max-width:767.98px){
  .td-rem-btn{min-height:44px;padding:.35rem .8rem;}
  .td-rem-btn span:not(.td-rem-count){display:none;}
  .td-rb{left:0;right:0;top:auto;bottom:0;translate:none;width:100%;max-height:88vh;border-radius:1.1rem 1.1rem 0 0;padding-bottom:env(safe-area-inset-bottom);animation:tdRbUp .22s cubic-bezier(.2,.8,.2,1);}
  .td-rb-head{flex-wrap:wrap;padding:.5rem .9rem .65rem;}
  .td-rb-bulk{order:3;flex-basis:100%;}
  .td-rb-close{width:44px;height:44px;}
  .td-rb-cols{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:.75rem .9rem 1rem;gap:.6rem;}
  .td-rb-col{flex:0 0 86vw;max-width:none;scroll-snap-align:center;}
  .td-rb-act,.td-rb-chip{min-height:44px;font-size:.8rem;}
  .td-rb-chip{flex:1 1 auto;justify-content:center;}
}
@media (prefers-reduced-motion:reduce){ .td-rb,.td-rb-backdrop{animation:none;} }

/* ==========================================================================
   16-Oct-2026 (b) - view chips, selection + bulk bar, client x months grid,
   workload cards, bulk-create list, inline edit, @mention menu.
   ========================================================================== */
.td-views{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.td-views::-webkit-scrollbar{display:none;}
.td-view-chip{flex:none;display:inline-flex;align-items:center;gap:.35rem;min-height:40px;padding:.3rem .8rem;border-radius:999px;border:1px solid var(--td-border);background:var(--td-surface);color:var(--td-text);font-size:.8rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-view-chip.on{background:var(--theme-default,#17457b);border-color:var(--theme-default,#17457b);color:#fff;}

/* Selection */
.td-selcol{width:36px;text-align:center;}
.td-grid tbody tr.is-sel{background:color-mix(in srgb,var(--theme-default,#17457b) 9%,var(--td-surface));}
.td-mrow.is-sel{border-color:var(--theme-default,#17457b);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-default,#17457b) 35%,transparent);}
.td-mrow-check{align-self:center;font-size:1.25rem;color:var(--primary-theme-text);flex:none;}

/* Bulk bar */
.td-bulkbar{position:fixed;left:50%;translate:-50% 0;bottom:1rem;z-index:1045;width:min(760px,calc(100vw - 2rem));background:var(--sf-card,#fff);border:1px solid var(--bd,#dfe5ee);border-radius:1rem;box-shadow:0 14px 36px rgba(15,23,42,.22);padding:.5rem .6rem;animation:tdRbUp .18s ease;}
.td-bulkbar-row{display:flex;align-items:center;gap:.4rem;}
.td-bulkbar-count{font-size:.82rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);margin-right:auto;padding-left:.3rem;color:var(--td-text);}
.td-bulk-btn{display:inline-flex;align-items:center;gap:.35rem;min-height:38px;padding:.3rem .75rem;border:1px solid var(--td-border);border-radius:.6rem;background:var(--td-surface);color:var(--td-text);font-size:.78rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.td-bulk-btn.on{border-color:var(--theme-default,#17457b);color:var(--primary-theme-text);background:var(--td-softer);}
.td-bulk-btn.ghost{border-color:transparent;}
.td-bulkbar-panel{display:flex;align-items:center;gap:.5rem;padding:.55rem .3rem .2rem;border-top:1px dashed var(--td-border);margin-top:.45rem;}
.td-bulkbar-panel .td-searchable-select,.td-bulkbar-panel .form-select,.td-bulkbar-panel .form-control{flex:1;min-width:0;}

/* Client x months grid */
.tcm-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;background:var(--td-surface);border:1px solid var(--td-border-soft);border-radius:var(--td-radius);padding:.6rem .75rem;margin-bottom:.75rem;box-shadow:var(--td-shadow-sm);}
.tcm-fy{display:inline-flex;align-items:center;gap:.25rem;}
.tcm-fy-label{min-width:92px;text-align:center;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.tcm-nav{width:34px;height:34px;border-radius:.5rem;border:1px solid var(--td-border);background:var(--td-surface);color:var(--td-text);display:grid;place-items:center;}
.tcm-search{position:relative;flex:1 1 220px;max-width:320px;}
.tcm-search i{position:absolute;left:.6rem;top:50%;translate:0 -50%;color:var(--td-muted);font-size:.8rem;}
.tcm-search input{padding-left:1.8rem;font-size:.82rem;}
.tcm-only{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;margin:0;}
.tcm-legend{display:inline-flex;align-items:center;gap:.35rem;font-size:.74rem;color:var(--td-muted);margin-left:auto;}
.tcm-dot{width:10px;height:10px;border-radius:3px;display:inline-block;margin-left:.35rem;}
.tcm-dot.s-done{background:#16a34a;} .tcm-dot.s-pending{background:#d97706;} .tcm-dot.s-overdue{background:#dc2626;}
.tcm-wrap{overflow:auto;max-height:70vh;border:1px solid var(--td-border-soft);border-radius:var(--td-radius);background:var(--td-surface);box-shadow:var(--td-shadow-sm);-webkit-overflow-scrolling:touch;}
.tcm-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.8rem;}
.tcm-table thead th{position:sticky;top:0;z-index:2;background:var(--td-surface);padding:.55rem .4rem;text-align:center;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--td-muted);border-bottom:1px solid var(--td-border);white-space:nowrap;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.tcm-table thead th.is-now{color:var(--primary-theme-text);}
.tcm-client-h,.tcm-client{position:sticky;left:0;z-index:1;background:var(--td-surface);text-align:left!important;min-width:200px;max-width:260px;border-right:1px solid var(--td-border-soft);}
.tcm-table thead th.tcm-client-h{z-index:3;}
.tcm-client{padding:.45rem .7rem;border-bottom:1px solid var(--td-border-soft);font-weight:clamp(1, calc(400 + var(--spq-fw-delta, 0)), 1000);}
.tcm-client-name{display:block;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--td-text);}
.tcm-client-gstin{display:block;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.68rem;color:var(--td-muted);}
.tcm-cell{padding:.25rem;text-align:center;border-bottom:1px solid var(--td-border-soft);min-width:62px;}
.tcm-cell.s-none{color:var(--tc-faint,#c3cede);}
.tcm-cell button{width:100%;min-height:36px;border:0;border-radius:.5rem;display:inline-flex;align-items:center;justify-content:center;gap:.1rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);font-size:.8rem;transition:transform .1s ease;}
.tcm-cell button:hover{transform:scale(1.06);}
.tcm-cell button small{font-weight:clamp(1, calc(400 + var(--spq-fw-delta, 0)), 1000);opacity:.75;font-size:.68rem;}
.tcm-cell.s-done button{background:color-mix(in srgb,#16a34a 16%,var(--td-surface));color:color-mix(in srgb, #15803d var(--ink-keep, 100%), var(--ink-flip, #15803d));}
.tcm-cell.s-pending button{background:color-mix(in srgb,#d97706 16%,var(--td-surface));color:color-mix(in srgb, #b45309 var(--ink-keep, 100%), var(--ink-flip, #b45309));}
.tcm-cell.s-overdue button{background:color-mix(in srgb,#dc2626 16%,var(--td-surface));color:color-mix(in srgb, #b91c1c var(--ink-keep, 100%), var(--ink-flip, #b91c1c));}
.tcm-tot,.tcm-tot-h{text-align:center;border-bottom:1px solid var(--td-border-soft);border-left:1px solid var(--td-border-soft);font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);min-width:56px;}
.tcm-tot.late{color:var(--td-danger);}
.tcm-note{margin-top:.5rem;font-size:.76rem;color:var(--td-muted);display:flex;gap:.35rem;align-items:center;}

/* Workload */
.twl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.7rem;}
.twl-card{display:flex;flex-direction:column;gap:.55rem;text-align:left;background:var(--td-surface);border:1px solid var(--td-border-soft);border-radius:.85rem;padding:.8rem .85rem;box-shadow:var(--td-shadow-sm);color:var(--td-text);transition:transform .12s ease,box-shadow .12s ease;}
.twl-card:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(16,24,40,.10);}
.twl-card.late{border-left:4px solid #dc2626;}
.twl-head{display:flex;align-items:center;gap:.6rem;}
.twl-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--theme-default,#17457b);color:#fff;font-size:.78rem;font-weight:clamp(1, calc(800 + var(--spq-fw-delta, 0)), 1000);}
.twl-avatar.none{background:var(--tc-muted,#64748b);}
.twl-name{flex:1;min-width:0;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.twl-open{font-size:.78rem;color:var(--td-muted);}
.twl-open strong{font-size:1.1rem;color:var(--td-text);}
.twl-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--td-softer);}
.twl-bar .seg{width:var(--w);}
.twl-bar .late{background:#dc2626;} .twl-bar .soon{background:#d97706;} .twl-bar .rest{background:var(--theme-default,#17457b);opacity:.55;}
.twl-stats{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.74rem;color:var(--td-muted);}
.twl-stat{display:inline-flex;align-items:center;gap:.25rem;}
.twl-stat.late{color:var(--td-danger);}
.twl-stat.ok{color:var(--td-success);}

/* Bulk create */
.tbc-clients-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem;}
.tbc-count{font-size:.74rem;color:var(--td-muted);}
.tbc-list{max-height:280px;overflow-y:auto;border:1px solid var(--td-border);border-radius:.6rem;}
.tbc-item{display:grid;grid-template-columns:auto 1fr;column-gap:.6rem;align-items:center;padding:.5rem .7rem;border-bottom:1px solid var(--td-border-soft);margin:0;cursor:pointer;min-height:48px;}
.tbc-item:last-child{border-bottom:0;}
.tbc-item.on{background:var(--td-softer);}
.tbc-item input{grid-row:span 2;}
.tbc-name{font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);font-size:.84rem;}
.tbc-sub{font-size:.72rem;color:var(--td-muted);}
.tbc-progress-text{font-size:.78rem;color:var(--td-muted);margin-top:.3rem;}
.tbc-failed{font-size:.76rem;color:var(--td-danger);margin:.4rem 0 0;padding-left:1.1rem;max-height:120px;overflow:auto;}

/* Inline edit + mention */
.td-edit-pencil{border:0;background:transparent;color:var(--td-muted);width:32px;height:32px;border-radius:.5rem;flex:none;}
.td-edit-pencil:hover{background:var(--td-softer);color:var(--primary-theme-text);}
.td-textedit{display:flex;flex-direction:column;gap:.45rem;margin-top:.35rem;}
.td-textedit-actions{display:flex;justify-content:flex-end;gap:.4rem;}
.td-mention-wrap{position:relative;display:inline-flex;}
.td-mention-menu{position:absolute;bottom:calc(100% + 6px);left:0;z-index:30;width:240px;max-height:260px;overflow-y:auto;background:var(--sf-card,#fff);border:1px solid var(--bd,#dfe5ee);border-radius:.6rem;box-shadow:0 10px 24px rgba(15,23,42,.18);padding:.25rem;}
.td-mention-item{display:flex;align-items:center;gap:.5rem;width:100%;border:0;background:transparent;text-align:left;padding:.4rem .5rem;border-radius:.45rem;font-size:.82rem;color:var(--td-text);}
.td-mention-item:hover{background:var(--td-softer);}

@media (max-width:767.98px){
  .td-bulkbar{left:0;right:0;translate:none;width:auto;bottom:0;border-radius:1rem 1rem 0 0;padding:.55rem .7rem calc(.55rem + env(safe-area-inset-bottom));}
  .td-bulk-btn{min-height:44px;min-width:44px;justify-content:center;padding:.3rem .55rem;}
  .td-bulk-btn span{display:none;}
  .td-bulkbar-panel{flex-wrap:wrap;}
  .td-bulkbar-panel .btn{min-height:44px;flex:1 1 100%;}
  .tcm-bar{gap:.5rem;}
  .tcm-search{max-width:none;flex-basis:100%;order:3;}
  .tcm-legend{margin-left:0;}
  .tcm-client-h,.tcm-client{min-width:150px;max-width:170px;}
  .tcm-cell button{min-height:44px;}
  .twl-grid{grid-template-columns:1fr;}
  .td-mention-menu{position:fixed;left:0;right:0;bottom:0;width:auto;max-height:50vh;border-radius:1rem 1rem 0 0;padding-bottom:env(safe-area-inset-bottom);}
  .td-mention-item{min-height:48px;}
  .td-edit-pencil{width:44px;height:44px;}
}

/* ==========================================================================
   16-Oct-2026 (c) - comment edit/delete tools, client link panel.
   ========================================================================== */
.td-edited{font-size:.68rem;color:var(--td-muted);font-style:italic;}
.td-cmt-tools{margin-left:auto;display:inline-flex;gap:.15rem;}
.td-cmt-tool{border:0;background:transparent;color:var(--td-muted);min-width:28px;height:28px;border-radius:.4rem;font-size:.78rem;}
.td-cmt-tool:hover{background:var(--td-softer);color:var(--primary-theme-text);}
.td-cmt-tool.danger{color:var(--td-danger);font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);padding:0 .45rem;}

.tcl .td2-card-head{display:flex;align-items:center;gap:.4rem;}
.tcl-new{margin-left:auto;display:inline-flex;align-items:center;gap:.25rem;border:1px solid var(--td-border);background:var(--td-surface);color:var(--primary-theme-text);border-radius:999px;font-size:.74rem;padding:.15rem .6rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.tcl-muted{font-size:.78rem;color:var(--td-muted);}
.tcl-hint{font-weight:clamp(1, calc(400 + var(--spq-fw-delta, 0)), 1000);color:var(--td-muted);text-transform:none;}
.tcl-form{background:var(--td-softer);border:1px solid var(--td-border);border-radius:.6rem;padding:.65rem;margin-bottom:.6rem;}
.tcl-link{border:1px solid var(--td-border);border-radius:.65rem;padding:.6rem .65rem;margin-top:.5rem;background:var(--td-surface);}
.tcl-link.off{opacity:.65;}
.tcl-link-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;}
.tcl-who{display:inline-flex;align-items:center;gap:.3rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);font-size:.82rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tcl-state{font-size:.68rem;padding:.1rem .5rem;border-radius:999px;background:var(--sf-subtle,#f1f5f9);color:var(--td-muted);white-space:nowrap;}
.tcl-state.on{background:color-mix(in srgb,#16a34a 14%,var(--td-surface));color:color-mix(in srgb, #15803d var(--ink-keep, 100%), var(--ink-flip, #15803d));}
.tcl-meta{font-size:.7rem;color:var(--td-muted);margin-top:.15rem;}
.tcl-reqs{list-style:none;margin:.45rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem;}
.tcl-reqs li{display:grid;grid-template-columns:auto 1fr auto;gap:.15rem .45rem;align-items:center;font-size:.76rem;}
.tcl-reqs li .bi{color:var(--td-muted);}
.tcl-reqs li.st-uploaded .bi,.tcl-reqs li.st-approved .bi{color:#16a34a;}
.tcl-reqs li.st-rejected .bi{color:#d97706;}
.tcl-req-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tcl-req-state{font-size:.68rem;color:var(--td-muted);white-space:nowrap;}
.tcl-req-note{grid-column:2 / span 2;font-size:.7rem;color:var(--td-muted);font-style:italic;}
.tcl-actions{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem;}
.tcl-act{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-height:30px;border:1px solid var(--td-border);border-radius:.45rem;background:var(--td-surface);color:var(--td-text);font-size:.72rem;font-weight:clamp(1, calc(700 + var(--spq-fw-delta, 0)), 1000);}
.tcl-act:hover{border-color:var(--theme-default,#17457b);color:var(--primary-theme-text);}
.tcl-act.danger{border-color:var(--td-danger);color:var(--td-danger);}

@media (max-width:767.98px){
  .td-cmt-tool{min-width:44px;height:44px;}
  .tcl-new{min-height:40px;padding:.3rem .8rem;}
  .tcl-act{min-height:44px;font-size:.8rem;}
  .tcl-form .form-control,.tcl-form .form-select{min-height:44px;font-size:16px;}
}
