/* ============================================================
   Prime — дизайн-система «Pearl & Lime» (см. DESIGN.md).
   Жемчужный фон, белые карточки, зернистые градиенты,
   чёрное — действие, лайм — факт.
   ============================================================ */
:root{
  color-scheme: light;

  /* поверхности */
  --bg:            #ECEDF0;
  --surface:       #FFFFFF;
  --surface-2:     #F3F3F5;
  --surface-glass: rgba(255,255,255,0.55);
  --line:          rgba(17,17,20,0.09);
  --line-strong:   rgba(17,17,20,0.18);

  /* текст */
  --ink:   #111114;
  --ink-2: #5E6068;
  --ink-3: #9A9CA3;

  /* акценты */
  --lime:      #DCF63E;
  --lime-soft: #F2FBC9;
  --alert:     #FF5B1F;

  /* состояния */
  --bad:  #E8603C;  --bad-soft:  #FBE4DB;
  --warn: #E9A23B;  --warn-soft: #FAEBD3;
  --good: #3DB65A;  --good-soft: #DDF1DA;
  --info: #5F7FE8;  --info-soft: #E2E8FB;

  /* градиентные карточки */
  --grad-olive:
    radial-gradient(90% 80% at 12% 8%, #363A14 0%, transparent 62%),
    radial-gradient(80% 90% at 92% 100%, #D3EA5E 0%, transparent 60%),
    linear-gradient(140deg, #4A5120 0%, #7C972C 55%, #B3CF45 100%);
  --grad-rose:
    radial-gradient(90% 80% at 10% 0%, #A7625C 0%, transparent 60%),
    radial-gradient(90% 90% at 100% 100%, #DDBC9C 0%, transparent 60%),
    linear-gradient(140deg, #B6736A 0%, #C79883 60%, #D2AD91 100%);
  --grad-bronze:
    radial-gradient(90% 60% at 95% 0%, #94B46A 0%, transparent 58%),
    radial-gradient(80% 80% at 0% 55%, #B26D48 0%, transparent 62%),
    linear-gradient(165deg, #4D4A2D 0%, #795A3B 50%, #C39087 100%);
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");

  /* геометрия */
  --r-xl: 36px;
  --r-lg: 28px;
  --r-md: 20px;
  --r-sm: 14px;
  --r-pill: 999px;

  --shadow-soft: 0 1px 2px rgba(17,17,20,0.04), 0 24px 48px -32px rgba(40,36,48,0.28);
  --shadow-pop:  0 40px 100px -30px rgba(30,26,36,0.45);

  --sidebar-w: 256px;

  /* совместимость со старыми именами в шаблонах JS */
  --accent: var(--ink);
  --ink-secondary: var(--ink-2);
  --ink-muted: var(--ink-3);
  --series-1: var(--ink);
  --series-2: var(--lime);

  font-family: "Helvetica Neue", Inter, -apple-system, "Segoe UI", system-ui, sans-serif;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;min-height:100vh;color:var(--ink);}
/* полоса прокрутки всегда на месте — шапка не сдвигается между короткими и длинными страницами */
html{overflow-x:hidden;overflow-y:scroll;}

body{
  position:relative;
  min-height:100vh;
  font-size:14px;
  line-height:1.45;
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
/* пастельные пятна за интерфейсом */
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(640px 520px at 88% 6%,  rgba(250,205,176,0.55) 0%, transparent 70%),
    radial-gradient(560px 520px at 70% 48%, rgba(238,196,206,0.45) 0%, transparent 70%),
    radial-gradient(700px 560px at 6% 100%, rgba(206,226,196,0.55) 0%, transparent 70%);
}
.orb{position:fixed;border-radius:50%;z-index:0;pointer-events:none;filter:blur(60px);}
.orb-2{top:-120px;left:28%;width:420px;height:320px;background:rgba(255,255,255,0.7);}
.orb-3{bottom:10%;right:-80px;width:300px;height:300px;background:rgba(220,246,62,0.12);}

h1,h2,h3,h4{margin:0 0 4px;font-weight:500;letter-spacing:-0.02em;}
p{margin:0;}
button{font-family:inherit;cursor:pointer;color:inherit;}
input,select,textarea{font-family:inherit;}
a{color:inherit;}
.hidden{display:none !important;}
.num, .value, .list-table td{font-variant-numeric:tabular-nums;}

/* ---------------- Базовые поверхности ---------------- */
.card, .consult-item{
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.card{border-radius:var(--r-lg);}

/* зернистая градиентная карточка */
.hero{
  position:relative;overflow:hidden;isolation:isolate;
  color:#fff;border:none;border-radius:var(--r-xl);
}
.hero::after{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:var(--grain);mix-blend-mode:overlay;opacity:.55;
}
.hero-olive{background:var(--grad-olive);}
.hero-rose{background:var(--grad-rose);}
.hero-bronze{background:var(--grad-bronze);}

/* иконка в круге и кнопка-стрелка */
.icon-circle{
  width:44px;height:44px;border-radius:50%;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong);color:var(--ink);font-size:14px;position:relative;
}
.icon-circle svg{width:18px;height:18px;}
.icon-circle .alert-dot{
  position:absolute;top:-4px;right:-6px;width:18px;height:16px;
  background:var(--alert);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:3px;
}
.hero .icon-circle{border-color:rgba(255,255,255,0.55);color:#fff;}
.arrow-btn{
  width:40px;height:40px;border-radius:50%;flex:none;border:none;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--surface-2);color:var(--ink);font-size:16px;
  transition:background .16s ease, transform .16s ease;
}
.arrow-btn:hover{background:#E8E8EC;transform:rotate(45deg);}
.hero .arrow-btn{background:var(--ink);color:#fff;}
.hero .arrow-btn:hover{background:#000;}

/* ---------------- Каркас ---------------- */
#screen-app{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;}
/* под шапкой: бургер-меню и страница */
.app-body{flex:1;display:flex;min-width:0;}

/* бургер-меню рабочего и личного блоков */
.sidebar{
  width:var(--sidebar-w);flex:none;
  position:sticky;top:16px;align-self:flex-start;
  height:calc(100vh - 32px);margin:0 0 16px 24px;
  display:flex;flex-direction:column;gap:14px;
  padding:16px 12px 14px;overflow-y:auto;
  background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-lg);
  backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);
}
.sb-head{display:flex;align-items:center;gap:12px;padding:0 4px;}
.sb-title{font-size:20px;letter-spacing:-0.03em;}
.seg{display:flex;gap:4px;padding:4px;border-radius:var(--r-pill);background:rgba(17,17,20,0.06);}
.seg button{
  flex:1;border:none;background:transparent;padding:9px 8px;border-radius:var(--r-pill);
  font-size:13px;color:var(--ink-2);transition:background .16s ease, color .16s ease;
}
.seg button:hover{color:var(--ink);}
.seg button.active{background:var(--ink);color:#fff;}
.sb-nav{display:flex;flex-direction:column;gap:2px;}
.sb-nav button{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  background:transparent;border:none;color:var(--ink);
  padding:10px 12px;border-radius:var(--r-pill);font-size:14px;
  transition:background .16s ease, color .16s ease;
}
.sb-nav button svg{width:18px;height:18px;flex:none;color:var(--ink-2);}
.sb-nav button:hover{background:rgba(255,255,255,0.85);}
.sb-nav button.active{background:var(--ink);color:#fff;}
.sb-nav button.active svg{color:var(--lime);}
.sb-nav .soon{
  margin-left:auto;font-style:normal;font-size:10.5px;color:var(--ink-3);
  border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:2px 7px;
}
.sb-nav button.active .soon{color:rgba(255,255,255,0.65);border-color:rgba(255,255,255,0.25);}
.sb-foot{margin-top:auto;padding:12px 6px 0;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-3);}
.sb-backdrop{display:none;}

.burger, .icon-btn{
  width:44px;height:44px;border-radius:50%;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:1px solid var(--line-strong);color:var(--ink);
  transition:background .16s ease, border-color .16s ease;
}
.burger svg, .icon-btn svg{width:18px;height:18px;}
.burger:hover, .icon-btn:hover{background:var(--surface);border-color:var(--ink);}
.menu-fab{display:none;}
body[data-menu="off"] .sidebar{display:none;}
/* свёрнутое меню — узкая полоса с иконками */
@media (min-width:1001px){
  body.sb-collapsed .sidebar{width:72px;padding:14px 13px;align-items:center;}
  body.sb-collapsed .sb-title,
  body.sb-collapsed .seg,
  body.sb-collapsed .sb-nav span,
  body.sb-collapsed .sb-nav .soon,
  body.sb-collapsed .sb-foot{display:none;}
  body.sb-collapsed .sb-head{padding:0;}
  body.sb-collapsed .sb-nav button{width:44px;height:44px;padding:0;justify-content:center;}
}

.app-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:0 28px 0 24px;}

/* шапка на всю ширину: одинаковая во всех блоках, от бокового меню не зависит */
header.topbar{
  display:flex;align-items:center;gap:16px;
  padding:22px 28px 26px 24px;flex-wrap:wrap;
}
.brand{display:flex;flex-direction:column;margin-right:10px;}
.brand .name,
.side-brand .name{font-size:24px;font-weight:500;letter-spacing:-0.04em;line-height:1;}
.brand .sub,
.side-brand .sub{font-size:11px;color:var(--ink-3);margin-top:4px;white-space:nowrap;}

.brand{flex-direction:row;align-items:center;gap:10px;background:none;border:none;padding:0;text-align:left;color:var(--ink);}
.brand-mark{
  width:44px;height:44px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;background:var(--ink);color:var(--lime);
}
.brand-mark svg{width:26px;height:26px;}
.brand-text{display:flex;flex-direction:column;}

.area-nav{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;min-width:0;}
.area-nav::-webkit-scrollbar{display:none;}
.area-nav button{
  display:inline-flex;align-items:center;gap:9px;white-space:nowrap;
  background:transparent;border:1px solid var(--line-strong);color:var(--ink);
  padding:11px 20px;border-radius:var(--r-pill);font-size:13.5px;
  transition:background .16s ease, color .16s ease, border-color .16s ease;
}
.area-nav button svg{width:16px;height:16px;flex:none;}
.area-nav button:hover{background:var(--surface-glass);}
.area-nav button.active{background:var(--ink);border-color:var(--ink);color:#fff;}

.topbar-right{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:1 1 auto;min-width:0;}

main{flex:1;padding:0 0 56px;width:100%;}
.view{display:none;}
.view.active{display:block;animation:rise .28s ease both;}
@keyframes rise{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px;flex-wrap:wrap;gap:16px;}
.page-head h2{font-size:34px;line-height:1.1;letter-spacing:-0.03em;margin:0;}
.page-head .sub{color:var(--ink-3);font-size:22px;line-height:1.25;letter-spacing:-0.02em;margin-top:4px;max-width:760px;}

/* ---------------- Кнопки ---------------- */
.btn{
  border:1px solid transparent;border-radius:var(--r-pill);padding:12px 22px;
  font-weight:500;font-size:13.5px;line-height:1.1;white-space:nowrap;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:transform .14s ease, background .16s ease, border-color .16s ease, color .16s ease;
}
.btn:active{transform:scale(0.98);}
.btn[disabled]{opacity:.5;pointer-events:none;}
.btn-primary, .btn-accent{background:var(--ink);color:#fff;}
.btn-primary:hover, .btn-accent:hover{background:#2A2A30;}
.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong);}
.btn-ghost:hover{border-color:var(--ink);}
.btn-lime{background:var(--lime);color:var(--ink);}
.btn-lime:hover{background:#D0EC2C;}
.btn-sm{padding:8px 15px;font-size:12.5px;}
.btn-danger{background:var(--bad-soft);color:#B8401F;}
.btn-danger:hover{background:#F8D3C5;}
.hero .btn-ghost{background:rgba(255,255,255,0.14);color:#fff;border-color:rgba(255,255,255,0.35);}
.hero .btn-ghost:hover{background:rgba(255,255,255,0.24);border-color:rgba(255,255,255,0.6);}
.hero .btn-accent, .hero .btn-primary{background:#fff;color:var(--ink);}
.hero .btn-accent:hover, .hero .btn-primary:hover{background:#F1F1F1;}

/* ---------------- Чекбоксы и радио ---------------- */
input[type=checkbox]{
  appearance:none;-webkit-appearance:none;margin:0;flex:none;
  width:20px !important;height:20px !important;border-radius:50%;
  border:1.5px solid var(--line-strong);background:var(--surface);
  display:inline-grid;place-content:center;cursor:pointer;
  transition:background .15s ease, border-color .15s ease;
}
input[type=checkbox]::before{
  content:'';width:10px;height:10px;transform:scale(0);transition:transform .15s ease;
  background:var(--ink);
  clip-path:polygon(14% 52%, 0 66%, 38% 100%, 100% 22%, 86% 9%, 37% 72%);
}
input[type=checkbox]:checked{background:var(--lime);border-color:var(--lime);}
input[type=checkbox]:checked::before{transform:scale(1);}
input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 4px var(--lime-soft);border-color:var(--ink);}
input[type=radio]{accent-color:var(--ink);width:16px;height:16px;margin:0;}

/* ---------------- Дашборд ---------------- */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;}
.stat-tile{padding:22px 22px 22px 24px;display:flex;flex-direction:column;min-height:230px;border-radius:var(--r-xl);}
.tile-top{display:flex;align-items:center;gap:12px;}
.tile-top .arrow-btn{margin-left:auto;}
.tile-title{font-size:17px;line-height:1.2;letter-spacing:-0.01em;margin-top:18px;}
.hero .tile-top .tile-name{font-size:17px;line-height:1.15;letter-spacing:-0.01em;}
.tile-cap{font-size:12.5px;color:var(--ink-3);margin-top:4px;}
.hero .tile-cap{color:rgba(255,255,255,0.72);}
.stat-tile .value{font-size:40px;font-weight:400;letter-spacing:-0.035em;line-height:1;margin-top:auto;padding-top:18px;}
.stat-tile .value small{font-size:18px;letter-spacing:0;margin-left:4px;color:inherit;opacity:.7;}
.stat-tile .value .of{font-size:18px;letter-spacing:0;color:var(--ink-3);}
.tile-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;}
.tile-bottom .value{margin-top:0;padding-top:0;}
.tile-foot{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-top:14px;color:rgba(255,255,255,0.75);}

/* точечная матрица */
.dots{display:grid;grid-template-columns:repeat(8,8px);gap:6px;flex:none;}
.dots i{width:8px;height:8px;border-radius:50%;border:1px solid var(--line-strong);display:block;}
.dots i.on{background:var(--ink);border-color:var(--ink);}
.hero .dots{grid-template-columns:repeat(18,6px);gap:5px;margin-top:14px;}
.hero .dots i{width:4px;height:4px;border:none;background:rgba(255,255,255,0.35);}
.hero .dots i.on{background:var(--lime);}
/* риски-шкала */
.ticks{display:flex;align-items:flex-end;justify-content:space-between;height:28px;margin-top:14px;}
.ticks i{width:1.5px;height:18px;background:rgba(255,255,255,0.45);display:block;border-radius:1px;}
.ticks i.on{height:28px;width:3px;background:var(--lime);}

.dash-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;margin-bottom:16px;}
.chart-card{padding:24px 26px 22px;}
.card-head{display:flex;align-items:center;gap:14px;margin-bottom:10px;}
.card-head .arrow-btn{margin-left:auto;}
.chart-title{font-size:17px;letter-spacing:-0.01em;}
.chart-sub{font-size:12.5px;color:var(--ink-3);}
.line-chart{position:relative;margin-top:8px;}
.line-chart svg{display:block;width:100%;height:auto;overflow:visible;}
.line-chart .months{display:grid;grid-template-columns:repeat(12,1fr);font-size:11.5px;color:var(--ink-3);text-align:center;margin-top:6px;padding-left:44px;}
.legend-row{display:flex;gap:18px;font-size:12px;color:var(--ink-2);margin-top:14px;justify-content:center;}
.legend-row .sw{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:0;}

.stage-list{display:flex;flex-direction:column;gap:14px;margin-top:14px;}
.stage-row .stage-top{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;margin-bottom:7px;color:var(--ink-2);}
.stage-row .stage-top b{font-weight:500;color:var(--ink);font-size:15px;}
.bar-track{height:8px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden;}
.bar-track i{display:block;height:100%;border-radius:var(--r-pill);background:var(--ink);}
.bar-track i.lead{background:var(--lime);box-shadow:inset 0 0 0 1px rgba(17,17,20,0.08);}

/* вкладки с подчёркиванием */
.u-tabs{display:flex;gap:34px;border-bottom:1px solid var(--line);padding:0 26px;}
.u-tabs .u-tab{
  display:inline-flex;align-items:center;gap:8px;padding:18px 0 14px;font-size:17px;letter-spacing:-0.01em;
  color:var(--ink);border-bottom:2px solid var(--ink);margin-bottom:-1px;
}
.count{
  min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--ink);color:#fff;font-size:11px;font-weight:500;letter-spacing:0;
}
.count.light{background:var(--surface);color:var(--ink);border:1px solid var(--line);}

/* ---------------- Таблицы ---------------- */
.list-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.list-table th{
  text-align:left;padding:14px 26px;font-size:12px;font-weight:400;
  color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;
}
.list-table td{padding:14px 26px;border-bottom:1px solid var(--line);color:var(--ink-2);}
.list-table tr:last-child td{border-bottom:none;}
.clickable-row{cursor:pointer;transition:background .14s ease;}
.clickable-row:hover{background:var(--surface-2);}
.case-num{
  display:inline-block;padding:5px 12px;border-radius:var(--r-pill);
  border:1px solid var(--line-strong);color:var(--ink);font-size:12.5px;white-space:nowrap;
}
.fio-link{color:var(--ink) !important;}
.kadarbitr-link{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px;}
.kadarbitr-link:hover{text-decoration-color:var(--ink);}
.stage-chip{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;}
.stage-chip::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 1px rgba(17,17,20,0.2);}
.empty-state{padding:44px 20px;text-align:center;color:var(--ink-3);font-size:13.5px;}
.empty-hint{color:var(--ink-3);font-size:13px;}

/* ---------------- Консультации ---------------- */
.consult-list{display:flex;flex-direction:column;gap:12px;}
.consult-item{
  display:flex;align-items:center;gap:18px;
  padding:16px 18px 16px 18px;border-radius:var(--r-lg);
  transition:border-color .16s ease;
}
.consult-item:hover{border-color:var(--line-strong);}
.consult-main{flex:1 1 220px;min-width:200px;}
.consult-item .name{font-size:17px;letter-spacing:-0.015em;}
.consult-item .meta{font-size:12.5px;color:var(--ink-3);margin-top:3px;}
.consult-item .meta b{color:var(--ink);font-weight:500;}
.consult-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:360px;}
.consult-item{cursor:pointer;}
.consult-status{
  appearance:none;-webkit-appearance:none;border:none;cursor:pointer;
  padding:7px 30px 7px 14px;border-radius:var(--r-pill);font:inherit;font-size:12.5px;
  background:var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23777' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center/12px;
  color:var(--ink-2);
}
.consult-status.status-new{background-color:var(--info-soft);color:#3A57C4;}
.consult-status.status-wait{background-color:var(--warn-soft);color:#9A6313;}
.consult-status.status-refuse{color:var(--ink-3);}
.consult-status.status-inwork{background-color:var(--good-soft);color:#237A3B;}
.consult-status.status-agree{background-color:var(--lime-soft);color:#5B6B00;}

.status-pill{
  display:inline-flex;align-items:center;gap:7px;
  padding:6px 13px;border-radius:var(--r-pill);font-size:12px;white-space:nowrap;
  background:var(--surface-2);color:var(--ink-2);
}
.status-pill::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
.status-new{background:var(--info-soft);color:#3A57C4;}
.status-wait{background:var(--warn-soft);color:#9A6313;}
.status-refuse{background:var(--surface-2);color:var(--ink-3);}
.status-inwork{background:var(--good-soft);color:#237A3B;}

/* ---------------- Карточка дела ---------------- */
.back-link{
  background:none;border:none;color:var(--ink-3);font-size:13px;
  padding:0 0 16px;display:inline-flex;align-items:center;gap:6px;
}
.back-link:hover{color:var(--ink);}
/* шапка: договор, ФИО и шкала оплаты на оливковом градиенте */
.case-hero{padding:26px 30px 22px;margin-bottom:16px;}
.case-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.case-contract{
  display:inline-flex;padding:6px 14px;border-radius:var(--r-pill);font-size:13px;
  background:rgba(255,255,255,0.16);border:1px solid rgba(255,255,255,0.3);
}
.case-fio{font-size:38px;font-weight:400;letter-spacing:-0.035em;line-height:1.05;margin:14px 0 0;}
.case-stage{
  display:inline-flex;align-items:center;gap:8px;padding:8px 15px;border-radius:var(--r-pill);
  background:var(--ink);color:#fff;font-size:13px;white-space:nowrap;
}
.case-stage::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--lime);}
.pay-scale{margin-top:26px;}
.pay-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px;}
.pay-cap{font-size:12.5px;color:rgba(255,255,255,0.72);}
.pay-sum{font-size:34px;letter-spacing:-0.035em;line-height:1;margin-top:6px;font-variant-numeric:tabular-nums;}
.pay-sum small{font-size:16px;letter-spacing:0;color:rgba(255,255,255,0.72);margin-left:8px;}
.pay-pct{font-size:44px;letter-spacing:-0.04em;line-height:1;text-align:right;}
.pay-pct small{display:block;font-size:12.5px;letter-spacing:0;color:rgba(255,255,255,0.72);margin-top:6px;}
.pay-track{position:relative;height:14px;border-radius:var(--r-pill);background:rgba(255,255,255,0.2);}
.pay-track i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-pill);background:var(--lime);}
.pay-tick{position:absolute;top:-5px;bottom:-5px;width:1.5px;background:rgba(255,255,255,0.5);transform:translateX(-50%);}
.pay-labels{position:relative;height:36px;margin-top:10px;font-size:12px;color:rgba(255,255,255,0.75);}
.pay-labels span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap;text-align:center;}
.pay-labels span:first-child{transform:none;text-align:left;}
.pay-labels span:last-child{transform:translateX(-100%);text-align:right;}
.pay-labels b{display:block;font-weight:500;color:#fff;}
.pay-labels small{display:block;font-size:12px;font-variant-numeric:tabular-nums;}
.pay-labels span.reached b{color:var(--lime);}

/* зелёная шапка: телефон и стадия под ФИО, плитки сводки и линия стадий */
.case-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px;font-size:14px;color:rgba(255,255,255,0.8);}
.case-hero-meta a{color:#fff;text-decoration:none;}
.case-hero-meta a:hover{text-decoration:underline;text-underline-offset:3px;}
.case-hero-meta .case-stage{padding:6px 14px;background:rgba(255,255,255,0.16);border:1px solid rgba(255,255,255,0.3);}
.case-hero-actions{display:flex;gap:8px;flex-wrap:wrap;}
.case-tiles{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:10px;margin:22px 0 20px;}
.case-tile{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px 16px;border-radius:var(--r-md);background:rgba(255,255,255,0.14);border:1px solid rgba(255,255,255,0.22);}
.case-tile span{font-size:12px;color:rgba(255,255,255,0.72);}
.case-tile b{font-weight:400;font-size:18px;letter-spacing:-0.01em;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;}
.case-tile em{font-style:normal;font-size:12.5px;color:rgba(255,255,255,0.72);}
a.case-tile{text-decoration:none;transition:background .14s ease;}
.case-tile .tile-head{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.case-tile .tile-head i{font-style:normal;font-size:16px;color:#fff;}
a.case-tile:hover{background:rgba(255,255,255,0.24);}
/* номер дела, судья и ссылка одной формой */
.court-form{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:10px;margin-top:10px;align-items:end;}
.court-form .full{grid-column:1 / -1;}
.court-form .btn{justify-self:start;}
.case-tile-bar{height:6px;border-radius:var(--r-pill);background:rgba(255,255,255,0.22);margin:4px 0 2px;overflow:hidden;}
.case-tile-bar i{display:block;height:100%;border-radius:var(--r-pill);background:var(--lime);}
/* линия стадий без кружков: пройденные лаймовые, текущая белая, будущие бледные; доп. стадии — пунктиром того же цвета */
.stage-line{display:flex;gap:4px;}
.sl-step{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.sl-step i{display:block;height:6px;border-radius:var(--r-pill);background:rgba(255,255,255,0.22);}
.sl-step.done i{background:var(--lime);}
.sl-step.current i{background:#fff;}
.sl-step.extra i{--dash:rgba(255,255,255,0.35);background:repeating-linear-gradient(90deg, var(--dash) 0 10px, transparent 10px 16px);}
.sl-step.extra.done i{--dash:var(--lime);}
.sl-step.extra.current i{--dash:#fff;}
.sl-step span{font-size:11.5px;line-height:1.25;color:rgba(255,255,255,0.6);overflow:hidden;text-overflow:ellipsis;}
.sl-step.done span{color:rgba(255,255,255,0.85);}
.sl-step.current span{color:#fff;font-weight:500;}
.sl-step.extra span::before{content:'доп. · ';opacity:.7;}
/* прогресс: сверху уведомление клиенту и новая задача */
.case-quick{display:flex;flex-direction:column;gap:16px;margin-bottom:16px;}
.case-quick .case-block, #caseProgress > .case-block{margin:0;}
.notice-box{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.notice-box textarea{width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font:inherit;font-size:13.5px;color:var(--ink);resize:vertical;}
/* новая задача: пунктирная плашка во всю ширину, как «Добавить задачу» в Рабочем; под ней стадия, срок и «Сохранить» */
.quick-task .quick-text{margin:0;cursor:text;justify-content:flex-start;padding:0 14px;}
.quick-task .quick-text:focus-within{border-color:var(--ink);}
.quick-text input{flex:1;min-width:0;height:54px;border:0;background:none;font:inherit;font-size:14px;color:var(--ink);outline:none;}
.quick-text input::placeholder{color:var(--ink-2);}
.quick-foot{display:grid;grid-template-columns:minmax(0, 1fr) 160px auto;gap:8px;align-items:center;margin-top:10px;}
.quick-foot input, .quick-foot select{height:40px;padding:6px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;font-size:13.5px;color:var(--ink);min-width:0;}
@media (max-width:1100px){
  .case-tiles{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .case-tiles > :last-child{grid-column:1 / -1;}
}
@media (max-width:560px){
  .case-tiles{gap:8px;}
  .case-tile{padding:12px;}
  .case-tile b{font-size:15px;white-space:normal;}
  .quick-foot{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);}
  .quick-foot .btn{grid-column:1 / -1;}
  .sl-step span{display:none;}
  .sl-step.current span{display:block;white-space:nowrap;overflow:visible;}
}

/* вкладки карточки: подчёркивание, на узком экране листаются */
.case-tabs{
  display:flex;gap:30px;margin-bottom:18px;overflow-x:auto;scrollbar-width:none;
  box-shadow:inset 0 -1px 0 var(--line-strong);
}
.case-tabs::-webkit-scrollbar{display:none;}
.case-tabs button{
  flex:none;padding:12px 0 14px;background:transparent;border:none;border-bottom:2px solid transparent;
  color:var(--ink-3);font-size:17px;letter-spacing:-0.01em;white-space:nowrap;
  transition:color .15s ease, border-color .15s ease;
}
.case-tabs button:hover{color:var(--ink);}
.case-tabs button.active{color:var(--ink);border-bottom-color:var(--ink);}
.case-panel{display:none;}
.case-panel.active{display:block;}
.case-block{padding:24px 26px;}
/* внутри вкладки: две колонки на широком экране */
.case-actions{display:flex;gap:8px;flex-wrap:wrap;}
.case-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 36px;align-items:start;}
.case-split.comments{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);}
.case-split.cards{gap:16px;}
.case-split.wide-left{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);}
.case-stack{display:flex;flex-direction:column;gap:16px;min-width:0;}
.case-card-title{margin:0 0 16px;font-size:17px;font-weight:400;letter-spacing:-0.01em;}
.case-note{margin:0 0 14px;font-size:13px;color:var(--ink-3);}
.case-block .card-head{margin-bottom:18px;}
.block-sub-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:24px 0 12px;font-size:14px;color:var(--ink-2);}
.block-sub-head.first{margin-top:0;}

/* о деле */
.about-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px;}
.about-stat{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px 16px;border-radius:var(--r-md);background:var(--surface-2);}
.about-stat span{font-size:12px;color:var(--ink-3);}
.about-stat b{font-weight:400;font-size:17px;letter-spacing:-0.01em;font-variant-numeric:tabular-nums;}
.about-stat b.big{font-size:32px;letter-spacing:-0.035em;line-height:1;margin-top:auto;}
.about-stat em{font-style:normal;font-size:12px;color:var(--ink-3);}
.about-stat.accent{background:var(--lime);}
.about-stat.accent span{color:var(--ink-2);}
.link-field{display:flex;align-items:center;gap:8px;}
.link-field input{flex:1;min-width:0;}
.link-field .arrow-btn{text-decoration:none;}
.q-list{display:grid;grid-template-columns:minmax(120px,40%) minmax(0,1fr);margin:0;border-top:1px solid var(--line);}
.q-list div{display:contents;}
.q-list dt, .q-list dd{margin:0;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.q-list dt{color:var(--ink-3);padding-right:14px;}
.q-list dd{color:var(--ink);overflow-wrap:anywhere;}

/* прогресс: вертикальная шкала этапов */
.vprogress{list-style:none;margin:0;padding:0;}
.vp-stage{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:14px;padding-bottom:4px;}
.vp-stage::before{content:'';position:absolute;left:15px;top:36px;bottom:2px;width:2px;border-radius:2px;background:var(--line-strong);}
.vp-stage:last-child::before{display:none;}
.vp-stage.passed::before{background:var(--ink);}
.vp-stage.current::before{background:linear-gradient(var(--ink) var(--fill), var(--line-strong) var(--fill));}
.vp-dot{
  position:relative;z-index:1;width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:13px;
  background:var(--surface);border:1.5px solid var(--line-strong);color:var(--ink-3);
}
.vp-dot svg{width:15px;height:15px;}
.vp-stage.passed .vp-dot{background:var(--ink);border-color:var(--ink);color:var(--lime);}
.vp-stage.current .vp-dot{background:var(--lime);border-color:var(--ink);color:var(--ink);font-weight:500;box-shadow:0 0 0 5px var(--lime-soft);}
.vp-body{min-width:0;}
.vp-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;padding:6px 0 12px;background:none;border:none;text-align:left;color:var(--ink);}
.vp-title{font-size:15px;letter-spacing:-0.01em;}
.vp-stage.future .vp-title{color:var(--ink-2);}
.vp-meta{font-size:12px;color:var(--ink-3);white-space:nowrap;font-variant-numeric:tabular-nums;}
.vp-stage.current .vp-meta{color:var(--ink);}
/* задачи стадии — список, каждая одной строкой: галочка, название, данные, срок */
.vp-tasks{display:grid;grid-template-columns:1fr;gap:4px;padding-bottom:18px;}
.vp-tasks > .empty-hint, .vp-add, .vp-actions{grid-column:1/-1;}
.vp-task{display:flex;align-items:center;gap:10px;padding:6px 10px;min-height:38px;border-radius:var(--r-sm);background:var(--surface-2);}
.vp-task input[type=checkbox]{flex:none;}
.vp-task-main{flex:1;min-width:0;display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;}
.vp-task-text{flex:1 1 220px;min-width:0;font-size:13.5px;line-height:1.35;overflow-wrap:anywhere;}
.vp-task.done .vp-task-text{text-decoration:line-through;color:var(--ink-3);}
.vp-task-extra{flex:0 1 260px;}
.vp-task-extra input{
  width:100%;padding:4px 10px;border:1px solid var(--line-strong);border-radius:10px;
  font-size:13px;font-family:inherit;color:var(--ink);background:var(--surface);outline:none;
}
.vp-task-extra input:focus{border-color:var(--ink);}
.vp-add{
  width:100%;padding:9px 12px;border:1px dashed var(--line-strong);border-radius:var(--r-sm);
  font-size:13px;font-family:inherit;color:var(--ink);background:transparent;outline:none;
}
.vp-add:focus{border-style:solid;border-color:var(--ink);}
.vp-actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:6px;}
.vp-final{font-size:12.5px;color:#237A3B;}
/* кнопка удаления у строк: видна при наведении, на сенсорных экранах — всегда */
.vp-del{flex:none;padding:2px 4px;background:none;border:none;color:var(--ink-3);font-size:12px;line-height:1;opacity:0;transition:opacity .15s ease, color .15s ease;}
.vp-task:hover .vp-del, .event:hover .vp-del, .fin-row:hover .vp-del, .vp-del:focus-visible{opacity:1;}
.vp-del:hover{color:var(--bad);}
@media (hover:none){ .vp-del{opacity:1;} }

/* комментарии: мои записи и журнал изменений */
.comment-add{display:flex;flex-direction:column;gap:8px;}
.comment-add textarea{
  width:100%;min-height:76px;resize:vertical;padding:11px 14px;border:1px solid var(--line-strong);border-radius:var(--r-sm);
  font-size:14px;font-family:inherit;color:var(--ink);background:var(--surface);outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.comment-add textarea:focus{border-color:var(--ink);box-shadow:0 0 0 4px var(--lime-soft);}
.comment-add .btn{align-self:flex-end;}
.event-feed{display:flex;flex-direction:column;max-height:560px;overflow-y:auto;margin-right:-8px;padding-right:8px;}
.event{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.event:last-child{border-bottom:none;}
.event-dot{flex:none;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--line-strong);}
.event.comment .event-dot{background:var(--lime);box-shadow:inset 0 0 0 1px rgba(17,17,20,0.18);}
.event-main{flex:1;min-width:0;}
.event-meta{font-size:11.5px;color:var(--ink-3);}
.event-text{margin-top:2px;font-size:13.5px;color:var(--ink-2);overflow-wrap:anywhere;}
.event.comment .event-text{font-size:14.5px;color:var(--ink);white-space:pre-line;}

/* финансы */
.fin-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;}
.fin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;}
.fin-stat{min-width:0;padding:14px 16px;border-radius:var(--r-md);background:var(--surface-2);}
.fin-stat span, .fin-stat em{display:block;font-size:12px;font-style:normal;color:var(--ink-3);}
.fin-stat b{display:block;margin:6px 0 2px;font-weight:400;font-size:24px;letter-spacing:-0.03em;line-height:1.1;font-variant-numeric:tabular-nums;}
.fin-stat.dark{background:var(--ink);color:#fff;}
.fin-stat.dark span, .fin-stat.dark em{color:rgba(255,255,255,0.65);}
.fin-stat.dark b{color:var(--lime);}
.fin-stat.dark.negative b{color:#FF9A7A;}
.fin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.fin-form{margin-top:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);}
.fin-form-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;}
.fin-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);}
.fin-row:last-child{border-bottom:none;}
.fin-sign{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;background:var(--surface-2);color:var(--ink-2);}
.fin-row.income .fin-sign{background:var(--lime);color:var(--ink);}
.fin-row-main{flex:1;min-width:0;}
.fin-row-title{font-size:14px;}
.fin-row-sub{font-size:12px;color:var(--ink-3);overflow-wrap:anywhere;}
.fin-amount{font-weight:400;font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums;}
.fin-row.expense .fin-amount{color:var(--ink-2);}
.flag-list{display:flex;flex-direction:column;gap:10px;}

@media (max-width:900px){
  .case-split, .case-split.comments, .case-split.wide-left{grid-template-columns:minmax(0,1fr);}
  .case-tabs{gap:22px;}
  .case-tabs button{font-size:15px;}
}
@media (max-width:640px){
  .case-hero{padding:22px 20px 18px;}
  .case-fio{font-size:28px;}
  .pay-sum{font-size:26px;}
  .pay-pct{font-size:32px;text-align:left;}
  .pay-labels span:not(:first-child):not(:last-child) small{display:none;}
  .about-stats{grid-template-columns:1fr 1fr;}
  .fin-top, .fin-stats{grid-template-columns:1fr;}
  .case-block{padding:20px 18px;}
}

/* ---------------- Формы ---------------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.f-field{display:flex;flex-direction:column;gap:7px;min-width:0;}
.f-field.full{grid-column:1/-1;}
.f-field label{font-size:12.5px;color:var(--ink-3);}
/* в анкете подписи бывают в две строки — поля одного ряда выравниваются по низу */
#consultFormBody .form-grid > .f-field{justify-content:flex-end;}
.f-field > div{font-size:14px;color:var(--ink);}
.f-field > .status-pill{align-self:flex-start;}
.f-field input, .f-field select, .f-field textarea,
.sprint-add input, #newDocItem{
  background:var(--surface);border:1px solid var(--line-strong) !important;border-radius:var(--r-sm) !important;
  padding:11px 14px;font-size:14px;color:var(--ink);outline:none;width:100%;min-height:44px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.f-field input:focus, .f-field select:focus, .f-field textarea:focus,
.sprint-add input:focus, #newDocItem:focus{border-color:var(--ink) !important;box-shadow:0 0 0 4px var(--lime-soft);}
.f-field select{
  appearance:none;-webkit-appearance:none;padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23111114' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}
.f-field textarea{min-height:88px;resize:vertical;}
.f-field .hs-native{display:none;}
/* список с подсказками (hintSelect): кнопка выглядит как поле выбора */
.hs-btn{
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);
  padding:11px 36px 11px 14px;font:inherit;font-size:14px;color:var(--ink);width:100%;min-height:44px;
  text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23111114' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.hs-btn:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px var(--lime-soft);}
#hsPop{position:fixed;z-index:1000;}
.hs-list{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-pop);
  padding:6px;overflow-y:auto;
}
.hs-item{
  padding:9px 12px;border-radius:10px;font-size:14px;color:var(--ink);cursor:pointer;
}
.hs-item:hover{background:var(--surface-2);}
.hs-item.on{background:var(--ink);color:#fff;}
.hs-tip{
  position:absolute;width:280px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:var(--shadow-pop);padding:14px 16px;pointer-events:none;
}
.hs-tip.below{position:static;width:auto;margin-top:6px;}
.hs-tip-title{font-size:14px;font-weight:500;margin-bottom:6px;}
.hs-tip-text{font-size:13px;line-height:1.45;color:var(--ink-2);white-space:pre-line;}
.hs-tip-meta{font-size:12.5px;color:var(--ink-3);margin-top:6px;}
.req{color:var(--alert);}
.form-block{padding:20px 0;border-bottom:1px solid var(--line);}
.form-block:last-child{border-bottom:none;}
.form-block h4{font-size:17px;font-weight:400;margin-bottom:16px;letter-spacing:-0.01em;}
.conditional{display:none;margin-top:12px;}
.conditional.show{display:block;}
.chip-check{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink);}
.yn{display:flex;gap:16px;font-size:14px;color:var(--ink);padding-top:10px;}
.yn label{display:inline-flex;align-items:center;gap:8px;color:var(--ink) !important;font-size:14px !important;}
.deal-row{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;position:relative;
  padding:14px 46px 14px 14px;background:var(--surface-2);
  border-radius:var(--r-md);margin-bottom:10px;
}
.row-remove, .rm-entry{
  position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;
  background:var(--surface);border:1px solid var(--line);color:var(--ink-3);font-size:11px;line-height:1;
}
.row-remove:hover, .rm-entry:hover{color:var(--bad);border-color:var(--bad);}
.add-row-btn{margin-top:4px;}
.repeat-entry{
  position:relative;padding:14px 46px 14px 14px;background:var(--surface-2);
  border-radius:var(--r-md);margin-bottom:10px;font-size:14px;
}
.form-sub{font-size:14px;color:var(--ink-2);margin:24px 0 12px;}

/* счётчик − 0 + */
.stepper{
  display:inline-flex;align-items:center;gap:6px;align-self:flex-start;flex:none;
  min-height:44px;padding:4px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);
  transition:border-color .15s ease;
}
.stepper button{
  width:34px;height:34px;border-radius:50%;border:none;flex:none;
  background:var(--surface-2);color:var(--ink);font-size:18px;line-height:1;
  transition:background .15s ease, color .15s ease;
}
.stepper button:hover:not(:disabled){background:var(--ink);color:#fff;}
.stepper button:disabled{opacity:.35;cursor:default;}
.stepper output{min-width:28px;text-align:center;font-size:15px;font-variant-numeric:tabular-nums;}
.stepper.is-set{border-color:var(--ink);}
.stepper.is-set output{font-weight:500;}

/* место работы: галочка «не трудоустроен» делает поля неактивными */
.work-field{display:flex;align-items:flex-end;gap:12px 20px;flex-wrap:wrap;}
.work-field .f-field{flex:1 1 320px;}
.work-field .chip-check{min-height:44px;}
.is-inactive{opacity:.5;pointer-events:none;user-select:none;}
.is-inactive input, .is-inactive select{background-color:var(--surface-2);}
#wrap_workplace, #wrap_salary, #wrap_salaryAmount{transition:opacity .2s ease;}

/* имущество: счётчик по видам и опросник на каждый объект */
.prop-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.prop-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:5px 5px 5px 18px;background:var(--surface-2);border-radius:var(--r-pill);font-size:14px;
  transition:background .15s ease;
}
.prop-row .stepper{min-height:0;border-color:transparent;}
.prop-row.is-set{background:var(--lime-soft);}
.prop-card{margin-top:12px;padding:16px 18px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);}
.prop-card-title{display:flex;align-items:center;gap:10px;font-size:15px;margin-bottom:14px;}
.prop-card-title::before{content:'';width:8px;height:8px;border-radius:50%;flex:none;background:var(--lime);box-shadow:inset 0 0 0 1px rgba(17,17,20,0.18);}
.prop-chips{display:flex;flex-wrap:wrap;gap:8px;}
.prop-chips span{border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:7px 13px;font-size:13px;}
@media (max-width:640px){
  .prop-list{grid-template-columns:1fr;}
}
.checklist-item{
  display:flex;align-items:center;gap:12px;
  padding:13px 0;border-bottom:1px solid var(--line);font-size:14px;
}
.checklist-item:last-child{border-bottom:none;}
.checklist-item span{flex:1;}
.checklist-item input:checked + span{color:var(--ink-3);text-decoration:line-through;}
.checklist-item .rm, .wish-item .rm, .sprint-item .rm{background:none;border:none;color:var(--ink-3);font-size:12px;}
.checklist-item .rm:hover, .wish-item .rm:hover, .sprint-item .rm:hover{color:var(--bad);}
.checkbox-flags{display:flex;flex-direction:column;gap:12px;}
.checkbox-flags label{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink);}

/* ---------------- Шаблоны ---------------- */
.tpl-drop{
  border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);
  padding:36px;text-align:center;color:var(--ink-3);font-size:14px;margin-bottom:16px;
  background:var(--surface-glass);
}
.tpl-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 26px;border-bottom:1px solid var(--line);font-size:14px;}
.tpl-item:last-child{border-bottom:none;}
.tpl-item .name{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.badge{
  font-size:11px;font-weight:500;background:var(--lime);color:var(--ink);
  padding:5px 10px;border-radius:var(--r-pill);
}

/* ---------------- Личный контур ---------------- */
.goal-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-bottom:16px;}
.goal-main{padding:28px 30px;display:flex;flex-direction:column;justify-content:space-between;gap:26px;min-height:300px;}
.goal-kicker{font-size:12.5px;color:var(--ink-3);}
.goal-main h3{font-size:30px;font-weight:400;letter-spacing:-0.03em;line-height:1.15;margin:10px 0 8px;}
.goal-main .goal-note{font-size:14px;color:var(--ink-2);line-height:1.5;max-width:560px;}
.goal-meta{display:flex;gap:30px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3);}
.goal-meta b{display:block;font-size:22px;color:var(--ink);font-weight:400;margin-top:4px;letter-spacing:-0.025em;}
.hero .goal-kicker, .hero .goal-meta{color:rgba(255,255,255,0.72);}
.hero .goal-main .goal-note, .hero .goal-note{color:rgba(255,255,255,0.82);}
.hero .goal-meta b{color:#fff;}
.progress-track{height:8px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden;}
.progress-fill{height:100%;border-radius:var(--r-pill);background:var(--ink);}
.hero .progress-track{background:rgba(255,255,255,0.22);}
.hero .progress-fill{background:var(--lime);}
.goal-side{padding:26px 28px;display:flex;flex-direction:column;gap:16px;}
.goal-side > div[style*="border-top"]{border-top-color:var(--line) !important;}
.ring-wrap{display:flex;align-items:center;gap:22px;}
.ring{width:124px;height:124px;flex:none;}
.ring .ring-track{stroke:var(--surface-2);}
.ring .ring-val{stroke:var(--ink);}
.ring .ring-dot{fill:var(--lime);stroke:var(--ink);stroke-width:2;}
.ring-label{font-size:12.5px;color:var(--ink-3);}
.ring-label b{display:block;font-size:44px;color:var(--ink);letter-spacing:-0.04em;font-weight:400;line-height:1;margin-bottom:6px;}

.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.area-card{padding:22px 24px 20px;display:flex;flex-direction:column;gap:16px;}
.area-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.area-head .title{display:flex;align-items:center;gap:12px;font-size:17px;letter-spacing:-0.015em;}
.area-icon{
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong);color:var(--ink);font-size:15px;flex:none;
}
.area-score{
  font-size:12.5px;font-weight:500;color:var(--ink);background:var(--lime);
  padding:5px 11px;border-radius:var(--r-pill);white-space:nowrap;
}
.area-metrics{display:flex;flex-direction:column;gap:14px;}
.metric{display:flex;flex-direction:column;gap:7px;}
.metric-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;}
.metric-top .m-name{color:var(--ink-2);}
.metric-top .m-val{color:var(--ink);font-size:14px;letter-spacing:-0.01em;white-space:nowrap;}
.metric-bar{height:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden;}
.metric-bar i{display:block;height:100%;border-radius:var(--r-pill);background:var(--good);}
.metric-bar.warn i{background:var(--warn);}
.metric-bar.bad i{background:var(--bad);}
.area-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;}

.wish-list{display:flex;flex-direction:column;gap:8px;}
.wish-item{
  display:flex;align-items:center;gap:12px;
  background:var(--surface-2);border-radius:var(--r-md);
  padding:11px 14px;font-size:13.5px;
}
.wish-item .kind{font-size:11px;padding:4px 10px;border-radius:var(--r-pill);flex:none;}
.kind-dream{background:var(--lime);color:var(--ink);}
.kind-problem{background:var(--bad-soft);color:#B8401F;}
.wish-item .txt{flex:1;}

.sprint-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.flow-step{
  display:flex;align-items:center;gap:9px;
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill);
  padding:7px 16px 7px 7px;font-size:13px;color:var(--ink);
}
.flow-step:hover{border-color:var(--ink);}
.flow-step .n{
  width:26px;height:26px;border-radius:50%;background:var(--surface-2);
  display:flex;align-items:center;justify-content:center;font-size:11.5px;color:var(--ink-2);
}
.flow-step.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.flow-step.active .n{background:var(--lime);color:var(--ink);}
.flow-step.passed .n{background:var(--lime);color:var(--ink);font-size:0;}
.flow-step.passed .n::before{content:'✓';font-size:12px;}
.flow-arrow{color:var(--ink-3);font-size:12px;}

.sprint-list{display:flex;flex-direction:column;gap:16px;}
.sprint-card{padding:26px 28px;display:flex;flex-direction:column;gap:18px;}
.sprint-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.sprint-top h3{font-size:24px;font-weight:400;letter-spacing:-0.025em;}
.sprint-dates{font-size:13px;color:var(--ink-3);margin-top:4px;}
.sprint-phase{padding:6px 13px;border-radius:var(--r-pill);font-size:12px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2);}
.sprint-phase.is-active{background:var(--ink);color:#fff;}
.sprint-phase.is-done{background:var(--lime);color:var(--ink);}
.sprint-stats{display:flex;gap:34px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3);}
.sprint-stats b{display:block;font-size:26px;color:var(--ink);font-weight:400;margin-top:4px;letter-spacing:-0.03em;line-height:1;}
.sprint-items{display:flex;flex-direction:column;gap:8px;}
.sprint-item{
  display:flex;align-items:center;gap:12px;
  background:var(--surface-2);border-radius:var(--r-md);
  padding:10px 14px;font-size:14px;
}
.sprint-item.done .s-title{text-decoration:line-through;color:var(--ink-3);}
.sprint-item .s-title{flex:1;}
.sprint-item .s-kind{font-size:11px;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);border:1px solid var(--line);}
.sprint-item .s-kind.goal{background:var(--ink);color:#fff;border-color:var(--ink);}
.sprint-item .s-est{font-size:12px;color:var(--ink);background:var(--surface);padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--line);}
.sprint-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.sprint-add input{width:auto;min-height:40px;padding:8px 14px;font-size:13.5px;border-radius:var(--r-pill) !important;}
.sprint-add input.grow{flex:1;min-width:180px;}
.sprint-add input.est{width:92px;}

.soon-card{padding:26px 28px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.soon-logo{
  width:60px;height:60px;border-radius:50%;border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--ink);flex:none;
}
.soon-body{flex:1;min-width:220px;}
.soon-body h3{font-size:20px;font-weight:400;letter-spacing:-0.02em;}
.soon-body p{font-size:14px;color:var(--ink-2);margin-top:6px;line-height:1.5;}
.soon-badge{padding:7px 14px;border-radius:var(--r-pill);font-size:12px;background:var(--warn-soft);color:#9A6313;white-space:nowrap;}

/* ---------------- Главная ---------------- */
.home-blocks{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.block-tile{
  padding:22px 24px;min-height:172px;display:flex;flex-direction:column;cursor:pointer;
  transition:transform .18s ease;
}
.block-tile:hover{transform:translateY(-2px);}
.block-tile .tile-top .arrow-btn{margin-left:auto;}
.block-sub{font-size:13px;color:rgba(255,255,255,0.8);}
.block-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;}
.block-name{font-size:34px;letter-spacing:-0.035em;line-height:1;}
.block-count{font-size:12.5px;color:rgba(255,255,255,0.78);text-align:right;}
.block-count b{display:block;font-size:40px;font-weight:400;color:#fff;letter-spacing:-0.04em;line-height:1;margin-bottom:4px;}

/* ---------------- Планировщик ---------------- */
.planner{display:grid;grid-template-columns:minmax(320px,400px) minmax(0,1fr);gap:16px;align-items:start;}
.planner.no-cal{grid-template-columns:1fr;}
.task-panel, .cal-panel{padding:22px 22px 18px;}
.task-panel{transition:box-shadow .16s ease;}
.task-panel.drop{box-shadow:0 0 0 2px var(--ink), var(--shadow-soft);}
.chart-title .count{margin-left:6px;vertical-align:2px;}

.quick-add{margin:14px 0 10px;display:flex;flex-direction:column;gap:10px;}
.quick-add input{
  width:100%;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-pill);
  padding:12px 18px;font-size:14px;color:var(--ink);outline:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.quick-add input:focus{border-color:var(--ink);box-shadow:0 0 0 4px var(--lime-soft);}
.quick-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.quick-row .btn{margin-left:auto;}
.chips{display:flex;gap:6px;flex-wrap:wrap;}
.chip{
  border:1px solid var(--line-strong);background:transparent;border-radius:var(--r-pill);
  padding:6px 12px;font-size:12px;color:var(--ink);
}
.chip:hover{border-color:var(--ink);}
.chip.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.mini-select{
  appearance:none;-webkit-appearance:none;border:1px solid var(--line-strong);border-radius:var(--r-pill);
  padding:6px 28px 6px 12px;font-size:12px;color:var(--ink);background-color:var(--surface);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23111114' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;outline:none;
}

.task-groups{display:flex;flex-direction:column;gap:12px;max-height:680px;overflow-y:auto;margin-right:-10px;padding-right:10px;}
.planner.no-cal .task-groups{max-height:none;}
.tg-title{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-3);padding:2px 4px 6px;}
.task-group.overdue .tg-title{color:var(--bad);}
details.task-group summary{list-style:none;cursor:pointer;}
details.task-group summary::-webkit-details-marker{display:none;}
details.task-group summary span:first-child::after{content:' ›';}
details.task-group[open] summary span:first-child::after{content:' ⌄';}
.tg-empty{padding:18px 4px;}
.task-item{
  display:flex;align-items:flex-start;gap:12px;margin-bottom:6px;
  padding:11px 12px;border-radius:var(--r-md);background:var(--surface-2);cursor:grab;
  transition:background .14s ease, opacity .14s ease;
}
.task-item:hover{background:#ECECEF;}
.task-item.dragging{opacity:.35;}
.ti-body{flex:1;min-width:0;cursor:pointer;}
.ti-title{font-size:14px;line-height:1.35;overflow-wrap:anywhere;}
.task-item.done .ti-title{text-decoration:line-through;color:var(--ink-3);}
.ti-meta{display:flex;flex-wrap:wrap;align-items:center;gap:3px 10px;font-size:12px;color:var(--ink-3);margin-top:3px;}
.scope-tag{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);}
.scope-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none;}
.scope-dot.s-profsoft{background:var(--lime);box-shadow:0 0 0 1px rgba(17,17,20,0.25);}
.scope-dot.s-bankrot{background:#D39583;}
.scope-dot.s-personal{background:var(--info);}

/* календарь на три дня */
.cal{margin-top:14px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface);}
.cal-days, .cal-grid{display:grid;grid-template-columns:58px repeat(3,minmax(0,1fr));}
.cal-days{border-bottom:1px solid var(--line);}
.cal-day-head{padding:12px 12px 10px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:1px;min-width:0;}
.cal-day-head b{font-weight:500;font-size:14px;}
.cal-day-head span{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-day-head.today b::after{
  content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:8px;vertical-align:1px;
  background:var(--lime);box-shadow:0 0 0 1px rgba(17,17,20,0.25);
}
.cal-body{max-height:640px;overflow-y:auto;}
.cal-grid{padding:12px 0;}
.cal-gutter{position:relative;}
.cal-gutter span{position:absolute;right:10px;transform:translateY(-50%);font-size:11px;color:var(--ink-3);}
.cal-col{
  position:relative;border-left:1px solid var(--line);cursor:copy;
  background-image:linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size:100% 56px;transition:background-color .14s ease;
}
.cal-col:hover{background-color:rgba(17,17,20,0.015);}
.cal-col.drop{background-color:rgba(220,246,62,0.14);}
.cal-now{position:absolute;left:0;right:0;height:2px;background:var(--ink);z-index:3;pointer-events:none;}
.cal-now::before{
  content:'';position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;
  background:var(--lime);box-shadow:0 0 0 2px var(--ink);
}
.cal-hint{position:absolute;left:3px;right:3px;height:3px;border-radius:2px;background:var(--ink);pointer-events:none;z-index:4;}
.cal-hint::after{
  content:attr(data-time);position:absolute;left:4px;top:-24px;
  font-size:11px;background:var(--ink);color:#fff;padding:3px 8px;border-radius:var(--r-pill);
}
.cal-event{
  position:absolute;z-index:2;border-radius:12px;padding:6px 9px;overflow:hidden;cursor:grab;
  display:flex;flex-direction:column;gap:1px;font-size:12px;line-height:1.25;
  border-left:3px solid;color:var(--ink);transition:box-shadow .14s ease, opacity .14s ease;
}
.cal-event b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-event span{color:rgba(17,17,20,0.6);font-size:11px;white-space:nowrap;}
.cal-event.short{flex-direction:row;align-items:center;gap:6px;padding:2px 8px;}
.cal-event.short span{order:-1;}
.cal-event.s-profsoft{background:var(--lime-soft);border-color:#A6BF1C;}
.cal-event.s-bankrot{background:#F6E5DF;border-color:#C98A7A;}
.cal-event.s-personal{background:var(--info-soft);border-color:var(--info);}
.cal-event.done{opacity:.5;}
.cal-event.done b{text-decoration:line-through;}
.cal-event:hover{box-shadow:0 10px 24px -12px rgba(17,17,20,0.4);z-index:5;}
.cal-event.dragging{opacity:.3;}
/* факт трекинга: однотонный цвет блока, без перетаскивания */
.cal-event.cal-fact{cursor:pointer;}
.cal-event.cal-fact.running{box-shadow:inset 0 -3px 0 var(--ink);}

/* ---------------- Проекты ПрофСофт ---------------- */
/* 4 колонки: «Все задачи» и «Рутина» — по две, «Новый проект» — остаток последней строки (--span) */
.project-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:30px;}
.project-grid .wide{grid-column:span 2;}
.project-grid .project-add{grid-column:span var(--span, 4);min-height:96px;flex-direction:row;gap:12px;}
@media (max-width:1100px){
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .project-grid .project-add{grid-column:1 / -1;}
}
@media (max-width:640px){
  .project-grid{grid-template-columns:1fr;}
  .project-grid .wide{grid-column:auto;}
}
.project-card{
  padding:20px 22px;min-height:196px;cursor:pointer;border-radius:var(--r-xl);
  display:flex;flex-direction:column;justify-content:space-between;gap:14px;
  transition:border-color .16s ease, transform .16s ease;
}
.project-card:hover{transform:translateY(-2px);}
/* та же «бронзовая» заливка, что раньше была у выбранного проекта, — теперь на ховере
   любой плашки, кроме зелёной «Все задачи» (она всегда остаётся зелёной) и «+ Новый проект». */
.project-card:not(.hero-olive):not(.project-add){transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;}
.project-card:not(.hero-olive):not(.project-add):hover{background:var(--grad-bronze);border-color:transparent;color:#fff;}
.project-card:not(.hero-olive):not(.project-add):hover .pc-client,
.project-card:not(.hero-olive):not(.project-add):hover .pc-note,
.project-card:not(.hero-olive):not(.project-add):hover .pc-stats,
.project-card:not(.hero-olive):not(.project-add):hover .pc-stats .of{color:rgba(255,255,255,0.75);}
.project-card:not(.hero-olive):not(.project-add):hover .pc-stats b{color:#fff;}
.project-card:not(.hero-olive):not(.project-add):hover .status-pill{background:rgba(255,255,255,0.2);color:#fff;}
.project-card:not(.hero-olive):not(.project-add):hover .icon-circle{border-color:rgba(255,255,255,0.55);color:#fff;}
.project-card:not(.hero-olive):not(.project-add):hover .arrow-btn{background:var(--ink);color:#fff;}
.pc-top{display:flex;align-items:center;gap:10px;}
.pc-top .status-pill{margin-left:auto;}
.kb-card .pc-top .arrow-btn{margin-left:auto;text-decoration:none;}
.pc-title{font-size:18px;letter-spacing:-0.015em;line-height:1.2;}
.pc-client{font-size:12.5px;color:var(--ink-3);margin-top:3px;}
.pc-note{font-size:12.5px;line-height:1.45;color:var(--ink-3);margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.pc-stats{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--ink-3);}
.pc-stats b{font-size:30px;font-weight:400;color:var(--ink);letter-spacing:-0.035em;line-height:1;}
.pc-stats .of{font-size:15px;color:var(--ink-3);letter-spacing:0;}
.hero .pc-client, .hero .pc-note, .hero .pc-stats, .hero .pc-stats .of{color:rgba(255,255,255,0.75);}
.hero .pc-stats b{color:#fff;}
.hero .status-pill{background:rgba(255,255,255,0.2);color:#fff;}
.project-add{
  align-items:center;justify-content:center;font-size:14px;color:var(--ink-2);
  border:1.5px dashed var(--line-strong);background:var(--surface-glass);
}
.project-add:hover{border-color:var(--ink);color:var(--ink);}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;flex-wrap:wrap;}
.section-head h3{font-size:24px;font-weight:400;letter-spacing:-0.025em;margin:0;}

/* ---------------- Канбан проекта ---------------- */
.kan-board{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:10px;margin:0 -4px;}
.kan-col{
  flex:0 0 260px;width:260px;background:var(--surface-glass);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:12px;transition:background .14s ease;
}
.kan-col.drop{background:var(--lime-soft);}
.kan-col-head{
  display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);
  padding:2px 4px 10px;
}
.kan-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ink-3);}
.kan-dot.st-queue, .kan-dot.st-paused{background:var(--ink-3);}
.kan-dot.st-running{background:var(--good);}
.kan-dot.st-done{background:#9CB43A;}
.kan-dot.st-rejected{background:var(--bad);}
.kan-col-head .kan-count{margin-left:auto;color:var(--ink-3);}
.kan-col-body{display:flex;flex-direction:column;gap:8px;min-height:40px;}
.kan-card{
  background:var(--surface);border-radius:var(--r-md);padding:11px 12px;cursor:pointer;
  box-shadow:var(--shadow-soft);transition:transform .14s ease, opacity .14s ease;
}
.kan-card:hover{transform:translateY(-1px);}
.kan-card.dragging{opacity:.35;}
.kan-card-project{font-size:12px;color:var(--ink-3);margin-top:3px;}
.kan-dot.st-rework{background:var(--warn);}
.kan-dot.late{background:var(--bad);}
.kan-col-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);}
.kan-col-x{border:none;background:none;padding:0 2px;font-size:11px;color:var(--ink-3);cursor:pointer;}
.kan-col-x:hover{color:var(--bad);}
.kan-empty{font-size:12px;color:var(--ink-3);text-align:center;padding:14px 6px;border:1px dashed var(--line-strong);border-radius:var(--r-sm);}
.kan-col-add{flex:0 0 auto;align-self:flex-start;padding:12px 16px;border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:none;font:inherit;font-size:13px;color:var(--ink-2);cursor:pointer;white-space:nowrap;}
.kan-col-add:hover{color:var(--ink);border-color:var(--ink);}
.kan-card .tk-meta{margin-top:6px;}
.kan-card.late{box-shadow:inset 3px 0 0 var(--bad), var(--shadow-soft);}
.kan-card.done .ti-title{color:var(--ink-3);text-decoration:line-through;}
.tk-card .kan-board, .bfl-stage-tasks .kan-board{margin-top:4px;}
.tk-card .kan-col{background:var(--surface-2);border-color:transparent;}
.kan-col-body > .bfl-card{width:100%;}
.bfl-card.late{border-color:var(--bad);}
@media (max-width:900px){
  .kan-col{flex-basis:220px;width:220px;}
}
#kb-bankrot + .section-head{margin-top:14px;}

/* ---------------- База знаний ---------------- */
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin-bottom:16px;}
.kb-card{padding:20px 22px;min-height:200px;cursor:pointer;border-radius:var(--r-xl);display:flex;flex-direction:column;gap:10px;}
.kb-card:hover{border-color:var(--line-strong);}
.kb-title{font-size:18px;line-height:1.25;letter-spacing:-0.015em;margin-top:6px;}
.kb-excerpt{font-size:13px;color:var(--ink-2);line-height:1.5;flex:1;white-space:pre-line;}
.kb-foot{font-size:12px;color:var(--ink-3);}
textarea.kb-body{min-height:280px;line-height:1.55;}

/* ---------------- Разделы в разработке ---------------- */
.stub-card{padding:34px 36px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;max-width:760px;border-radius:var(--r-xl);}
.stub-card h3{font-size:28px;font-weight:400;letter-spacing:-0.03em;margin:8px 0 0;}
.stub-card p{color:var(--ink-2);font-size:15px;line-height:1.5;max-width:560px;}
.stub-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.stub-list span{border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:7px 13px;font-size:13px;}

@media (max-width:1280px){
  .planner{grid-template-columns:minmax(300px,360px) minmax(0,1fr);}
}
@media (max-width:640px){
  .home-blocks{grid-template-columns:1fr;}
  .cal-days, .cal-grid{grid-template-columns:46px repeat(3,minmax(0,1fr));}
  .cal-day-head{padding:10px 6px;}
  .block-name{font-size:28px;}
}

/* счётчик в пилюле-фильтре */
.chip .n{margin-left:7px;color:var(--ink-3);}
.chip.active .n{color:rgba(255,255,255,0.6);}

/* ---------------- Модальные окна ---------------- */
.modal-backdrop{
  position:fixed;inset:0;background:rgba(236,237,240,0.55);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  display:flex;align-items:center;justify-content:center;padding:24px;z-index:120;
  animation:fade .18s ease both;
}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
.modal{
  width:100%;max-width:560px;max-height:88vh;display:flex;flex-direction:column;
  border-radius:32px;box-shadow:var(--shadow-pop);overflow:hidden;
  background:var(--surface);border:1px solid var(--line);color:var(--ink);
  animation:rise .22s ease both;
}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 28px 8px;}
.modal-head h3{font-size:26px;font-weight:400;letter-spacing:-0.03em;}
.modal-close{
  width:40px;height:40px;border-radius:50%;flex:none;border:none;
  background:var(--ink);color:#fff;font-size:13px;line-height:1;
}
.modal-close:hover{background:#2A2A30;}
.modal-body{padding:4px 28px 20px;overflow-y:auto;}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px 22px;border-top:1px solid var(--line);flex-wrap:wrap;}

/* блок цены услуги */
.price-block{
  margin:8px -28px -20px;padding:22px 28px 26px;
  background:var(--lime-soft);border-top:none;border-bottom:none !important;
}
.price-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;}
.price-row .f-field{flex:1;min-width:180px;}
.price-row .f-field input{font-size:20px;letter-spacing:-0.02em;}
.price-current{
  display:flex;align-items:baseline;gap:10px;margin-bottom:14px;
  font-size:44px;font-weight:400;letter-spacing:-0.04em;line-height:1;color:var(--ink);
}
.price-current span{font-size:12.5px;color:var(--ink-3);letter-spacing:0;}

/* ---------------- Вход ---------------- */
.login-screen{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.login-card{
  width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px;
  padding:34px 32px 32px;border-radius:var(--r-xl);
  background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--shadow-pop);
}
.login-card .side-brand{padding:0 0 10px;}
.login-card .side-brand .name{font-size:34px;}
.login-title{font-size:26px;letter-spacing:-0.03em;margin-top:6px;}
.login-error{
  font-size:13px;color:#B8401F;background:var(--bad-soft);
  border-radius:var(--r-sm);padding:10px 14px;
}
.login-submit{width:100%;margin-top:6px;padding:15px 20px;}

/* ---------------- Прочее ---------------- */
.toast{
  position:fixed;bottom:26px;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:10px;
  background:var(--ink);color:#fff;padding:13px 22px 13px 16px;border-radius:var(--r-pill);
  font-size:13px;box-shadow:var(--shadow-pop);
  z-index:200;opacity:0;pointer-events:none;transition:opacity .2s, transform .2s;
}
.toast::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--lime);flex:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-6px);}
::placeholder{color:var(--ink-3);}
::selection{background:var(--lime);color:var(--ink);}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-thumb{background:rgba(17,17,20,0.14);border-radius:999px;}
::-webkit-scrollbar-track{background:transparent;}

