/* Kingdom to-do board (kanban). Colours resolve through tokens.css except the
   label palette, which is fixed category art shared by both themes. */
.kanban-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.kanban-column{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:12px;min-height:220px}
.kanban-column-head{display:flex;justify-content:space-between;align-items:center;padding:0 2px}
.kanban-column-head h2{margin:0;font-size:15px;letter-spacing:-.02em;color:var(--ink)}
.kanban-count{padding:2px 9px;border-radius:99px;background:var(--surface-3);color:var(--muted);font-size:11px;font-weight:800}
.kanban-cards{display:grid;gap:8px;min-height:48px;padding:2px;border-radius:10px;transition:background .12s,box-shadow .12s}
.kanban-cards.over{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent-border)}
.kanban-card{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm);cursor:grab;user-select:none}
.kanban-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}
.kanban-card:active{cursor:grabbing}
.kanban-card.dragging{opacity:.4}
.kanban-card-title{margin:0;font-size:13px;font-weight:700;color:var(--ink);line-height:1.45;word-break:break-word}
.kanban-labels{display:flex;flex-wrap:wrap;gap:4px}
.kanban-label{display:inline-block;padding:1px 8px;border-radius:99px;color:#fff;font-size:10px;font-weight:800;line-height:16px;letter-spacing:.01em}
.kanban-card-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:var(--muted);font-weight:700}
.kanban-due{padding:1px 7px;border-radius:6px;background:var(--surface-3);color:var(--text-2)}
.kanban-due.soon{background:var(--warn-soft);color:var(--warn-text)}
.kanban-due.overdue{background:var(--danger-soft);color:var(--danger-text)}
.kanban-due.done{background:var(--success-soft);color:var(--success-text);text-decoration:line-through}
.kanban-check.complete{color:var(--success-text)}
.kanban-avatar{margin-left:auto;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--on-accent);display:inline-grid;place-items:center;font-size:10px;font-weight:900;line-height:1}
.kanban-add{border:1px dashed var(--line-strong);border-radius:10px;padding:9px 10px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;text-align:left;cursor:pointer}
.kanban-add:hover{background:var(--surface-hover);color:var(--ink)}
.kanban-composer{display:grid;gap:8px}
.kanban-composer input,.kanban-modal input,.kanban-modal select,.kanban-modal textarea{box-sizing:border-box;width:100%;border:1px solid var(--line-strong);border-radius:9px;padding:8px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}
.kanban-modal textarea{resize:vertical}
.kanban-composer-actions,.kanban-modal-actions{display:flex;gap:8px;flex-wrap:wrap}

/* Card detail sheet. */
.kanban-modal-back{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:var(--overlay);overflow:auto}
.kanban-modal{box-sizing:border-box;width:min(720px,100%);display:grid;gap:18px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-lg);padding:22px}
.kanban-modal form[data-kanban-edit]{display:grid;gap:14px}
.kanban-modal-head{display:flex;gap:10px;align-items:center}
.kanban-modal-head input{font-size:17px;font-weight:800}
.kanban-close{flex:none;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:18px;cursor:pointer}
.kanban-close:hover{background:var(--surface-hover);color:var(--ink)}
.kanban-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.kanban-field{display:grid;gap:5px;color:var(--text-2);font-size:11px;font-weight:800}
.kanban-label-picks{display:flex;flex-wrap:wrap;gap:6px}
.kanban-label-pick{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line-strong);border-radius:99px;background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:700;cursor:pointer;transition:background .12s}
.kanban-label-pick input{width:auto;margin:0}
.kanban-label-pick.on{color:#fff}
.kanban-section h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;color:var(--text-2)}
.kanban-section h3 small{padding:1px 7px;border-radius:99px;background:var(--surface-3);color:var(--muted);font-size:11px;font-weight:800}
.kanban-progress{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden;margin-bottom:8px}
.kanban-progress i{display:block;height:100%;background:var(--success);transition:width .2s}
.kanban-checklist{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:4px}
.kanban-checklist li{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;background:var(--surface-2);font-size:13px;color:var(--ink)}
.kanban-checklist li span{flex:1;word-break:break-word}
.kanban-checklist li.done span{text-decoration:line-through;color:var(--muted)}
.kanban-checklist input[type="checkbox"]{width:auto;margin:0}
.kanban-inline-form{display:flex;gap:8px;align-items:flex-start}
.kanban-inline-form input,.kanban-inline-form textarea{flex:1;min-width:0}
.kanban-comments{display:grid;gap:8px;margin-bottom:8px}
.kanban-comments .hint{margin:0}
.kanban-comment{padding:8px 10px;border-radius:8px;background:var(--surface-2);font-size:13px;color:var(--ink)}
.kanban-comment header{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:11px;color:var(--muted);font-weight:700}
.kanban-comment p{margin:0;white-space:pre-wrap;word-break:break-word}
.kanban-x{border:0;background:transparent;color:var(--muted);font-size:13px;line-height:1;cursor:pointer;padding:2px 4px}
.kanban-x:hover{color:var(--danger)}
.kanban-modal-foot{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}
/* Translations (background job) sit under the original text. */
.kanban-card-tr{margin:0;font-size:12px;color:var(--muted);line-height:1.4;word-break:break-word}
.kanban-card-tr::before,.kanban-tr::before{content:"\21B3  ";color:var(--faint)}
.kanban-tr{margin:4px 0 0;font-size:12px;color:var(--muted);white-space:pre-wrap;word-break:break-word}
.kanban-title-tr{margin:-6px 0 0 4px}
.kanban-desc-tr{padding:8px 10px;border-radius:8px;background:var(--surface-2)}
.kanban-checklist li span small.kanban-tr{display:block;font-size:11px}
.kanban-tr-hint{margin:-6px 0 0;font-size:11px;color:var(--faint)}
@media (max-width:900px){.kanban-board{grid-template-columns:1fr}.kanban-column{min-height:0}}
@media (max-width:600px){.kanban-modal-back{padding:12px}.kanban-modal{padding:16px}.kanban-inline-form{flex-direction:column}.kanban-inline-form .btn{width:100%}}
