/* «Доска» и режим фокуса (app/kanban.js). Стиль — виджеты Apple (правка владельца 31.10, образец
   ~/pf-private/ceo-home/apple-ref/2026-10-31-widgets.webp): плитки с крупным скруглением и воздухом, на плитке одна мысль крупно,
   одна короткая подпись, иконка в углу, минимум текста. Токены — styles.css (дизайн C), без эмодзи, иконки Lucide. */
.kb{--tile-r:22px;--tile-bg:var(--bg-2)}
.kb .bhead.kb-h{padding:4px 16px 8px}
.kb .bhead.kb-h h2{font-size:26px;font-weight:600;letter-spacing:-.01em}
.kb .bhead.kb-h .sub{font-size:15px;color:var(--text-3)}
.kb .oh-chips{border-bottom:0;padding-bottom:6px}
.kb .board{gap:20px;padding:0 16px 96px}
.kb .bcol{min-width:220px;border-left:0;padding:8px 0 0}
.kb .bcol-h{padding:2px 2px 12px}
.kb .bcol-h h3{font-size:19px;font-weight:600}
.kb .bcol-h .n{font:500 15px var(--mono);color:var(--text-4)}
.kb .bcol-b{gap:0}
.kb-g{margin:0 0 18px}
.kb-g h4{display:flex;align-items:baseline;gap:8px;margin:0 2px 10px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4)}
.kb-g h4 em{font:500 13px var(--mono);font-style:normal}
.kb-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.kb-c{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-height:132px;padding:16px 16px 14px;
  border-radius:var(--tile-r);background:var(--tile-bg);cursor:pointer;transition:transform var(--t-fast),background var(--t-fast)}
.kb-c:hover{background:var(--bg-3)}
.kb-c:active{transform:scale(.98)}
.kb-c:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.kb-ic{position:absolute;top:14px;right:14px;color:var(--text-4)}
.kb-ic svg{width:16px;height:16px}
.kb-t{padding-right:20px;font-size:17px;font-weight:600;line-height:1.25;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kb-l{align-self:flex-start;font-size:14px;font-weight:500;color:var(--text-3)}
.kb-l.crit{color:var(--late)} .kb-l.warn{color:var(--warn)} .kb-l.ok{color:var(--ok)} .kb-l.info{color:var(--info)}
.kb-c.rv{background:var(--warn-bg)}
.kb-c.done .kb-t{color:var(--text-3)}
.kb-more{width:100%;height:44px;margin-top:10px;border-radius:var(--tile-r);background:var(--tile-bg);font-size:15px;color:var(--text-3)}
.kb-more:hover{background:var(--bg-3)}
.kb-note{flex:none;display:flex;gap:8px;align-items:center;margin:4px 16px 8px;font-size:14px;color:var(--text-4)}
.kb-note svg{width:16px;height:16px;flex:none}
@media (max-width:599px){.kb-tiles{grid-template-columns:1fr}.kb-c{min-height:112px}.kb-t{font-size:18px}}
@media (max-width:899px){
  .kb .oh-tabs{border-radius:14px;margin:6px 16px 8px}
  .kb .oh-tabs button{height:40px;font-size:14px}
  .kb .board .bcol{padding:4px 16px 0}
  .kb .board{padding:0 0 96px}
  .kb .board[data-tab=new] .bcol[data-tab=new],.kb .board[data-tab=work] .bcol[data-tab=work],
  .kb .board[data-tab=review] .bcol[data-tab=review],.kb .board[data-tab=done] .bcol[data-tab=done]{display:flex}
}

/* ── режим фокуса: поверх всего (выше окон 31, ниже плеера 35 — правило YouTube: ничего поверх видео) ── */
body.kf-on .shell{visibility:hidden}
.kf [hidden]{display:none!important}
.kf{--tile-r:22px;position:fixed;inset:0;z-index:32;background:var(--page);color:var(--text);display:flex;flex-direction:column;padding-bottom:var(--safe-b)}
.kf-h{flex:none;display:flex;align-items:center;gap:10px;padding:12px 16px}
.kf-h .sp{flex:1}
.kf-mark{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:17px;color:var(--accent-ink)}
.kf-mark svg{width:18px;height:18px}
.kf-pomo{display:inline-flex;align-items:baseline;gap:8px}
.kf-pomo b{font:500 26px var(--mono);color:var(--text);letter-spacing:-.02em}
.kf-pomo span{font-size:14px;color:var(--text-4)}
.kf-h .ib{width:40px;height:40px;border-radius:50%}
.kf-h .ib svg{width:18px;height:18px}
.kf-h .kf-x{background:var(--bg-2)}
.kf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:999px;background:var(--bg-2);
  color:var(--text);font-size:16px;font-weight:600;white-space:nowrap;text-decoration:none;max-width:100%}