/* ---------------- Адаптив ---------------- */
@media (max-width:1280px){
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .dash-grid{grid-template-columns:1fr;}
  .area-grid{grid-template-columns:repeat(2,1fr);}
  .goal-hero{grid-template-columns:1fr;}
}
@media (max-width:1000px){
  /* меню выезжает поверх страницы */
  .sidebar, body.sb-collapsed .sidebar{
    display:flex;position:fixed;top:0;left:0;bottom:0;z-index:130;margin:0;height:100vh;
    border-radius:0 var(--r-lg) var(--r-lg) 0;background:var(--surface);
    transform:translateX(-105%);transition:transform .22s ease;
  }
  body[data-menu="off"] .sidebar,
  body[data-menu="off"] .sb-backdrop{display:none !important;}
  body.sb-open .sidebar{transform:none;box-shadow:var(--shadow-pop);}
  body.sb-open .sb-backdrop{
    display:block;position:fixed;inset:0;z-index:125;background:rgba(236,237,240,0.5);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  }
  body[data-menu="on"] .menu-fab{
    display:inline-flex;position:fixed;left:16px;bottom:22px;z-index:110;width:52px;height:52px;
    background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:var(--shadow-pop);
  }
  body[data-menu="on"] .menu-fab:hover{background:#2A2A30;border-color:#2A2A30;}
  header.topbar{padding:16px 16px 22px;}
  .app-main{padding:0 16px;}
  .brand-text{display:none;}
  .area-nav{width:100%;}
  .planner{grid-template-columns:1fr;}
}
@media (max-width:900px){
  .form-grid, .form-grid.cols-3{grid-template-columns:1fr;}
  .deal-row{grid-template-columns:1fr 1fr;}
  .area-grid{grid-template-columns:1fr;}
  .page-head h2, .case-title h2{font-size:28px;}
  .page-head .sub{font-size:18px;}
}
@media (max-width:640px){
  .stat-grid{grid-template-columns:1fr;}
  .consult-item{flex-wrap:wrap;}
  .consult-actions{justify-content:flex-start;}
  .deal-row{grid-template-columns:1fr;}
  .list-table th, .list-table td{padding-left:16px;padding-right:16px;}
  .modal-head, .modal-body, .modal-foot{padding-left:20px;padding-right:20px;}
  .price-block{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px;}
}


/* ============================================================
   Блок «ПрофСофт»: рабочий день, трекинг, дашборд (см. DESIGN.md)
   ============================================================ */

/* --- кнопки дня и обеда в шапке вместо поиска --- */
.ps-controls{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap;}
.ps-btn{
  display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:var(--r-pill);
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);
  font-size:13px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;
}
.ps-btn svg{width:16px;height:16px;flex:none;}
.ps-btn:hover:not([disabled]){border-color:var(--ink);}
.ps-btn[disabled]{opacity:.45;cursor:not-allowed;}
.ps-btn b{font-variant-numeric:tabular-nums;font-weight:400;color:var(--ink-3);}
.ps-btn.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.ps-btn.on b{color:var(--lime);}
.ps-btn.lunch.on{background:var(--lime);border-color:var(--lime);color:var(--ink);}
.ps-btn.lunch.on b{color:var(--ink);}
.ps-active{
  display:inline-flex;align-items:center;gap:8px;max-width:280px;padding:8px 14px;border-radius:var(--r-pill);
  background:var(--lime-soft);border:1px solid rgba(17,17,20,.08);font-size:12.5px;cursor:pointer;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ps-active i{width:7px;height:7px;border-radius:50%;background:var(--good);flex:none;animation:ps-pulse 1.6s infinite;}
.ps-active b{font-weight:400;font-variant-numeric:tabular-nums;}
.ps-active em{font-style:normal;color:var(--ink-3);}
@keyframes ps-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.ps-note{
  display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:var(--r-pill);
  background:var(--warn-soft);color:#8A5A12;font-size:11.5px;
}
.ps-note svg{width:13px;height:13px;}
.ps-note.sync{background:var(--info-soft);color:#31479A;cursor:pointer;}
.ps-offline{font-size:12.5px;color:var(--bad);}

/* --- бейджи и кнопки на карточке задачи --- */
.ti-badges{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:5px;}
.ps-badge{
  display:inline-flex;align-items:center;padding:3px 9px;border-radius:var(--r-pill);
  font-size:11px;font-weight:500;background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2);
}
.ps-badge.rework{background:var(--warn-soft);border-color:transparent;color:#8A5A12;}
.ps-badge.tender{background:var(--info-soft);border-color:transparent;color:#31479A;}
.ps-badge.st-running{background:var(--good-soft);border-color:transparent;color:#237A38;}
.ps-badge.st-paused{background:var(--surface-2);border-color:transparent;color:var(--ink-2);}
.ps-badge.st-queue{background:var(--surface-2);border-color:transparent;color:var(--ink-2);}
.ps-badge.st-done{background:var(--lime-soft);border-color:transparent;color:#4C5A0C;}
.ps-badge.st-rejected{background:var(--bad-soft);border-color:transparent;color:#B8401F;}

.task-item.running{background:var(--lime-soft);}
.ps-actions{display:flex;align-items:center;gap:6px;flex:none;}
.ps-act{
  width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);
  color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;padding:0;
}
.ps-act svg{width:14px;height:14px;}
.ps-act:hover{border-color:var(--ink);}
.ps-act.play:hover{background:var(--ink);color:#fff;}
.ps-act.pause{background:var(--ink);color:var(--lime);border-color:var(--ink);}
.ps-act.finish:hover{background:var(--lime);border-color:var(--lime);}
.ps-live{font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-2);min-width:42px;text-align:right;}

/* --- конфликт активных задач --- */
.modal-backdrop.blur{backdrop-filter:blur(14px) saturate(120%);background:rgba(20,18,24,.35);}
.ps-conflict{text-align:center;padding:10px 0 4px;}
.ps-conflict .cap{font-size:12.5px;color:var(--ink-3);}
.ps-conflict .name{font-size:26px;letter-spacing:-0.03em;margin:8px 0 14px;}
.ps-conflict-hint{font-size:13px;color:var(--ink-2);line-height:1.5;max-width:420px;margin:0 auto;}
.ps-finish-title{font-size:20px;letter-spacing:-0.02em;margin-bottom:14px;}

/* --- файлы задачи --- */
.ps-files{display:flex;flex-direction:column;gap:6px;}
.ps-file{
  display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-sm);
  background:var(--surface-2);font-size:13px;
}
.ps-file a{color:var(--ink);text-decoration:none;flex:1;min-width:0;overflow-wrap:anywhere;}
.ps-file a:hover{text-decoration:underline;}
.ps-file span{font-size:11.5px;color:var(--ink-3);flex:none;}
.ps-file-del{border:none;background:transparent;color:var(--ink-3);cursor:pointer;font-size:13px;}
.ps-file-del:hover{color:var(--bad);}
.ps-file-add{display:inline-flex;align-items:center;margin-top:8px;cursor:pointer;}
.ps-file-add input{display:none;}
.ps-file-add span{
  padding:8px 15px;border-radius:var(--r-pill);border:1px dashed var(--line-strong);
  font-size:12.5px;color:var(--ink-2);
}
.ps-file-add span:hover{border-color:var(--ink);color:var(--ink);}

/* поле следующего шага, пока предыдущий не заполнен (п. 5) */
.f-field.locked{opacity:.4;pointer-events:none;}

/* --- дашборд --- */
/* у .card в системе нет собственных отступов — они задаются ролью карточки */
.ps-card{padding:24px 26px 22px;}
.ps-stats .stat-tile{min-height:170px;}
.ps-stats .stat-tile .cap{font-size:12.5px;color:var(--ink-3);}
.ps-stats .stat-tile .sub{font-size:12px;color:var(--ink-3);margin-top:2px;}
.ps-stats .hero .cap,.ps-stats .hero .sub{color:rgba(255,255,255,.72);}
.ps-bars{display:flex;align-items:flex-end;gap:10px;height:190px;padding:10px 0 0;}
.ps-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;}
.ps-bar-track{flex:1;width:100%;max-width:38px;position:relative;background:var(--surface-2);border-radius:var(--r-sm);overflow:hidden;}
.ps-bar-fill{position:absolute;left:0;right:0;bottom:0;background:var(--ink);border-radius:var(--r-sm);}
.ps-bar-over{position:absolute;left:0;right:0;bottom:0;background:var(--alert);border-radius:var(--r-sm);opacity:.9;}
.ps-bar span{font-size:11.5px;color:var(--ink-3);}
.ps-bar{cursor:pointer;}
.ps-bar:hover .ps-bar-track{box-shadow:0 0 0 2px var(--line-strong);}
.ps-bar.picked .ps-bar-track{box-shadow:0 0 0 2px var(--lime);}
.ps-bar.picked span{color:var(--ink);font-weight:600;}
.week-nav .arrow-btn:disabled{opacity:.35;cursor:default;}
.ps-bar.rest .ps-bar-track{background:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 5px,#E9E9ED 5px,#E9E9ED 10px);}
.ps-rows{display:flex;flex-direction:column;gap:2px;}
.ps-row{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 14px;border-radius:var(--r-sm);
}
.ps-row:hover{background:var(--surface-2);}
.ps-row-title{font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ps-row-sub{font-size:12px;color:var(--ink-3);margin-top:2px;}
.ps-row b{font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap;}
.ps-row code{font-size:12px;color:var(--ink-2);background:var(--surface-2);padding:5px 10px;border-radius:var(--r-sm);overflow-wrap:anywhere;}
.ps-row-actions{display:flex;gap:8px;flex:none;flex-wrap:wrap;}
.ps-timeline{margin-bottom:16px;}
.ps-seg{align-items:flex-start;justify-content:flex-start;}
.ps-seg-time{flex:none;width:96px;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink-2);padding-top:1px;}
.ps-seg-main{flex:1;min-width:0;}
.ps-seg .btn{flex:none;}
.ps-seg-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.ps-seg-tags .tag{white-space:normal;}
.ps-seg-lunch .ps-row-title, .ps-seg-lunch .ps-seg-time{color:var(--ink-3);}
.ps-seg-gap{background:var(--warn-soft);}
.ps-seg-gap:hover{background:var(--warn-soft);}
.ps-seg-gap .ps-row-title{color:#9A6411;}
@media (max-width: 640px){
  .ps-seg{flex-wrap:wrap;}
  .ps-seg-time{width:100%;}
}
.ps-desync{border:1px solid var(--warn);margin-bottom:16px;}
.ps-pills{display:flex;gap:8px;flex-wrap:wrap;}
.page-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}

@media (max-width:900px){
  .ps-controls{order:3;width:100%;}
  .ps-active{max-width:100%;}
  .ps-stats{grid-template-columns:repeat(2,1fr);}
  .ps-bars{height:150px;}
}


/* ============================================================
   Prime — дашборд «Версия меня» (ТЗ Prime): сферы, уровни, привычки
   ============================================================ */
.prime-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;margin-bottom:16px;}
.prime-hero{padding:28px 30px;display:flex;flex-direction:column;gap:22px;min-height:300px;}
.prime-hero .kicker{font-size:12.5px;color:rgba(255,255,255,0.72);}
.prime-hero .big{font-size:64px;font-weight:400;letter-spacing:-0.045em;line-height:1;margin-top:10px;}
.prime-hero .big small{font-size:20px;letter-spacing:0;opacity:.7;margin-left:6px;}
.prime-hero .note{font-size:14px;color:rgba(255,255,255,0.82);max-width:520px;line-height:1.5;}
.prime-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:auto;}
.prime-levels button{
  text-align:left;border:1px solid rgba(255,255,255,0.3);background:rgba(255,255,255,0.1);color:#fff;
  border-radius:var(--r-md);padding:12px 14px;transition:background .16s ease;
}
.prime-levels button:hover{background:rgba(255,255,255,0.2);}
.prime-levels span{display:block;font-size:12px;color:rgba(255,255,255,0.72);}
.prime-levels b{display:block;font-size:18px;font-weight:400;letter-spacing:-0.02em;margin-top:4px;}

.today-card{padding:22px 24px;display:flex;flex-direction:column;gap:6px;}
.today-card .card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;}
.today-card .card-title h3{font-size:19px;font-weight:400;letter-spacing:-0.02em;}

.habit-row{
  display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:12px;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.habit-row:last-child{border-bottom:none;}
.hb-dot{width:10px;height:10px;border-radius:50%;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-strong);}
.z-strong{background:var(--lime);box-shadow:inset 0 0 0 1px rgba(17,17,20,.25);}
.z-norm{background:var(--good);box-shadow:none;}
.z-risk{background:var(--warn);box-shadow:none;}
.z-fail{background:var(--bad);box-shadow:none;}
.hb-main{min-width:0;cursor:pointer;}
.hb-title{font-size:14.5px;letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hb-meta{display:flex;gap:6px 10px;flex-wrap:wrap;font-size:12px;color:var(--ink-3);margin-top:3px;}
.hb-meta .sph{color:var(--ink-2);}
.hb-control{display:flex;align-items:center;gap:6px;}
.hb-control input{
  width:86px;min-height:36px;padding:7px 12px;border:1px solid var(--line-strong);border-radius:var(--r-pill);
  font-size:13.5px;background:var(--surface);color:var(--ink);outline:none;font-variant-numeric:tabular-nums;
}
.hb-control input[type=time]{width:104px;}
.hb-control input:focus{border-color:var(--ink);box-shadow:0 0 0 4px var(--lime-soft);}
.hb-check{
  width:36px;height:36px;border-radius:50%;flex:none;border:1px solid var(--line-strong);
  background:var(--surface);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;
  transition:background .15s ease, border-color .15s ease;
}
.hb-check svg{width:16px;height:16px;}
.hb-check:hover{border-color:var(--ink);}
.hb-check.on{background:var(--lime);border-color:var(--lime);}
.streak-pill{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink);
  background:var(--surface-2);border-radius:var(--r-pill);padding:4px 10px;white-space:nowrap;
}
.streak-pill.hot{background:var(--lime);}
.streak-pill svg{width:12px;height:12px;}

.rec-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px;margin-bottom:16px;}
.rec-card{padding:18px 20px;display:flex;flex-direction:column;gap:8px;border-radius:var(--r-md);}
.rec-card .rec-kicker{font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:8px;}
.rec-card .rec-kicker i{width:8px;height:8px;border-radius:50%;background:var(--alert);display:inline-block;}
.rec-card h4{font-size:15px;font-weight:500;letter-spacing:-0.01em;margin:0;}
.rec-card p{font-size:13px;color:var(--ink-2);line-height:1.45;}
.rec-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:6px;}
.offer-card{background:var(--lime-soft);border-color:rgba(17,17,20,0.06);}
.offer-card .rec-kicker i{background:var(--ink);}

