/* PO-Harness — доска задач ИИ-агентов. Палитра и приёмы — как у «Инбокса» (poh-widget-inbox). */
:root{
  --bg-base:#ffffff; --hover:rgba(38,49,72,.06); --col:rgba(38,49,72,.035); --border:rgba(0,0,0,.10);
  --label:#0f1115; --label-2:#61666b; --label-3:#81858c; --caption:#adb2b8;
  --info:#4176e6; --error:#ec1313; --warning:#b07614; --ok:#1f8a4c; --page:#ffffff; --brand:#e30611;
  --help-bg:rgba(236,19,19,.07); --review-bg:rgba(65,118,230,.08);
  --agent:#4176e6; --dialog:#b5379b;
}
html.theme-dark{
  --bg-base:#17181c; --hover:rgba(255,255,255,.07); --col:rgba(255,255,255,.035); --border:rgba(255,255,255,.12);
  --label:#e8eaed; --label-2:#a8adb4; --label-3:#878c93; --caption:#6b7078; --page:#17181c;
  --info:#6f9cf0; --error:#ff6b6b; --warning:#e0b04f; --ok:#4cc38a;
  --help-bg:rgba(255,107,107,.12); --review-bg:rgba(111,156,240,.13); --agent:#6f9cf0; --dialog:#e07bcb; color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--page);color:var(--label);font:14px/1.4 -apple-system,system-ui,"Segoe UI","Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column}
button{font:inherit;color:inherit}
svg{display:block;flex-shrink:0}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--info);outline-offset:2px}

#status{font-size:12.5px;color:var(--label-3);margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}
#status.err{color:var(--error)}
.jump{border:none;background:none;padding:0;color:var(--error);cursor:pointer;font-size:inherit;text-decoration:underline dotted}
.jump[data-key="review"]{color:var(--info)}
.ico{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--label-3);border-radius:8px;cursor:pointer}
.ico:hover{background:var(--hover);color:var(--label)}

main{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}
.tabs{display:none;gap:6px;padding:8px 12px 2px;overflow-x:auto}
.pill{padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--label-2);font-size:13px;cursor:pointer;white-space:nowrap}
.pill[aria-pressed="true"]{background:var(--label);border-color:var(--label);color:var(--bg-base)}
.pill .n{opacity:.6;margin-left:4px;font-variant-numeric:tabular-nums}
.pill[data-key="blocked"] .n{color:var(--error);opacity:1}

