.todo-workspace {
  --tw-surface:#fff; --tw-muted:#f6f8fa; --tw-line:#e4e9ed; --tw-ink:#172b32; --tw-subtle:#596b75; --tw-accent:#087f78;
  color:var(--tw-ink); container-type:inline-size; padding-bottom:32px;
}
.dark .todo-workspace { --tw-surface:#111827; --tw-muted:#192231; --tw-line:#303c4c; --tw-ink:#f1f5f9; --tw-subtle:#a4b3c3; --tw-accent:#5eead4; }
.todo-workspace turbo-frame { display:block; }
.todo-workspace [hidden] { display:none !important; }
.tw-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; margin-bottom:24px; }
.tw-heading h1 { font-size:26px; font-weight:750; letter-spacing:-.035em; }
.tw-heading p,.tw-hint { color:var(--tw-subtle); font-size:12px; line-height:1.6; }
.tw-heading p { margin-top:6px; font-size:14px; }
.tw-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; padding:8px 12px; border:1px solid var(--tw-line); background:var(--tw-surface); border-radius:9px; color:var(--tw-ink); font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; text-decoration:none; }
.tw-button:hover { background:var(--tw-muted); }
.tw-primary { background:#087f78; border-color:#087f78; color:white; }
.tw-primary:hover { background:#066b66; }
.todo-workspace :is(button,a,input,select,textarea):focus-visible { outline:2px solid var(--tw-accent); outline-offset:3px; }
.todo-workspace[aria-busy="true"] :is(.tw-complete,.tw-inline,.tw-bulk,.tw-detail-form button[type="submit"],.tw-quick-add button,.tw-toast button) { pointer-events:none; opacity:.6; }
.tw-tabs { display:flex; gap:6px; overflow-x:auto; padding:0 0 12px; border-bottom:1px solid var(--tw-line); scrollbar-width:thin; }
.tw-tab { display:flex; align-items:center; gap:8px; padding:10px 13px; min-height:44px; flex-shrink:0; font-size:14px; color:var(--tw-subtle); border-radius:9px; }
.tw-tab span { font-size:11px; background:var(--tw-muted); padding:1px 6px; border-radius:6px; }
.tw-tab[aria-current="page"] { background:#e4f5f1; color:#086a61; font-weight:700; }
.dark .tw-tab[aria-current="page"] { background:#133e3b; color:#80efda; }
.tw-filter-form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px; padding:16px 0 8px; }
.tw-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.tw-field label,.tw-bulk-form label { font-size:12px; font-weight:600; color:var(--tw-subtle); }
.todo-workspace :is(input:not([type="checkbox"]):not([type="hidden"]),select,textarea) { min-width:0; max-width:100%; min-height:44px; border:1px solid var(--tw-line); border-radius:8px; padding:8px 10px; background:var(--tw-surface); color:var(--tw-ink); font:inherit; font-size:14px; }
.todo-workspace input[type="checkbox"] { width:19px; height:19px; accent-color:#087f78; flex-shrink:0; }
.tw-filter-form .tw-field { flex:1 1 115px; }
.tw-filter-form .tw-search { flex:2 1 190px; }
.tw-filter-form select { width:100%; text-overflow:ellipsis; }
.tw-quick-add { display:flex; gap:10px; padding:16px 0; }
.todo-workspace .tw-quick-add input { flex:1; width:100%; padding-left:14px; background:var(--tw-muted); }
.tw-list-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:8px 0; }
.tw-list-toolbar .tw-hint { margin-left:auto; }
.tw-touch { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:44px; min-height:44px; cursor:pointer; }
.tw-select-only { display:none; }
.tw-selecting .tw-select-only { display:flex; }
.tw-selecting .tw-complete { display:none; }
.tw-bulk { flex-wrap:wrap; align-items:center; gap:12px; background:var(--tw-muted); padding:14px; margin:6px 0 12px; border:1px solid var(--tw-line); border-radius:12px; }
.tw-bulk strong { font-size:13px; }
.tw-bulk-form { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-width:0; }
.tw-bulk-form select { max-width:200px; }
.tw-table-heading { display:none; }
.tw-row { display:grid; grid-template-columns:44px minmax(0,1fr) auto 44px; grid-template-areas:"check title title more" "check project project more" ". status priority ." ". date date ."; gap:3px 6px; padding:12px 0; border-bottom:1px solid var(--tw-line); align-items:center; background:var(--tw-surface); }
.tw-row:hover { background:var(--tw-muted); }
.tw-check-cell { grid-area:check; align-self:start; }
.tw-task-title { grid-area:title; min-width:0; }
.tw-title-link { font-size:14px; font-weight:600; line-height:1.55; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tw-title-link:hover { color:var(--tw-accent); }
.tw-done .tw-title-link { text-decoration:line-through; color:var(--tw-subtle); }
.tw-checkbox { width:20px; height:20px; display:flex; justify-content:center; align-items:center; border:1.5px solid #7d909d; border-radius:6px; font-size:13px; }
.tw-done .tw-checkbox { background:#087f78; border-color:#087f78; color:white; }
.tw-scheduled { display:block; font-size:11px; color:var(--tw-subtle); margin-top:2px; }
.tw-project { grid-area:project; font-size:12px; color:var(--tw-subtle); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.tw-status { grid-area:status; }
.tw-priority { grid-area:priority; }
.tw-date { grid-area:date; }
.tw-more { grid-area:more; align-self:start; font-size:23px; border-radius:8px; }
.todo-workspace .tw-inline select { width:100%; font-size:12px; border-color:transparent; background:transparent; padding:6px; }
.todo-workspace .tw-inline .tw-status-in_progress { color:#2563eb; background:#eff6ff; }
.dark .todo-workspace .tw-inline .tw-status-in_progress { color:#93c5fd; background:#172f50; }
.todo-workspace .tw-inline .tw-priority-urgent { color:#be123c; }
.dark .todo-workspace .tw-inline .tw-priority-urgent { color:#fda4af; }
.tw-date { position:relative; min-width:0; min-height:44px; display:flex; align-items:center; font-size:12px; }
.tw-date label { pointer-events:none; padding:0 7px; }
.todo-workspace .tw-date input { position:absolute; inset:0; opacity:0; width:100%; cursor:pointer; }
.tw-date:focus-within { outline:2px solid var(--tw-accent); border-radius:8px; }
.tw-overdue { color:#b91c1c; }
.dark .tw-overdue { color:#fca5a5; }
.tw-group { padding:16px 8px 9px; background:var(--tw-muted); border-bottom:1px solid var(--tw-line); font-size:12px; font-weight:700; letter-spacing:.015em; }
.tw-empty { display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding:55px 12px; color:var(--tw-subtle); }
.tw-empty h2 { font-weight:700; color:var(--tw-ink); }
.tw-empty p { font-size:13px; }
.tw-detail-dialog,.tw-filter-dialog { background:var(--tw-surface); color:var(--tw-ink); border:1px solid var(--tw-line); padding:0; overscroll-behavior:contain; }
.tw-detail-dialog::backdrop,.tw-filter-dialog::backdrop { background:rgb(15 23 42 / .3); }
.tw-detail-dialog { position:fixed; inset:0 0 0 auto; margin:0; width:460px; max-width:100%; height:100dvh; max-height:100dvh; box-shadow:-12px 0 50px #0002; }
.tw-dialog-heading { display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-bottom:1px solid var(--tw-line); background:var(--tw-surface); position:sticky; top:0; z-index:1; gap:12px; }
.tw-dialog-heading h2 { font-size:16px; font-weight:700; }
.tw-detail-form { padding:22px; display:flex; flex-direction:column; gap:20px; }
.tw-detail-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.tw-date-shortcuts { display:flex; gap:7px; flex-wrap:wrap; margin-top:-10px; }
.tw-schedule-section { padding:16px; background:var(--tw-muted); border-radius:12px; display:flex; flex-direction:column; gap:12px; }
.tw-detail-footer { display:flex; flex-direction:column; gap:16px; padding-bottom:env(safe-area-inset-bottom, 0px); }
.tw-text-link { color:var(--tw-accent); font-size:13px; text-decoration:underline; text-underline-offset:3px; }
.tw-panel-error { color:#dc2626; font-size:13px; }
.tw-loading { padding:24px; color:var(--tw-subtle); }
.tw-filter-dialog { width:min(600px,100%); max-width:100%; max-height:90dvh; border-radius:18px 18px 0 0; margin:auto auto 0; }
.tw-filter-dialog .tw-filter-form { padding:20px; padding-bottom:calc(20px + env(safe-area-inset-bottom,0px)); display:grid; grid-template-columns:1fr 1fr; }
.tw-filter-dialog .tw-search { grid-column:1/-1; }
.tw-toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:60; width:max-content; max-width:calc(100vw - 24px); display:flex; align-items:center; gap:12px; border:1px solid var(--tw-line); border-radius:12px; background:var(--tw-surface); box-shadow:0 8px 36px #0003; padding:10px 14px; font-size:13px; }
.tw-mobile-toolbar { display:none; }
@container (min-width:900px) {
  .tw-row,.tw-table-heading { display:grid; grid-template-columns:44px minmax(180px,1fr) minmax(90px,130px) 100px 80px 105px 44px; gap:10px; }
  .tw-row { grid-template-areas:"check title project status priority date more"; padding:7px 0; min-height:60px; }
  .tw-check-cell,.tw-more { align-self:center; }
  .tw-table-heading { font-size:11px; font-weight:600; color:var(--tw-subtle); padding:12px 0; border-bottom:1px solid var(--tw-line); }
}
@media (max-width:767px) {
  .tw-heading { align-items:start; margin-bottom:18px; }
  .tw-heading h1 { font-size:24px; }
  .tw-heading p { display:none; }
  .tw-heading > a { display:none; }
  .tw-desktop-filters { display:none; }
  .tw-mobile-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0 6px; font-size:12px; color:var(--tw-subtle); }
  .todo-workspace :is(input:not([type="checkbox"]),select,textarea) { font-size:16px; }
  .tw-tabs { gap:2px; }
  .tw-tab { padding:8px 10px; font-size:13px; }
  .tw-list-toolbar .tw-hint { width:100%; margin:0; }
  .tw-detail-dialog { width:100%; border:0; }
  .tw-dialog-heading { padding-top:calc(12px + env(safe-area-inset-top,0px)); }
  .tw-detail-form { padding:18px; }
  .tw-bulk { padding:10px; }
  .tw-bulk-form { width:100%; }
  .tw-bulk-form label { width:100%; }
  .tw-toast { bottom:calc(80px + env(safe-area-inset-bottom,0px)); gap:8px; padding:8px 10px; flex-wrap:wrap; }
  .tw-toast > span { flex:1 1 150px; }
}
.tw-mobile-priority { display:none; }
.todo-workspace .tw-row .tw-inline select { border-color:transparent; background:transparent; font-size:12px; }
.todo-workspace .tw-row .tw-inline .tw-status-in_progress { color:#2563eb; background:#eff6ff; }
.dark .todo-workspace .tw-row .tw-inline .tw-status-in_progress { color:#93c5fd; background:#172f50; }
@media (max-width:767px) {
  .tw-row { grid-template-columns:44px minmax(0,1fr) 84px 44px; grid-template-areas:"check title title more" "check project project more" ". status date ."; padding:10px 0; }
  .tw-row .tw-priority { display:none; }
  .tw-mobile-priority { display:inline; }
  .tw-counts-hint { display:none; }
  .tw-list-toolbar .tw-hint { width:auto; margin-left:auto; font-size:10px; }
  .tw-quick-add { padding:10px 0; }
  .tw-list-toolbar { padding:0 0 8px; }
}
.tw-heading-actions { display:flex; gap:4px; margin-left:auto; }
.tw-heading-actions [aria-pressed="true"],.tw-board-switch [aria-pressed="true"] { border-color:var(--tw-accent); color:var(--tw-accent); }
.tw-board { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; margin-top:14px; }
.tw-board-column { display:none; background:var(--tw-muted); padding:12px; border-radius:12px; min-width:0; }
.tw-board[data-visible-status="pending"] [data-status="pending"],.tw-board[data-visible-status="in_progress"] [data-status="in_progress"],.tw-board[data-visible-status="done"] [data-status="done"] { display:block; }
.tw-board-column > h2 { display:flex; justify-content:space-between; font-weight:700; font-size:14px; padding:8px 3px 14px; }
.tw-board-column > h2 span { color:var(--tw-subtle); }
.tw-board-cards { display:flex; flex-direction:column; gap:10px; min-height:80px; }
.tw-row.tw-board-card { display:flex; flex-direction:column; align-items:stretch; gap:6px; background:var(--tw-surface); padding:8px; border:1px solid var(--tw-line); border-radius:10px; }
.tw-card-top { display:flex; align-items:start; gap:2px; }
.tw-card-top .tw-title-link { flex:1; min-width:0; padding:10px 0; }
.tw-card-meta { font-size:11px; color:var(--tw-subtle); overflow-wrap:anywhere; padding:0 7px; }
.tw-card-footer { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding-left:7px; font-size:12px; }
.tw-move-buttons { display:inline-flex; float:right; font-size:16px; }
.tw-move-buttons button { border-radius:8px; }
.tw-move-buttons button:hover { background:var(--tw-muted); }
.tw-board-switch { display:flex; gap:6px; margin-top:14px; }
.tw-board-empty { color:var(--tw-subtle); font-size:12px; padding:25px 8px; text-align:center; }
.tw-dragging { opacity:.4; }
.tw-board-card[draggable="true"] { cursor:grab; }
@container (min-width:900px) {
  .tw-board { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .tw-board-column { display:block; }
  .tw-board-switch { display:none; }
}

.dark .todo-workspace :is(input,select,textarea) { color-scheme:dark; }