.sphere-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px;}
.sphere-grid.stat{grid-template-columns:repeat(4,minmax(0,1fr));}
.sphere-card{padding:22px 24px;display:flex;flex-direction:column;gap:16px;cursor:pointer;transition:border-color .16s ease, transform .16s ease;}
.sphere-card:hover{border-color:var(--ink);}
.sphere-card .sc-top{display:flex;align-items:center;gap:12px;}
.sphere-card .sc-title{font-size:16px;letter-spacing:-0.015em;line-height:1.2;}
.sphere-card .sc-kind{font-size:12px;color:var(--ink-3);}
.sphere-card .arrow-btn{margin-left:auto;}
.lvl{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.lvl-name{font-size:30px;font-weight:400;letter-spacing:-0.035em;line-height:1;}
.lvl-num{font-size:12.5px;color:var(--ink-3);white-space:nowrap;}
.ladder{display:flex;gap:4px;}
.ladder i{flex:1;height:8px;border-radius:var(--r-pill);background:var(--surface-2);display:block;}
.ladder i.on{background:var(--ink);}
.ladder i.cur{background:var(--lime);box-shadow:inset 0 0 0 1px var(--ink);}
.ladder i.zero{position:relative;}
.ladder-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);margin-top:6px;}
.hero .ladder i{background:rgba(255,255,255,0.22);}
.hero .ladder i.on{background:#fff;}
.hero .ladder i.cur{background:var(--lime);box-shadow:none;}
.hero .ladder-labels{color:rgba(255,255,255,0.7);}

.score-meter{position:relative;height:8px;border-radius:var(--r-pill);background:var(--surface-2);}
.score-meter > i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-pill);background:var(--ink);}
.score-meter > i.z-strong{background:var(--lime);box-shadow:inset 0 0 0 1px rgba(17,17,20,.3);}
.score-meter > i.z-norm{background:var(--good);}
.score-meter > i.z-risk{background:var(--warn);}
.score-meter > i.z-fail{background:var(--bad);}
.score-meter > b{position:absolute;top:-3px;bottom:-3px;width:1.5px;background:var(--line-strong);}
.sc-stats{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink-3);}
.sc-stats b{display:block;font-size:20px;font-weight:400;color:var(--ink);letter-spacing:-0.02em;margin-top:2px;}
.up-dots{display:inline-flex;gap:4px;vertical-align:middle;margin-left:4px;}
.up-dots i{width:8px;height:8px;border-radius:50%;border:1px solid var(--line-strong);display:block;}
.up-dots i.on{background:var(--lime);border-color:var(--ink);}
.warn-line{font-size:12px;color:#B8401F;background:var(--bad-soft);border-radius:var(--r-pill);padding:5px 11px;align-self:flex-start;}
.kpi-list{display:flex;flex-direction:column;gap:10px;}
.kpi-list div{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink-2);}
.kpi-list b{font-weight:400;color:var(--ink);font-size:15px;letter-spacing:-0.01em;white-space:nowrap;}

