.kb-page{height:100dvh;display:flex;flex-direction:column}.kb-error{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:40;cursor:pointer;margin:0}.kb-board{flex:1 1;min-height:0;display:flex;align-items:flex-start;gap:12px;padding:16px 24px;overflow-x:auto}.kb-column{flex:0 0 280px;max-height:100%;display:flex;flex-direction:column;background:#eceff3;border-radius:12px;padding:8px}.kb-column.placeholder{opacity:.35}.kb-column.overlay{box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:-webkit-grabbing;cursor:grabbing}.kb-column-head{display:flex;align-items:center;gap:6px;padding:4px 4px 8px;cursor:-webkit-grab;cursor:grab;touch-action:none}.kb-column-head h2{flex:1 1;margin:0;font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-column-head .kb-input{flex:1 1}.kb-count{color:var(--muted);font-size:12px;font-weight:600}.kb-column-head .kb-iconbtn{visibility:hidden}.kb-column-head:hover .kb-iconbtn{visibility:visible}.kb-cards{flex:1 1;min-height:8px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:2px}.kb-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 10px;box-shadow:0 1px 1px rgba(0,0,0,.04);cursor:pointer;touch-action:none}.kb-card:hover{border-color:#c8d0dc}.kb-card.placeholder{opacity:.35}.kb-card.overlay{cursor:-webkit-grabbing;cursor:grabbing;transform:rotate(2deg);box-shadow:0 10px 24px rgba(0,0,0,.18)}.kb-label{display:block;width:40px;height:6px;border-radius:3px;margin-bottom:6px}.kb-card-title{font-size:14px;line-height:1.35;overflow-wrap:anywhere;white-space:pre-wrap}.kb-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.kb-badge{font-size:11.5px;color:var(--muted);padding:1px 6px;border-radius:4px}.kb-badge.overdue{background:var(--bad-bg);color:var(--bad);font-weight:600}.kb-badge.today{background:#fff6e0;color:var(--warn);font-weight:600}.kb-badge.complete{background:var(--good-bg);color:var(--good)}.kb-add{margin-top:6px;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;text-align:left;cursor:pointer}.kb-add:hover{background:#dfe3e9;color:var(--text)}.kb-add-form{margin-top:6px}.kb-add-actions{display:flex;gap:8px;align-items:center;margin-top:6px}.kb-add-actions .kb-input{flex:1 1}.kb-input{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;resize:vertical}.kb-input:focus{outline:none;border-color:var(--accent)}.kb-iconbtn{width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;line-height:1;cursor:pointer;flex-shrink:0}.kb-iconbtn:hover{background:var(--info-bg);color:var(--info)}.kb-iconbtn.danger:hover{background:var(--bad-bg);color:var(--bad)}.kb-new-column{flex:0 0 260px}.kb-new-column .kb-input{background:rgba(255,255,255,.6);padding:9px 10px}.kb-panel{position:fixed;top:0;right:0;bottom:0;z-index:31;width:min(520px,100vw);display:flex;flex-direction:column;background:var(--panel);box-shadow:-8px 0 24px rgba(0,0,0,.14);animation:slide-in .2s ease-out}.kb-panel-head{display:flex;align-items:flex-start;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.kb-title-input{flex:1 1;border:1px solid transparent;border-radius:8px;padding:4px 6px;font:inherit;font-size:18px;font-weight:650;resize:none;field-sizing:content;background:transparent;color:var(--text)}.kb-title-input:hover{border-color:var(--border)}.kb-title-input:focus{outline:none;border-color:var(--accent);background:var(--panel)}.kb-panel-body{flex:1 1;overflow-y:auto;padding:16px 20px 40px}.kb-panel-body h3{display:flex;align-items:center;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 0 8px}.kb-panel-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.kb-panel-row .field{margin:0}.kb-description{min-height:120px}.kb-colors{display:flex;gap:8px}.kb-color{width:36px;height:24px;border:2px solid transparent;border-radius:6px;cursor:pointer}.kb-color.active{border-color:var(--text);box-shadow:inset 0 0 0 2px var(--panel)}.kb-progress{height:6px;border-radius:3px;background:#eceff3;overflow:hidden;margin-bottom:8px}.kb-progress span{display:block;height:100%;background:var(--good);transition:width .2s}.kb-checklist{list-style:none;margin:0;padding:0}.kb-checklist li{display:flex;align-items:center;gap:6px;padding:3px 0}.kb-checklist label{flex:1 1;display:flex;gap:8px;align-items:flex-start;cursor:pointer}.kb-checklist label input{margin-top:4px}.kb-checklist label.done{color:var(--muted);text-decoration:line-through}.kb-checklist .kb-iconbtn{visibility:hidden}.kb-checklist li:hover .kb-iconbtn{visibility:visible}.kb-confirm{display:flex;align-items:center;gap:6px;margin:0 2px 8px;padding:6px 8px;border-radius:8px;background:var(--bad-bg);color:var(--bad);font-size:13px;font-weight:600}.kb-confirm span{flex:1 1}.kb-confirm-yes{padding:3px 10px;border:0;border-radius:6px;background:var(--bad);color:#fff;font:inherit;cursor:pointer}.kb-confirm-card{margin:28px 0 0}.kb-delete{margin-top:28px;padding:7px 12px;border:1px solid #f3c1bd;border-radius:8px;background:var(--bad-bg);color:var(--bad);font:inherit;font-weight:600;cursor:pointer}@media (max-width:900px){.kb-page{height:auto;min-height:100dvh}.kb-board{padding:12px 16px}.kb-column{flex-basis:85vw;max-height:75dvh}}