/* Kanban shares the app's task model, filters and visual palette. */
.kb-view-toggle{display:flex;padding:3px;border:1px solid var(--line);border-radius:11px;background:#f0f4f2;gap:3px}.kb-view-toggle button{border:0;background:transparent;padding:7px 10px;border-radius:8px;box-shadow:none;font-size:11px}.kb-view-toggle button.active{background:white;color:var(--teal);box-shadow:0 2px 6px #23453612}.kb-workspace{margin:20px 0}.kb-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;font-size:11px;color:var(--muted);flex-wrap:wrap}.kb-intro b{color:var(--ink)}.kb-intro small{font-size:10px;line-height:1.6}.kb-track{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr)) minmax(160px,.62fr);align-items:start;gap:15px;overflow-x:auto;padding:3px 3px 14px;scrollbar-width:thin;overscroll-behavior-x:contain}.kb-column{background:#edf2f1;border:1px solid #e0e8e4;border-radius:16px;min-height:310px;transition:border-color .12s,background .12s;overflow:hidden}.kb-column>header{display:flex;align-items:center;gap:9px;padding:16px;border-bottom:1px solid #dfe7e3}.kb-column h2{font-size:13px;flex:1;margin:0}.kb-column-dot{width:8px;height:8px;border-radius:50%;background:#7f9eae}.kb-in_progress>.kb-column-dot,.kb-in_progress>header>.kb-column-dot{background:#d39845}.kb-done>header>.kb-column-dot{background:#6ea486}.kb-count{font-size:10px;min-width:24px;text-align:center;border-radius:7px;padding:4px 7px;background:white;color:#668174}.kb-column-body{padding:12px;min-height:255px;display:flex;flex-direction:column;gap:11px}.kb-task{position:relative;background:#fff;border:1px solid #dce7e1;border-left:3px solid #b7d3c7;border-radius:12px;padding:12px;box-shadow:0 3px 11px #143e2810;transition:opacity .12s,box-shadow .12s;min-width:0}.kb-task.kb-urgent{border-left-color:#bb5659}.kb-task.kb-soon{border-left-color:#58a57b}.kb-task.kb-working{border-left-color:#d29a46}.kb-task:hover{box-shadow:0 5px 17px #143e2818}.kb-card-top{display:flex;align-items:center;gap:7px;margin-bottom:8px}.kb-drag-handle{flex:0 0 27px;width:27px;height:28px;padding:0;background:#f2f6f3;border:0;border-radius:7px;font-size:20px;color:#8ba094;cursor:grab;touch-action:none;-webkit-touch-callout:none;user-select:none;box-shadow:none}.kb-drag-handle:active{cursor:grabbing}.kb-due{font-size:9px;line-height:1.4;color:#82938b;border-radius:6px;padding:4px 6px;background:#f3f6f4;overflow-wrap:anywhere}.kb-due.urgent{background:#f9e8e7;color:#a54549}.kb-due.soon{background:#e7f4eb;color:#347a50}.kb-title{display:block;width:100%;padding:0;border:0;border-radius:0;background:transparent!important;box-shadow:none!important;text-align:left;font-size:12px;font-weight:650;color:#2d4940;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.kb-person{margin:7px 0 8px;font-size:10px;color:#7b8f87;line-height:1.5;overflow-wrap:anywhere}.kb-assignee{display:flex;align-items:center;gap:6px;font-size:10px;color:#527866;line-height:1.5}.kb-assignee>span{font-size:16px;color:#87a596}.kb-note{color:#7c8e86;font-size:10px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:9px 0}.kb-labels{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.kb-label{font-size:9px;line-height:1.45;padding:4px 6px;border-radius:5px;background:#edf3ef;color:#688476;text-decoration:none;overflow-wrap:anywhere}.kb-label.kb-progress-label{background:#fcf1dc;color:#8d6728}.kb-status-label{display:flex;align-items:center;gap:8px;margin:11px 0 0;font-size:9px;color:#83948b}.kb-status-label select,.kb-card-actions select{min-width:0;width:100%;font:inherit;font-size:10px;border:1px solid #e1e9e3;border-radius:8px;padding:7px;background:white;color:#56786a}.kb-status-label select{flex:1}.kb-card-actions{display:flex;gap:6px;margin-top:9px}.kb-card-actions button{font-size:10px;padding:6px 8px}.kb-card-actions select{flex:1;width:130px}.kb-empty{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#85988d;font-size:11px;min-height:145px;text-align:center;padding:15px;line-height:1.6}.kb-empty button{font-size:10px;background:#fff;padding:7px 10px}.kb-dragging{opacity:.35}.kb-drop-active{border-color:#7fba9d;background:#e0efe6;box-shadow:inset 0 0 0 1px #98c3ad}.kb-drag-ghost{position:fixed;z-index:150;pointer-events:none;opacity:.96!important;transform:rotate(-2deg);box-shadow:0 18px 48px #193d3838!important;max-height:330px;overflow:hidden}.kb-workspace[aria-busy=true] .kb-status-label select{opacity:.6}.kb-live{font-size:11px;color:var(--teal);min-height:0;margin:8px 0 0}.kb-live:empty{display:none}@media(max-width:1000px){.kb-track{grid-template-columns:repeat(3,minmax(240px,1fr)) 160px;gap:12px}.kb-column-body{padding:10px}.kb-column>header{padding:13px}}@media(max-width:680px){.kb-track{grid-template-columns:repeat(3,280px) 190px;gap:12px;scroll-snap-type:x proximity}.kb-column{scroll-snap-align:start}.kb-drag-handle{width:32px;flex-basis:32px;height:32px}.kb-card-actions{flex-wrap:wrap}.kb-status-label select,.kb-card-actions select{font-size:16px;padding:7px 8px}.kb-status-label{font-size:10px}.kb-card-actions button{font-size:12px}.kb-title{font-size:13px}.kb-note{font-size:11px}.kb-intro small{max-width:100%}.kb-person,.kb-assignee{font-size:11px}.kb-workspace{margin:16px 0}.kb-view-toggle{width:100%;justify-content:center}.kb-view-toggle button{flex:1}}@media print{.kb-view-toggle,.kb-drag-handle,.kb-status-label,.kb-card-actions{display:none!important}.kb-track{overflow:visible;grid-template-columns:repeat(3,minmax(0,1fr)) .65fr}.kb-task{break-inside:avoid;box-shadow:none}.kb-column{background:white;min-height:0}.kb-intro small{display:none}}

.kb-review>header>.kb-column-dot{background:#7790c3}.kb-review{background:#edf1f8}.kb-task.kb-deferred{border-left-color:#7c92bd}.kb-label.review-date{background:#eaf0fc;color:#506b9d}.kb-label.review-ready{background:#f9e8e7;color:#a54549}.kb-review-date-label{display:grid;gap:5px;font-size:10px;color:var(--muted);margin-top:12px}.kb-review-date-label input{width:100%;min-width:0;border:1px solid #dbe4ee;background:#fff;border-radius:8px;padding:8px;color:var(--ink);font:inherit;font-size:11px}.kb-done{min-height:180px}.kb-done .kb-column-body{min-height:125px;max-height:490px;overflow-y:auto}.kb-done .kb-task{padding:10px;box-shadow:none}.kb-done .kb-card-top{margin-bottom:6px}.kb-done .kb-due,.kb-done .kb-note,.kb-done .kb-assignee,.kb-done .kb-labels,.kb-done .kb-status-label,.kb-done .kb-card-actions{display:none}.kb-completed-date{font-size:9px;color:#648471;line-height:1.5;margin:6px 0 0}.kb-card-actions{flex-wrap:wrap}.kb-card-actions select{flex:1 1 105px}.kb-done .kb-empty{min-height:75px;padding:8px}.kb-done .kb-empty button{max-width:100%;white-space:normal}@media(max-width:680px){.kb-review-date-label input{font-size:16px;min-height:40px}.kb-completed-date{font-size:10px}}@media print{.kb-review-date-label{display:none}.kb-done .kb-column-body{max-height:none;overflow:visible}}

.kb-done .kb-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Shared full-text search above list and Kanban filters. */
.task-searchbar{display:flex;align-items:center;gap:10px;margin:0 0 12px;width:100%;}
.task-searchbar input{flex:1;min-width:0;width:100%;}
.task-searchbar button{flex:none;white-space:nowrap;}
@media(max-width:600px){.task-searchbar{flex-wrap:wrap;}.task-searchbar input{flex-basis:100%;}.task-searchbar button{margin-left:auto;}}
.task-searchbar input{min-height:42px;padding:10px 14px;border:1px solid var(--line,#dfe5e7);border-radius:12px;background:var(--card,#fff);font:inherit;color:inherit;box-sizing:border-box;}
