/* life-hub: Пульт и Жизнь. Стили вынесены из терминала (Polymarket_dashboard/terminal) 24.09.2026,
   торговые панели и финансы остались там. */
:root{
  --bg:#ffffff; --bg2:#f8fafc; --bg3:#f1f5f9;
  --line:#e5e7eb; --line2:#eef2f7;
  --text:#1f2937; --muted:#64748b; --faint:#94a3b8;
  --green:#16a34a; --greenbg:rgba(38,166,154,.14);
  --red:#dc2626; --redbg:rgba(239,83,80,.14);
  --blue:#2563eb;
  --r:8px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif;
  color:var(--text); background:var(--bg2); font-size:13px;
  -webkit-font-smoothing:antialiased;
}
b{font-weight:700}
.muted{color:var(--muted)} .faint{color:var(--faint)}
button{font-family:inherit;cursor:pointer}
input,select{font-family:inherit;color:var(--text)}

/* ---------- TOPBAR ---------- */
.topbar{
  display:flex; align-items:center; gap:16px;
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r);
  padding:0 14px;
}
.tb-left{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0}
.logo{font-weight:800;letter-spacing:.3px;color:var(--blue);white-space:nowrap}
.grow{flex:1}
.icon-btn{border:1px solid var(--line);background:var(--bg2);border-radius:6px;width:28px;height:26px;color:var(--muted);font-size:13px}
.icon-btn:hover{background:var(--bg3)}
/* toast */
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%) translateY(20px);
  background:#111827;color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;
  opacity:0;pointer-events:none;transition:.2s;z-index:99;max-width:80vw}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--red)} .toast.ok{background:var(--green)}
.mode-switch{display:inline-flex;background:var(--bg3);border-radius:7px;padding:2px;gap:2px;flex:0 0 auto}
.mode-switch button{border:0;background:transparent;color:var(--muted);font-weight:700;font-size:12px;
  padding:5px 12px;border-radius:5px}
.mode-switch button.active{background:var(--bg);color:var(--blue);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.fin-tabs{display:flex;align-items:center;gap:4px;background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r);padding:6px 8px}
.fin-tabs .grow{flex:1 1 auto}
.fin-tabs > button:not(.icon-btn){border:0;background:transparent;color:var(--muted);font-weight:700;
  font-size:12.5px;padding:6px 14px;border-radius:6px}
.fin-tabs > button.active{background:var(--bg3);color:var(--text)}
.fin-body{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px}
.badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;
  background:var(--bg3);color:var(--muted);white-space:nowrap}
.badge.active{background:rgba(16,185,129,.14);color:var(--green)}
.badge.paused{background:rgba(245,158,11,.16);color:#b45309}
.badge.archived{background:var(--bg3);color:var(--faint)}
.badge.done{background:rgba(59,130,246,.14);color:var(--blue)}
.badge.warn{background:rgba(239,68,68,.12);color:var(--red)}
/* stat row */
.fin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.stat{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px}
.stat .lbl{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.3px}
.stat .val{font-size:20px;font-weight:800;margin-top:3px}
.stat .val.pos{color:var(--green)} .stat .val.neg{color:var(--red)}
.stat .sub{color:var(--muted);font-size:11.5px;margin-top:2px}

/* cards grid */
.fin-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:900px){.fin-cols{grid-template-columns:1fr}}
.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.card h3{margin:0 0 8px;font-size:12.5px;color:var(--muted);font-weight:700;
  text-transform:uppercase;letter-spacing:.3px}
.badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:20px;background:var(--bg3);color:var(--muted)}
.badge.warn{background:var(--redbg);color:var(--red)}
.badge.ok{background:var(--greenbg);color:var(--green)}
.fin-empty{color:var(--faint);padding:24px;text-align:center;font-size:13px}
.life-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:8px;align-items:start}
.life-grid .card.wide{grid-column:1 / -1}
.life-grid.inner{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.life-list{display:flex;flex-direction:column;gap:1px}
.chk{display:flex;align-items:flex-start;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer;
  font-size:12.5px;line-height:1.35}
.chk:hover{background:var(--bg3)}
.chk input{margin:2px 0 0;accent-color:var(--green);flex:0 0 auto}
.chk > span{flex:1 1 auto}
.chk.on > span{color:var(--muted);text-decoration:line-through}
.chk .del{margin-left:auto;border:0;background:transparent;color:var(--faint);font-size:14px;padding:0 4px;line-height:1}
.chk .del:hover{color:var(--red)}
.tag{flex:0 0 auto;font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px;
  background:var(--bg3);color:var(--muted);white-space:nowrap}
.tag.warn{background:var(--redbg);color:var(--red)}
.life-view input,.life-view select,.life-view textarea{border:1px solid var(--line);border-radius:6px;
  background:var(--bg2);color:var(--text);font-size:12.5px;padding:5px 8px;font-family:inherit}
.life-view input:focus,.life-view select:focus,.life-view textarea:focus{outline:none;border-color:var(--blue);background:#fff}
.life-view .btn{border:1px solid var(--line);border-radius:6px;background:var(--bg3);color:var(--text);
  font-size:12.5px;font-weight:700;padding:5px 12px}
.life-view .btn:hover{border-color:var(--blue);color:var(--blue)}
.life-add{display:flex;gap:6px;margin-top:8px}
.life-add input{flex:1 1 auto;min-width:0}
.life-hint{font-size:11.5px;color:var(--muted);background:var(--bg3);border-radius:6px;padding:6px 9px;margin-bottom:8px}
.life-rows .row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.life-rows .row:last-child{border-bottom:0}
.life-rows .row > span:first-child{color:var(--muted);flex:1 1 auto}
.life-rows .row b.warn{color:var(--red)}
.row.wheel{display:grid;grid-template-columns:1fr 90px 26px;align-items:center}
.lbar{height:5px;border-radius:99px;background:var(--bg3);overflow:hidden}
.lbar i{display:block;height:100%;background:var(--green);border-radius:99px}
.lbar.red i{background:var(--red)}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
.chip{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--bg3);color:var(--muted)}
.chip.ok{background:var(--greenbg);color:var(--green)}
.life-field{margin-bottom:11px}
.life-field .lbl,.hor .lbl,.life-grid.inner .lbl{font-size:10.5px;color:var(--faint);letter-spacing:.4px;
  text-transform:uppercase;font-weight:700;margin-bottom:3px}
.life-field p{margin:0;font-size:12.5px;white-space:pre-wrap;line-height:1.45}
.life-ul{margin:0;padding-left:16px;font-size:12.5px;line-height:1.5}
.life-ul li{margin:3px 0}
.hor{margin-bottom:10px}
.stage .badge{float:right;margin-left:8px}
.stage-period{font-size:11.5px;margin:-4px 0 7px}
.card.stage.warn{border-color:var(--red)}
.card.stage.done{opacity:.7}
.wchart{width:100%;height:70px;margin-bottom:8px}
.wchart polyline{fill:none;stroke:var(--green);stroke-width:2}
.wchart circle{fill:var(--green)}
.life-note-form{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.life-note{border-bottom:1px solid var(--line);padding:5px 0;font-size:12.5px}
.life-note:last-child{border-bottom:0}
.life-note p{margin:2px 0 0;white-space:pre-wrap}
.life-goal p{margin:0 0 8px;font-size:13px}
.stat .sub.warn,.stat .val.warn{color:var(--red)}
@media(max-width:820px){
  body.mode-life .topbar{padding:0 10px;gap:10px}
  .life-grid{grid-template-columns:1fr}
  .sub-add{display:flex}
  #lifeTabs,#finTabs{flex-wrap:wrap}
}
.row.hor-row{display:grid;grid-template-columns:54px 1fr;align-items:baseline;gap:8px}
.row.hor-row b{font-weight:600;white-space:pre-wrap}

/* Задачи: группы, подзадачи, план дня/недели/месяца */
.task{padding:3px 0;border-bottom:1px solid var(--line);}
.task:last-of-type{border-bottom:0}
.task > .chk{align-items:flex-start}
.subs{margin:0 0 2px 24px;border-left:2px solid var(--line);padding-left:6px}
.subs .chk{font-size:12px;padding:3px 6px}
.sub-add{display:none;margin:2px 0 6px 30px}
.sub-add input{font-size:11.5px;padding:3px 7px}
.sub-add .btn{padding:3px 9px;font-size:11.5px}
.task:hover .sub-add,.sub-add:focus-within{display:flex}
.task-note{margin:0 0 6px 30px;font-size:11px}
.pin{margin-left:auto;border:1px solid var(--line);background:var(--bg2);color:var(--muted);
  border-radius:99px;font-size:10.5px;font-weight:700;padding:1px 8px;white-space:nowrap}
.pin:hover{border-color:var(--blue);color:var(--blue)}
.pin.on{background:#e8eefc;border-color:#c7d7f7;color:var(--blue)}
.pins{margin-left:auto;display:inline-flex;gap:3px;flex:0 0 auto}
.pins .pin{margin-left:0}
.chk .pins + .del{margin-left:4px}
/* переключатели вида и фильтра над задачами */
.tasks-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:8px}
.seg{display:inline-flex;background:var(--bg3);border-radius:7px;padding:2px;gap:2px}
.seg button{border:0;background:transparent;color:var(--muted);font-weight:700;font-size:12px;padding:5px 11px;border-radius:5px;cursor:pointer}
.seg button.active{background:var(--bg);color:var(--blue);box-shadow:0 1px 2px rgba(0,0,0,.06)}
.seg .cnt{font-weight:600;color:var(--faint);font-size:11px;margin-left:2px}
/* таблица задач */
.task-table{width:100%;border-collapse:collapse;font-size:12.5px}
.task-table th{text-align:left;font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.3px;font-weight:700;padding:4px 6px;border-bottom:1px solid var(--line)}
.task-table td{padding:6px;border-bottom:1px solid var(--line2);vertical-align:top}
.task-table tr.done .c-text{color:var(--muted);text-decoration:line-through}
.task-table .c-chk{width:38px;white-space:nowrap}
.task-table td.c-chk{cursor:grab;touch-action:none}
.drag-h{display:inline-block;width:14px;margin-right:4px;padding:2px 0;color:var(--faint);cursor:grab;touch-action:none;user-select:none;
  font-size:13px;letter-spacing:-3px;vertical-align:top;line-height:18px}
.drag-h:hover{color:var(--blue)}
.task-table tr.dragging td{background:#e8eefc;opacity:.9}
.task-table tr.dragging .drag-h{cursor:grabbing}
.task-table .c-chk input{accent-color:var(--green);margin:2px 0 0}
.task-table .c-grp,.task-table .c-sub,.task-table .c-due{color:var(--muted);white-space:nowrap}
.task-table .c-plan{white-space:nowrap}
.task-table .c-plan .pins{margin-left:0}
.task-table .c-del .del{border:0;background:transparent;color:var(--faint);font-size:14px;cursor:pointer}
.task-table .c-del .del:hover{color:var(--red)}
.task-table .task-note{margin:2px 0 0}
.task-table + .life-add{margin-top:10px}
@media(max-width:820px){
  .task-table thead{display:none}
  .task-table tr{display:grid;grid-template-columns:40px 1fr auto;gap:2px 6px;padding:6px 0;border-bottom:1px solid var(--line2)}
  .task-table td{border:0;padding:0}
  .task-table .c-text{grid-column:2/3}
  .task-table .c-del{grid-column:3;grid-row:1}
  .task-table .c-grp,.task-table .c-sub,.task-table .c-due,.task-table .c-plan{grid-column:2/4;font-size:11.5px}
  .task-table .c-sub:empty{display:none}
}
.week-more{width:100%;margin-top:8px}
.newgroup{max-width:420px}
/* на телефоне наведения нет — поле «шаг» показываем всегда */
@media(max-width:820px){.sub-add{display:flex}}
.home-title{font-size:12.5px;padding-left:6px}
.home-view .lbl{font-size:10.5px;color:var(--faint);letter-spacing:.4px;text-transform:uppercase;font-weight:700}
.home-view .btn{border:1px solid var(--line);border-radius:6px;background:var(--bg3);color:var(--text);
  padding:5px 10px;font-size:12px;font-weight:600}
.home-view .btn:hover{border-color:var(--blue);color:var(--blue)}
.home-view .warn{color:var(--red)}
.hbar{height:7px;border-radius:99px;background:var(--bg3);overflow:hidden;margin:7px 0 5px}
.hbar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#60a5fa,var(--blue))}
.hbar.ok i{background:var(--green)}
.hbar.red i{background:var(--red)}
.hbar.dim i{background:#cbd5e1}
/* главная цель */
.goal-hero{padding:16px 18px;border-radius:12px;
  background:linear-gradient(135deg,#f5f8ff 0%,#fff 55%);border-color:#dbe5fb}
.gh-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.gh-head h2{margin:0;font-size:17px;font-weight:800}
.gh-ico{font-size:24px;width:44px;height:44px;border-radius:12px;background:#e8eefc;display:grid;place-items:center;flex:0 0 44px}
.gh-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gh-big{font-size:24px;font-weight:800;margin-top:4px;white-space:nowrap}
.gh-big span{font-size:13px;color:var(--muted);font-weight:600}
.gh-sub{font-size:11.5px;color:var(--muted);line-height:1.4}
.gh-col.eta .gh-big{color:var(--blue)}
.gh-lever{margin-top:8px;font-size:12px;background:#ecfdf5;color:#047857;border-radius:8px;padding:6px 9px}
.ms-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:14px;
  padding-top:12px;border-top:1px solid var(--line2)}
.ms-top{display:flex;gap:7px;align-items:flex-start;font-size:12px;font-weight:600;line-height:1.35;min-height:32px}
.ms-dot{flex:0 0 16px;height:16px;border-radius:50%;border:2px solid #cbd5e1;font-size:10px;display:grid;place-items:center;margin-top:1px}
.ms.done .ms-dot{background:var(--green);border-color:var(--green);color:#fff}
.ms.done .ms-text{color:var(--muted)}
.ms .hbar{height:5px;margin:6px 0 3px}
.ms-sub{font-size:11px;color:var(--faint)}
.gh-note{font-size:11px;margin-top:10px}
/* цели-сферы */
.goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.goal{border-radius:12px;padding:14px;cursor:pointer;display:flex;flex-direction:column;
  transition:border-color .15s,box-shadow .15s}
.goal:hover{border-color:#cbd5e1;box-shadow:0 6px 18px rgba(15,23,42,.07)}
.g-head{display:flex;align-items:center;gap:9px}
.g-ico{font-size:18px;width:34px;height:34px;border-radius:10px;background:var(--bg3);display:grid;place-items:center}
.g-title{font-weight:800;font-size:14px;flex:1}
.g-go{color:var(--faint);font-weight:700}
.goal:hover .g-go{color:var(--blue)}
.g-why{font-size:11.5px;color:var(--faint);margin-top:6px;line-height:1.4}
.g-metric{font-size:20px;font-weight:800;margin-top:10px}
.g-metric span{font-size:12.5px;color:var(--muted);font-weight:600}
.g-sub{font-size:11.5px;color:var(--muted);line-height:1.4}
.g-stages{display:flex;gap:3px;margin-top:8px}
.g-stages i{flex:1;height:4px;border-radius:9px;background:var(--bg3)}
.g-stages i.ok{background:var(--green)}
.g-stages i.late{background:#fca5a5}
.g-next{margin-top:auto;padding-top:10px}
.g-next > .lbl{margin-bottom:3px}
.g-next{font-size:12px;line-height:1.4}
.goal .g-next{border-top:1px dashed var(--line);margin-top:12px}
/* внимание и неделя */
.home-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:8px;align-items:start}
.sig-list,.wk-list{display:flex;flex-direction:column;gap:2px}
.sig{display:flex;align-items:baseline;gap:8px;padding:7px 8px;border-radius:7px;font-size:12.5px;line-height:1.4}
.sig.link{cursor:pointer}
.sig.link:hover{background:var(--bg2)}
.sig-dot{flex:0 0 8px;height:8px;border-radius:50%;background:var(--blue);transform:translateY(-1px)}
.sig.red .sig-dot{background:var(--red)}
.sig.amber .sig-dot{background:#f59e0b}
.sig-area{flex:0 0 64px;font-size:10.5px;color:var(--faint);text-transform:uppercase;font-weight:700;letter-spacing:.3px}
.sig-text{flex:1}
.wk{display:flex;align-items:baseline;gap:8px;padding:6px 4px;font-size:12.5px;border-bottom:1px solid var(--line2)}
.wk-box{flex:0 0 15px;height:15px;border-radius:4px;border:1.5px solid #cbd5e1;font-size:10px;display:grid;place-items:center;transform:translateY(2px)}
.wk.done .wk-box{background:var(--green);border-color:var(--green);color:#fff}
.wk.done .wk-text{color:var(--faint);text-decoration:line-through}
.wk-text{flex:1}
.wk-grp{font-size:11px;color:var(--faint);white-space:nowrap}
.home-view .week-more{margin-top:10px}
.home-stack{display:flex;flex-direction:column;gap:8px;min-width:0}
.focus-day{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:9px 12px;font-size:13.5px;font-weight:700}
.focus-day .lbl{margin-right:10px;color:#c2410c}
.ib-list{display:flex;flex-direction:column}
.ib{display:flex;gap:10px;align-items:flex-start;padding:8px 2px;border-bottom:1px solid var(--line2)}
.ib-text{flex:1;min-width:0;font-size:12.5px;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.ib-meta{display:block;color:var(--faint);font-size:11px;margin-top:2px}
.ib-ctl{display:flex;gap:4px;flex:0 0 auto;align-items:center}
.ib-ctl select{border:1px solid var(--line);border-radius:6px;background:var(--bg2);font-size:11.5px;padding:4px 5px;max-width:130px}
.ib-ctl .btn{padding:4px 8px;font-size:11.5px}
.ib-add{display:flex;gap:6px;margin-top:10px}
.ib-add input{flex:1;border:1px solid var(--line);border-radius:6px;background:var(--bg2);padding:6px 9px;font-size:12.5px}
.ib-add input:focus{outline:none;border-color:var(--blue);background:#fff}
@media(max-width:1100px){.goal-grid{grid-template-columns:1fr 1fr}.home-cols{grid-template-columns:1fr}}
@media(max-width:820px){
  body.mode-home .topbar{padding:0 10px;gap:10px}
  /* четыре режима не влезают рядом с логотипом — оставляем от него только ромб */
  .logo-name{display:none}
  .mode-switch button{padding-left:9px;padding-right:9px}
  .gh-cols,.goal-grid{grid-template-columns:1fr}
  .gh-cols{gap:14px}
  .home-title{display:none}
  .wk{flex-wrap:wrap}
  .wk-grp{width:100%;padding-left:23px}
  .sig-area{flex-basis:56px}
  .ib{flex-direction:column;gap:6px}
  .ib-ctl{flex-wrap:wrap}
}


/* вектор, колесо, горизонты и риски (бывшая вкладка «Стратегия») */
.vector{padding:10px 14px}
.vector summary{cursor:pointer;list-style:none;display:flex;gap:10px;align-items:baseline;font-size:12.5px;color:var(--muted);line-height:1.45}
.vector summary::-webkit-details-marker{display:none}
.vector summary::after{content:'▾';margin-left:auto;color:var(--faint)}
.vector[open] summary::after{content:'▴'}
.vec-star{flex:1}
.vec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 18px;margin-top:12px}
.vec-field p{margin:2px 0 0;font-size:12.5px;line-height:1.45;white-space:pre-wrap}
.vec-src{font-size:11px;margin-top:10px}
.wheel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 18px}
.wh{display:grid;grid-template-columns:1fr 90px 22px;gap:8px;align-items:center;font-size:12px}
.wh .hbar{margin:0}
.wh b{text-align:right}
.g-deep{margin-top:10px;font-size:12px;cursor:auto}
.g-deep summary{cursor:pointer;color:var(--blue);font-weight:600;font-size:11.5px}
.g-hor{display:grid;grid-template-columns:52px 1fr;gap:8px;padding:4px 0;border-bottom:1px solid var(--line2)}
.g-hor span{color:var(--faint)}
.g-hor b{font-weight:600}
.g-risks{margin-top:6px}
.g-risk{display:flex;gap:8px;align-items:baseline;justify-content:space-between;padding:3px 0}
.g-risk .tag{flex:0 0 auto}

.plan-h{margin:6px 2px 0;font-size:12.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.3px}

/* платежи */
.pay-list{display:flex;flex-direction:column}
.pay{display:grid;grid-template-columns:78px 1fr auto auto auto;gap:10px;align-items:center;padding:7px 2px;
  border-bottom:1px solid var(--line2);font-size:12.5px}
.pay:last-child{border-bottom:0}
.pay-date{font-weight:700;white-space:nowrap}
.pay-name{min-width:0}
.pay-note{display:block;color:var(--faint);font-size:11px;margin-top:1px}
.pay-sum{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.pay-st{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--bg3);color:var(--muted);white-space:nowrap}
.pay-st.soon{background:rgba(245,158,11,.16);color:#b45309}
.pay-st.late{background:var(--redbg);color:var(--red)}
.pay-st.ok{background:var(--greenbg);color:var(--green)}
.pay.done{opacity:.6}
.pay.late .pay-date{color:var(--red)}
.pay-btns{display:flex;gap:4px;justify-content:flex-end}
.pay-btns .btn{padding:3px 9px;font-size:11.5px}
.pay-undo{border:0;background:transparent;color:var(--faint);cursor:pointer;font-size:13px}
.pay-undo:hover{color:var(--blue)}
@media(max-width:820px){
  .pay{grid-template-columns:62px 1fr auto;row-gap:4px}
  .pay-sum{grid-column:2}
  .pay-st{grid-column:3;grid-row:1}
  .pay-btns{grid-column:3}
}

/* ---------- раскладка хаба: обычная прокрутка страницы, без сетки терминала ---------- */
.page{max-width:1440px;margin:0 auto;padding:8px;display:flex;flex-direction:column;gap:8px;min-height:100vh}
.topbar{min-height:52px}
.home-view,.life-view{display:none;flex-direction:column;gap:8px}
body.mode-home .home-view,body.mode-life .life-view{display:flex}
.fin-body{overflow:visible;flex:none}
.logout{margin-left:auto}
/* вход */
.login{max-width:420px;margin:18vh auto 0;text-align:center;padding:28px 24px}
.login h1{font-size:20px;margin:6px 0 10px}
.login p{color:var(--muted);line-height:1.5;margin:6px 0}
.login .big{font-size:34px}

/* ---------- ЖИЗНЬ → ДЕНЬ: цели · часы · сверка ---------- */
.dy-seg{display:none}
.dy-cols{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr) minmax(260px,320px);gap:8px;align-items:start}
.dy .card h3{margin-bottom:10px}
.dy .lbl{font-size:10.5px;color:var(--faint);letter-spacing:.4px;text-transform:uppercase;font-weight:700;margin:10px 0 5px}
.dy-hint{font-size:11px;margin-top:8px;line-height:1.4}
.dy-focus .lbl{margin-top:0}
.dy-focus .life-add{margin-top:0}
.dy-group{border-top:1px solid var(--line2);padding:6px 0}
.dy-group summary{cursor:pointer;font-weight:700;font-size:12.5px;padding:3px 0;list-style-position:inside}
.dy-group summary .faint{font-weight:500;font-size:11px}
.dy-task{display:flex;align-items:flex-start;gap:7px;padding:5px 6px;border-radius:6px;font-size:12.5px;line-height:1.35;cursor:grab}
.dy-task:hover{background:var(--bg3)}
.dy-task.sel{background:#e8eefc;box-shadow:inset 0 0 0 1px #c7d7f7}
.dy-task input{margin:2px 0 0;accent-color:var(--green);flex:0 0 auto}
.dy-task .t{flex:1 1 auto}
.dy-task .tag.ok{background:#e8eefc;color:var(--blue)}
.dy-pick{border:1px solid var(--line);background:var(--bg2);border-radius:6px;padding:0 6px;font-size:12px;line-height:20px;flex:0 0 auto;color:var(--muted)}
.dy-pick:hover{border-color:var(--blue);color:var(--blue)}
.dy-calhead{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.dy-calhead b{font-size:13.5px}
.dy-today{padding:3px 9px;font-size:11.5px}
.dy-deepset summary{cursor:pointer;font-size:11.5px;list-style:none}
.dy-deepset .life-add input{width:62px;flex:0 0 auto}
.dy-selbar{display:flex;align-items:center;gap:8px;justify-content:space-between;background:#e8eefc;color:var(--blue);
  border-radius:6px;padding:6px 9px;font-size:12px;font-weight:600;margin-bottom:8px}
.dy-scroll{height:calc(100vh - 250px);min-height:420px;overflow-y:auto;border:1px solid var(--line2);border-radius:6px}
.dy-grid{position:relative;margin-left:44px}
.dy-hour{position:absolute;left:-44px;width:38px;text-align:right;font-size:10.5px;color:var(--faint);transform:translateY(-6px)}
.dy-slot{position:absolute;left:0;right:0;border-top:1px dashed var(--line2);cursor:pointer}
.dy-slot.hour{border-top:1px solid var(--line)}
.dy-slot:hover,.dy-slot.over{background:rgba(37,99,235,.06)}
.dy-deep{position:absolute;left:0;right:0;background:rgba(22,163,74,.06);border-left:3px solid rgba(22,163,74,.45);pointer-events:none}
.dy-deep span{position:absolute;right:6px;top:3px;font-size:10px;color:var(--green);font-weight:700;letter-spacing:.3px}
.dy-now{position:absolute;left:-6px;right:0;border-top:2px solid var(--red);pointer-events:none;z-index:3}
.dy-now::before{content:"";position:absolute;left:0;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--red)}
.dy-block{position:absolute;left:6px;right:6px;background:#eef3ff;border:1px solid #c7d7f7;border-left:3px solid var(--blue);
  border-radius:6px;padding:3px 7px;font-size:12px;line-height:1.3;cursor:pointer;z-index:2;overflow:hidden}
.dy-block.deep{background:#eaf7ef;border-color:#bfe3cc;border-left-color:var(--green)}
.dy-block.free{background:var(--bg3);border-color:var(--line);border-left-color:var(--faint)}
.dy-block.done{opacity:.55}
.dy-block.done .t{text-decoration:line-through}
.dy-block.open{z-index:4;overflow:visible;box-shadow:0 6px 18px rgba(15,23,42,.14)}
.dy-bh{display:flex;align-items:flex-start;gap:6px}
.dy-bh input{margin:1px 0 0;accent-color:var(--green);flex:0 0 auto}
.dy-bh .tm{color:var(--muted);font-size:10.5px;white-space:nowrap;padding-top:1px}
.dy-bh .t{font-weight:600}
.dy-bg{font-size:10.5px;color:var(--muted);margin:1px 0 0 20px}
.dy-bctl{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 2px;background:inherit}
.dy-bctl button{border:1px solid var(--line);background:#fff;border-radius:5px;padding:2px 7px;font-size:11px;color:var(--text)}
.dy-bctl button:hover{border-color:var(--blue);color:var(--blue)}
.dy-bctl button.danger:hover{border-color:var(--red);color:var(--red)}
.dy-ctitle{font-size:15px;font-weight:800;line-height:1.3;margin-bottom:4px}
.dy-tip{background:var(--bg2);border:1px solid var(--line2);border-radius:8px;padding:8px 10px;font-size:12.5px;line-height:1.4;margin-bottom:6px}
.dy-tip .faint{font-size:11.5px;margin-top:2px}
.dy-tip.ok{background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.2);color:var(--green)}
.dy-acts{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.dy-apply{padding:3px 9px;font-size:11.5px}
.dy-good li::marker{color:var(--green)}
@media(max-width:1100px){.dy-cols{grid-template-columns:minmax(230px,260px) minmax(0,1fr)}.dy-coach{grid-column:1 / -1}}
@media(max-width:900px){
  .dy-seg{display:flex;background:var(--bg3);border-radius:7px;padding:2px;gap:2px;margin-bottom:8px}
  .dy-seg button{flex:1;border:0;background:transparent;color:var(--muted);font-weight:700;font-size:12.5px;padding:6px;border-radius:5px}
  .dy-seg button.active{background:var(--bg);color:var(--blue);box-shadow:0 1px 2px rgba(0,0,0,.06)}
  .dy-cols{display:block}
  .dy-cols > section{display:none}
  .dy[data-pane="goals"] .dy-goals,.dy[data-pane="day"] .dy-cal,.dy[data-pane="coach"] .dy-coach{display:block}
  .dy-scroll{height:calc(100vh - 230px)}
  .dy-task{cursor:default}
}

/* роадмап проекта над задачами группы (из паспорта PROJECT.json, снимком с ноута) */
.rm-line{background:#f3f7ff;border:1px solid #dbe6fb;border-radius:7px;padding:6px 8px;margin:4px 0 6px;font-size:12px;line-height:1.4}
.rm-head{margin-bottom:2px}
.rm-head b{font-weight:700}
.rm-next{display:flex;gap:6px;align-items:flex-start;justify-content:space-between}
.dy-add{margin:4px 0 2px 6px}
.dy-add input{font-size:12px;padding:4px 8px}
.dy-add .btn{padding:3px 9px}

/* кнопки-фильтры по группам задач */
.gchips{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 8px}
.gchip{border:1px solid var(--line);background:var(--bg);color:var(--muted);font-weight:700;font-size:12px;
  padding:4px 10px;border-radius:99px;cursor:pointer;font-family:inherit}
.gchip:hover{border-color:var(--blue);color:var(--blue)}
.gchip.active{background:#e8eefc;border-color:#c7d7f7;color:var(--blue)}
.gchip .cnt{font-weight:600;color:var(--faint);font-size:11px;margin-left:2px}

/* Еда */
.food-lbl{font-size:10.5px;color:var(--faint);letter-spacing:.4px;text-transform:uppercase;font-weight:700;margin:10px 0 4px}
.food-tags{display:flex;flex-wrap:wrap;gap:4px}
.food-mrow{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--line2);font-size:13px}
.food-mrow > span:first-child{flex:1 1 auto}
.food-mrow .faint{font-size:11.5px;white-space:nowrap}
.food-mrow .del{border:0;background:transparent;color:var(--faint);font-size:14px;cursor:pointer}
.food-note{font-size:11.5px;margin-top:8px}
.food-kinds{margin:4px 0 8px}
.food-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.food-dish{display:flex;flex-direction:column;gap:6px}
.food-dish.on{border-color:#c7d7f7;background:#f7f9ff}
.food-dh{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;font-size:13.5px}
.food-dh .pin{margin-left:0;flex:0 0 auto}
.food-use{font-size:12px;color:var(--muted)}
.food-dish details summary{cursor:pointer;color:var(--blue);font-size:12px;font-weight:600}
.food-dish details p{margin:6px 0 0;font-size:12.5px;line-height:1.45}
.food-safe{margin-top:10px}
.food-safe summary{cursor:pointer;color:var(--blue);font-weight:600;font-size:12px}
.food-shop{margin-top:8px}
.food-shop h3{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.food-reset{margin-left:auto;font-size:11.5px;padding:3px 9px}
.food-shop .chk.food-extra > span{color:var(--muted)}
.food-qty{width:90px}

.food-kk{display:block;font-size:11px;color:var(--faint);margin-top:1px}
.food-shop .chk > .tag{flex:0 0 auto}

.food-month{margin-top:8px}
.food-mbig{font-size:22px;font-weight:800;margin:2px 0 8px}
.food-mbig span{font-size:13px;font-weight:600;color:var(--muted);margin-left:6px}
.food-mcols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:820px){.food-mcols{grid-template-columns:1fr}}

.food-shop .chk{align-items:center}
.food-img{flex:0 0 44px;width:44px;height:44px;object-fit:contain;border-radius:6px;background:#fff;border:1px solid var(--line2)}
.food-shop .chk > .food-img{flex:0 0 44px}
.food-shop .chk > img.food-img{cursor:zoom-in}
.food-noimg{display:inline-block;background:var(--bg3)}
.food-dish{overflow:hidden}
.food-dimg{display:block;width:calc(100% + 28px);margin:-12px -14px 10px;height:150px;object-fit:cover;cursor:zoom-in;background:var(--bg3)}
.food-credit{display:block;margin-top:6px;font-size:10.5px;color:var(--faint)}
.food-zoom{position:fixed;inset:0;z-index:1000;background:rgba(15,20,30,.72);display:flex;align-items:center;justify-content:center;padding:16px;cursor:zoom-out}
.food-zoom figure{margin:0;background:#fff;border-radius:12px;padding:12px;max-width:min(560px,100%);text-align:center}
.food-zoom img{display:block;max-width:100%;max-height:70vh;margin:0 auto}
.food-zoom figcaption{margin-top:8px;font-size:13px;color:#333}
.food-shop .chk.on .food-img{opacity:.45}

/* ---------- Календарь (cal.js): сетка дней и плитки — по мотивам календаря Kruto AI ---------- */
.cl-wrap{--cl-line:#e3e7ee}
.cl-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.cl-nav{display:flex;align-items:center;gap:6px}
.cl-period{font-size:16px;font-weight:800;letter-spacing:-.01em;margin-left:6px;min-width:190px}
.cl-bar > .seg:nth-child(2){margin-right:auto}
.cl-pics.on{background:#e0eaff!important;border-color:var(--blue)!important;color:var(--blue)!important}
.cl-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cl-chip{border:1px solid var(--line);background:var(--bg);color:var(--faint);border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700}
.cl-chip.on{color:var(--text);border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,#fff)}
.cl-gnote{margin:-4px 0 8px}
.cl-hint{margin-top:8px;font-size:11.5px}
.cl-scroll{overflow-x:auto;background:var(--bg);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.cl-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));min-width:910px}
.cl-day{border-right:1px solid var(--cl-line);border-bottom:1px solid var(--cl-line);padding:8px;min-width:0}
.cl-day:nth-child(7n){border-right:0}
.cl-week .cl-day{min-height:480px;border-bottom:0}
.cl-day.wknd{background:#fbfcfd}
.cl-day.out{background:var(--bg3)}
.cl-day.today{background:#eff4ff}
.cl-day.over{background:#e0eaff;box-shadow:inset 0 0 0 2px var(--blue)}
.cl-dow{text-align:center;padding:10px 6px;border-bottom:1px solid var(--cl-line);font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.cl-dh{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11.5px;color:var(--muted);font-weight:700}
.cl-dn{padding:2px 6px;border-radius:8px;font-variant-numeric:tabular-nums;color:var(--text)}
.today .cl-dn{background:var(--blue);color:#fff}
.cl-add{border:0;background:none;color:#cbd5e1;font-size:15px;line-height:1;padding:0 4px}
.cl-day:hover .cl-add{color:var(--muted)} .cl-add:hover{color:var(--blue)!important}
.cl-empty{color:#d4dae3;text-align:center;padding-top:20px}
/* цвет типа: полоса слева у плитки, точка у строки месяца, обводка у фильтра */
.t-cook{--c:#f59e0b}.t-meal{--c:#10b981}.t-shop{--c:#0ea5e9}.t-drink{--c:#a16207}.t-gym{--c:#ef4444}
.t-home{--c:#8b5cf6}.t-trip{--c:#2563eb}.t-call{--c:#db2777}.t-work{--c:#475569}.t-other{--c:#94a3b8}.t-pay{--c:#16a34a}
.cl-ev{position:relative;border:1px solid var(--line);border-left:3px solid var(--c);border-radius:10px;background:var(--bg);
  padding:6px 7px;margin-bottom:6px;cursor:pointer;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:box-shadow .12s,transform .1s}
.cl-ev:hover{box-shadow:0 4px 10px rgba(16,24,40,.08);transform:translateY(-1px)}
.cl-ev.drag{opacity:.4}
.cl-ev.done{opacity:.55}
.cl-ev.done .cl-title{text-decoration:line-through}
.cl-ev.cont{background:color-mix(in srgb,var(--c) 8%,#fff)}
.cl-when{display:flex;align-items:center;gap:4px;font-size:10.5px;color:var(--muted);font-weight:700}
.cl-when > span:first-child{flex:1;min-width:0}
.cl-who{font-size:9.5px;background:var(--bg3);border-radius:6px;padding:0 5px}
.cl-done{margin:0;accent-color:var(--green);cursor:pointer}
.cl-title{font-size:12px;line-height:1.3;margin-top:3px;font-weight:600;overflow-wrap:anywhere}
.cl-sub{font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.3}
.cl-dimg{display:block;width:100%;height:58px;object-fit:cover;border-radius:7px;margin-top:5px}
.cl-month .cl-day{min-height:118px;padding:6px}
.cl-month .cl-dh{margin-bottom:4px}
.cl-line{display:flex;align-items:center;gap:5px;padding:2px 4px;border-radius:5px;cursor:pointer;font-size:11px;line-height:1.35}
.cl-line:hover{background:var(--bg3)}
.cl-line i{width:7px;height:7px;border-radius:50%;background:var(--c);flex:none}
.cl-line span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cl-line b{color:var(--muted);font-variant-numeric:tabular-nums}
.cl-line.cont,.cl-line.t-trip{background:color-mix(in srgb,var(--c) 14%,#fff)}
.cl-line.done span{text-decoration:line-through;color:var(--faint)}
.cl-more{font-size:10.5px;color:var(--blue);font-weight:700;padding:2px 4px;cursor:pointer}
.cl-modal{position:fixed;inset:0;z-index:900;background:rgba(15,20,30,.45);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow:auto}
.cl-box{background:var(--bg);border-radius:14px;padding:16px 18px;width:min(520px,100%);display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;box-shadow:0 20px 50px rgba(0,0,0,.2)}
.cl-box h3{grid-column:1/-1;margin:0}
.cl-f{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);font-weight:600}
.cl-f.wide{grid-column:1/-1}
.cl-f input,.cl-f select{font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.cl-rep{flex-direction:row;justify-self:start}
.cl-days{flex-direction:row;flex-wrap:wrap;gap:4px}
.cl-days label{display:flex;align-items:center;gap:3px;border:1px solid var(--line);border-radius:7px;padding:4px 7px;color:var(--text);font-size:12px;cursor:pointer}
.cl-once{flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px;background:var(--bg3);border-radius:8px;padding:8px}
.cl-once input{padding:3px 6px}
.cl-btns{grid-column:1/-1;display:flex;gap:8px;align-items:center;margin-top:4px}
.cl-del{color:var(--red)!important}
.cl-save{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
@media(max-width:760px){
  .cl-scroll{overflow:visible;border:0;background:none;box-shadow:none}
  .cl-week{grid-template-columns:1fr;min-width:0;gap:8px}
  .cl-week .cl-day{min-height:0;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
  .cl-week .cl-day.today{background:#eff4ff}
  .cl-week .cl-day.wknd{background:var(--bg)}
  .cl-week .cl-ev{display:grid;grid-template-columns:1fr 64px;column-gap:8px}
  .cl-week .cl-ev > *{grid-column:1}
  .cl-week .cl-dimg{grid-column:2;grid-row:1/span 3;height:48px;margin:0}
  .cl-month{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}
  .cl-month .cl-day{min-height:64px;padding:3px}
  .cl-month .cl-line{padding:1px 2px;font-size:9.5px}
  .cl-month .cl-line b{display:none}
  .cl-box{grid-template-columns:1fr}
  .cl-period{min-width:0;font-size:14px}
}
/* плитки залиты цветом типа, как в Google Календаре: рабочее (созвоны, работа) — насыщенная заливка
   и белый жирный текст, остальное — светлая заливка и более светлый, обычный шрифт */
.cl-ev{border:0;border-radius:8px;background:color-mix(in srgb,var(--c) 16%,#fff);box-shadow:none;color:color-mix(in srgb,var(--c) 55%,#475569)}
.cl-ev.cont{background:color-mix(in srgb,var(--c) 10%,#fff)}
.cl-ev .cl-when,.cl-ev .cl-sub{color:color-mix(in srgb,var(--c) 45%,#64748b);font-weight:600}
.cl-ev .cl-title{font-weight:500}
.cl-ev .cl-who{background:rgba(255,255,255,.65)}
.cl-ev.t-work,.cl-ev.t-call{background:var(--c);color:#fff}
.cl-ev.t-work .cl-when,.cl-ev.t-work .cl-sub,.cl-ev.t-call .cl-when,.cl-ev.t-call .cl-sub{color:rgba(255,255,255,.85)}
.cl-ev.t-work .cl-title,.cl-ev.t-call .cl-title{font-weight:700}
.cl-ev.t-work .cl-who,.cl-ev.t-call .cl-who{background:rgba(255,255,255,.25);color:#fff}
.cl-ev.t-work.cont,.cl-ev.t-call.cont{background:color-mix(in srgb,var(--c) 70%,#fff)}
.cl-ev .cl-done{accent-color:var(--c)}
.cl-line{background:color-mix(in srgb,var(--c) 16%,#fff);color:color-mix(in srgb,var(--c) 55%,#475569);margin-bottom:2px}
.cl-line:hover{background:color-mix(in srgb,var(--c) 26%,#fff)}
.cl-line i{display:none}
.cl-line b{color:inherit;opacity:.8}
.cl-line.t-work,.cl-line.t-call{background:var(--c);color:#fff;font-weight:700}
.cl-line.cont,.cl-line.t-trip{background:color-mix(in srgb,var(--c) 22%,#fff)}
/* неделя сеткой по часам (как в Google Календаре) */
.cl-tg{min-width:910px}
.cl-tg-head,.cl-tg-all,.cl-tg-body{display:grid;grid-template-columns:50px repeat(7,minmax(0,1fr))}
.cl-tg-dh{display:flex;align-items:center;gap:6px;padding:8px;border-left:1px solid var(--cl-line);font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cl-tg-dh .cl-dn{font-size:15px;letter-spacing:0}
.cl-tg-dh .cl-add{margin-left:auto}
.cl-tg-dh.today{color:var(--blue)}
.cl-tg-all{border-top:1px solid var(--cl-line);border-bottom:1px solid var(--cl-line)}
.cl-tg-all .cl-day{border:0;border-left:1px solid var(--cl-line);padding:3px;min-height:26px}
.cl-tg-lbl{font-size:9.5px;color:var(--faint);text-align:right;padding:6px 6px 0 0}
.cl-tg-body{position:relative;overflow:hidden}
.cl-tg-hours{position:relative}
.cl-tg-hours span{position:absolute;right:6px;transform:translateY(-6px);font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}
.cl-tg-hours span:first-child{transform:none}
.cl-tg-col{position:relative;padding:0;border:0;border-left:1px solid var(--cl-line);
  background-image:repeating-linear-gradient(to bottom,var(--cl-line) 0 1px,transparent 1px var(--h))}
.cl-tg-col.today{background-color:#f5f8ff}
.cl-tg-col.wknd{background-color:#fbfcfd}
.cl-abs{position:absolute;margin:0;overflow:hidden;padding:3px 6px;z-index:1}
.cl-abs:hover{z-index:3}
.cl-abs .cl-title{margin-top:1px;overflow-wrap:break-word}
.cl-abs.short .cl-t{flex:none;font-size:10px;opacity:.75;font-variant-numeric:tabular-nums}
.cl-abs.short{display:flex;align-items:center;gap:5px;padding:1px 6px}
.cl-abs.short .cl-when{flex:none;font-size:10px}
.cl-abs.short .cl-when > span:first-child{flex:none}
.cl-abs.short .cl-title{margin:0;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.cl-abs.short .cl-sub,.cl-abs.short .cl-who{display:none}
.cl-now{position:absolute;left:0;right:0;height:2px;background:#ea4335;z-index:4;pointer-events:none}
.cl-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ea4335}

/* срок задачи: тег открывает выбор даты; само поле даты невидимо и лежит под тегом */
.due-edit{position:relative;display:inline-flex;cursor:pointer;flex:0 0 auto}
.due-edit input{position:absolute;inset:0;opacity:0;width:100%;height:100%;pointer-events:none;border:0;padding:0}
.due-add{font-size:10.5px;font-weight:700;color:#cbd5e1;padding:1px 6px;border-radius:999px;white-space:nowrap}
.due-edit:hover .due-add{color:var(--blue);background:var(--bg3)}
@media(hover:hover){tr:not(:hover) .due-add,.task .chk:not(:hover) .due-add{visibility:hidden}}

/* цвет строки задачи (как заливка строки в таблицах): мягкий фон и цветная полоса слева */
.tc-red{--tc:#ef4444}.tc-orange{--tc:#f97316}.tc-yellow{--tc:#eab308}.tc-green{--tc:#22c55e}.tc-blue{--tc:#3b82f6}.tc-purple{--tc:#a855f7}
.task-table tr[class*="tc-"] td{background:color-mix(in srgb,var(--tc) 11%,#fff)}
.task-table tr[class*="tc-"] td:first-child{box-shadow:inset 3px 0 0 var(--tc)}
.task[class*="tc-"]{background:color-mix(in srgb,var(--tc) 11%,#fff);box-shadow:inset 3px 0 0 var(--tc);border-radius:6px}
.task-table .c-del{white-space:nowrap}
.tcolor-wrap{position:relative;display:inline-block;vertical-align:middle}
.tcolor{width:14px;height:14px;border-radius:50%;border:1.5px solid #cbd5e1;background:var(--tc,#fff);padding:0;margin-right:6px;cursor:pointer;
  font-size:10px;line-height:11px;color:var(--muted)}
.tcolor[class*="tc-"]{border-color:var(--tc)}
@media(hover:hover){.task-table tr:not(:hover) .tcolor:not([class*="tc-"]){visibility:hidden}}
.tcolor-pal{position:absolute;right:0;top:20px;z-index:20;display:flex;gap:6px;background:var(--bg);border:1px solid var(--line);
  border-radius:10px;padding:7px 8px;box-shadow:0 8px 20px rgba(16,24,40,.12)}
.tcolor-pal .tcolor{width:18px;height:18px;margin:0}
.tcolor-pal .tc-none{background:#fff}

/* ---------- Карта (map.js): древо возможностей ---------- */
.mp-card h3,.mp-grid h3{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.mp-sub{font-size:11.5px;font-weight:600;text-transform:none;letter-spacing:0}
.mp-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin:-2px 0 10px}
.mp-legend span{display:flex;align-items:center;gap:5px}.mp-legend i{width:10px;height:10px;border-radius:50%}
.mp-tree{overflow-x:auto}
.mp-head,.mp-row{display:grid;grid-template-columns:230px repeat(4,minmax(150px,1fr));gap:10px}
.mp-head{margin-left:310px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding-bottom:6px}
.mp-head > span:nth-child(-n+2){display:none}
.mp-body{display:grid;grid-template-columns:230px 80px 1fr;min-width:1180px;position:relative}
.mp-root{align-self:center;background:linear-gradient(135deg,#ecfdf5,#eff6ff);border:1px solid #cfe9dd;border-radius:14px;padding:14px;font-size:12.5px;line-height:1.45;color:var(--text)}
.mp-root b{display:block;font-size:15px;margin-bottom:6px}
.mp-root [data-mfield]{cursor:pointer}
.mp-root textarea{width:100%}
.mp-links{width:100%;height:100%;overflow:visible}
.mp-rows{display:flex;flex-direction:column;gap:10px}
.mp-row{align-items:stretch}
.mp-row.frozen{opacity:.55}
.mp-branch{border:1px solid var(--line);border-left:4px solid var(--sc);border-radius:12px;padding:9px 11px;background:var(--bg);display:flex;flex-direction:column;gap:5px}
.mp-bh{display:flex;align-items:center;gap:6px;font-size:13.5px}
.mp-bh b{cursor:pointer}
.mp-bh input{flex:1;min-width:0;font-size:13px;padding:3px 6px;border:1px solid var(--line);border-radius:6px}
.mp-emoji{font-size:17px}
.mp-status{align-self:flex-start;border:0;border-radius:999px;padding:2px 9px;font-size:10.5px;font-weight:800;color:#fff;background:var(--sc)}
.mp-hours{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);font-weight:700}
.mp-hbar{flex:1;height:6px;background:var(--bg3);border-radius:4px;overflow:hidden}
.mp-hbar i{display:block;height:100%;background:var(--sc)}
.mp-money{font-size:11px;color:var(--text);line-height:1.35;cursor:pointer}
.mp-money.empty{color:#cbd5e1}
.mp-money.editing{display:flex;gap:4px}.mp-money.editing input{flex:1;min-width:0;font-size:12px;padding:3px 6px;border:1px solid var(--line);border-radius:6px}
.mp-tasks{font-size:10.5px;color:var(--faint)}
.mp-cell{position:relative;border-radius:10px;padding:9px 10px;font-size:12px;line-height:1.4;white-space:pre-wrap;cursor:pointer;
  background:color-mix(in srgb,var(--sc) 7%,#fff);border:1px solid color-mix(in srgb,var(--sc) 20%,#fff)}
.mp-cell:hover{border-color:var(--sc)}
.mp-cell.empty{color:#cbd5e1;text-align:center;align-content:center}
.mp-future{background:var(--bg2);border-style:dashed}
.mp-cell:not(:first-of-type)::before{content:"→";position:absolute;left:-9px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:11px}
.mp-cell.editing{cursor:default;background:var(--bg)}
.mp-cell textarea{width:100%;font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px;resize:vertical}
.mp-ebtn{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}
.mp-save{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
.mp-add{margin-top:12px}
.mp-grid{margin-top:8px}
.mp-share{display:flex;height:22px;border-radius:7px;overflow:hidden;margin:4px 0 10px;background:var(--bg3)}
.mp-share i{display:flex;align-items:center;justify-content:center;min-width:18px;font-style:normal;font-size:11px}
.mp-week{width:100%;border-collapse:collapse;font-size:12.5px}
.mp-week th{text-align:left;font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;padding:4px}
.mp-week td{padding:4px;border-top:1px solid var(--line2)}
.mp-num{width:64px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;font-size:12.5px}
.mp-review{border-top:1px solid var(--line2);padding:8px 0}
.mp-review summary{cursor:pointer}
.mp-rtext{white-space:pre-wrap;font-size:12.5px;line-height:1.5;margin-top:6px}
@media(max-width:760px){
  .mp-head{display:none}
  .mp-body{display:block;min-width:0}
  .mp-links{display:none}
  .mp-root{margin-bottom:10px}
  .mp-row{grid-template-columns:1fr;gap:6px;padding-bottom:10px;border-bottom:1px solid var(--line2)}
  .mp-cell::before{display:none}
  .mp-cell .mp-lbl{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:2px}
  .mp-cell.empty{text-align:left}
}
.mp-lbl{display:none}

.mp-goals{font-size:11.5px;border-top:1px dashed var(--line);padding-top:5px}
.mp-goals summary{cursor:pointer;color:var(--muted);font-weight:700}
.mp-goals summary b{color:var(--sc)}
.mp-goal{display:flex;align-items:flex-start;gap:5px;margin:4px 0;line-height:1.35;cursor:pointer}
.mp-goal input{margin:2px 0 0;accent-color:var(--sc)}
.mp-goal span{flex:1}
.mp-goal.on span{text-decoration:line-through;color:var(--faint)}
.mp-goal .del{border:0;background:none;color:var(--faint);padding:0 2px;visibility:hidden}
.mp-goal:hover .del{visibility:visible}
.mp-gadd{width:100%;margin-top:3px;font-size:11.5px;padding:3px 6px;border:1px solid var(--line2);border-radius:6px}