/* страница сферы */
.sphere-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;margin:8px 0 16px;}
.sphere-hero{padding:28px 30px;display:flex;flex-direction:column;gap:18px;min-height:260px;}
.sphere-hero h2{font-size:34px;font-weight:400;letter-spacing:-0.03em;line-height:1.1;margin:0;}
.sphere-hero .kicker{font-size:12.5px;color:rgba(255,255,255,0.72);}
.sphere-hero .lvl-name{font-size:44px;}
.sphere-hero .lvl-num{color:rgba(255,255,255,0.72);}
.prime-card{padding:24px 26px;display:flex;flex-direction:column;gap:12px;}
.prime-card textarea{
  width:100%;min-height:96px;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:12px 14px;
  font-size:14px;line-height:1.5;resize:vertical;outline:none;background:var(--surface);color:var(--ink);
}
.prime-card textarea:focus{border-color:var(--ink);box-shadow:0 0 0 4px var(--lime-soft);}
.rule-hint{font-size:12.5px;color:var(--ink-3);line-height:1.5;}
.rule-hint b{color:var(--ink-2);font-weight:500;}
.sphere-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start;}
.block-card{padding:22px 24px;}
.block-card .card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.block-card .card-title h3{font-size:18px;font-weight:400;letter-spacing:-0.02em;}
.block-card + .block-card{margin-top:16px;}

.week-bars{display:flex;align-items:flex-end;gap:8px;height:150px;padding-top:10px;}
.week-bars .wb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%;min-width:0;}
.week-bars .wb i{width:100%;max-width:34px;border-radius:10px 10px 4px 4px;background:var(--surface-2);display:block;}
.week-bars .wb span{font-size:10.5px;color:var(--ink-3);white-space:nowrap;}
.week-bars .wb b{font-size:11.5px;font-weight:500;}
.week-bars .wb em{font-style:normal;font-size:10px;padding:2px 6px;border-radius:var(--r-pill);}
.week-bars .wb em.up{background:var(--lime);}
.week-bars .wb em.down{background:var(--bad-soft);color:#B8401F;}

.heatmap{display:grid;grid-template-rows:repeat(7,13px);grid-auto-flow:column;grid-auto-columns:13px;gap:4px;overflow-x:auto;padding-bottom:4px;}
.heatmap i{width:13px;height:13px;border-radius:4px;background:var(--surface-2);display:block;}
.heatmap i.h-good{background:var(--good);}
.heatmap i.h-warn{background:var(--warn);}
.heatmap i.h-bad{background:var(--bad);}
.heatmap i.h-skip{background:transparent;box-shadow:inset 0 0 0 1px var(--line);}
.heat-legend{display:flex;gap:14px;font-size:11.5px;color:var(--ink-3);margin-top:10px;flex-wrap:wrap;}
.heat-legend span{display:inline-flex;align-items:center;gap:6px;}
.heat-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;}

.habit-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px;}
.habit-stats div{background:var(--surface-2);border-radius:var(--r-md);padding:12px 14px;font-size:12px;color:var(--ink-3);}
.habit-stats b{display:block;font-size:24px;font-weight:400;color:var(--ink);letter-spacing:-0.03em;margin-top:4px;}

.list-rows{display:flex;flex-direction:column;}
.list-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.list-row:last-child{border-bottom:none;}
.list-row .grow{flex:1;min-width:0;}
.list-row .sub{font-size:12px;color:var(--ink-3);margin-top:2px;}
.list-row .amt{font-variant-numeric:tabular-nums;white-space:nowrap;}
.list-row.done .grow > div:first-child{text-decoration:line-through;color:var(--ink-3);}
.list-row .rm{
  width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  color:var(--ink-3);font-size:11px;flex:none;opacity:0;transition:opacity .15s ease;
}
.list-row:hover .rm, .list-row .rm:focus-visible{opacity:1;}
.list-row .rm:hover{color:var(--bad);border-color:var(--bad);}
@media (hover:none){.list-row .rm{opacity:1;}}
.tag{font-size:11px;padding:3px 9px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);white-space:nowrap;}
.tag.lime{background:var(--lime);color:var(--ink);}
.tag.good{background:var(--good-soft);color:#23763A;}
.tag.warn{background:var(--warn-soft);color:#9A6411;}
.tag.bad{background:var(--bad-soft);color:#B8401F;}
.tag.info{background:var(--info-soft);color:#3554B8;}

.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;}
.proj-card{background:var(--surface-2);border-radius:var(--r-md);padding:16px 18px;display:flex;flex-direction:column;gap:10px;cursor:pointer;border:1px solid transparent;}
.proj-card:hover{border-color:var(--ink);}
.proj-card h4{font-size:15px;font-weight:500;margin:0;letter-spacing:-0.01em;}
.proj-card .pc-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink-3);}

/* Окно проекта Личного: плашка «Добавить задачу» и свёрнутые задачи */
.ptask-top{display:flex;align-items:center;gap:16px;margin-bottom:16px;}
.ptask-top .grow{flex:1;min-width:0;}
.ptask-top .sub{font-size:12.5px;color:var(--ink-3);}
.ptask-add{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;margin-bottom:12px;
  border:1.5px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface-glass);
  font:inherit;font-size:14px;color:var(--ink-2);cursor:pointer;
}
.ptask-add:hover{border-color:var(--ink);color:var(--ink);}
.ptask-add .icon-circle{width:30px;height:30px;}
.ptask-list{display:flex;flex-direction:column;gap:8px;}
.ptask{background:var(--surface-2);border-radius:var(--r-md);border:1px solid transparent;}
.ptask:hover, .ptask.open{border-color:var(--line-strong);}
.ptask-head{display:flex;align-items:center;gap:10px;padding:8px 12px;}
.ptask-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:8px;background:none;border:none;padding:6px 0;font:inherit;font-size:13.5px;color:var(--ink);text-align:left;cursor:pointer;}
.ptask-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ptask-chev{flex:none;width:16px;height:16px;color:var(--ink-3);transition:transform .15s ease;}
.ptask.open .ptask-chev{transform:rotate(90deg);}
.ptask.done .ptask-title{text-decoration:line-through;color:var(--ink-3);}
.ptask-date{flex:none;min-height:30px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font:inherit;font-size:12px;color:var(--ink-3);background:var(--surface);}
.ptask-date.set{color:var(--ink);border-color:var(--line-strong);}
.ptask .rm{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-3);font-size:11px;flex:none;cursor:pointer;}
.ptask .rm:hover{color:var(--bad);border-color:var(--bad);}
.ptask-body{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px 52px;font-size:13px;}
.ptask-body .sub{font-size:12px;color:var(--ink-3);}
.ptask-note{white-space:pre-wrap;color:var(--ink-2);}
.ptask-checklist{display:flex;flex-direction:column;gap:3px;color:var(--ink-2);}
.ptask-checklist .done{text-decoration:line-through;color:var(--ink-3);}
@media (max-width:600px){
  .ptask-top{flex-direction:column;align-items:stretch;}
  .ptask-head{flex-wrap:wrap;}
  .ptask-toggle{flex-basis:calc(100% - 48px);}
  .ptask-date{margin-left:38px;}
  .ptask-body{padding-left:14px;}
}

.mini-chart{width:100%;height:150px;display:block;}
.mini-chart .grid{stroke:var(--line);stroke-width:1;}
.mini-chart .line{fill:none;stroke:var(--ink);stroke-width:2;}
.mini-chart .area{fill:var(--lime-soft);}
.mini-chart .pt{fill:var(--lime);stroke:var(--ink);stroke-width:1.5;}
.mini-chart text{font-size:10px;fill:var(--ink-3);}