.board{flex:1;min-height:0;overflow:auto;padding:0 12px 16px;position:relative}
.colheads,.lane-row{display:grid;grid-template-columns:var(--cols,repeat(8,minmax(236px,1fr)));gap:10px;min-width:min-content}
.colheads{position:sticky;top:0;z-index:2;background:var(--page);padding:10px 0 6px}
.colhead{display:flex;align-items:baseline;gap:6px;padding:0 4px;white-space:nowrap;overflow:hidden}
.colhead.none{opacity:.45}
.col-title{font-size:12.5px;font-weight:600;color:var(--label-2)}
.col-count{font-size:12px;color:var(--caption);font-variant-numeric:tabular-nums}
.colhead[data-key="blocked"] .col-title{color:var(--error)}
.lane{margin-top:6px}
.lane-head{position:sticky;left:0;display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;padding:6px 10px 6px 6px;margin:0 0 6px;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left}
.lane-head:hover{background:var(--hover)}
.chev{color:var(--label-3);transition:transform .15s}
.lane-head[aria-expanded="false"] .chev{transform:rotate(-90deg)}
.lane-id{font-size:12px;font-weight:700;letter-spacing:.02em;padding:1px 8px;border-radius:999px;background:var(--label);color:var(--bg-base)}
.lane-id.ini{background:var(--hover);color:var(--label-2);font-weight:600}
.lane-title{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}
.lane-n{font-size:12px;color:var(--caption);display:inline-flex;gap:6px;align-items:center}
.lane-n .hot{font-style:normal;background:var(--error);color:#fff;border-radius:999px;padding:0 6px;font-size:11px;font-weight:600}
.lane.folded .lane-row{display:none}
.lane-row{align-items:start;padding-bottom:10px;border-bottom:1px solid var(--border)}
.cell{display:flex;flex-direction:column;gap:8px;min-height:12px;border-radius:10px;min-width:0}
.cell:not(:empty){background:var(--col);padding:8px}
.empty{font-size:12px;color:var(--caption);padding:6px 4px}
.board-empty{padding:40px 12px;text-align:center}

.card{display:flex;flex-direction:column;gap:6px;width:100%;padding:10px 11px;border:1px solid var(--border);border-radius:10px;background:var(--bg-base);text-align:left;cursor:pointer}
.card:hover{border-color:var(--label-3)}
.card[data-status="blocked"]{background:var(--help-bg);border-color:transparent}
.card[data-status="review"]{background:var(--review-bg);border-color:transparent}
.card{position:relative;padding-left:14px}
.card::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--agent)}
.card[data-kind="dialog"]::before{background:var(--dialog)}
.card[data-kind="owner"]::before{background:var(--warning)}
.card[data-kind="dialog"]{border-style:dashed}
.card-kind{display:flex;gap:5px;align-items:center;font-size:11px;letter-spacing:.03em;color:var(--label-3)}
.card[data-kind="dialog"] .card-kind{color:var(--dialog)}
.card-title{font-size:13.5px;line-height:1.35;overflow-wrap:anywhere}
.card-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--caption);flex-wrap:wrap}
.who{color:var(--label-2)}
.prio{color:var(--warning);font-weight:600}
.q{font-size:12.5px;color:var(--error);line-height:1.35;overflow-wrap:anywhere}
.run{font-size:12px;color:var(--label-2);line-height:1.35;overflow-wrap:anywhere}
.ini-progress{font-size:12px;font-weight:600;color:var(--info);line-height:1.35}   /* N из M готово — карточка инициативы (t_7d2ad950) */
.ini-progress.full{color:var(--ok)}                                                /* все подзадачи готовы */
.goal{margin:2px 0 6px}                                                             /* цель — экран инициативы */
.wait{font-size:12px;color:var(--label-2);line-height:1.35;overflow-wrap:anywhere}
.self-closed{font-size:11.5px;color:var(--warning);border:1px solid var(--warning);border-radius:999px;padding:0 6px;white-space:nowrap}
.dup{font-size:11.5px;color:var(--label-2);border:1px solid var(--border);border-radius:999px;padding:0 6px;white-space:nowrap}
.thread-mark{margin-left:auto;color:var(--label-3)}
@keyframes pulse{50%{opacity:.35}}

@media (max-width:720px){
  #status{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 40px);text-align:left;margin-left:0;flex:1}
  /* «нет связи — переподключаюсь» и отказы — целиком: своей строкой во всю ширину шапки, а не обрезанные «…» */
  #status.err{white-space:normal;line-height:1.3;order:2;flex:1 1 100%;max-width:none}
  .tabs{display:flex}
}

.sheet{position:absolute;inset:0;background:var(--bg-base);display:flex;flex-direction:column;z-index:5}
.detail-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}
.detail-head .sp{flex:1}
.badge{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--hover);color:var(--label-2);white-space:nowrap}
.badge[data-status="blocked"]{background:var(--help-bg);color:var(--error)}
.badge[data-status="review"]{background:var(--review-bg);color:var(--info)}
.badge[data-status="done"]{color:var(--ok)}
.detail-body{flex:1;overflow-y:auto;padding:14px 18px 28px;display:flex;flex-direction:column;gap:16px;min-height:0;max-width:760px;width:100%;margin:0 auto}
.detail-title{font-size:20px;font-weight:700;line-height:1.3;overflow-wrap:anywhere;margin:0}
.facts{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--label-3)}
.facts b{color:var(--label-2);font-weight:500}
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;border:1px solid var(--info);color:var(--info);background:transparent;cursor:pointer;font-size:13px;text-decoration:none;align-self:flex-start}
.btn:hover{background:var(--review-bg)}
.btn.primary{background:var(--info);color:#fff}
.btn.primary:hover{filter:brightness(1.08);background:var(--info)}
.btn.ghost{border-color:var(--border);color:var(--label-2)}
.btn[disabled]{opacity:.55;cursor:default}
.decide{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--info);background:var(--review-bg)}
.decide-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.decide .hint{flex:1 1 220px}
.rework{display:flex;flex-direction:column;gap:8px}
.rework textarea{font:inherit;font-size:16px;color:var(--label);background:var(--bg-base);border:1px solid var(--border);border-radius:8px;padding:8px 10px;resize:vertical;outline:none}
.rework textarea:focus{border-color:var(--info)}
.box{border-radius:12px;padding:12px 14px;background:var(--hover);display:flex;flex-direction:column;gap:6px}
.box.help{background:var(--help-bg)}
.box.feed-box{background:transparent;padding:4px 0 0}
/* с лентой поле ввода прилипает к низу карточки (position: sticky; bottom: 0) — нижний отступ прокрутки поднимал бы
   его над краем экрана, и под полем была бы видна лента (#24); свой нижний отступ у поля — в ленте */