.kf-btn span{overflow:hidden;text-overflow:ellipsis}
.kf-btn svg{width:18px;height:18px;flex:none}
.kf-btn:hover{background:var(--bg-3)}
.kf-btn:disabled{opacity:.55;cursor:default}
.kf-btn.pri{background:var(--fill);color:var(--on-fill)}
.kf-btn.pri:hover{background:var(--fill-hover)}
.kf-btn.ok{background:var(--ok);color:var(--on-accent)}
.kf-brain{min-height:40px;padding:0 16px;font-size:14px;color:var(--warn);background:var(--warn-bg)}
.kf-set{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0 16px 8px;padding:12px 16px;border-radius:16px;background:var(--bg-2);font-size:15px;color:var(--text-3)}
.kf-set input{width:64px;height:36px;margin:0 6px 0 8px;padding:0 8px;border:0;border-radius:10px;background:var(--bg);font-size:16px}
.kf-b{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.kf-in{max-width:720px;margin:0 auto;padding:28px 16px 56px;display:flex;flex-direction:column;gap:22px}
.kf-lbl{align-self:flex-start;font-size:15px;font-weight:500;color:var(--text-3)}
.kf-lbl.warn{color:var(--warn)} .kf-lbl.info{color:var(--info)} .kf-lbl.ok{color:var(--ok)}
.kf-t{margin-top:-12px;font-size:34px;font-weight:600;line-height:1.18;letter-spacing:-.015em;color:var(--text);overflow-wrap:anywhere}
.kf-wait,.kf-rv{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:18px 20px;border-radius:var(--tile-r)}
.kf-wait{background:var(--ai-bg)} .kf-rv{background:var(--warn-bg)}
.kf-wait > div,.kf-rv > div{flex:1 1 200px;display:flex;flex-direction:column;gap:2px}
.kf-wait b,.kf-rv b{font-size:19px;font-weight:600}
.kf-wait b{color:var(--ai)} .kf-rv b{color:var(--warn)}
.kf-wait span,.kf-rv span{font-size:16px;color:var(--text-2)}
.kf-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kf-tile{display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-height:150px;padding:18px;border-radius:var(--tile-r);background:var(--bg-2);min-width:0}
.kf-tile b{font:500 44px var(--mono);letter-spacing:-.03em;color:var(--text);line-height:1}
.kf-tile span{font-size:14px;color:var(--text-3);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kf-tile.pg b{color:var(--ok)} .kf-tile.rv b{color:var(--warn)} .kf-tile.p1 b{color:var(--late)}
.kf-links{display:flex;flex-wrap:wrap;gap:10px}
.kf-form{display:flex;align-items:flex-end;gap:10px;padding:8px 8px 8px 18px;border-radius:var(--tile-r);background:var(--bg-2)}
.kf-form textarea{flex:1;min-height:48px;max-height:240px;padding:12px 0;border:0;background:transparent;resize:vertical;font-size:17px;line-height:1.4;outline:none}
.kf-send{flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--fill);color:var(--on-fill)}
.kf-send svg{width:20px;height:20px}
.kf-send:disabled{opacity:.55}
.kf-acts{display:flex;flex-wrap:wrap;gap:10px}
.kf-more{border-radius:var(--tile-r);background:var(--bg-2)}
.kf-more summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px;padding:0 20px;cursor:pointer;font-size:16px;font-weight:600;color:var(--text-2)}
.kf-more summary::-webkit-details-marker{display:none}
.kf-more summary svg{width:18px;height:18px;color:var(--text-4);transition:transform var(--t-fast)}
.kf-more[open] summary svg{transform:rotate(180deg)}
.kf-more-b{padding:0 20px 18px}
.kf-x{font-size:16px;color:var(--text-2);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.kf-hist{list-style:none;display:flex;flex-direction:column;border-left:2px solid var(--line);margin-left:4px}
.kf-hist li{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;padding:8px 0 10px 14px;position:relative}
.kf-hist li::before{content:"";position:absolute;left:-5px;top:13px;width:8px;height:8px;border-radius:50%;background:var(--line-strong)}
.kf-hist li.me::before{background:var(--accent)}
.kf-hist li.k-status::before{background:var(--warn)} .kf-hist li.k-progress::before{background:var(--ok)}
.kf-hist .w{font:500 13px var(--mono);color:var(--text-4);white-space:nowrap}
.kf-hist .who{font-size:13px;font-weight:600;color:var(--text-3)}
.kf-hist .tx{grid-column:1 / -1;font-size:15px;color:var(--text-2);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.kf-hist .tx .ui-pill{margin-left:8px;vertical-align:1px}
.kf-hist li.k-sys .tx{color:var(--text-4)}
/* «Фокусник»: одна следующая задача */
.kf-next{max-width:560px;padding-top:10vh;gap:18px}
.kf-nx-k{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--accent-ink)}
.kf-nx-k svg{width:18px;height:18px}
.kf-nx-h{font-size:20px;font-weight:500;color:var(--text-3)}
.kf-nx-c{display:flex;flex-direction:column;gap:22px;min-height:200px;justify-content:space-between;padding:24px;border-radius:28px;background:var(--bg-2)}
.kf-nx-c .kf-t{margin:0;font-size:28px}
.kf-next .kf-none{font-size:16px;color:var(--text-3);line-height:1.45}
/* пауза: тёмный экран и одна фраза; других задач нет; плеер (z 35) остаётся виден поверх */
.kf-rest{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:24px 16px;background:rgb(4 5 6 / .94);color:#E6EAED}
.kf-rest-in{max-width:460px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.kf-rest h2{font-size:44px;font-weight:600}
.kf-rest p{font-size:22px;color:#C3CAD0;line-height:1.4}
.kf-rest-t{font:500 18px var(--mono);color:#9AA3AB;margin-top:6px}
.kf-rest-a{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px}
.kf-rest .kf-btn:not(.pri){background:#191D20;color:#C3CAD0}
@media (max-width:599px){
  .kf-h{flex-wrap:wrap;padding:10px 12px}
  .kf-brain{order:5;flex:1 1 100%}
  .kf-t{font-size:26px}
  .kf-in{padding:16px 16px 48px;gap:18px}
  .kf-tiles{gap:8px}
  .kf-tile{min-height:112px;padding:14px;border-radius:18px}
  .kf-tile b{font-size:30px}
  .kf-tile span{font-size:13px}
  .kf-acts .kf-btn{flex:1 1 100%}
  .kf-nx-c .kf-t{font-size:24px}
}

/* нижняя панель телефона: все вкладки в одну строку (было 2 колонки — третья и дальше уходили под край) */
.tabbar{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
.tabbar .tb .pill{width:52px}