.mood-pick{display:flex;gap:6px;flex-wrap:wrap;}
.mood-pick button{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);
  font-size:14px;color:var(--ink);transition:background .15s ease, border-color .15s ease;
}
.mood-pick button:hover{border-color:var(--ink);}
.mood-pick button.on{background:var(--ink);color:#fff;border-color:var(--ink);}

.luscher{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;}
.luscher button{aspect-ratio:1;border-radius:var(--r-sm);border:2px solid transparent;position:relative;}
.luscher button:disabled{opacity:.18;cursor:default;}
.luscher button b{position:absolute;top:4px;left:6px;font-size:11px;color:#fff;font-weight:500;}
.luscher-row{display:flex;gap:4px;}
.luscher-row i{width:18px;height:18px;border-radius:5px;display:block;}

.diary-item{padding:14px 0;border-bottom:1px solid var(--line);}
.diary-item:last-child{border-bottom:none;}
.diary-item .when{font-size:12px;color:var(--ink-3);margin-bottom:6px;display:flex;justify-content:space-between;}
.diary-item p{font-size:14px;line-height:1.55;white-space:pre-wrap;}

.photo-thumb{width:56px;height:56px;border-radius:var(--r-sm);object-fit:cover;flex:none;background:var(--surface-2);}
.checklist-mini{display:flex;flex-direction:column;gap:8px;}
.checklist-mini label{display:flex;align-items:center;gap:10px;font-size:13.5px;}

.seg-tabs{display:inline-flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:4px;margin-bottom:16px;flex-wrap:wrap;}
.seg-tabs button{border:none;background:transparent;border-radius:var(--r-pill);padding:8px 16px;font-size:13px;color:var(--ink-2);}
.seg-tabs button.active{background:var(--ink);color:#fff;}
.seg-tabs button:hover:not(.active){color:var(--ink);}

.rules-table{width:100%;border-collapse:collapse;font-size:13px;}
.rules-table td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle;}
.rules-table td:first-child{padding-left:0;}
.rules-table input[type=number]{width:72px;min-height:36px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--r-sm);font-size:13px;}
.days-pick{display:flex;gap:6px;flex-wrap:wrap;}
.days-pick label{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:36px;border-radius:var(--r-pill);border:1px solid var(--line-strong);font-size:12.5px;cursor:pointer;padding:0 10px;}
.days-pick input{display:none;}
.days-pick label:has(input:checked){background:var(--ink);color:#fff;border-color:var(--ink);}
.norms-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.norms-grid .f-field label{font-size:11.5px;}
.norms-grid .f-field input{min-height:38px;padding:8px 10px;}

.lib-group{margin-bottom:18px;}
.lib-group h4{font-size:14px;font-weight:500;margin-bottom:8px;color:var(--ink-2);}
.lib-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.lib-item:last-child{border-bottom:none;}
.lib-item.locked{color:var(--ink-3);}

/* ---------------- Финансы ---------------- */
.fin-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px;}
.fin-tile{padding:22px 24px;display:flex;flex-direction:column;gap:6px;min-height:170px;border-radius:var(--r-xl);}
.fin-tile .cap{font-size:12.5px;color:var(--ink-3);}
.hero.fin-tile .cap, .hero.fin-tile .foot{color:rgba(255,255,255,0.75);}
.fin-tile .val{font-size:34px;font-weight:400;letter-spacing:-0.035em;line-height:1.05;margin-top:auto;white-space:nowrap;}
.fin-tile .foot{font-size:12px;color:var(--ink-3);}
.delta-up{color:var(--good);}
.delta-down{color:var(--bad);}
.hero .delta-up, .hero .delta-down{color:#fff;}
.fin-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start;}
.bars-chart{display:flex;align-items:flex-end;gap:12px;height:170px;padding-top:8px;}
.bars-chart .bc{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;min-width:0;}
.bars-chart .pair{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%;justify-content:center;}
.bars-chart .pair i{width:42%;max-width:20px;border-radius:6px 6px 2px 2px;display:block;}
.bars-chart .pair i.inc{background:var(--ink);}
.bars-chart .pair i.exp{background:var(--lime);box-shadow:inset 0 0 0 1px rgba(17,17,20,.2);}
.bars-chart span{font-size:10.5px;color:var(--ink-3);}
.cat-row{margin-bottom:12px;}
.cat-row .ct{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin-bottom:6px;}
.cat-row .ct span{color:var(--ink-2);}
.cat-row .ct b{font-weight:400;font-variant-numeric:tabular-nums;}
.cat-row .track{height:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden;}
.cat-row .track i{display:block;height:100%;background:var(--ink);border-radius:var(--r-pill);}
.credit-card{padding:22px 24px;display:flex;flex-direction:column;gap:14px;}
.credit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-bottom:16px;}
.credit-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.credit-stats div{font-size:12px;color:var(--ink-3);}
.credit-stats b{display:block;font-size:17px;font-weight:400;color:var(--ink);margin-top:3px;letter-spacing:-0.01em;white-space:nowrap;}
.saving-note{background:var(--lime-soft);border-radius:var(--r-md);padding:10px 14px;font-size:13px;}
.grace{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 11px;border-radius:var(--r-pill);}
.grace i{width:8px;height:8px;border-radius:50%;display:block;}
.grace.good{background:var(--good-soft);color:#23763A;}.grace.good i{background:var(--good);}
.grace.warn{background:var(--warn-soft);color:#9A6411;}.grace.warn i{background:var(--warn);}
.grace.bad{background:var(--bad-soft);color:#B8401F;}.grace.bad i{background:var(--bad);}
.grace.none{background:var(--surface-2);color:var(--ink-3);}.grace.none i{background:var(--line-strong);}
.schedule-wrap{max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);}
.schedule-wrap .list-table th{position:sticky;top:0;background:var(--surface);}
.month-nav{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.month-nav b{font-size:18px;font-weight:400;letter-spacing:-0.02em;min-width:150px;text-align:center;}
.ro-note{font-size:12px;color:var(--ink-3);}

@media (max-width:1280px){
  .sphere-grid.stat, .fin-tiles{grid-template-columns:repeat(2,minmax(0,1fr));}
  .prime-top, .sphere-head{grid-template-columns:1fr;}
}
@media (max-width:1180px){
  .sphere-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}
@media (max-width:1000px){
  .sphere-cols, .fin-cols{grid-template-columns:1fr;}
  .habit-stats{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}
@media (max-width:640px){
  .sphere-grid, .sphere-grid.stat, .fin-tiles{grid-template-columns:1fr;}
  .prime-levels{grid-template-columns:1fr;}
  .prime-hero .big{font-size:52px;}
  .habit-row{grid-template-columns:12px minmax(0,1fr);}
  .habit-row .hb-control{grid-column:2;}
  .norms-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .luscher{grid-template-columns:repeat(4,minmax(0,1fr));}
  .credit-grid{grid-template-columns:1fr;}
  .fin-tile .val{font-size:30px;}
  .fin-tile{min-height:0;gap:10px;}
}

/* главная: третья плитка — «Финансы», белая (градиентов не больше двух в ряду) */
/* Рабочий и Личный — по трети ширины, Финансы и Календарь делят последнюю треть */
.home-blocks{grid-template-columns:repeat(6,minmax(0,1fr));}
.home-blocks > .block-tile{grid-column:span 2;}
.home-blocks > .block-tile.block-small{grid-column:span 1;padding:20px 18px;}
.block-small .tile-top .block-sub{display:none;}
.block-small .block-bottom{flex-direction:column;align-items:flex-start;gap:6px;}
.block-small .block-name{font-size:24px;}
.block-small .block-count{text-align:left;}
.block-small .block-count b{font-size:28px;}
.block-tile.card{border-radius:var(--r-xl);}
.block-tile.card .block-sub, .block-tile.card .block-count{color:var(--ink-3);}
.block-tile.card .block-count b{color:var(--ink);}
@media (max-width:1000px){ .home-blocks{grid-template-columns:repeat(2,minmax(0,1fr));} .home-blocks > .block-tile, .home-blocks > .block-tile.block-small{grid-column:span 1;} }
@media (max-width:640px){ .home-blocks{grid-template-columns:repeat(2,minmax(0,1fr));} .home-blocks > .block-tile:not(.block-small){grid-column:1/-1;} }

/* перетаскивание разделов меню */
.sb-nav button[draggable=true]{cursor:grab;}
.sb-nav button.dragging{opacity:.45;cursor:grabbing;background:var(--lime-soft);}

/* вкладки с подчёркиванием: свои можно добавить и удалить */
.tabs-edit{margin-bottom:20px;}
.tabs-edit button{display:inline-flex;align-items:center;gap:8px;position:relative;}
.tabs-edit .tab-count{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.tabs-edit button.active .tab-count{color:var(--ink-2);}
.tabs-edit .tab-x{
  width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:9px;color:var(--ink-3);opacity:0;transition:opacity .15s ease, background .15s ease;
}
.tabs-edit button:hover .tab-x, .tabs-edit button.active .tab-x{opacity:1;}
.tabs-edit .tab-x:hover{background:var(--bad-soft);color:var(--bad);}
.tabs-edit button.drop{color:var(--ink);border-bottom-color:var(--lime);}
.tabs-edit .tab-add{color:var(--ink-3);font-size:15px;}
.tabs-edit .tab-add:hover{color:var(--ink);}
@media (hover:none){ .tabs-edit .tab-x{opacity:1;} }
.kan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;align-items:start;}

/* ---------------- Отчёт ПрофСофт ---------------- */
.ps-report-period{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ps-report-period input{height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;}
.ps-share{display:flex;align-items:center;gap:12px;min-width:0;}
.ps-share .ps-row-title{flex:0 1 auto;}
.ps-share-bar{flex:1;height:6px;border-radius:3px;background:var(--line);overflow:hidden;min-width:40px;}
.ps-share-bar i{display:block;height:100%;background:var(--ink);border-radius:3px;}
.ps-report-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(60px,1fr) auto auto;gap:14px;align-items:center;}
.ps-report-row .pct{font-size:12px;color:var(--ink-3);min-width:38px;text-align:right;}
@media (max-width:640px){
  .ps-report-row{grid-template-columns:minmax(0,1fr) auto;}
  .ps-report-row .ps-share-bar, .ps-report-row .pct{display:none;}
}
@media print{
  .sidebar, .topbar, .ps-report-period, header{display:none !important;}
}

/* ---------------- Календарь ПрофСофт: неделя пн–вс (как в TickTick) ---------------- */
.week{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;}
.week.with-arrange{grid-template-columns:minmax(0,1fr) minmax(260px,320px);}
.week-panel{padding:18px 20px 14px;min-width:0;}
.week-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;}
.week-title{font-size:22px;letter-spacing:-0.02em;}
.week-nav{display:flex;align-items:center;gap:6px;}
.week-nav .arrow-btn{width:34px;height:34px;font-size:18px;}
.week-actions{display:flex;align-items:center;gap:8px;margin-left:auto;}
.week-add{
  width:34px;height:34px;border-radius:50%;border:none;background:var(--ink);color:#fff;
  font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
}
.week-add:hover{background:#000;}
.week-scroll{overflow-x:auto;}
.week-grid{min-width:620px;}
/* шапка дней резервирует место под полосу прокрутки сетки — колонки совпадают */
.week-days, .week-allday{overflow-y:hidden;scrollbar-gutter:stable;}
.week .cal-body{scrollbar-gutter:stable;}
.week .cal-days, .week .cal-grid{grid-template-columns:52px repeat(var(--days, 7),minmax(0,1fr));}
.week.two-days .week-grid{min-width:0;}
.week .cal-day-head em{font-style:normal;font-size:12px;color:var(--ink-3);margin-left:auto;}
.week .cal-day-head{padding:8px 8px;flex-direction:row;align-items:baseline;gap:6px;}
.week .cal-day-head span{font-size:12px;}
.week .cal-day-head b{font-size:18px;font-weight:400;}
.week .cal-day-head.weekend span, .week .cal-day-head.weekend b{color:var(--ink-3);}
.week .cal-day-head.today b{
  background:var(--ink);color:#fff;border-radius:var(--r-pill);padding:0 9px;min-width:30px;text-align:center;
}
.week .cal-day-head.today b::after{display:none;}
.week .cal-day-head.today span{color:var(--ink);}
.week-allday{border-bottom:1px solid var(--line-strong);}
.week-allday-cap{font-size:10.5px;color:var(--ink-3);padding:8px 6px 0 0;text-align:right;}
.week-allday-cell{
  border-left:1px solid var(--line);min-height:40px;padding:4px;display:flex;flex-direction:column;gap:3px;
  cursor:copy;min-width:0;max-height:118px;overflow-y:auto;transition:background-color .14s ease;
}
.week-allday-cell.drop{background-color:rgba(220,246,62,0.14);}
.week-chip{
  font-size:11.5px;padding:3px 7px;border-radius:6px;border-left:3px solid;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.week-chip.s-profsoft{background:var(--lime-soft);border-color:#A6BF1C;}
.week-chip.s-bankrot{background:#F6E5DF;border-color:#C98A7A;}
.week-chip.s-personal{background:var(--info-soft);border-color:var(--info);}
.week-chip.dragging{opacity:.3;}
.week .cal-body{max-height:calc(100vh - 330px);min-height:420px;}
.week .cal-col.today{background-color:rgba(220,246,62,0.06);}
.week .cal-event{font-size:11.5px;}
.week-arrange{position:sticky;top:16px;}
.week-arrange .card-head .modal-close{margin-left:auto;}
.week-scopes{margin:12px 0 14px;}
.week-arrange .task-groups{max-height:calc(100vh - 300px);}
@media (max-width:1100px){
  .week.with-arrange{grid-template-columns:1fr;}
  .week-arrange{position:static;}
}
@media (max-width:640px){
  .week-panel{padding:14px 12px 10px;}
  .week-actions{margin-left:0;}
}

/* ---------------- Главная: привычки на сегодня и месяц настроений ---------------- */
.home-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px;align-items:start;}
.home-more{align-self:flex-start;margin-top:10px;}
.mood-nav{display:flex;gap:6px;}
.mood-nav .arrow-btn{width:32px;height:32px;font-size:17px;}
.mood-nav .arrow-btn:disabled{opacity:.35;cursor:default;}
.mood-week, .mood-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;}
.mood-week span{font-size:11px;color:var(--ink-3);text-align:center;padding-bottom:2px;}
.mood-cell{
  aspect-ratio:1.7;border-radius:9px;border:1px solid var(--line);background:var(--surface);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;
  font:inherit;color:var(--ink);cursor:pointer;transition:border-color .14s ease, transform .14s ease;
}
.mood-cell span{font-size:10.5px;color:var(--ink-3);line-height:1;}
.mood-cell b{font-size:15px;font-weight:500;line-height:1.1;}
.mood-cell.empty{border:none;background:transparent;cursor:default;}
.mood-cell:disabled{opacity:.4;cursor:default;}
.mood-cell:not(:disabled):not(.empty):hover{border-color:var(--ink);}
.mood-cell.today{box-shadow:inset 0 0 0 1.5px var(--ink);}
.mood-cell.picked{border-color:var(--ink);transform:scale(1.06);}
/* 1–3 тяжело, 4–6 ровно, 7–10 хорошо */
.mood-cell.m1, .mood-cell.m2, .mood-cell.m3{background:var(--bad-soft);border-color:#F2B9A4;}
.mood-cell.m4, .mood-cell.m5, .mood-cell.m6{background:var(--warn-soft);border-color:#F0CF97;}
.mood-cell.m7, .mood-cell.m8{background:var(--good-soft);border-color:#A9DCA6;}
.mood-cell.m9, .mood-cell.m10{background:var(--lime-soft);border-color:#B8D12A;}
.mood-foot{font-size:12.5px;color:var(--ink-3);margin-top:10px;}
.mood-foot b{color:var(--ink);font-weight:500;}
.mood-ask{font-size:13px;margin:12px 0 8px;}
#homeMood .mood-pick button{width:34px;height:34px;font-size:13px;}
@media (max-width:900px){
  .home-row{grid-template-columns:1fr;}
}

/* ---------- БФЛ: шкала стадий, сроки задач, горячие кнопки, документы ---------- */
.case-filter{margin:0 0 12px;}
.case-toolbar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;margin:0 0 12px;}
.case-toolbar .case-filter{margin:0;}
.case-search{flex:0 1 360px;min-width:220px;}
/* панель списка БФЛ: статус, вид и поиск одной строкой одной высоты */
.bfl-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 14px;}
.bfl-toolbar .seg{flex:none;}
.bfl-toolbar .seg button{flex:none;padding:0 16px;height:36px;white-space:nowrap;}
.bfl-search{flex:1;min-width:0;height:44px;padding:0 18px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);font:inherit;font-size:13.5px;color:var(--ink);}
.bfl-search:focus{outline:none;border-color:var(--ink);}
@media (max-width:760px){
  .bfl-toolbar{flex-wrap:wrap;}
  .bfl-search{flex-basis:100%;}
}
/* канбан клиентов БФЛ: вкладки стадий, под ними карточки дел */
.bfl-filter-note{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 12px;padding:10px 16px;border-radius:var(--r-md);background:var(--warn-soft);color:#8A560D;font-size:13px;}
.bfl-filter-note .link-btn{color:#8A560D;}
.bfl-stage-tabs{margin-bottom:16px;}
.bfl-card{display:flex;flex-direction:column;gap:6px;text-align:left;width:100%;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);font:inherit;color:var(--ink);cursor:pointer;transition:transform .14s ease, border-color .14s ease;}
.bfl-card:hover{border-color:var(--ink);transform:translateY(-1px);}
.bfl-card.archived{opacity:.7;}
.bfl-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.bfl-card-debt{font-size:12px;color:var(--ink-3);white-space:nowrap;}
.bfl-card-fio{font-size:14px;line-height:1.3;}
.bfl-card-task{font-size:12px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.list-table tr.archived td{color:var(--ink-3);}
.stage-chip.done{background:var(--good-soft);color:#237A3B;}
/* список БФЛ: сортировка по клику на заголовок, фильтры строкой ниже, цвет номера по сроку задачи */
#bflTable .th-sort{cursor:pointer;user-select:none;}
#bflTable th, #bflTable td{padding-left:16px;padding-right:16px;}
#bflTable td.fio-link, #bflTable .kadarbitr-link{white-space:nowrap;}
#bflTable .th-sort:hover, #bflTable .th-sort.active{color:var(--ink);}
#bflTable .th-sort i{font-style:normal;margin-left:6px;opacity:.45;}
#bflTable .th-sort.active i{opacity:1;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--lime);color:var(--ink);font-size:12px;}
#bflTable .th-filters th{padding-top:8px;padding-bottom:10px;position:relative;}
#bflTable .th-filters input, #bflTable .th-filters select{
  width:100%;min-width:80px;height:32px;padding:4px 10px;border:1px solid var(--line);border-radius:10px;
  background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;
}
#bflTable .th-dates{display:flex;gap:6px;}
#bflTable .th-dates input{min-width:0;width:118px;padding:4px 6px;}
#bflTable .th-filters th:last-child{padding-right:30px;}
#bflTable .th-filters th:last-child select{min-width:118px;}
#bflTable .th-reset{position:absolute;right:8px;top:16px;border:0;background:none;color:var(--ink-3);cursor:pointer;font-size:13px;}
#bflTable .th-reset:hover{color:var(--ink);}
.case-num.overdue{background:var(--bad-soft);border-color:var(--bad);color:#B23A17;}
.case-num.soon{background:var(--warn-soft);border-color:var(--warn);color:#8A560D;}
.status-agree{background:var(--lime-soft);color:#5B6B00;}

.stage-track{display:flex;gap:4px;overflow-x:auto;padding:4px 2px 18px;margin-bottom:6px;scrollbar-width:thin;}
.st-step{flex:1 0 92px;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;text-align:center;}
.st-step::before{content:'';position:absolute;top:13px;left:-50%;right:50%;height:2px;background:var(--line-strong);z-index:0;}
.st-step:first-child::before{display:none;}
.st-step.done::before, .st-step.current::before{background:var(--good);}
.st-step.extra::before{background:none;border-top:2px dashed var(--good);height:0;}
.st-dot{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--line-strong);color:#fff;}
.st-dot svg{width:14px;height:14px;}
.st-step.base.done .st-dot{background:var(--good);border-color:var(--good);}
.st-step.base.current .st-dot{background:var(--lime);border-color:var(--ink);box-shadow:0 0 0 5px var(--lime-soft);}
/* доп. стадии не закрашиваются — только зелёная обводка */
.st-step.extra .st-dot{width:22px;height:22px;margin-top:3px;}
.st-step.extra.current .st-dot{border-color:var(--good);border-style:dashed;}
.st-step.extra.done .st-dot{border-color:var(--good);border-width:3px;}
.st-label{font-size:11.5px;line-height:1.25;color:var(--ink-2);max-width:110px;}
.st-step.current .st-label{color:var(--ink);font-weight:500;}
.st-step.extra .st-label{color:#237A3B;}

.vp-toolbar{display:flex;justify-content:flex-end;margin:-4px 0 12px;}
.vp-toolbar select{border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:7px 14px;background:var(--surface);font:inherit;font-size:13px;}
.vp-stage.extra .vp-dot{width:24px;height:24px;margin:4px;background:var(--surface);border:2px solid var(--good);color:#237A3B;font-size:13px;}
.vp-stage.extra.planned .vp-dot{border-style:dashed;}
.vp-stage.extra.done .vp-dot{border-width:3px;color:#237A3B;}
.vp-stage.extra::before{background:none;border-left:2px dashed var(--good);width:0;}
.vp-stage.extra .vp-title{color:#237A3B;}
.vp-extra-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.vp-task.overdue{box-shadow:inset 3px 0 0 var(--bad);}
.vp-task-foot{flex:none;display:flex;gap:8px;}
.vp-due{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);}
.vp-due input{border:1px solid var(--line);border-radius:10px;padding:3px 8px;font:inherit;font-size:12px;background:var(--surface);color:var(--ink);}
.vp-due.overdue, .vp-due.overdue input{color:var(--bad);}
.vp-due-done{font-size:12px;color:#237A3B;}
.vp-opt{font-size:11px;color:var(--ink-3);}
.vp-task-note{font-size:12.5px;color:var(--ink-2);white-space:nowrap;}
.vp-comment{flex:0 1 240px;min-width:0;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--surface);border-radius:10px;padding:3px 8px;}
.vp-hot{display:flex;gap:6px;flex-wrap:wrap;}
.vp-hot .btn{padding:4px 12px;}
.vp-task-extra.two{flex-basis:420px;display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.vp-task input[type=checkbox]:disabled{opacity:.55;}
.vp-hint{grid-column:1/-1;font-size:12.5px;color:var(--ink-2);background:var(--lime-soft);border-radius:var(--r-sm);padding:9px 12px;}

.doc-upload{display:grid;gap:12px;align-content:start;}
.doc-upload input[type=file]{font:inherit;font-size:13px;}
.doc-list{display:grid;gap:8px;}
.doc-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);}
.doc-icon{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:var(--lime);font-size:11px;font-weight:500;}
.doc-main{flex:1;min-width:0;}
.doc-title{font-size:14px;overflow-wrap:anywhere;}
.doc-sub{font-size:12px;color:var(--ink-3);}
.doc-row:hover .vp-del{opacity:1;}
.consult-options{display:flex;flex-wrap:wrap;gap:8px;}

/* ============================================================
   Единая задача и единый проект (tasks.js, projects.js) —
   одинаковые на Главной, в ПрофСофт, Бизнесе и Личном.
   ============================================================ */
.scope-dot.s-general{background:var(--ink-3);}
.cal-event.s-general, .week-chip.s-general{background:var(--surface-2);border-color:var(--ink-3);}
.cal-day-head.vacation{background:var(--warn-soft);}
.cal-day-head.vacation em{color:#9A6312;font-style:normal;font-size:11px;}
.ps-note.vacation{background:var(--warn-soft);color:#9A6312;}

#homeTasks{margin-bottom:22px;}
.tk-card{padding:20px 22px;}
.tk-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.tk-head-title{display:flex;align-items:center;gap:12px;}
.tk-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
/* фильтр задач по срокам: все, просрочено, дата, период */
.tk-dates{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;}
.tk-dates .seg button{white-space:nowrap;}
.tk-dates input{height:36px;padding:4px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;font-size:13px;color:var(--ink);}
.tk-dates span{color:var(--ink-3);}
.tk-head-actions .btn svg{width:15px;height:15px;margin-right:6px;vertical-align:-3px;}
.tk-filter{padding:3px;}

/* длинная кнопка пунктиром: список задач всегда начинается с неё */
.tk-add{
  width:100%;display:flex;align-items:center;justify-content:center;gap:12px;
  min-height:56px;margin:0 0 16px;border-radius:var(--r-md);cursor:pointer;
  border:1.5px dashed var(--line-strong);background:var(--surface-glass);
  font:inherit;font-size:14px;color:var(--ink-2);transition:border-color .16s ease, color .16s ease;
}
.tk-add:hover{border-color:var(--ink);color:var(--ink);}
.tk-add .icon-circle{width:30px;height:30px;}
.tk-add.slim{min-height:44px;margin:12px 0 0;}

.tk-group{margin-top:6px;}
.tk-group + .tk-group{margin-top:14px;}
.tk-group-title{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-3);padding:0 4px 6px;list-style:none;cursor:default;}
details.tk-group > summary{cursor:pointer;}
details.tk-group > summary::-webkit-details-marker{display:none;}
.tk-group.overdue .tk-group-title span:first-child{color:var(--bad);}
.tk-group.work .tk-group-title span:first-child{color:var(--ink);}
.tk-empty{padding:6px 4px 2px;}

.tk{background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-md);transition:border-color .14s ease, background .14s ease;}
.tk + .tk{margin-top:6px;}
.tk:hover, .tk.open{border-color:var(--line-strong);}
.tk.open{background:var(--surface);}
.tk.running{border-color:var(--ink);background:var(--surface);}
.tk.done .tk-title{color:var(--ink-3);text-decoration:line-through;}
.tk-row{display:flex;align-items:center;gap:10px;padding:9px 10px 9px 12px;}
.tk-check{
  flex:none;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);
  display:flex;align-items:center;justify-content:center;color:transparent;cursor:pointer;padding:0;
}
.tk-check svg{width:14px;height:14px;}
.tk-check:hover{border-color:var(--ink);color:var(--ink-3);}
.tk-check.on{background:var(--lime);border-color:var(--lime);color:var(--ink);}
.tk-main{flex:1;min-width:0;cursor:pointer;}
.tk-title{font-size:14.5px;line-height:1.35;overflow-wrap:anywhere;}
.tk-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;}
.tk-label, .tk-chip, .tk-deadline{
  display:inline-flex;align-items:center;gap:5px;font-size:11.5px;line-height:1;padding:4px 8px;
  border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);white-space:nowrap;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;
}
.tk-label svg, .tk-chip svg{width:12px;height:12px;flex:none;}
.tk-label.k-case{background:#F6E5DF;border-color:#E9C6BA;color:#7A4433;}
.tk-label.k-project{background:var(--lime-soft);border-color:#D9EA8C;color:#4A5A10;}
.tk-label.k-none{color:var(--ink-3);}
.tk-deadline.overdue{background:var(--bad-soft);border-color:#F2C4B3;color:#A13A19;}
.tk-chip.all{background:var(--lime-soft);}
.tk-acts{display:flex;align-items:center;gap:4px;flex:none;}
.tk-hot{
  display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--r-pill);
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer;white-space:nowrap;
}
.tk-hot svg{width:14px;height:14px;}
.tk-hot:hover{border-color:var(--ink);}
.tk-hot.running{background:var(--ink);border-color:var(--ink);color:#fff;}
.tk-hot.running b{font-weight:400;color:var(--lime);font-variant-numeric:tabular-nums;}
.tk-hot.paused{background:var(--lime);border-color:var(--lime);}
.tk-ic{
  width:32px;height:32px;border-radius:50%;border:1px solid transparent;background:transparent;color:var(--ink-2);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
}
.tk-ic svg{width:16px;height:16px;}
.tk-ic:hover{border-color:var(--line-strong);background:var(--surface);color:var(--ink);}
.tk-ic.danger:hover{color:var(--bad);border-color:#F2C4B3;}
.tk-x{border:none;background:transparent;color:var(--ink-3);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:var(--r-pill);}
.tk-x:hover{color:var(--bad);background:var(--bad-soft);}

.tk-body{padding:4px 16px 16px 48px;display:flex;flex-direction:column;gap:14px;}
.tk-info{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--ink-2);}
.tk-info b{font-weight:500;color:var(--ink);}
.tk-cap{font-size:12px;color:var(--ink-3);margin-bottom:6px;display:flex;gap:8px;}
.tk-cap span{color:var(--ink-2);}
.tk-note{font-size:14px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;}
.tk-note a, .tk-cl a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--lime);text-decoration-thickness:2px;}
.tk-file{display:flex;align-items:center;gap:10px;font-size:13px;padding:3px 0;}
.tk-file a{display:inline-flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.tk-file a:hover{text-decoration:underline;}
.tk-file a svg{width:14px;height:14px;flex:none;color:var(--ink-3);}
.tk-file span{color:var(--ink-3);font-size:12px;}
.tk-attach{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);cursor:pointer;margin-top:4px;}
.tk-attach:hover{color:var(--ink);}
.tk-attach svg{width:14px;height:14px;}
.tk-attach input{display:none;}
.tk-picked{display:flex;flex-wrap:wrap;gap:6px;}
.tk-picked:empty{display:none;}
.tk-cl{display:flex;align-items:center;gap:10px;font-size:14px;padding:4px 0;cursor:pointer;}
.tk-cl span{flex:1;min-width:0;overflow-wrap:anywhere;}
.tk-cl span em{font-style:normal;color:var(--ink-3);font-size:12px;margin-left:6px;}
.tk-cl.done span{color:var(--ink-3);text-decoration:line-through;}
.tk-inline{display:flex;gap:8px;align-items:flex-start;margin-top:6px;}
.tk-inline input, .tk-inline textarea{
  flex:1;min-width:0;font:inherit;font-size:13.5px;border:1px solid var(--line-strong);border-radius:var(--r-sm);
  padding:8px 12px;background:var(--surface);color:var(--ink);resize:vertical;
}
.tk-inline input:focus, .tk-inline textarea:focus{outline:none;border-color:var(--ink);}
.tk-comment{padding:8px 12px;background:var(--surface-2);border-radius:var(--r-sm);margin-bottom:6px;}
.tk.open .tk-comment{background:var(--bg);}
.tk-comment-meta{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--ink-3);margin-bottom:2px;}
.tk-result{padding:12px 14px;border-radius:var(--r-sm);background:var(--lime-soft);}

.tk-card-body{padding-top:0;}
.tk-card-body .tk{background:var(--surface);border-color:transparent;}
.tk-card-body .tk-body{padding-left:48px;}
.tk-scope-tag{font-size:12px;color:var(--ink-3);border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:3px 10px;margin-right:auto;}
.tk-scope-tag:empty{display:none;}
.tk-modes{display:inline-flex;flex-wrap:wrap;align-self:flex-start;}
.tk-hint{font-size:12.5px;color:var(--ink-3);justify-content:flex-end;}
.tk-postpone{display:flex;gap:8px;flex-wrap:wrap;}

.tk-auto-list{display:flex;flex-direction:column;gap:6px;}
.tk-auto{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);}
.tk-auto .grow{flex:1;min-width:0;cursor:pointer;}
.tk-auto.off{opacity:.55;}

@media (max-width:760px){
  .tk-row{flex-wrap:wrap;}
  .tk-acts{width:100%;padding-left:36px;}
  .tk-hot{flex:1;justify-content:center;}
  .tk-body{padding:4px 14px 14px;}
  .tk-card{padding:16px;}
}

/* ---------------- страница проекта ---------------- */
.proj-hero{padding:24px 26px;margin-bottom:18px;}
.proj-hero-top{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.proj-hero-top .grow{flex:1;min-width:0;}
.proj-hero-top h2{font-size:30px;font-weight:400;letter-spacing:-0.03em;margin:0;line-height:1.15;overflow-wrap:anywhere;}
.proj-hero-top .sub{font-size:13px;color:var(--ink-3);margin-top:4px;}
.proj-note{margin-bottom:6px;}
.proj-progress{margin:16px 0 14px;max-width:520px;}
.proj-progress .progress-track{margin-top:10px;}
.proj-actions{display:flex;gap:8px;flex-wrap:wrap;}
.proj-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;}
.proj-side{display:flex;flex-direction:column;gap:18px;}
.proj-box{padding:20px 22px;}
.proj-box .card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.proj-box .card-title h3{font-size:18px;font-weight:400;letter-spacing:-0.02em;margin:0;}
.proj-habit{display:flex;align-items:center;gap:6px;}
.proj-habit .habit-row{flex:1;min-width:0;}
.proj-habit-pick{display:flex;flex-direction:column;gap:2px;}
@media (max-width:1100px){
  .proj-cols{grid-template-columns:1fr;}
}

/* ---------------- «Версия меня» ---------------- */
.vm-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.vm-row{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:18px;}
.vm-row > *{flex:1 1 320px;min-width:0;}
.vm-note{font-size:13.5px;color:var(--ink-2);line-height:1.5;}
.kicker-dark{font-size:12.5px;color:var(--ink-3);margin-bottom:6px;}
.vm-modal-sub{font-size:13px;color:var(--ink-3);margin-top:2px;}

.vm-strip{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  text-align:left;border:none;border-radius:var(--r-md);padding:14px 20px;margin-bottom:18px;min-height:48px;
  background:#FFF4E5;color:#6B3A0C;font-size:14px;cursor:pointer;
}
.vm-strip.lime{background:var(--lime-soft);color:#3F4A12;}
.vm-strip b{font-weight:500;}
.vm-strip-go{font-weight:500;white-space:nowrap;}

.vm-path{flex:999 1 560px;padding:26px 28px;display:flex;flex-direction:column;gap:20px;}
.vm-path .kicker, .vm-season .kicker{font-size:12.5px;color:rgba(255,255,255,0.78);}
.vm-path-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}
.vm-path-dates{font-size:13px;color:rgba(255,255,255,0.82);text-align:right;line-height:1.5;}
.vm-path-hint{font-size:13.5px;color:rgba(255,255,255,0.86);}
.vm-big{font-size:64px;font-weight:400;line-height:1;letter-spacing:-0.04em;display:flex;align-items:baseline;gap:10px;font-variant-numeric:tabular-nums;}
.vm-big small{font-size:14px;letter-spacing:0;color:rgba(255,255,255,0.82);}
.vm-big.dark{font-size:52px;}
.vm-seasons{display:flex;flex-direction:column;gap:10px;}
.vm-track{position:relative;height:12px;border-radius:var(--r-pill);background:rgba(17,17,20,0.25);}
.vm-track i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-pill);background:#fff;}
.vm-track b{position:absolute;top:-4px;width:2px;height:20px;background:rgba(255,255,255,0.45);}
.vm-season-labels{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;font-size:12px;color:rgba(255,255,255,0.72);}
.vm-season-labels .on{color:#fff;font-weight:500;}
.vm-season-labels i{font-style:normal;}
.vm-chips{display:flex;flex-wrap:wrap;gap:8px;}
.vm-chips span{font-size:13px;padding:7px 13px;border-radius:var(--r-pill);background:rgba(17,17,20,0.25);}

.vm-rhythm{padding:24px 26px;display:flex;flex-direction:column;gap:8px;}
.vm-delta{font-size:15px;letter-spacing:0;color:var(--ink-3);}
.vm-delta.up{color:#23763A;}
.vm-delta.down{color:#A3441B;}
.vm-status{align-self:flex-start;font-size:12px;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);}
.vm-status.s-ok{background:var(--lime);color:var(--ink);}
.vm-status.s-hold{background:var(--warn-soft);color:#7A4E0C;}
.vm-status.s-low{background:#FFF4E5;color:#B4551F;}
.vm-spark{width:100%;height:76px;color:#3F4A12;}
.vm-spark-empty{font-size:12.5px;color:var(--ink-3);padding:24px 0;}

.vm-spheres{padding:24px 26px;margin-bottom:18px;}
.vm-spheres .card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.vm-spheres .card-title h3, .vm-sprint-card .card-title h3, .vm-un .card-title h3, .vm-metrics-card .card-title h3,
.vm-habits-week .card-title h3, .vm-past .card-title h3{font-size:22px;font-weight:400;letter-spacing:-0.02em;margin:0;}
.vm-spheres-body{display:flex;flex-wrap:wrap;gap:24px;align-items:center;}
.vm-radar{flex:1 1 320px;min-width:0;}
.vm-radar svg{width:100%;max-width:420px;display:block;margin:0 auto;}
.vm-legend{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);}
.vm-legend span{display:flex;align-items:center;gap:7px;}
.vm-legend i{display:inline-block;width:18px;height:10px;border-radius:3px;}
.vm-legend i.now{background:var(--lime);border:2px solid var(--ink);}
.vm-legend i.ago{height:0;border-top:2px dashed #8A8878;border-radius:0;}
.vm-sphere-list{flex:1 1 400px;min-width:0;display:flex;flex-direction:column;gap:2px;}
.vm-sphere-row{
  display:grid;grid-template-columns:minmax(120px,150px) minmax(0,1fr) 46px 40px 34px;align-items:center;gap:12px;
  padding:8px 10px;border:none;background:transparent;border-radius:var(--r-sm);text-align:left;min-height:48px;color:var(--ink);cursor:pointer;
}
.vm-sphere-row:hover{background:var(--surface-2);}
.vm-sr-name{display:flex;align-items:center;gap:10px;font-size:15px;}
.vm-sr-name .icon-circle{width:32px;height:32px;flex:none;}
.vm-sr-name em{font-style:normal;font-size:11px;padding:2px 6px;border-radius:var(--r-pill);background:var(--lime);}
.vm-sr-hint{grid-column:2 / 4;font-size:12.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.vm-sr-pct{font-size:15px;text-align:right;font-variant-numeric:tabular-nums;}
.vm-sr-delta{text-align:right;}
.vm-sr-rhythm{font-size:12px;text-align:center;border-radius:var(--r-pill);padding:2px 0;background:var(--surface-2);color:var(--ink-2);}
.vm-sr-rhythm:empty{background:transparent;}
.vm-sr-rhythm.s-ok{background:var(--lime);color:var(--ink);}
.vm-sr-rhythm.s-low{background:#FFF4E5;color:#B4551F;}
.vm-bar{display:block;position:relative;height:8px;border-radius:var(--r-pill);background:#ECEAE2;overflow:hidden;}
.vm-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:var(--r-pill);background:#3F4A12;}
.vm-bar.lime i{background:#B8D12A;}
.vm-bar.dark i{background:#3F4A12;}

.vm-sprint-card, .vm-next{padding:24px 26px;display:flex;flex-direction:column;gap:12px;}
.vm-sprint-card .card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.vm-goal-line{display:flex;flex-direction:column;gap:8px;}
.vm-goal-line > div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:14px;}
.vm-goal-line b{font-weight:500;}
.vm-next{background:#EEF6CF;border-color:transparent;}
.vm-next .btn{align-self:flex-start;}
.vm-next-title{font-size:20px;letter-spacing:-0.02em;}

/* окно «Закрыть день» */
.vm-ci{display:flex;flex-direction:column;gap:12px;}
.vm-ci-days{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;}
.vm-day{
  min-height:56px;border-radius:var(--r-sm);border:1px solid transparent;background:var(--surface-2);color:var(--ink);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;font-size:12px;
}
.vm-day b{font-weight:500;font-size:13px;}
.vm-day span{font-size:10.5px;color:var(--ink-3);}
.vm-day.s-done{background:#EEF6CF;}
.vm-day.s-done span{color:#3F4A12;}
.vm-day.s-missed{background:#FFF4E5;border:1px dashed #D08A55;}
.vm-day.s-missed span{color:#8A3412;}
.vm-day.s-before{opacity:.45;}
.vm-day.on{background:var(--ink);color:#fff;border-color:var(--ink);}
.vm-day.on span{color:rgba(255,255,255,0.75);}
.vm-ci-note{font-size:13px;line-height:1.45;background:#FFF4E5;color:#6B3A0C;border-radius:var(--r-sm);padding:10px 14px;}
.vm-ci-label{font-size:15px;margin-top:8px;}
.vm-ci-diary{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:11px 14px;font-size:14px;line-height:1.5;color:var(--ink);outline:none;width:100%;resize:vertical;min-height:96px;transition:border-color .15s ease, box-shadow .15s ease;}
.vm-ci-diary:focus{border-color:var(--ink);box-shadow:0 0 0 4px var(--lime-soft);}
.vm-diary{display:flex;flex-direction:column;gap:12px;}
.vm-diary-item{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;}
.vm-diary-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--ink-2);}
.vm-diary-head b{color:var(--ink);font-size:14px;margin-right:auto;}
.vm-diary-item p{margin:8px 0 0;font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;}
.vm-ci-time-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;}
.vm-faces{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.vm-faces button{
  min-height:80px;border-radius:16px;border:1px solid var(--line);background:var(--surface);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 2px;font-size:11.5px;color:var(--ink-2);
}
.vm-faces button.on{border:2px solid var(--ink);background:var(--surface-2);color:var(--ink);}
.vm-energy{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;}
.vm-energy button{min-height:44px;border-radius:12px;border:none;background:var(--surface-2);font-size:15px;color:var(--ink);}
.vm-energy button.on{background:var(--ink);color:#fff;}
.vm-ci-pair{margin-top:4px;}
.vm-flags{display:flex;flex-wrap:wrap;gap:8px;}
.vm-flags .chip{min-height:44px;padding:0 16px;}
.vm-ci-timers{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;font-size:14px;}
.vm-ci-timers b{font-weight:500;}
.vm-ci-timers em{font-style:normal;font-size:12px;color:#3F4A12;margin-left:4px;}
.vm-ci-sliders{display:flex;flex-direction:column;gap:4px;}
.vm-ci-sliders label{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr) 84px;gap:12px;align-items:center;font-size:14px;}
.vm-ci-sliders input{accent-color:#3F4A12;min-height:44px;width:100%;}
.vm-ci-sliders b{font-weight:500;text-align:right;font-variant-numeric:tabular-nums;}
.vm-ci-foot{justify-content:space-between;align-items:center;}
.vm-ci-foot .vm-note{flex:1 1 220px;}

/* цели и показатели */
.vm-tabs button{min-height:40px;}
.vm-weight-card{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.vm-weight-card h3{font-size:18px;font-weight:400;margin:0 0 4px;}
.vm-weight-card .seg button{min-height:40px;white-space:nowrap;}
.vm-metrics-card{padding:22px 24px;margin-bottom:18px;}
.vm-metrics-card .card-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.vm-sum{font-size:13px;}
.vm-sum.ok{color:#23763A;}
.vm-sum.bad{color:#B4551F;}
.vm-table-scroll{overflow-x:auto;}
.vm-table{width:100%;min-width:900px;border-collapse:collapse;font-size:14px;}
.vm-table th{font-weight:400;font-size:12.5px;color:var(--ink-3);text-align:left;padding:8px 10px 8px 0;}
.vm-table td{border-top:1px solid var(--line);padding:12px 10px 12px 0;vertical-align:top;}
.vm-table td b{font-weight:500;}
.vm-table tr.off{opacity:.5;}
.vm-unit{font-size:12px;color:var(--ink-3);margin-left:6px;}
.vm-cell-hint{font-size:12px;color:var(--ink-3);margin-top:4px;}
.vm-cell-input{
  width:96px;min-height:40px;padding:8px 10px;border-radius:12px;border:1px solid var(--line-strong);
  font:inherit;background:var(--surface);color:var(--ink);
}
.vm-cell-input:focus{outline:none;border-color:var(--ink);}
.vm-table .vm-bar{margin-top:6px;max-width:120px;}
.vm-src{color:var(--ink-2);max-width:220px;}
.vm-src .btn, .vm-table td .btn{display:block;margin-top:8px;}
.vm-un, .vm-side{padding:22px 24px;}
.vm-un .card-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.vm-un-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:14px;flex-wrap:wrap;}
.vm-un-row em{font-style:normal;font-size:11px;color:var(--ink-3);margin-right:8px;}
.vm-un-row select{min-height:40px;border-radius:12px;border:1px solid var(--line-strong);padding:0 10px;background:var(--surface);font:inherit;}
.vm-side{background:#EEF6CF;border-color:transparent;}

/* спринт */
.vm-season{padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:18px;}
.vm-season > div:first-child{display:flex;flex-direction:column;gap:8px;flex:1 1 320px;align-items:flex-start;}
.vm-season-goal{font-size:24px;letter-spacing:-0.02em;line-height:1.25;}
.vm-weeks{display:flex;gap:8px;}
.vm-weeks button{
  width:40px;height:40px;border-radius:12px;border:none;font-size:14px;color:#fff;background:rgba(17,17,20,0.25);
}
.vm-weeks button.w-past, .vm-weeks button.w-current{background:#fff;color:#36400E;}
.vm-weeks button.on{outline:3px solid var(--lime);}
.vm-summary{padding:18px 24px;margin-bottom:18px;background:#EEF6CF;border-color:transparent;}
.vm-summary-line{font-size:17px;margin-bottom:4px;}
.vm-summary-line b{font-weight:500;}
.vm-goals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-bottom:18px;}
.vm-goal{padding:22px 24px;display:flex;flex-direction:column;gap:14px;}
.vm-goal.done{background:#F7FBE6;}
.vm-goal-top{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.vm-goal-top b{font-weight:500;font-size:15px;}
.vm-goal-title{font-size:19px;letter-spacing:-0.02em;line-height:1.3;}
.vm-goal-items{display:flex;flex-direction:column;}
.vm-item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:14px;}
.vm-box{width:18px;height:18px;border-radius:6px;border:2px solid #C9C7BE;}
.vm-item.done .vm-box{background:#3F4A12;border-color:#3F4A12;}
.vm-item.done .vm-item-title{color:var(--ink-3);text-decoration:line-through;}
.vm-item-title{cursor:pointer;}
.vm-item-meta{font-size:12px;color:var(--ink-3);}
.vm-goal-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;}
.vm-goal-empty{padding:22px 24px;display:flex;flex-direction:column;gap:12px;border-style:dashed;align-items:flex-start;}
.vm-suggest{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.vm-suggest .chip{text-align:left;min-height:40px;white-space:normal;}
.vm-suggest b{font-weight:500;}
.vm-habits-week, .vm-past{padding:22px 24px;}
.vm-habits-week .card-title, .vm-past .card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.vm-hgrid{display:grid;grid-template-columns:minmax(110px,1fr) repeat(7,34px);gap:8px;align-items:center;font-size:14px;}
.vm-hgrid-day{font-size:12px;color:var(--ink-3);text-align:center;}
.vm-hgrid-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.vm-hcell{width:34px;height:34px;border-radius:10px;background:#ECEAE2;}
.vm-hcell.c-done{background:#3F4A12;}
.vm-hcell.c-future, .vm-hcell.c-today{background:transparent;border:1px dashed #C9C7BE;}
.vm-hcell.c-off{background:transparent;}
.vm-hcell.c-missed{background:#F3E6DA;}
.vm-past-row{display:flex;justify-content:space-between;gap:12px;width:100%;padding:11px 0;border:none;border-bottom:1px solid var(--line);background:transparent;font:inherit;font-size:14px;text-align:left;color:var(--ink);cursor:pointer;}
.vm-past-row b{font-weight:500;}
.vm-link-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:14px;cursor:pointer;}
.vm-link-row input{width:18px;height:18px;accent-color:#3F4A12;}
.vm-link-row.busy em{font-style:normal;font-size:12px;color:var(--ink-3);}
.vm-plan-row{display:grid;grid-template-columns:28px 130px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);}
.vm-plan-row select, .vm-plan-row input{min-height:42px;border-radius:12px;border:1px solid var(--line-strong);padding:0 10px;font:inherit;background:var(--surface);min-width:0;}
.vm-ask-text{font-size:15px;line-height:1.5;}

/* таймер в шапке и на экране спринта */
.vm-timer{
  display:flex;align-items:center;gap:10px;min-width:0;max-width:420px;
  background:var(--ink);color:#fff;border-radius:var(--r-pill);padding:5px 5px 5px 14px;
}
.vm-timer-dot{width:9px;height:9px;border-radius:50%;background:var(--lime);flex:none;animation:vmPulse 1.6s ease-in-out infinite;}
@keyframes vmPulse{50%{opacity:.35;}}
.vm-timer-title{border:none;background:transparent;color:#fff;font:inherit;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;padding:0;}
.vm-timer b{font-weight:500;font-variant-numeric:tabular-nums;font-size:14px;}
.vm-timer-stop{border:none;border-radius:var(--r-pill);background:#fff;color:var(--ink);font-size:12.5px;padding:7px 14px;min-height:32px;}
.vm-timer-inline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--ink);color:#fff;border-radius:var(--r-pill);padding:8px 8px 8px 20px;margin-bottom:18px;}
.vm-timer-inline .grow{flex:1 1 200px;font-size:14px;}
.vm-timer-inline b{font-size:18px;font-weight:500;font-variant-numeric:tabular-nums;}
.vm-timer-inline .btn{background:#fff;color:var(--ink);}

@media (max-width:760px){
  .vm-big{font-size:52px;}
  .vm-season-labels i{display:none;}
  .vm-path, .vm-rhythm, .vm-spheres, .vm-sprint-card, .vm-next, .vm-goal, .vm-season{padding:20px;}
  .vm-sphere-row{grid-template-columns:minmax(96px,120px) minmax(0,1fr) 42px 34px;}
  .vm-sr-rhythm{display:none;}
  .vm-ci-days{grid-template-columns:repeat(4,minmax(0,1fr));}
  .vm-energy{grid-template-columns:repeat(5,minmax(0,1fr));}
  .vm-faces button span{font-size:10.5px;}
  .vm-ci-sliders label{grid-template-columns:1fr 72px;}
  .vm-ci-sliders input{grid-column:1 / -1;grid-row:2;}
  .vm-timer{max-width:none;flex:1 1 100%;order:4;}
  .vm-hgrid{grid-template-columns:minmax(80px,1fr) repeat(7,28px);gap:5px;}
  .vm-hcell{width:28px;height:28px;}
  .vm-plan-row{grid-template-columns:28px minmax(0,1fr);}
  .vm-plan-row input{grid-column:1 / -1;}
}

/* ============================================================
   Личное → проект «Ферма»
   ============================================================ */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
#view-farm .grow{flex:1;min-width:0;}
#view-farm .muted{color:var(--ink-3);}
.farm-start{padding:40px 36px;display:flex;flex-direction:column;gap:14px;align-items:flex-start;max-width:640px;}
.farm-start h2{margin:0;font-size:40px;font-weight:400;letter-spacing:-0.04em;}
.farm-start p{margin:0;color:var(--ink-2);}

.farm-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:18px;}
.farm-title{display:flex;flex-direction:column;gap:6px;}
.farm-title h2{margin:0;font-size:40px;font-weight:400;letter-spacing:-0.04em;line-height:1;}
.farm-crumbs, .farm-sub{font-size:12.5px;color:var(--ink-3);}
.farm-crumbs a{color:var(--ink-2);text-decoration:none;}
.farm-crumbs a:hover{color:var(--ink);}
.farm-head-actions{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px;}

.farm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:6px;}
.farm-tile{
  display:flex;flex-direction:column;gap:6px;min-height:150px;padding:20px 22px;border-radius:var(--r-xl);
  text-align:left;font:inherit;color:var(--ink);cursor:pointer;border:1px solid var(--line);
}
.farm-tile.card{background:var(--surface);}
.farm-tile.hero{border:none;color:#fff;}
.farm-tile .cap{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:6px;}
.farm-tile.hero .cap, .farm-tile.hero .foot{color:rgba(255,255,255,0.84);}
.farm-tile .val{margin-top:auto;font-size:38px;letter-spacing:-0.04em;line-height:1;}
.farm-tile .val small{font-size:15px;letter-spacing:0;opacity:.82;}
.farm-tile .val.late{color:#B8401F;}
.farm-tile .foot{font-size:12px;color:var(--ink-3);}
.farm-dot{width:8px;height:8px;border-radius:50%;background:var(--alert);display:inline-block;}

.farm-tabs{margin:12px 0 18px;}
.farm-tabs button{display:inline-flex;align-items:baseline;gap:7px;}
.farm-count{font-size:12px;color:var(--ink-3);}
.farm-badge{font-size:11px;background:var(--bad-soft);color:#B8401F;border-radius:var(--r-pill);padding:1px 7px;}

#farmTab{display:flex;flex-direction:column;gap:16px;}
.farm-card{padding:20px 22px;}
.farm-h3{margin:0 0 8px;font-size:17px;font-weight:500;}
.farm-h4{margin:22px 0 4px;font-size:17px;font-weight:500;}
.farm-lead{margin:0 0 8px;color:var(--ink-2);font-size:13px;max-width:72ch;}
.farm-foot{margin:12px 0 0;font-size:12px;color:var(--ink-3);}
.farm-info{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:#3E4048;background:var(--surface-2);border-radius:var(--r-sm);padding:10px 12px;}
.farm-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px;}
.farm-chip-n{opacity:.6;margin-left:4px;}
#view-farm .seg button, .modal .seg button{white-space:nowrap;}
.farm-chip-add{border-style:dashed;}
.farm-search{min-height:36px;border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:0 14px;font:inherit;width:220px;max-width:100%;background:var(--surface);}
.farm-scroll{overflow-x:auto;}
.farm-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.farm-table th{text-align:left;font-weight:400;font-size:12px;color:var(--ink-3);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
.farm-table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums;}
.farm-table tr:last-child td{border-bottom:none;}
.farm-empty{text-align:center;padding:28px 10px !important;}
.farm-num{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;background:var(--surface-2);border-radius:8px;padding:3px 7px;white-space:nowrap;}
.farm-num.white{background:var(--surface);border:1px solid var(--line);}
.farm-link{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px;}
.farm-link:hover{text-decoration-color:var(--ink);}
.farm-actions{white-space:nowrap;text-align:right;}
.f-ico{
  width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;margin-left:4px;flex:none;
}
.f-ico:hover{border-color:var(--ink);}

.f-pill{display:inline-flex;align-items:center;padding:4px 11px;border-radius:var(--r-pill);font-size:12px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2);}
.f-pill.warn{background:var(--warn-soft);color:#8A560D;}
.f-pill.lime{background:var(--lime-soft);color:var(--ink);}
.f-pill.good{background:var(--good-soft);color:#1F6B34;}
.f-pill.bad{background:var(--bad-soft);color:#A63A1B;}
.f-pill.info{background:var(--info-soft);color:#3049AE;}
.farm-mini{font-size:11.5px;border-radius:var(--r-pill);padding:2px 8px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap;}
.farm-chips-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}

.farm-calves-head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;margin-bottom:8px;}
.farm-calves-head .farm-h3{margin:0;}
.farm-calves-note{flex:1;min-width:240px;color:var(--ink-2);font-size:13px;}

/* карточка животного — панель справа */
.modal-backdrop:has(.farm-drawer){justify-content:flex-end;align-items:stretch;padding:16px;}
.modal.farm-drawer{max-width:560px;max-height:none;background:var(--bg);}
.farm-drawer-head h3{margin:4px 0 8px;font-size:32px;}
.farm-drawer-body{display:flex;flex-direction:column;gap:14px;}
.farm-drawer-body > *{flex-shrink:0;}
.farm-expect{display:flex;flex-direction:column;gap:4px;padding:18px 20px;border-radius:var(--r-lg);color:#fff;}
.farm-expect span{font-size:12.5px;color:rgba(255,255,255,0.86);}
.farm-expect b{font-size:32px;font-weight:400;letter-spacing:-0.03em;}
.farm-dl{display:grid;grid-template-columns:140px minmax(0,1fr);gap:9px 14px;margin:0;font-size:13.5px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px;}
.farm-split .farm-dl{background:none;border:none;padding:8px 0 0;grid-template-columns:110px minmax(0,1fr);}
.farm-dl dt{color:var(--ink-3);}
.farm-dl dd{margin:0;}
.farm-btns{display:flex;flex-wrap:wrap;gap:8px;}

.farm-event{display:grid;grid-template-columns:84px minmax(0,1fr) auto auto;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start;}
.farm-drawer .farm-event{grid-template-columns:84px minmax(0,1fr) auto;}
.farm-event-date{color:var(--ink-3);font-size:12.5px;padding-top:3px;font-variant-numeric:tabular-nums;}
.farm-event-date.late{color:#B8401F;}
.farm-event-main{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0;}
.farm-event-sub{color:var(--ink-2);font-size:12.5px;}
.farm-event-cost{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink-2);}

/* форма события: выбор животных */
.farm-pick{display:flex;flex-direction:column;gap:6px;}
.farm-pick-row{display:flex;flex-wrap:wrap;gap:6px;}
.farm-pick .chip, .farm-pick-row .chip{min-height:34px;font-size:12px;}
.farm-chip-all{border-style:dashed !important;}
.farm-chip-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.farm-chip-check input{margin:0;}

/* две колонки внутри вкладки */
.farm-split{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;}
.farm-split > .grow3{flex:3 1 520px;min-width:0;}
.farm-split > .grow2{flex:2 1 340px;min-width:0;}
.farm-col{display:flex;flex-direction:column;gap:16px;}

.farm-rule{display:flex;flex-wrap:wrap;gap:8px 16px;padding:14px 0;border-bottom:1px solid var(--line);}
.farm-rule:last-child{border-bottom:none;}
.farm-rule-main{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:3px;}
.farm-rule-title{font-weight:500;}
.farm-rule-when{color:var(--ink-3);font-size:12.5px;}
.farm-rule-links{display:flex;gap:14px;margin-top:4px;}
.link-btn{background:none;border:none;padding:0;font:inherit;font-size:12.5px;color:var(--ink-2);cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px;}
.link-btn:hover{color:var(--ink);}
.link-btn.danger{color:#A63A1B;}
.farm-rule-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin-left:auto;}
.farm-rule-next{font-weight:500;font-variant-numeric:tabular-nums;}

.farm-group{font-size:12px;color:var(--ink-3);margin:18px 0 2px;}
.farm-task{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);}
.farm-cb{
  width:24px;height:24px;flex:none;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);
  display:inline-flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;margin-top:1px;padding:0;
}
.farm-cb:hover{border-color:var(--ink);}
.farm-cb.done{background:var(--lime);border-color:var(--lime);color:var(--ink);}
.farm-task-title{background:none;border:none;padding:0;font:inherit;color:var(--ink);text-align:left;cursor:pointer;margin-bottom:4px;}
.farm-task-title.done{color:var(--ink-3);text-decoration:line-through;}
.farm-date{font-size:12px;color:var(--ink-2);}
.farm-date.late{color:#B8401F;}

.farm-mets{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;}
.farm-met{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;display:flex;flex-direction:column;gap:6px;text-align:left;font:inherit;color:var(--ink);}
.farm-met .cap{font-size:12.5px;color:var(--ink-3);display:flex;gap:6px;}
.farm-met .cap em{font-style:normal;font-size:11px;margin-left:auto;}
.farm-met .val{font-size:30px;letter-spacing:-0.035em;line-height:1.05;font-variant-numeric:tabular-nums;}
.farm-met .val small{font-size:14px;letter-spacing:0;color:var(--ink-3);}
.farm-met .val.plus{color:#1F6B34;}
.farm-met .val.minus{color:#B8401F;}
.farm-met .foot{font-size:12px;color:var(--ink-3);}
.farm-met.own{cursor:pointer;}
.farm-met.own:hover{border-color:var(--ink);}
.farm-met.add{cursor:pointer;background:transparent;border:1px dashed var(--line-strong);align-items:center;justify-content:center;text-align:center;color:var(--ink-2);font-size:12px;min-height:120px;}
.farm-met.add b{font-weight:500;color:var(--ink);font-size:14px;}

.farm-op{display:grid;grid-template-columns:76px minmax(0,1fr) auto auto;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);align-items:center;}
.farm-op:last-child{border-bottom:none;}
.farm-op-main{display:flex;flex-direction:column;min-width:0;}
.farm-op-cat{font-size:12px;color:var(--ink-3);}
.farm-amt{font-variant-numeric:tabular-nums;white-space:nowrap;}
.farm-amt.plus{color:#1F6B34;}
.farm-bar{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0;}
.farm-bar-track{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;display:block;}
.farm-bar-track i{display:block;height:100%;background:var(--ink);border-radius:99px;}

.farm-dis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.farm-dis{border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;display:flex;flex-direction:column;gap:6px;text-align:left;font:inherit;background:var(--surface);cursor:pointer;color:var(--ink);}
.farm-dis b{font-weight:500;font-size:15px;}
.farm-dis:hover{border-color:var(--line-strong);}
.farm-dis.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);}
.farm-dis-title{margin:4px 0 8px;font-size:24px;font-weight:400;letter-spacing:-0.02em;}
.farm-notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}
.farm-note{border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;display:flex;flex-direction:column;gap:6px;cursor:pointer;}
.farm-note:hover{border-color:var(--line-strong);}
.farm-note b{font-weight:500;font-size:15px;}
.farm-note span{color:#3E4048;font-size:13px;white-space:pre-line;}

.farm-legend{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);}
.farm-legend i{width:10px;height:10px;border-radius:3px;background:var(--ink);}
.farm-legend i.inc{background:var(--good);}
.farm-chart{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;border-bottom:1px solid var(--line-strong);padding-top:8px;overflow-x:auto;}
.farm-chart-col{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11.5px;color:var(--ink-2);font-variant-numeric:tabular-nums;min-width:70px;}
.farm-chart-col b{font-weight:400;color:var(--ink);margin-top:6px;}
.farm-chart-bars{height:180px;display:flex;align-items:flex-end;gap:3px;}
.farm-chart-bars span{width:18px;background:var(--ink);border-radius:4px 4px 0 0;display:block;}
.farm-chart-bars span.inc{background:var(--good);}

@media (max-width:700px){
  .farm-title h2{font-size:32px;}
  .farm-head-actions{margin-left:0;}
  .farm-event, .farm-op{grid-template-columns:64px minmax(0,1fr) auto;}
  .farm-event .f-ico, .farm-op .f-ico{display:none;}
  .farm-dl{grid-template-columns:1fr;}
  .farm-bar{grid-template-columns:100px minmax(0,1fr) auto;}
}

.farm-op-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.farm-line{width:100%;min-width:520px;height:auto;display:block;}
.farm-line text{font-size:11.5px;fill:var(--ink-3);font-variant-numeric:tabular-nums;}
.farm-line .grid{stroke:var(--line);stroke-width:1;}
.farm-line polyline{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;}
.farm-line polyline.inc{stroke:var(--good);}
.farm-line polyline.exp{stroke:var(--ink);}
.farm-line circle{stroke:var(--surface);stroke-width:2;}
.farm-line circle.inc{fill:var(--good);}
.farm-line circle.exp{fill:var(--ink);}
.farm-owner{display:flex;gap:6px;align-items:center;}
.farm-owner select, .farm-owner input{flex:1;min-width:0;}
.farm-owner .f-ico{width:40px;height:40px;margin:0;font-size:18px;}
.farm-combo{position:relative;}
.farm-combo input[type=search]{width:100%;}
.farm-combo-list{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;max-height:240px;overflow-y:auto;
  background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-soft);padding:4px;
}
.farm-combo-list button{display:block;width:100%;text-align:left;background:none;border:none;font:inherit;padding:8px 10px;border-radius:10px;cursor:pointer;color:var(--ink);}
.farm-combo-list button:hover{background:var(--surface-2);}
.farm-combo-list .empty-hint{display:block;padding:8px 10px;}
.farm-filter{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:end;margin-bottom:14px;padding:12px 14px;background:var(--surface-2);border-radius:var(--r-md);}
.farm-filter .f-field input, .farm-filter .f-field select{background:var(--surface);}
.farm-filter-reset{justify-self:start;}

/* ---------- кабинет клиента: статус в шапке и раздел настроек ---------- */
.avail-btn{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;flex:none;}
.avail-btn i{width:9px;height:9px;border-radius:50%;background:var(--good);flex:none;}
.avail-btn.off{background:var(--bad-soft);border-color:var(--bad);}
.avail-btn.off i{background:var(--bad);}
.avail-btn:hover{border-color:var(--ink);}
.cs-section{padding:16px 0;border-bottom:1px solid var(--line);}
.cs-section:last-of-type{border-bottom:none;}
.cs-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.cs-section-head h3{margin:0;font-size:16px;font-weight:500;}
.cs-section textarea, .cs-section input[type=text]{width:100%;}
.cs-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);}
.cs-item.draft .fin-row-title{color:var(--ink-2);}
.cs-item-main{flex:1;min-width:0;cursor:pointer;}
.cs-item-main:hover .fin-row-title{text-decoration:underline;}
.cs-draft{font-size:11px;padding:2px 8px;border-radius:var(--r-pill);background:var(--warn-soft);color:var(--ink-2);margin-left:6px;}
.cs-tools{display:inline-flex;gap:4px;flex:none;}
.cs-tool{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;font-size:13px;}
.cs-tool:hover:not(:disabled){border-color:var(--ink);color:var(--ink);}
.cs-tool:disabled{opacity:.35;cursor:default;}
.cs-fields{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
@media (max-width: 700px){
  .avail-btn span{display:none;}
  .avail-btn{padding:0 12px;}
}
.cs-recipients{max-height:420px;overflow:auto;border-top:1px solid var(--line);}
.cs-fb{padding:14px 0;border-top:1px solid var(--line);}
.cs-fb:first-child{border-top:0;padding-top:0;}
.cs-fb-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;}
.cs-fb-case{border:0;background:none;padding:0;font:inherit;font-weight:500;color:var(--ink);cursor:pointer;text-align:left;}
.cs-fb-case:hover{text-decoration:underline;}
.cs-fb-public{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--ink-2);cursor:pointer;}
.cs-fb-text{margin-top:6px;white-space:pre-line;line-height:1.5;}
.cs-recipients .cs-item:first-child{border-top:none;}
#clientSettingsRoot .seg button{white-space:nowrap;}
.cs-tiles{display:grid;grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));gap:10px;}
.cs-tile{display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:96px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md, 20px);
  background:var(--surface-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background .18s ease, border-color .18s ease;}
.cs-tile-t{font-size:15px;font-weight:500;overflow-wrap:anywhere;}
.cs-tile-n{font-size:12px;color:var(--ink-3);}
.cs-tile:hover{background:var(--lime);border-color:var(--lime);}
.cs-tile:hover .cs-tile-n{color:var(--ink);}
.cs-tile.active{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);}
.cs-tile-add{background:transparent;border-style:dashed;border-color:var(--line-strong);}
#psIntegrations .ps-card{margin-bottom:16px;}

/* ---------------- Бизнес: раздел «БКИ» ---------------- */
.bki-flag{display:inline-block;width:10px;height:10px;border-radius:50%;}
.bki-flag.late{background:var(--bad);box-shadow:0 0 0 4px var(--bad-soft);}
.bki-flag.soon{background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft);}
.bki-dl{font-variant-numeric:tabular-nums;color:var(--ink);}
.bki-dl.late{color:#A63A1B;}
.bki-dl.soon{color:#8A560D;}
.bki-sub{font-size:12.5px;color:var(--ink-3);margin-top:3px;}
.bki-sub a{color:var(--ink-2);}
.bki-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;}
.bki-filters select, .bki-search, .bki-inline-form input, .bki-inline-form select{
  border:1px solid var(--line-strong);border-radius:var(--r-pill);padding:9px 15px;background:var(--surface);font:inherit;font-size:13.5px;color:var(--ink);
}
.bki-search{flex:1 1 240px;min-width:200px;}
.bki-inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px;}
.bki-inline-form input[type=text]{flex:1 1 180px;min-width:150px;}
.bki-svc-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:16px;}
.bki-svc{padding:22px 24px;cursor:pointer;transition:border-color .15s ease;}
.bki-svc:hover{border-color:var(--ink);}
.bki-svc.archived{opacity:.55;}
.bki-svc-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;}
.bki-svc-title{font-size:17px;letter-spacing:-0.01em;}
.bki-svc-price{font-size:13px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums;}
.bki-svc-stages{margin:0 0 12px;padding-left:20px;font-size:13px;color:var(--ink-2);line-height:1.6;}
.bki-st-row{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) 24px;gap:12px;padding:14px;margin-bottom:10px;border-radius:var(--r-md);background:var(--surface-2);}
.bki-st-row .vp-del, .bki-tk-row .vp-del, .bki-show{opacity:1;}
.bki-row-num{width:28px;height:28px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:12.5px;}
.bki-tk-row{display:flex;gap:10px;align-items:center;margin-bottom:8px;}
.bki-tk-row input[type=text]{flex:1;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 12px;font:inherit;font-size:13.5px;}
.bki-tk-row label{font-size:12.5px;color:var(--ink-3);display:flex;align-items:center;gap:6px;}
.bki-tk-row input[type=number]{width:70px;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 10px;font:inherit;font-size:13.5px;}
.bki-task{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);}
.bki-task + .bki-task{margin-top:6px;}
.bki-task-main{flex:1;min-width:0;}
.bki-task.done .tk-title{color:var(--ink-3);text-decoration:line-through;}
.bki-late-title{color:var(--bad);}
.bki-kv{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:8px;}
.bki-kv div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);}
.bki-kv span{font-size:12px;color:var(--ink-3);}
.bki-kv b{font-weight:400;font-size:13.5px;overflow-wrap:anywhere;}
.bki-hero-meta{margin-top:10px;font-size:13.5px;color:rgba(255,255,255,0.78);line-height:1.5;}
.bki-hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.bki-svc-line{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.bki-svc-chip{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:var(--r-pill);background:var(--surface-2);font-size:13px;}
.bki-svc-chip b{font-weight:500;}
.bki-svc-chip span{color:var(--ink-3);}
.bki-svc-chip select{border:none;background:transparent;font:inherit;font-size:12.5px;color:var(--ink-2);}
.bki-svc-chip.done{background:var(--good-soft);}
.bki-svc-chip.cancelled{opacity:.55;}
.bki-stage-head{cursor:default;flex-wrap:wrap;}
.bki-stage-head .vp-meta{white-space:normal;}
.bki-stage-desc{font-size:13.5px;color:var(--ink-2);line-height:1.5;margin:2px 0 6px;max-width:720px;}
.vp-stage.future .bki-stage-desc{color:var(--ink-3);}
.bki-stage-need{display:inline-block;font-size:12.5px;padding:4px 11px;border-radius:var(--r-pill);background:var(--lime-soft);color:var(--ink);margin-bottom:6px;}
.bki-stage-edit{margin:8px 0 12px;max-width:720px;}
.bki-row-actions{flex-direction:row !important;justify-content:flex-end;gap:8px;}
.bki-stale{margin-top:6px;font-size:12.5px;color:#8A560D;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.bki-feed{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.bki-feed:last-child{border-bottom:none;}
.bki-feed-time{color:var(--ink-3);font-size:12.5px;font-variant-numeric:tabular-nums;}
.bki-table td{padding:12px 16px;}
.bki-table th{padding-left:16px;padding-right:16px;}
.bki-total td{color:var(--ink);font-weight:500;}
.bki-price{width:130px;border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 10px;font:inherit;font-size:13.5px;background:var(--surface);}
.case-tabs .tab-count{margin-left:6px;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.case-tabs .tab-count.bki-alert{padding:1px 7px;border-radius:var(--r-pill);background:var(--bad-soft);color:#A63A1B;}
.bki-pick{cursor:pointer;gap:6px;}
.bki-pick input{margin:0;}
@media (max-width: 640px){
  .bki-feed{grid-template-columns:1fr;gap:2px;}
  .bki-st-row{grid-template-columns:minmax(0,1fr) 24px;}
  .bki-row-num{display:none;}
}

/* «Задачи» Бизнеса: под своими задачами — открытые задачи «Прогресса» по делам */
#bkCaseTasks{margin-top:16px;}
.bfl-stage-tasks .tk-main{cursor:pointer;}

/* ---------- БКИ → «Запись» и «Мини-приложение» (гостевой кабинет «Очистка КИ») ---------- */
.booking-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:4px 0 16px;flex-wrap:wrap;}
.booking-title{font-size:24px;letter-spacing:-0.025em;}
.booking-head .sub{font-size:13px;color:var(--ink-3);margin-top:4px;}
.booking-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.booking-stat{padding:18px 20px;display:flex;flex-direction:column;gap:6px;border-radius:var(--r-lg);}
.booking-stat span{font-size:12.5px;color:var(--ink-3);}
.booking-stat b{font-weight:400;font-size:36px;line-height:1;letter-spacing:-0.035em;}
.booking-stat b em{font-style:normal;font-size:18px;letter-spacing:0;color:var(--ink-3);}
.booking-stat small{font-size:12.5px;color:var(--ink-2);}
.booking-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:start;}
.booking-params{grid-template-columns:2fr 2fr 1fr 1fr 1fr;}
.booking-svc{border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px;margin-bottom:10px;}
.booking-svc-row{display:grid;grid-template-columns:minmax(0,2.4fr) repeat(2,minmax(0,1fr)) repeat(2,minmax(0,1.1fr)) auto;gap:10px;align-items:end;}
.booking-svc-flags{display:flex;gap:18px;flex-wrap:wrap;}
.booking-svc-flags .chip-check{font-size:13px;}
.booking-card{padding:22px;border-radius:var(--r-xl);}
.booking-card .section-head h3{font-size:19px;}
.booking-table td{padding:10px 8px;vertical-align:top;}
.booking-table th{padding-left:8px;padding-right:8px;}
.booking-table input, .booking-table textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;padding:8px 10px;font:inherit;font-size:13.5px;background:var(--surface);color:var(--ink);}
.booking-table textarea{margin-top:6px;resize:vertical;}
.booking-table .chip-check{font-size:12.5px;margin-top:6px;margin-right:10px;}
.booking-apps{display:flex;flex-direction:column;}
.booking-app{display:flex;align-items:center;gap:12px;padding:12px 4px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;font:inherit;color:var(--ink);cursor:pointer;}
.booking-app:last-child{border-bottom:0;}
.booking-app:hover{background:var(--surface-2);}
.booking-n{width:32px;height:32px;border-radius:50%;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;font-size:12.5px;flex:none;}
.booking-app-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.booking-app-main b{font-weight:500;font-size:14px;}
.booking-app-main small{font-size:12.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.booking-links{display:flex;flex-direction:column;gap:8px;}
.booking-link{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.booking-link span{flex-basis:100%;font-size:12.5px;color:var(--ink-3);}
.booking-link code{flex:1;min-width:0;font-size:13px;background:var(--surface-2);border-radius:10px;padding:8px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.booking-total{display:flex;justify-content:flex-end;gap:10px;align-items:baseline;margin-top:8px;font-size:13px;color:var(--ink-3);}
.booking-total b{font-weight:400;font-size:24px;color:var(--ink);letter-spacing:-0.02em;}
.booking-wait{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;}
.booking-wait span{color:var(--ink-3);font-size:13px;}
.booking-qr{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.booking-qr img{width:96px;height:96px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff;}
.booking-fact{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;margin-bottom:8px;}
.booking-fact input{border:1px solid var(--line-strong);border-radius:12px;padding:8px 10px;font:inherit;font-size:13.5px;}
@media (max-width:1100px){
  .booking-cols{grid-template-columns:1fr;}
  .booking-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .booking-params, .booking-svc-row{grid-template-columns:1fr 1fr;}
}

/* ---------- Панель управления: доступы клиентов и статистика заходов ---------- */
.cs-access-head{display:flex;justify-content:flex-end;margin-bottom:4px;}
.cs-stats{grid-template-columns:repeat(5, minmax(0, 1fr));}
.cs-daily{display:flex;align-items:flex-end;gap:3px;height:150px;padding:8px 0 22px;}
.cs-day{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;position:relative;}
.cs-day-bar{display:flex;flex-direction:column-reverse;min-height:2px;border-radius:6px 6px 2px 2px;overflow:hidden;background:var(--line);}
.cs-day-bar i{display:block;min-height:0;}
.cs-day-bar i.max, .cs-legend i.max{background:var(--ink);}
.cs-day-bar i.tg, .cs-legend i.tg{background:var(--lime);}
.cs-day span{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--ink-3);white-space:nowrap;}
.cs-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-3);margin-bottom:6px;}
.cs-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;}
.cs-access-search{margin:0;min-width:220px;}
.cs-access-list{display:flex;flex-direction:column;}
.cs-acc{display:grid;grid-template-columns:minmax(0, 1.2fr) minmax(0, 1.3fr) auto;gap:10px 16px;align-items:center;padding:14px 0;border-top:1px solid var(--line);}
.cs-acc.archived{opacity:.65;}
.cs-acc-visits{font-size:12.5px;color:var(--ink-2);margin-top:4px;}
.cs-acc-links{display:flex;flex-wrap:wrap;gap:6px;}
.cs-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:var(--r-pill);background:var(--surface-2);font-size:12.5px;color:var(--ink);}
.cs-chip.pending{background:var(--warn-soft);}
.cs-chip.phone{background:var(--lime-soft);}
.cs-chip button{border:0;background:none;cursor:pointer;color:var(--ink-3);font-size:12px;padding:2px 4px;border-radius:50%;}
.cs-chip button:hover{color:var(--ink);background:rgba(17,17,20,0.06);}
.cs-acc-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.cs-acc-actions input{width:150px;height:34px;padding:4px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font:inherit;font-size:13px;}
.cs-invite{margin:10px 0;}
@media (max-width:1100px){
  .cs-stats{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .cs-acc{grid-template-columns:minmax(0, 1fr);}
  .cs-acc-actions{justify-content:flex-start;}
}

/* ---------- Финансы Бизнеса: поступления, расходы, дебиторка ---------- */
.bf-stats{grid-template-columns:repeat(4, minmax(0, 1fr));margin:0 0 16px;}
.bf-grid{display:grid;grid-template-columns:minmax(0, 1.6fr) minmax(0, 1fr);gap:16px;align-items:start;margin-bottom:16px;}
.bf-grid .case-block{margin:0;}
.bf-chart{display:flex;align-items:flex-end;gap:8px;height:220px;padding:10px 0 26px;}
.bf-month{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;position:relative;}
.bf-bars{display:flex;align-items:flex-end;gap:3px;height:100%;}
.bf-bars i{flex:1;border-radius:6px 6px 2px 2px;min-height:2px;}
.bf-bars i.in{background:var(--lime);box-shadow:inset 0 0 0 1px rgba(17,17,20,0.12);}
.bf-bars i.out{background:var(--ink);}
.bf-month span{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--ink-3);white-space:nowrap;}
.bf-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-3);}
.bf-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;}
.bf-legend i.in{background:var(--lime);}
.bf-legend i.out{background:var(--ink);}
.bf-table{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums;}
.bf-table th{text-align:left;font-weight:400;font-size:12px;color:var(--ink-3);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;}
.bf-table td{padding:10px;border-bottom:1px solid var(--line);color:var(--ink-2);}
.bf-table td.num, .bf-table th.num{text-align:right;white-space:nowrap;}
.bf-table tr.clickable-row td:first-child{color:var(--ink);}
.bf-table .bad, .bf-row .bad{color:#B23A17;}
.bf-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px;font-variant-numeric:tabular-nums;}
.bf-row:first-of-type{border-top:0;}
.bf-row span{color:var(--ink-2);}
@media (max-width:1100px){
  .bf-stats{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .bf-grid{grid-template-columns:minmax(0, 1fr);}
}
.sched-form{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:8px 10px;align-items:end;margin-top:12px;}
.sched-form .f-field{margin:0;}
.sched-form .sched-note{grid-column:1 / -1;}
.sched-form .btn{justify-self:start;}
#bkFinancePeriod{flex:none;}
#bkFinancePeriod button{white-space:nowrap;padding:9px 14px;}

.cs-fb-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;}
.cs-fb-foot .cs-fb-public{margin:0;}

/* карточка БФЛ: «Необходимо сделать» — просроченные задачи над уведомлением клиенту */
.case-overdue{background:var(--ink);color:#fff;border-radius:var(--r-lg, 28px);padding:18px 22px;margin-bottom:16px;}
.case-overdue-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:17px;margin-bottom:8px;}
.case-overdue-head span{font-size:12.5px;color:rgba(255,255,255,0.6);}
.case-overdue-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid rgba(255,255,255,0.12);}
.case-overdue-row input{width:18px;height:18px;accent-color:var(--lime);cursor:pointer;flex:none;}
.case-overdue-dot{width:10px;height:10px;border-radius:50%;background:var(--bad);margin:0 4px;flex:none;}
.case-overdue-text{border:0;background:none;padding:0;font:inherit;font-size:14px;color:#FF8A66;cursor:pointer;text-align:left;}
.case-overdue-text:hover{text-decoration:underline;text-underline-offset:3px;}
.case-overdue-meta{font-size:12.5px;color:rgba(255,255,255,0.55);margin-left:auto;}

/* БКИ v3: плашка услуг в шапке, вкладка «Услуги» с документами на подпись, финансы с расходами и налогом */
.bki-sline{margin:18px 0 4px;}
.bki-sline .sl-step.extra{flex:.7;}
.bki-sline .sl-step.extra span::before{content:'доп. · ';}
.bki-svc-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.bki-svc-card{border:1px solid var(--line);border-radius:var(--r-card, 20px);padding:16px 18px;margin-bottom:12px;background:var(--surface);}
.bki-svc-card.extra{border-style:dashed;}
.bki-svc-card.done{background:var(--good-soft);}
.bki-svc-card.cancelled{opacity:.55;}
.bki-svc-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.bki-svc-card-head b{font-size:16px;font-weight:500;letter-spacing:-0.01em;}
.bki-svc-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.bki-svc-card-actions select{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);font:inherit;font-size:12.5px;padding:6px 10px;color:var(--ink-2);}
.bki-svc-card .vprogress{margin-top:14px;}
.bki-svc-docs{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}
.bki-offer-list{display:flex;flex-direction:column;gap:8px;}
.bki-offer{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;cursor:pointer;font-size:14px;}
.bki-offer span{flex:1;}
.bki-offer b{font-weight:400;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.bki-offer.on{border-color:var(--ink);background:var(--lime-soft);}
.bki-fin-tiles{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:10px;}
.bki-fin-tile{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:16px;background:var(--surface-2);min-width:0;}
.bki-fin-tile span{font-size:12.5px;color:var(--ink-3);}
.bki-fin-tile b{font-weight:400;font-size:22px;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bki-fin-tile small{font-size:12px;color:var(--ink-3);}
.bki-fin-tile.good{background:var(--lime);}
.bki-fin-tile.good span, .bki-fin-tile.good small{color:var(--ink-2);}
.bki-fin-tile.bad{background:var(--bad-soft);}
@media (max-width: 760px){ .bki-fin-tiles{grid-template-columns:repeat(2, minmax(0, 1fr));} }
.bki-claims{display:flex;flex-direction:column;gap:8px;}
.bki-claim{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1.5px dashed var(--olive, #7C8F2A);border-radius:16px;background:var(--lime-soft);flex-wrap:wrap;}
.bki-claim > div{flex:1;min-width:180px;}
.bki-claim b{font-weight:400;font-size:20px;letter-spacing:-0.02em;}
.bki-split-preview{display:grid;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));gap:6px;margin-top:14px;}
.bki-split-preview > div{display:flex;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:12px;background:var(--surface-2);font-size:13px;}
.bki-split-preview b{font-weight:500;font-variant-numeric:tabular-nums;}
.bki-done{display:flex;gap:14px;align-items:flex-start;}
.bki-done p{margin:0;font-size:14.5px;line-height:1.5;}
.bki-done-ico{width:36px;height:36px;border-radius:50%;background:var(--lime);display:flex;align-items:center;justify-content:center;flex:none;}
.bki-done-ico svg{width:18px;height:18px;}
.bki-tpl-body{white-space:pre-wrap;line-height:1.5;}
.form-grid > .bki-check.full{grid-column:1 / -1;}
.pay-advance{width:90px;height:26px;padding:0 6px;border:1px solid var(--line, rgba(0,0,0,.15));border-radius:8px;font:inherit;}

/* ------------- трудозатраты по дням: календарь, лента, список ------------- */
.tt-wrap{display:grid;grid-template-columns:300px minmax(0,1fr) minmax(0,400px);gap:16px;align-items:start;margin-bottom:16px;}
.tt-wrap > .card{padding:24px;}
.tt-title-lg{font-size:17px;line-height:1.3;}
.tt-muted{font-size:12.5px;color:var(--ink-3);}
.tt-cal-head, .tt-day-head, .tt-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.tt-cal-head{margin-bottom:16px;}
.tt-arrows{display:flex;gap:6px;}
.tt-weekdays, .tt-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.tt-weekdays{text-align:center;font-size:12px;color:var(--ink-3);margin-bottom:6px;}
.tt-d{
  height:44px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink);cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:inherit;font-size:14px;
  font-variant-numeric:tabular-nums;padding:0;
}
.tt-d:hover:not(:disabled):not(.blank){background:var(--surface-2);}
.tt-d i, .tt-dot{display:block;width:6px;height:6px;border-radius:50%;box-sizing:border-box;}
.tt-d.rest, .tt-d.future{color:var(--ink-3);}
.tt-d:disabled{cursor:default;}
.tt-d.blank{pointer-events:none;}
.tt-d.full i, .tt-dot.full{background:#7C972C;}
.tt-d.partial i, .tt-dot.partial{background:var(--warn);}
.tt-d.empty i, .tt-dot.empty{border:1.5px solid var(--bad);}
.tt-d.picked{background:var(--ink);color:#fff;}
.tt-d.picked.partial i, .tt-d.picked.full i{background:var(--lime);}
.tt-d.picked.empty i{border-color:var(--lime);}
.tt-legend{display:flex;flex-direction:column;gap:8px;margin-top:20px;font-size:12.5px;color:var(--ink-2);}
.tt-legend span{display:flex;align-items:center;gap:8px;}
.tt-month-sum{display:flex;justify-content:space-between;align-items:baseline;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-2);}
.tt-month-sum b{font-weight:400;font-size:22px;color:var(--ink);letter-spacing:-0.02em;font-variant-numeric:tabular-nums;}
.tt-month-sum small{font-size:13px;color:var(--ink-3);}

.tt-day-head{align-items:flex-start;flex-wrap:wrap;margin-bottom:16px;}
.tt-key{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);}
.tt-key span{display:inline-flex;align-items:center;gap:6px;}
.tt-sw{width:10px;height:10px;border-radius:3px;box-sizing:border-box;display:block;}
.tt-sw.sent{background:var(--lime-soft);border-left:3px solid #7C972C;}
.tt-sw.pending{background:var(--info-soft);border-left:3px solid var(--info);}
.tt-sw.error{background:var(--bad-soft);border-left:3px solid var(--bad);}
.tt-sw.gap{border:1.5px dashed var(--warn);}
.tt-grid{position:relative;margin-top:8px;}
.tt-hour{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--line);}
.tt-hour span{position:absolute;left:0;top:-8px;width:44px;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.tt-lane{position:absolute;left:56px;right:0;top:0;bottom:0;}
.tt-blk{
  position:absolute;box-sizing:border-box;overflow:hidden;border:0;border-radius:var(--r-sm);padding:8px 12px;margin:0;
  font:inherit;text-align:left;color:var(--ink);display:flex;flex-direction:column;gap:2px;cursor:pointer;
}
.tt-blk.slim{padding:3px 12px;justify-content:center;}
.tt-blk-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;font-size:13px;}
.tt-blk-line b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tt-blk-line em{font-style:normal;flex:none;font-variant-numeric:tabular-nums;}
.tt-blk-sub{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tt-blk.sent{background:var(--lime-soft);border-left:4px solid #7C972C;}
.tt-blk.pending{background:var(--info-soft);border-left:4px solid var(--info);}
.tt-blk.error{background:var(--bad-soft);border-left:4px solid var(--bad);}
.tt-blk.running{background:var(--lime-soft);border-left:4px solid var(--lime);cursor:default;}
.tt-blk:hover:not(:disabled):not(.lunch){box-shadow:0 0 0 2px var(--line-strong);}
.tt-blk.lunch{background:var(--surface-2);color:var(--ink-3);cursor:default;}
.tt-blk.gap{
  border:1.5px dashed var(--warn);color:#8A5A0E;justify-content:center;
  background:repeating-linear-gradient(135deg,var(--warn-soft) 0 8px,#FFF6E6 8px 16px);
}
.tt-blk.gap .tt-add{align-self:flex-start;margin-top:2px;padding:3px 10px;border-radius:99px;background:var(--ink);color:#fff;font-size:12px;font-weight:500;}
.tt-now{position:absolute;left:0;right:0;height:2px;background:var(--ink);pointer-events:none;}
.tt-chip{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:500;white-space:nowrap;align-self:flex-start;}
.tt-chip.sent{background:var(--good-soft);color:#256B38;}
.tt-chip.pending{background:var(--info-soft);color:#2F4497;}
.tt-chip.error{background:var(--bad-soft);color:#A4361A;}
.tt-chip.running{background:var(--lime);color:var(--ink);}

.tt-list-head{margin-bottom:12px;}
.tt-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;}
.tt-pill{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:99px;padding:7px 14px;font:inherit;font-size:12.5px;cursor:pointer;}
.tt-pill.on{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:500;}
.tt-pill.warn{background:var(--warn-soft);border-color:var(--warn);color:#8A5A0E;}
.tt-rows{display:flex;flex-direction:column;gap:8px;}
.tt-row{display:flex;gap:12px;align-items:flex-start;border-radius:var(--r-md);background:var(--surface-2);padding:14px 16px;}
.tt-time{flex:none;width:92px;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;padding-top:1px;}
.tt-main{flex:1;min-width:0;}
.tt-title{font-size:14px;font-weight:500;}
.tt-sub{font-size:12.5px;color:var(--ink-3);margin-top:2px;}
.tt-note{font-size:12.5px;color:var(--ink-2);margin-top:6px;overflow-wrap:anywhere;}
.tt-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.tt-side{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.tt-side b{font-weight:400;font-size:17px;font-variant-numeric:tabular-nums;}
.tt-edit{width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.tt-edit:hover{background:var(--ink);color:#fff;}
.tt-row.gap{background:var(--warn-soft);align-items:center;}
.tt-row.gap .tt-time, .tt-row.gap .tt-title{color:#8A5A0E;}
.tt-row.lunch{background:transparent;padding:6px 16px;font-size:13px;color:var(--ink-3);}

.tt-form .tt-tabs{display:flex;gap:4px;padding:4px;border-radius:99px;background:var(--surface-2);margin-bottom:16px;}
.tt-tabs button{flex:1;height:38px;border:0;border-radius:99px;background:transparent;color:var(--ink-2);font:inherit;font-size:14px;cursor:pointer;}
.tt-tabs button.on{background:var(--ink);color:#fff;font-weight:500;}
.tt-total{height:44px;border-radius:var(--r-sm);background:var(--lime-soft);display:flex;align-items:center;padding:0 14px;font-size:17px;font-variant-numeric:tabular-nums;}
.tt-gap-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:var(--ink-3);}
.tt-block{margin-top:16px;}
.tt-block[hidden]{display:none;}
.tt-search{width:100%;box-sizing:border-box;height:44px;border:0;border-radius:99px;background:var(--surface-2);padding:0 18px;font:inherit;font-size:14px;margin-bottom:10px;}
.tt-tasks{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto;}
.tt-task{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:var(--r-md);background:var(--surface-2);cursor:pointer;}
.tt-task[hidden]{display:none;}
.tt-task:has(input:checked){background:var(--lime-soft);box-shadow:inset 0 0 0 1.5px #7C972C;}
.tt-task input{accent-color:#111114;flex:none;}
.tt-task span{display:flex;flex-direction:column;min-width:0;}
.tt-task b{font-weight:500;font-size:14px;}
.tt-task small{font-size:12.5px;color:var(--ink-3);}
.tt-hint{margin-top:14px;padding:12px 16px;border-radius:var(--r-md);background:var(--info-soft);color:#2F4497;font-size:12.5px;}
.tt-foot{display:flex;align-items:center;}
.tt-del{color:#A4361A;}

@media (max-width: 1280px){
  .tt-wrap{grid-template-columns:300px minmax(0,1fr);}
  .tt-list{grid-column:1/-1;}
}
@media (max-width: 860px){
  .tt-wrap{grid-template-columns:minmax(0,1fr);}
}
.tt-blk.tiny{padding:0 12px;justify-content:center;border-width:1px;}
.tt-blk.tiny .tt-blk-line{font-size:11px;line-height:1.1;}