.detail-body.with-feed{padding-bottom:0}
.feed-host{display:block;min-width:0}
.box-title{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--label-3)}
.box.help .box-title{color:var(--error)}
.box.help.stopped{background:rgba(176,118,20,.1)}
.box.help.stopped .box-title{color:var(--warning)}
.text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.55}
.hint{font-size:12.5px;color:var(--label-3)}
.list{display:flex;flex-direction:column;gap:8px}
.item{display:flex;flex-direction:column;gap:2px;padding-left:12px;border-left:2px solid var(--border)}
.item .when{font-size:12px;color:var(--caption)}
.item .what{font-size:13.5px;white-space:pre-wrap;overflow-wrap:anywhere}
.timeline{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:12.5px}
.timeline .when{color:var(--caption);font-variant-numeric:tabular-nums;white-space:nowrap}
.sub{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;color:inherit;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--bg-base);cursor:pointer}
.sub:hover{border-color:var(--info)}
.sub .what{flex:1;min-width:0;font-size:13.5px;overflow-wrap:anywhere}
.sub .kind{font-size:16px}
.mono{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--label-3)}

#login{padding:20px;display:flex;flex-direction:column;gap:10px;align-items:center}
#login iframe{width:100%;max-width:420px;height:520px;border:1px solid var(--border);border-radius:12px;background:#fff}
#login-popup{font:inherit;padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:transparent;color:inherit;cursor:pointer}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}


/* шапка: ☰ слева, как в /sprints; всё остальное — в меню */
.burger{width:34px;height:34px;color:var(--label-2)}
#status{display:flex;gap:6px;align-items:center;overflow:hidden;white-space:nowrap}
#status .upd{overflow:hidden;text-overflow:ellipsis}
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:20}
.menu{position:fixed;left:0;top:0;bottom:0;width:min(320px,88vw);z-index:21;background:var(--bg-base);border-right:1px solid var(--border);box-shadow:0 0 30px rgba(0,0,0,.2);display:flex;flex-direction:column;padding:12px 14px 20px;gap:14px;overflow-y:auto}
.menu-head{display:flex;align-items:center;gap:8px;font-size:16px}
.menu-head .sp{flex:1}
.m-group{display:flex;flex-direction:column;gap:6px}
.m-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--label-3)}
.seg{display:flex;padding:2px;border-radius:999px;background:var(--hover)}
.seg button{flex:1;border:none;background:transparent;padding:6px 10px;border-radius:999px;font-size:13px;color:var(--label-2);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--bg-base);color:var(--label);box-shadow:0 1px 2px rgba(0,0,0,.14)}
.m-list{display:flex;flex-direction:column;gap:2px}
.m-item{display:flex;align-items:center;gap:8px;border:none;background:transparent;padding:7px 10px;border-radius:8px;font-size:13.5px;color:var(--label-2);cursor:pointer;text-align:left}
.m-item em{margin-left:auto;font-style:normal;color:var(--caption);font-variant-numeric:tabular-nums;font-size:12px}
.m-item:hover{background:var(--hover)}
.m-item[aria-pressed="true"]{background:var(--hover);color:var(--label);font-weight:600}
.m-item .dot{width:7px;height:7px;border-radius:50%;background:var(--caption)}
.m-item .dot.run{background:var(--ok)}
.m-item .dot.bad{background:var(--error)}
.m-legend{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--label-2)}
.m-legend div{display:flex;align-items:center;gap:8px}
.key{width:3px;height:14px;border-radius:3px;background:var(--agent);flex-shrink:0}
.key[data-kind="dialog"]{background:var(--dialog)}
.key[data-kind="owner"]{background:var(--warning)}
@media (max-width:720px){
  .board{padding:0 12px 16px}
  .colheads{display:none}
  .lane-row{display:block}
  .cell{display:none;background:transparent;padding:0}
  .cell[data-active]{display:flex}
  .lane:not([data-has-tab]){display:none}
  .lane-row{border-bottom:none;padding-bottom:4px}
}

