/* 할 일 (Task)'s rules, the last of style.css until T17-1c: listed first in portal-modules.json styles, so they stand
   right after style.css and every rule keeps its place in the cascade. */
/* 할 일 한 줄 (todo-line.js, A11) and 할 일 만들기 (todo-create.js): two lines an item, a group one line that opens. */
.todo-list{list-style:none;margin:0;padding:0}
.todo-line{display:flex;gap:var(--ds-space-2);align-items:flex-start;padding:var(--ds-space-2) 0;border-bottom:1px solid var(--ds-line)}
.todo-line-body{flex:1;min-width:0}.todo-line-select{flex:none;width:auto;margin:3px 0 0}
.todo-line-first,.todo-line-second{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--ds-space-3)}
.todo-line-title{font-weight:600;overflow-wrap:anywhere}
.todo-line-second{margin-top:2px;color:var(--ds-text-2);font-size:.92em}
.todo-due{color:var(--ds-text-2);font-size:.92em}.todo-due[data-late]{color:var(--ds-danger-text);font-weight:600}
.todo-state[data-tone="danger"]{color:var(--ds-danger-text)}.todo-state[data-tone="info"]{color:var(--ds-info-text)}
.todo-state[data-tone="ok"]{color:var(--ds-ok-text)}.todo-state[data-tone="unknown"]{color:var(--ds-unknown-text)}
.todo-mark{border:1px solid var(--ds-line);border-radius:var(--ds-radius-xs);padding:0 var(--ds-space-1);font-size:.85em;color:var(--ds-text-2)}
.todo-mark[data-mark="request"]{border-style:dashed;border-color:var(--ds-unknown-2);color:var(--ds-unknown-text)}
.todo-now{color:var(--ds-text)}
.todo-group-fold>summary{cursor:pointer}.todo-group-count{font-variant-numeric:tabular-nums}
.todo-group-body{padding:var(--ds-space-2) 0 0 var(--ds-space-4)}
.todo-create-form fieldset{border:0;margin:var(--ds-space-2) 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--ds-space-3)}
.todo-create-form label{display:block;margin:var(--ds-space-2) 0}.todo-create-form fieldset label{display:inline-flex;gap:4px;margin:0}
.todo-create-targets{margin:0 0 var(--ds-space-2);padding-left:var(--ds-space-4);color:var(--ds-text-2)}
.todo-create-problem{color:var(--ds-danger-text)}
.todo-create-open:not(.secondary){background:var(--ds-accent);color:var(--ds-accent-ink);border-color:var(--ds-accent)}
/* 할 일 화면 (todo-screen.js, A11): one sentence, one large figure, the rest a line; buckets in order. */
.todo-first{margin:0 0 var(--ds-space-3);font-size:1.05em}
.todo-key .todo-figure{font-size:1.1em}.todo-key .todo-figure strong{font-size:1.9em;color:var(--ds-danger-text);margin-left:var(--ds-space-2)}
.todo-figure{background:none;border:0;border-bottom:1px dashed transparent;border-radius:0;padding:0 2px;color:var(--ds-text);cursor:pointer;font:inherit}
.todo-figure:hover{border-bottom-color:var(--ds-line-strong)}.todo-figure[aria-pressed="true"]{border-bottom:2px solid var(--ds-accent);font-weight:600}
.todo-figure strong{font-variant-numeric:tabular-nums}
.todo-sub{margin:var(--ds-space-2) 0 var(--ds-space-3);display:flex;flex-wrap:wrap;gap:var(--ds-space-1) var(--ds-space-4);color:var(--ds-text-2)}
.todo-quick{display:flex;flex-wrap:wrap;gap:var(--ds-space-2);margin-bottom:var(--ds-space-3)}
.todo-quick button[aria-pressed="true"]{border-color:var(--ds-accent);color:var(--ds-accent-text)}
.todo-bucket h3{margin:var(--ds-space-4) 0 var(--ds-space-1);font-size:1em}
.todo-bucket[data-bucket="overdue"] h3{color:var(--ds-danger-text)}
.todo-unavailable{margin:var(--ds-space-3) 0 0;color:var(--ds-text-2)}
.todo-item-title{margin:var(--ds-space-2) 0}.todo-item-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-3);margin-top:var(--ds-space-4)}
.todo-group-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-3);margin-bottom:var(--ds-space-2)}
.todo-acts{margin-top:var(--ds-space-4);display:grid;gap:var(--ds-space-3)}
.todo-act{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--ds-space-3)}.todo-act label{display:grid;gap:2px}
.todo-act-said{margin:0;color:var(--ds-text-2)}
.todo-coming h3{margin:var(--ds-space-4) 0 var(--ds-space-1);font-size:1em}