/* бесшовная шапка (как в отчётах): без линий и плашек, ☰ · вкладки · статус · обновить — плитками на фоне страницы */
:root{--tile:rgba(38,49,72,.06);--tile-shadow:0 1px 2px rgba(0,0,0,.08)}
html.theme-dark{--tile:rgba(255,255,255,.07);--tile-shadow:none}
header.top{display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top)) 12px 8px;border:0;background:var(--page)}
.tile{display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 10px;border:0;border-radius:10px;background:var(--tile);box-shadow:var(--tile-shadow);color:var(--label);cursor:pointer;font-size:16px}
.tile:hover:not([disabled]){background:var(--hover)}.tile[disabled]{opacity:.4;cursor:default}
header.top .burger{width:36px}
.views{display:flex;gap:2px;padding:3px;border-radius:12px;background:var(--tile);box-shadow:var(--tile-shadow)}
.view-btn{border:0;background:transparent;min-height:30px;padding:0 14px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--label-2);cursor:pointer;white-space:nowrap}
.view-btn[aria-selected="true"]{background:var(--label);color:var(--bg-base)}
header.top #status{margin-left:auto;font-size:12.5px}
.colheads{background:var(--page)}

/* «Сутки» */
.daily{flex:1;min-height:0;overflow:auto;padding:4px 12px 28px;display:flex;flex-direction:column;gap:14px;max-width:1100px;width:100%;margin:0 auto}
.dnav{display:flex;align-items:center;gap:8px}
.dwin{display:flex;flex-direction:column;line-height:1.25;flex:1;min-width:0}
.dwin b{font-size:15px}.dwin span{font-size:12.5px;color:var(--label-3)}
.chipbtn{border:0;border-radius:999px;padding:6px 12px;background:var(--label);color:var(--bg-base);font-size:12.5px;cursor:pointer}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:var(--tile);box-shadow:var(--tile-shadow)}
.kpi b{font-size:26px;line-height:1.1;font-variant-numeric:tabular-nums}.kpi span{font-size:12px;color:var(--label-2)}
.kpi[data-k="failed"] b,.kpi[data-k="blocked"] b{color:var(--error)}
.nowbar{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;color:var(--label-2)}
.gojump{border:0;background:none;padding:0;color:var(--info);cursor:pointer;font-size:inherit;text-decoration:underline dotted}
.rv{display:flex;flex-direction:column;gap:2px}
.rv h3,.dt h3{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--label-3);margin:6px 0 4px;display:flex;gap:8px;font-weight:600}
.rv.bad h3{color:var(--error)}.rv h3 span{color:var(--caption)}
.rv-row{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:10px;cursor:pointer}
.rv-row:hover{background:var(--hover)}
.rv-t{flex:1;min-width:0;font-size:13.5px;overflow-wrap:anywhere}.rv-m{font-size:12px;color:var(--caption);white-space:nowrap}
.dt-scroll{overflow-x:auto}
.dt table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.dt th{font-weight:500;color:var(--label-3);text-align:right;padding:6px 8px;font-size:12px}
.dt th:first-child,.dt td:first-child{text-align:left}
.dt td{text-align:right;padding:8px;border-top:1px solid var(--border)}
.dt td.bad{color:var(--error);font-weight:600}
@media (max-width:720px){.rv-m{display:none}header.top #status .upd{display:none}}

.card-wrap{position:relative}
.card-wrap .card{padding-bottom:34px}
.card-close{position:absolute;right:8px;bottom:7px;z-index:1;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-base);color:var(--label-2);font-size:12px;cursor:pointer;min-height:26px}
.card-close:hover{border-color:var(--ok);color:var(--ok)}
.close-dlg{border:1px solid var(--border);border-radius:14px;padding:16px;background:var(--bg-base);color:inherit;width:min(440px,calc(100vw - 32px))}
.close-dlg::backdrop{background:rgba(0,0,0,.35)}
.close-dlg form{display:flex;flex-direction:column;gap:10px}
.close-dlg textarea{font:16px/1.4 inherit;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--bg-base);color:inherit}
