  :root{
    --shadow:0 4px 18px rgba(0,0,0,.12);
    --shadow-strong:0 8px 28px rgba(0,0,0,.22);
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Manrope,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
  body{display:flex;justify-content:center;align-items:center;min-height:100vh;min-height:100dvh;padding:0;background:linear-gradient(180deg,var(--inv) 0%,var(--inv) 100%)}

  @media (max-width: 500px) {
    body{padding:0;align-items:stretch}
    body > .phone{width:100% !important; height:100vh !important; height:100dvh !important; border-radius:0 !important; padding:0 !important; box-shadow:none !important}
    .screen{border-radius:0 !important}
  }

  /* Режим встановленого застосунку (PWA на телефоні): на весь екран, без рамки-картки.
     Висота — 100lvh (повний екран, статична одиниця): не «прыгає» при поверненні
     в застосунок, тому низ завжди рівно на краю. */
  /* 6.01.02 (ZIV 24.09.2026): лише на ВУЗЬКОМУ екрані (телефон). Встановлений PWA на Windows/Mac
     (широке вікно) раніше теж розтягувався на весь екран — тепер там рамка-телефон, як у браузері. */
  /* 6.01.42 (ZIV 02.10.2026): після переходу на статус-бар `black` (6.01.33) вікно застосунку на 68 pt нижче екрана, а 100lvh — це висота ВСЬОГО
     екрана → .phone ставав вищим за вікно, сторінка прокручувалась і шапки «їздили». Тепер висота = вікно (100%), прокрутка сторінки вимкнена. */
  @media all and (display-mode: standalone) and (max-width: 500px) {
    html, body{height:100%; overflow:hidden; overscroll-behavior:none}
    body{align-items:stretch; background:var(--ink)}
    body > .phone{width:100% !important; height:100% !important; border-radius:0 !important; padding:0 !important; box-shadow:none !important}
    .screen{border-radius:0 !important}
  }

  /* 6.01.03 (ZIV 24.09.2026): на ШИРОКОМУ екрані (комп/планшет) усі повноекранні шари, що додаються в body
     поверх рамки (жива КК, мережа, задачі ТТ, уроки, шторки «Поділитися», архіви…), раніше розтягувались на все вікно.
     Тепер вони займають рівно екран телефону (424×884, центр) — як на телефоні. Полоса оновлення — виняток.
     6.01.08: ТІЛЬКИ шари з inset:0 — поповери (в маршрут/Готово), тости і приховані left:-9999px блоки для картинок
     «Поділитися» під правило НЕ підпадають (25.09 у СВ поповер «випадав не повністю»). */
  @media (min-width: 501px) {
    body > .kkl-modal, body > .kk-modal, body > .tt-task-modal, body > .tm-modal, body > .ott-modal, body > .lsn-modal,
    body > .wc-modal, body > .rp-modal, body > .svd-modal, body > .pass-modal, body > .vp-viewer,
    body > div[style*="inset:0"]:not(#iba-update-bar), body > div[style*="inset: 0"]:not(#iba-update-bar) {
      /* 6.01.09: inset:auto ПРИБРАНО — shorthand ішов після top/left і скидав їх (шар тікав у верх-ліво за рамку) */
      top:50% !important; left:50% !important; right:auto !important; bottom:auto !important;
      width:min(424px, 100vw) !important; height:min(884px, 100vh) !important; max-height:100vh !important;
      transform:translate(-50%,-50%) !important; border-radius:36px;
    }
  }
  body > .phone{
    width:min(440px,100%);
    height:min(900px, 100vh);
    height:min(900px, 100dvh);
    background:var(--ink);
    border-radius:42px;
    padding:8px;
    box-shadow:0 24px 70px rgba(0,0,0,.55), inset 0 0 0 2px var(--accent-brd);
    position:relative;
    overflow:hidden;
    display:flex;
  }
  .screen{
    background:var(--bg);
    border-radius:36px;
    overflow:hidden;
    flex:1;
    display:flex;
    flex-direction:column;
    position:relative;
  }

  /* ===== ЛОГОТИП IBA (SVG) ===== */
  .logo-iba{flex-shrink:0;display:block}
  /* Лого в шапці — випукле, посилено (ZIV: «не видно») */
  .header .logo-iba{width:47px;height:47px;border-radius:50%;
    background:transparent;
    box-shadow:none;}

  /* ===== ШАПКА ===== */
  .header{
    background:var(--inv);   /* в4: шапка завжди чорна */
    color:var(--on-inv);
    padding:calc(14px + env(safe-area-inset-top, 0px)) 11px 12px;
    flex-shrink:0;
    gap:8px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid var(--accent-brd);
  }
  .brand{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    flex:1;
  }
  .brand-text{display:flex;flex-direction:column;min-width:0}
  .brand-name{
    font-size:1.2941rem;
    font-weight:700;
    letter-spacing:1px;
    color:var(--on-fill);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .brand-sub{
    display:none;
  }
  /* Підзаголовок шапки Звітів — інлайн у назві: «Звіти ДЗ» */
  .hdr-inline-sub:not(:empty){ color:var(--on-fill); margin-left:9px; font-weight:700; }
  .header-btn{
    background:transparent;
    border:none;
    color:var(--ink);
    cursor:pointer;
    padding:8px;
    border-radius:8px;
  }
  .header-btn:active{background:var(--fill)}

  /* ===== СОДЕРЖИМОЕ ===== */
  .content{
    flex:1;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    padding-bottom:calc(90px + env(safe-area-inset-bottom, 0px));
  }

  /* ===== НИЖНЯЯ НАВИГАЦИЯ (5 кнопок) ===== */
  /* Таб-бар — ЧОРНИЙ, варіант 5b (спека ZIV 05.09.2026, п.6) */
  .bottom-nav{
    position:absolute;
    bottom:0;left:0;right:0;
    background:var(--inv);
    border-top:1px solid var(--accent-brd);
    padding:12px 12px 16px;
    padding-bottom:max(16px, env(safe-area-inset-bottom));
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:4px;
    align-items:center;
    z-index:50;
  }
  .nav-item{
    background:none;border:none;cursor:pointer;outline:none;
    display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;
    color:var(--on-fill);
    font-size:0.6471rem;font-weight:700;
    padding:0;min-width:0;white-space:nowrap;overflow:hidden;
    transition:color .15s;
    -webkit-tap-highlight-color:transparent;
  }
  .nav-item:focus, .nav-item:focus-visible{outline:none;box-shadow:none}
  .nav-item svg{width:22px;height:22px}
  .nav-item.active{color:var(--on-fill);font-weight:700}
  .nav-icon-wrap{width:48px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:all .15s;background:none;box-shadow:none}
  .nav-item.active .nav-icon-wrap{
    color:var(--ink);
    background:var(--accent-soft);border:1px solid var(--accent-brd);
    box-shadow:none;
  }
  .nav-item.active:active .nav-icon-wrap{transform:translateY(1px);
    box-shadow:none}

  /* ===== ЭКРАНЫ ===== */
  .screen-view{display:none;flex:1;flex-direction:column;height:100%}
  .screen-view.active{display:flex}

  /* ===== ЛОГИН ===== */
  #screen-login{
    background:var(--card2);
    color:var(--ink);
    padding:0;
  }
  .login-wrap{
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:40px 32px;
  }
  .login-logo{
    text-align:center;
    margin-bottom:20px;   /* 6.01.69: відступ до SALES удвічі менший (було 40) */
    display:flex;
    justify-content:center;
    align-items:center;
  }
  .login-logo svg{
    display:block;
    margin:0 auto;
  }
  /* 6.01.69 (ZIV 12.10.2026): екран входу — «SALES» розрядкою, без підпису IMPERIA · BUSINESS ANALYTICS.
     padding-left = letter-spacing: розрядка лишає «хвіст» після останньої літери, інакше слово на 8px лівіше центру. */
  .login-brand{ text-align:center; font-family:'Cormorant Garamond', Georgia, serif; font-weight:600; font-size:2rem; letter-spacing:.22em; padding-left:.22em; box-sizing:border-box; color:var(--ink); margin:9px 0 26px; }
  .login-brand-sub{ text-align:center; font-size:0.6471rem; font-weight:700; letter-spacing:.3em; color:var(--gold-text); border-top:1px solid var(--accent-brd); margin:8px auto 26px; padding-top:8px; max-width:250px; }
  .form-group{margin-bottom:14px}
  .form-label{display:block;font-size:0.6471rem;color:var(--mut);margin-bottom:6px;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
  .form-input{
    width:100%;
    padding:16px 16px;
    background:var(--card);
    border:1px solid var(--sep2);
    border-radius:12px;
    color:var(--ink);
    font-size:0.8824rem;
    font-family:inherit;
    outline:none;
    transition:border-color .15s;
  }
  .form-input:focus{border-color:var(--sep2);background:var(--card)}
  .form-input::placeholder{color:var(--mut)}
  .btn-login{
    width:100%;
    padding:16px;
    margin-top:12px;
    background:var(--accent-soft);
    border:1px solid var(--accent-brd);
    border-radius:12px;
    color:var(--ink);
    font-size:1rem;
    font-weight:700;
    letter-spacing:0.5px;
    cursor:pointer;
    box-shadow:none;
    transition:transform .06s;
  }
  .btn-login:active{transform:translateY(1px);box-shadow:none}
  .btn-login:disabled{opacity:.6;cursor:wait}
  .login-error{
    margin-top:14px;
    padding:12px 16px;
    background:var(--bad-soft);
    border:1px solid var(--bad-brd);
    border-radius:10px;
    color:var(--bad);
    font-size:0.7647rem;
    display:none;
  }
  .login-error b{display:block;font-weight:700}
  .login-error span{display:block;font-size:0.6471rem;font-weight:600;color:var(--bad);margin-top:2px}
  .login-error.show{display:block}
  .login-footer{
    text-align:center;
    margin-top:30px;
    font-size:0.6471rem;
    color:var(--mut);
    letter-spacing:0.5px;
  }

  /* ===== ЭКРАН ОТЧЁТЫ ===== */
  .reports-section-title{
    font-size:0.6471rem;font-weight:700;color:var(--mut);
    text-transform:uppercase;letter-spacing:1.5px;
    padding:20px 16px 8px;
  }

  /* Тонкие папки в стиле карточек звіту (Premium dark, без иконки) */
  .folders-list{padding:8px 16px 4px}
  .reports-folder-sep{ height:1px; background:var(--accent); margin:10px 4px; border-radius:1px; }
  .folder-card{
    background:var(--card);
    border:1px solid var(--accent-brd);
    border-radius:14px;
    padding:16px 16px;
    margin-bottom:8px;
    box-shadow:0 6px 16px rgba(0,0,0,.22);
    cursor:pointer;
    transition:transform .1s;
    display:flex;align-items:center;justify-content:space-between;
    color:var(--ink);
  }
  .folder-card:active{transform:scale(.985)}
  .folder-card-body{flex:1;min-width:0}
  .folder-card-name{font-size:0.8824rem;font-weight:700;color:var(--ink);margin-bottom:2px}
  .folder-card-meta{font-size:0.6471rem;color:var(--mut);font-weight:600}
  .folder-card-arrow{color:var(--mut);font-size:1.1765rem;font-weight:300;flex-shrink:0;margin-left:10px}

  .tiles-grid{
    padding:8px 12px;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:12px;
  }
  /* Premium dark — плитки */
  .tile{
    background:var(--card);
    border:1px solid var(--accent-brd);
    border-radius:14px;
    padding:16px;
    box-shadow:0 6px 18px rgba(0,0,0,.22);
    cursor:pointer;
    transition:transform .1s;
    position:relative;
    overflow:hidden;
    color:var(--ink);
  }
  .tile:active{transform:scale(.97)}
  .tile-icon{
    width:38px;height:38px;
    border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    font-size:1rem;font-weight:700;color:var(--ink);
    margin-bottom:10px;
  }
  .tile-icon.t-dashboard{background:linear-gradient(135deg,var(--inv),var(--inv));color:var(--ink)}
  .tile-icon.t-tasks{background:linear-gradient(135deg,var(--inv),var(--inv));color:var(--ink)}
  .tile-icon.t-dz{background:linear-gradient(135deg,var(--accent),var(--accent))}
  .tile-icon.t-dz-tt{background:linear-gradient(135deg,var(--bad),var(--bad))}
  .tile-icon.t-dop{background:linear-gradient(135deg,var(--ok),var(--ok))}
  .tile-icon.t-seti{background:linear-gradient(135deg,var(--accent),var(--accent))}
  .tile-icon.t-other{background:linear-gradient(135deg,var(--ok),var(--ok))}
  .tile-name{font-size:0.7647rem;font-weight:700;color:var(--ink);line-height:1.2;margin-bottom:2px}
  .tile-meta{font-size:0.6471rem;color:var(--mut);font-weight:600}

  /* ===== КАТЕГОРИИ ДЛЯ МЕНЕДЖЕРА ===== */
  .category-block{margin-top:8px}
  .category-block:first-child{margin-top:14px}
  .category-header{
    padding:16px 20px 8px;
    font-size:0.7647rem;font-weight:700;
    color:var(--ink);
    letter-spacing:1.5px;
    text-transform:uppercase;
  }
  .category-divider{
    margin:0 16px 6px;
    border-bottom:2px dotted var(--ink);
  }
  .category-empty{
    margin:6px 16px 12px;
    padding:16px 16px;
    border:1.5px dashed var(--accent-brd);
    border-radius:12px;
    text-align:center;
    color:var(--mut);
    font-size:0.7059rem;
    font-style:italic;
  }

  .feed-list{padding:8px 16px 20px}
  /* Premium dark — карточки звітів */
  .feed-item{
    background:var(--card);
    border:1px solid var(--accent-brd);
    border-radius:14px;
    padding:12px 16px;
    margin-bottom:8px;
    box-shadow:0 6px 16px rgba(0,0,0,.22);
    cursor:pointer;
    transition:transform .1s;
    display:flex;
    gap:12px;
    align-items:center;
    color:var(--ink);
  }
  /* ===== ЗАВДАННЯ — велика плитка ТП ===== */
  .tp-bigcard{
    margin:10px 12px 14px;
    background:var(--card); border-radius:14px;
    box-shadow: 0 2px 6px rgba(0,0,0,.06);
    padding:12px 12px 12px;
    border:1px solid var(--sep); overflow:hidden;
  }
  /* Шапка картки Завдання — синя на всю ширину (як у ДЗ / Маршруті) */
  .tp-bigcard-head{
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    background:var(--card); color:var(--ink);
    margin:-10px -12px 10px; padding:12px 16px;
    border-bottom:none; flex-wrap:wrap;
  }
  .tp-head-code{ font-size:0.8824rem; font-weight:700; color:var(--ink) }
  .tp-head-meta{ font-size:0.7647rem; font-weight:600; color:var(--mut); white-space:nowrap }
  .tp-bigcard-body{
    display:grid; grid-template-columns: 1fr 1fr; gap:8px;
    align-items:stretch;
  }
  .tp-bigcard-stack{
    display:flex; flex-direction:column; gap:8px;
  }
  .tp-bigcard-stack > .ts-tile{
    flex:1 1 0; min-height:0;
    display:flex; flex-direction:column; justify-content:center;
    padding:4px 12px;
  }
  /* Завдання — більше місця: РОП+СВ потребують двох рядків */
  .tp-bigcard-stack > #tp-tile-tasks,
  .tp-bigcard-stack > .tt-tile-tasks{ flex:1.8 1 0; padding:8px 12px }
  .tp-bigcard-stack > .ts-tile .ts-tasks-row{ font-size:0.6471rem; margin-top:3px }
  .ts-eq-col{ display:flex; flex-direction:column }
  .ts-eq-col > .ts-lbl{ padding-bottom:4px; border-bottom:1px dashed var(--sep); margin-bottom:5px }
  .ts-eq-divider{ border-top:1px dashed var(--sep); padding-top:4px; margin-top:4px }
  .tp-head-kpi{
    display:inline-block; padding:4px 8px; margin-left:6px;
    border-radius:8px; font-size:0.7647rem; font-weight:700;
    background:var(--fill); border:1px solid var(--sep); color:var(--ink); vertical-align:middle;
  }
  .tp-head-kpi.v-ok{ background:var(--ok-soft); border-color:var(--ok-brd); color:var(--ok) }
  .tp-head-kpi.v-bad{ background:var(--bad-soft); border-color:var(--bad-brd); color:var(--bad) }
  .ts-sm{ font-size:0.7059rem !important }
  .ts-eq-col .ts-eq-line{ margin-top:2px }
  .ts-eq-todo{ opacity:.55 }
  .ts-eq-total{
    border-top:1px dashed var(--sep); margin-top:4px; padding-top:4px;
    font-weight:700; color:var(--ink);
  }
  .ts-eq-total .ts-eq-key{ color:var(--ink); font-weight:700 }
  .ts-tasks-row{
    display:flex; gap:4px; align-items:baseline;
    font-size:0.7059rem; font-weight:600; color:var(--ink);
    font-variant-numeric:tabular-nums; margin-top:2px;
  }
  .ts-tasks-key{ font-size:0.6471rem; color:var(--mut); font-weight:500; min-width:24px }
  .ts-tasks-row .sep{ color:var(--mut); font-weight:400 }
  .ts-clickable{ cursor:pointer; position:relative; transition: background .12s }
  .ts-clickable:hover{ background:var(--fill) }
  .ts-clickable:active{ transform:scale(.985) }
  .ts-clickable::after{
    content:'›'; position:absolute; right:10px; top:50%; transform:translateY(-50%);
    color:var(--mut); font-size:1rem; font-weight:400;
  }
  .tt-head-right{ display:flex; align-items:center; gap:8px; white-space:nowrap }
  .tt-tasks-btn{
    background:var(--card2); border:none; border-radius:8px;
    width:30px; height:30px; cursor:pointer;
    font-size:0.8824rem; line-height:1; display:inline-flex;
    align-items:center; justify-content:center;
    color:var(--ink); padding:0;
  }
  .tt-tasks-btn:hover{ background:var(--card2) }
  .tt-tasks-btn:active{ transform:scale(.95) }

  .tasks-summary{
    display:flex; gap:8px; padding:12px 12px;
    background:var(--card); border-bottom:1px solid var(--sep);
    overflow-x:auto; -webkit-overflow-scrolling:touch;
  }
  .ts-tile{
    flex:0 0 auto;
    display:flex; flex-direction:column; gap:4px;
    padding:8px 12px; background:var(--fill); border:1px solid var(--sep); border-radius:10px;
    min-width:110px;
  }
  .ts-tile.ts-wide{ min-width:170px }
  .ts-lbl{ font-size:0.6471rem; color:var(--mut); text-transform:uppercase; letter-spacing:.2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
           white-space:nowrap }
  .ts-sub{ font-size:0.6471rem; color:var(--mut); text-transform:none; font-weight:400; margin-left:2px }
  .ts-v{ font-size:1rem; font-weight:700; color:var(--ink); white-space:nowrap;
         font-variant-numeric:tabular-nums }
  .ts-v.ts-line{ font-size:0.8824rem; display:flex; gap:4px; align-items:baseline; flex-wrap:nowrap }
  .ts-v .sep{ color:var(--mut); font-weight:400 }
  .ts-v .muted{ color:var(--mut) }
  .ts-eq-line{
    font-size:0.7059rem; font-weight:600; display:flex; gap:4px;
    align-items:baseline; font-variant-numeric:tabular-nums; color:var(--ink);
    margin-top:1px; white-space:nowrap; overflow:hidden;
  }
  .ts-eq-key{ font-size:0.6471rem; color:var(--mut); font-weight:500; min-width:22px; flex:0 0 auto }
  .ts-eq-line .sep{ color:var(--mut); font-weight:400 }
  .v-ok{ color:var(--ok) }
  .v-bad{ color:var(--bad) }

  .tasks-search{
    padding:12px 12px; background:transparent;
  }
  .tasks-search input[type=search]{
    width:100%; box-sizing:border-box;
    padding:12px 16px; border:none; border-radius:999px;
    font-size:0.8824rem; background:var(--card); outline:none;
    -webkit-appearance:none;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
  }
  .tasks-search input[type=search]:focus{ box-shadow: 0 0 0 2px var(--ink) }
  .tasks-search-meta{ font-size:0.6471rem; color:var(--mut); padding:8px 4px 0 }
  /* Пунктирний роздільник між великою плиткою і папками */
  .tasks-section-divider{
    border-top:1px dashed var(--accent-brd); margin:14px 4px 6px;
  }

  .tasks-cards{
    padding:12px 12px 80px; background:var(--card2); min-height:200px;
  }
  /* ===== Стрілка «Назад» у шапці «Завдання» ===== */
  .tasks-header-back{
    background:transparent; border:none; padding:8px 8px; margin-right:4px;
    color:var(--on-fill); cursor:pointer; display:inline-flex; align-items:center;
    border-radius:8px; transition: background .12s;
  }
  .tasks-header-back:active{ background:var(--fill) }
  .tasks-header-back svg{ display:block }
  /* Стрілка ← у шапці Звітів + дата оновлень праворуч */
  .reports-header-back{
    background:transparent; border:none; padding:8px 8px; margin-right:4px;
    color:var(--on-fill); cursor:pointer; display:inline-flex; align-items:center;
    border-radius:8px; transition: background .12s;
  }
  .reports-header-back:active{ background:var(--fill) }
  .reports-header-back svg{ display:block }
  .header-date{
    margin-left:auto; text-align:right; line-height:1.15;
    padding:4px 0; white-space:nowrap; flex-shrink:0;
  }
  .header-date b{ display:inline-block; color:var(--gold-text); font-weight:700; font-size:0.7059rem; background:transparent; border:1px solid var(--accent-brd); border-radius:8px; padding:4px 8px }
  .header-date span{ display:block; color:var(--on-fill); font-size:0.6471rem; margin-top:2px }
  /* «проведено по» (6.00.53): зелене — усе проведено; золоте — є непроведені накладні (суми можуть змінитись) */
  .header-date span.hd-posted{ font-weight:700; font-size:0.6471rem }
  .header-date span.hd-posted.ok{ color:var(--ok) }
  .header-date span.hd-posted.warn{ color:var(--gold-text) }

  /* === ДЗ за 3 правилами — жива версія === */
  /* Контентні кнопки «назад» прибрані там, де є шапкова стрілка після лого (КК, Звіти) */
  .dz-backbar{ display:none !important }
  #kk-back, #folder-back-x{ display:none !important }
  .dz-backbar-old{
    padding:8px 12px 4px; background:transparent;
    position:sticky; top:0; z-index:10;
  }
  .dz-back-btn{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--card); color:var(--ink); border:none;
    padding:8px 16px 8px 12px; border-radius:8px;
    font-size:0.7647rem; font-weight:500; cursor:pointer;
    transition: background .12s;
  }
  .dz-back-btn:active{ background:var(--fill) }
  .dz-back-btn svg{ flex-shrink:0 }
  .dz-stack{ padding:12px 12px 60px }

  /* ==== СЬОГОДНІ — маршрут + задачі + чекіни ==== */
  .today-stack{ padding:8px 12px 60px }

  /* Прогрес-блок */
  .today-progress-block{
    background:var(--card); border:1px solid var(--accent-brd); border-radius:12px;
    padding:16px; margin-bottom:12px;
  }
  .today-progress-head{
    display:flex; justify-content:space-between; align-items:flex-start;
    margin-bottom:10px;
  }
  .today-progress-lbl{
    font-size:0.6471rem; color:var(--mut); text-transform:uppercase; letter-spacing:.04em;
  }
  .today-progress-num{
    font-size:1.2941rem; font-weight:600; color:var(--ink); margin-top:2px; line-height:1;
  }
  .today-progress-badge{
    background:var(--card2); color:var(--gold-text); padding:4px 16px; border-radius:14px;
    font-weight:600; font-size:0.8824rem;
  }
  .today-progress-bar{
    background:var(--card2); height:6px; border-radius:4px; overflow:hidden;
  }
  .today-progress-bar > div{
    background:var(--accent); height:100%; transition: width .25s;
  }

  /* === Плитки v2 — компактні, розкриваються === */
  .today-tile-v2{
    background:var(--card); border-radius:12px; border:1px solid var(--accent-brd);
    margin-bottom:10px; overflow:hidden;
  }
  .tt-sent-badge{ flex:0 0 auto; align-self:center; background:var(--accent-soft); color:var(--gold-text);
    border:1px solid var(--sep2); border-radius:8px; padding:4px 8px; font-size:0.7059rem; font-weight:700; margin-right:6px }
  #today-content .tt-sent-badge{ background:var(--fill); color:var(--ink); border-color:var(--sep2) }
  .today-tile-v2.visited{ background:var(--card2); border-color:var(--ok-brd) }
  .today-tile-v2.skipped{ background:var(--card2); border-color:var(--sep2); opacity:.75 }
  /* Згорнута плитка НЕ розтягується: висота = шапка. Прибирає «пустий сірий бокс».
     Висока специфічність (#today-content) щоб перебити будь-яке flex/height-правило. */
  #today-content .today-tile-v2.visited,
  #today-content .today-tile-v2.skipped,
  #today-content .today-tile.visited,
  #today-content .today-tile.skipped{
    display:block !important; height:auto !important; min-height:0 !important;
    max-height:none !important; flex:none !important; align-self:flex-start !important;
  }
  #today-content .today-tile-v2.visited .tt-summary,
  #today-content .today-tile-v2.skipped .tt-summary,
  #today-content .today-tile-v2.visited .tt-info,
  #today-content .today-tile-v2.skipped .tt-info{
    height:auto !important; min-height:0 !important; align-self:flex-start !important;
  }
  .tt-summary{
    display:flex; gap:12px; padding:12px; cursor:pointer;
  }
  .tt-summary:active{ background:var(--fill) }
  .tt-num{
    flex-shrink:0; width:32px; height:32px; border-radius:50%;
    background:var(--accent-soft); border:1px solid var(--accent-brd); color:var(--ink);
    display:flex; align-items:center; justify-content:center;
    font-weight:600; font-size:0.8824rem;
  }
  .tt-num.visited{ background:var(--ok); color:var(--on-fill) }
  .tt-num.phone{ background:var(--fill2); color:var(--ink) }
  .tt-info{ flex:1; min-width:0 }
  .tt-name{
    font-size:0.8824rem; font-weight:600; color:var(--ink); line-height:1.25;
  }
  .tt-addr{
    font-size:0.6471rem; color:var(--mut); margin-top:2px; line-height:1.3;
  }
  .tt-chips{
    display:flex; gap:4px; margin-top:6px; flex-wrap:wrap;
  }
  .chip{
    padding:4px 8px; border-radius:8px; font-size:0.6471rem; font-weight:600;
  }
  .chip-dz{ background:var(--card); color:var(--bad) }
  .chip-equip{ background:var(--card2); color:var(--ink) }
  .chip-tara{ background:var(--card2); color:var(--gold-text) }
  .chip-manual{ background:var(--card2); color:var(--gold-text) }
  .tt-status{
    margin-top:6px; padding:4px 12px; border-radius:8px; display:inline-block;
    font-size:0.6471rem; font-weight:600;
  }
  .tt-status.visited{ background:var(--card2); color:var(--ok) }
  /* ВАЖЛИВО: статус-плашка має клас .phone, який збігається з класом рамки-телефону
     .phone (width:min(440px,100%); height:min(900px,100vh)). Через цю коллізію плашка
     успадковувала розмір контейнера → пустий сірий бокс 440×900px. Скидаємо розміри. */
  .tt-status.phone{
    background:var(--card2); color:var(--mut);
    width:auto !important; height:auto !important; min-height:0 !important; box-shadow:none !important;
  }
  /* Та сама коллізія .phone б'є по кружку-номеру і кнопках — на МОБІЛЬНОМУ медіа
     .phone{height:100vh!important} розтягувало їх на весь екран. Жорстко фіксуємо. */
  .tt-num.phone{ width:32px !important; height:32px !important; min-height:0 !important; }
  .tt-ico-btn.phone{ width:auto !important; height:46px !important; min-height:46px !important; }

  /* Однакові кнопки-іконки чекіну */
  .tt-actions-icons{
    display:flex; gap:8px; padding:0 12px 12px;
  }
  .tt-ico-btn{
    flex:1 1 0; min-width:0; height:46px; max-height:46px; min-height:46px;
    border-radius:10px; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition: transform .12s; padding:0;
  }
  .tt-actions-icons{ flex-direction:row !important }
  .tt-ico-btn:active{ transform:scale(.95) }
  .tt-ico-btn.pin{ background:var(--accent-soft); border:1px solid var(--accent-brd); color:var(--ink) }
  .tt-ico-btn.phone{ background:var(--card); color:var(--ink); border:1px solid var(--sep2) }
  .tt-ico-btn.media{ background:var(--fill); border:1px solid var(--sep2); color:var(--ink) }
  .tt-ico-btn.checkout{ background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-brd) }
  /* Обраний режим підсвічуємо (але кнопка лишається — нічого не ховаємо до «Готово») */
  .tt-ico-btn.pin.on{ background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-brd); box-shadow:none }
  .tt-ico-btn.phone.on{ background:var(--accent); color:var(--on-accent); box-shadow:inset 0 0 0 2px var(--accent-brd) }
  .tt-ico-btn svg{ display:block }

  /* Деталі — більше не показуємо в самій плитці (відкриваються в fullscreen-модалі) */
  .tt-details{ display:none !important }

  /* ===== РЕДИЗАЙН v4: маршрут-дорога + білі картки + задачі/коментар на картці ===== */
  #today-content .today-tile-v2{
    background:var(--card) !important; border:1px solid var(--accent-brd) !important;
    border-radius:14px !important; margin:0 0 14px 44px !important;
    position:relative !important; overflow:visible !important; opacity:1 !important;
  }
  #today-content .today-tile-v2::before{
    content:''; position:absolute; left:-28px; top:22px; bottom:-14px;
    border-left:2px dashed var(--sep2); z-index:0;
  }
  #today-content .today-tile-v2:last-of-type::before{ display:none; }
  #today-content .today-tile-v2 .tt-num{
    position:absolute !important; left:-40px !important; top:15px !important;
    width:26px !important; height:26px !important; border-radius:8px !important;
    background:var(--accent-soft) !important; color:var(--ink) !important;
    border:1px solid var(--accent-brd) !important; z-index:1 !important;
    font-size:0.7059rem !important; font-weight:700 !important; box-shadow:none !important;
  }
  #today-content .today-tile-v2.visited .tt-num,
  #today-content .today-tile-v2.skipped .tt-num{ background:var(--card) !important; color:var(--ink) !important; }
  #today-content .today-tile-v2 .tt-num svg{ width:18px !important; height:18px !important; }
  .tt-card-total{ margin-top:8px; font-size:0.7059rem; font-weight:600; color:var(--ink); }
  #today-content .today-tile-v2.visited,
  #today-content .today-tile-v2.skipped{ background:var(--card2) !important; border-color:var(--sep) !important; }
  /* Шапка плитки маршруту = шапка КК (6.00.40): плашка 42E-градієнт, рамка 1.5px */
  #today-content .today-tile-v2 .tt-summary{ background:linear-gradient(165deg,var(--card) 0%,var(--accent-soft) 100%) !important; border-radius:14px 14px 0 0 !important; padding:12px 12px !important; border:1.5px solid var(--accent-brd) !important; align-items:flex-start; flex-wrap:wrap }
  #today-content .today-tile-v2 .tt-summary .kkl-hero-stats{ flex-basis:100%; width:auto; margin:9px -6px 0 }
  #today-content .today-tile-v2 .tt-summary .kkl-hs{ flex:1 1 auto; padding:0 4px }
  #today-content .today-tile-v2 .tt-summary .kkl-hs.kkl-hs-tr{ flex:1.7 1 auto }
  #today-content .today-tile-v2 .tt-summary .kkl-hs .v{ font-size:0.7059rem }
  #today-content .today-tile-v2 .tt-summary .kkl-hs.kkl-hs-tr .v{ font-size:0.6471rem; letter-spacing:-.01em }
  #today-content .today-tile-v2 .tt-summary .kkl-hs .f-ok{color:var(--ok)} #today-content .today-tile-v2 .tt-summary .kkl-hs .f-bad{color:var(--bad)}
  #today-content .today-tile-v2 .tt-info{ min-width:0; flex:1 }
  #today-content .today-tile-v2 .tt-name{ white-space:normal !important; overflow:visible !important; text-overflow:clip !important; line-height:1.25 !important; display:flex; align-items:center }
  #today-content .today-tile-v2 .tt-addr{ margin-top:3px; line-height:1.35 }
  #today-content .today-tile-v2 .tt-add-task{ background:var(--accent-soft) !important; border:1px solid var(--accent-brd) !important; align-self:flex-start !important; margin-top:2px }
  #today-content .today-tile-v2 .tt-name{ font-size:0.7647rem !important; font-weight:700 !important; color:var(--ink) !important; white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; }
  #today-content .today-tile-v2 .tt-addr{ color:var(--mut) !important; font-size:0.6471rem !important; font-weight:600 !important; }
  #today-content .today-tile-v2 .tt-reopen{ color:var(--blue) !important; }
  #today-content .today-tile-v2 .tt-status.phone,
  #today-content .today-tile-v2 .tt-status.visited{ background:transparent !important; color:var(--mut) !important; padding-left:0 !important; font-size:0.6471rem !important; font-weight:700 !important; }
  #today-content .today-tile-v2 .chip{ border-radius:8px !important; padding:4px 8px !important; }
  /* Прев'ю задач + коментаря прямо на картці (щоб не відкривати модал) */
  .tt-card-body{ padding:0 12px 12px; }
  .tt-task-line{ font-size:0.7059rem; padding:4px 12px; border-radius:8px; margin-bottom:4px; display:flex; gap:8px; align-items:flex-start; background:var(--fill); border:1px solid var(--sep); color:var(--ink); font-weight:600; }
  .tt-task-line .tt-task-mark{ flex-shrink:0; width:14px; text-align:center; font-weight:700; }
  .tt-task-line.tp-done{ background:var(--ok-soft); border-color:var(--ok-brd); color:var(--ink) }
  .tt-task-line.tp-part{ background:var(--accent-soft); border-color:var(--accent-brd); color:var(--ink) }
  .tt-task-line.tp-fail{ background:var(--bad-soft); border-color:var(--bad-brd); color:var(--bad) }
  .tt-task-line.tp-sv{ background:var(--fill); border-color:var(--sep); color:var(--ink); font-weight:600 }
  .tt-task-line .tt-task-who{ font-weight:700; letter-spacing:.02em }
  .tt-task-line .tt-task-part{ margin-left:auto; font-weight:700; white-space:nowrap; opacity:.95 }
  .tt-task-line .tt-task-uah{ font-weight:700; margin-right:4px }
  .tt-task-line .tt-task-over{ opacity:.85; font-weight:500 }
  /* Вечірній звіт — ТТ з задачами */
  .ev-tt{ padding:8px 0; border-bottom:1px solid var(--sep) }
  .ev-tt:last-child{ border-bottom:none }
  .ev-tt-head{ display:flex; align-items:center; gap:8px; }
  .ev-tt-ico{ width:18px; text-align:center; font-size:0.8824rem; flex:none }
  .ev-tt-name{ flex:1; color:var(--ink); font-weight:600; font-size:0.7647rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
  .ev-tt-cnt{ flex:none; font-size:0.6471rem; font-weight:700; color:var(--ink); background:var(--card2); border-radius:8px; padding:4px 8px }
  .ev-tt-tasks{ margin:6px 0 2px 26px }
  .ev-tt-empty{ margin:3px 0 0 26px; font-size:0.7059rem; color:var(--mut) }
  /* Вечірній звіт — синя шапка + картка списку */
  .ev-hero .rh-code.ev-pct{ font-size:0.7647rem; }
  .ev-hero .rh-code.ev-pct.ev-done{ background:var(--ok-soft); border:1px solid var(--ok-brd); color:var(--ok); }
  /* Вечірній звіт (6.00.47): 5–6 показників в один ряд (не 4-колонкова сітка), іконки як підписи */
  .route-hero.ev-hero .rh-stats{ display:flex; }
  .route-hero.ev-hero .rh-stat{ flex:1 1 0; min-width:0; padding:0 4px; }
  .route-hero.ev-hero .rh-stat b{ font-size:0.8824rem; }
  .route-hero.ev-hero .rh-ic{ display:flex; align-items:center; justify-content:center; height:14px; color:var(--mut); font-size:0.6471rem; font-weight:700; order:2; margin-top:1px; }
  .route-hero.ev-hero .rh-ic svg{ width:13px; height:13px; }
  .route-hero.ev-hero .rh-sep{ margin:0 1px; }
  .ev-hero .ev-closed{ margin-top:11px; font-size:0.7059rem; color:var(--mut); }
  .ev-hero .ev-closed b{ color:var(--ink); font-weight:700; }
  .ev-list-hdr{ font-size:0.6471rem; color:var(--mut); text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px; }
  /* Вечірній звіт — єдина картка: синя шапка + білий список */
  .ev-card{ border:1px solid var(--accent-brd); border-radius:14px; overflow:hidden; }
  .ev-card-head.route-hero{ border-radius:0; margin:0; }
  .ev-card-body{ background:var(--card); padding:12px 16px; }
  .route-hero .rh-sep{ opacity:.5; margin:0 3px; }
  .route-hero .rh-stat b.rh-fact.rh-fact-ok{ color:var(--ok); }
  .route-hero .rh-stat b.rh-fact.rh-fact-low{ color:var(--bad); }
  .route-hero .rh-stat b.rh-fact.rh-fact-zero{ color:var(--mut); }
  .tt-name-num{ display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:10px; background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink); margin-right:9px; font-size:0.7647rem; font-weight:700; vertical-align:middle; }
  .tt-comment-line{ margin-top:6px; font-size:0.7059rem; color:var(--mut); background:var(--card2); border-radius:8px; padding:8px 8px; line-height:1.35 }
  .tt-comment-line b{ color:var(--gold-text); font-weight:600 }
  /* Вечірній звіт — розбивка по типу обробки */
  .evening-breakdown{ display:flex; gap:8px; margin-top:10px; flex-wrap:wrap }
  .eb-pill{ font-size:0.7059rem; font-weight:600; border-radius:8px; padding:4px 12px }
  .eb-fiz{ background:var(--card2); color:var(--ok) } .eb-tel{ background:var(--card2); color:var(--gold-text) } .eb-no{ background:var(--card2); color:var(--mut) }

  /* Синя шапка «Маршрут» (як шапка картки ТТ) */
  .route-hero{ background:linear-gradient(165deg,var(--card) 0%,var(--accent-soft) 100%); border-radius:14px; padding:16px 16px; margin:0 0 4px; color:var(--ink);border:1.5px solid var(--accent-brd)}
  .route-hero .rh-top{ display:flex; align-items:center; gap:12px; }
  .route-hero .rh-code{ display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:8px; background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink); font-size:1rem; font-weight:700; flex:none; }
  .route-hero .rh-main{ font-size:1rem; font-weight:700; color:var(--ink); line-height:1.15; }
  .route-hero .rh-date{ font-size:0.7647rem; font-weight:700; color:var(--gold-text); margin-top:2px; text-transform:capitalize; }
  .route-hero .rh-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:13px; border-top:1px solid var(--sep); padding-top:12px; }
  .route-hero .rh-stat{ display:flex; flex-direction:column; align-items:center; gap:4px; background:none; border-radius:0; padding:0 8px; font-size:0.6471rem; font-weight:700; letter-spacing:.06em; color:var(--mut); text-transform:uppercase; }
  .route-hero .rh-stat + .rh-stat{ border-left:1px solid var(--sep); }
  .route-hero .rh-stat b{ color:var(--ink); font-weight:700; font-size:1.1765rem; }
  .route-hero .rh-tt b{ color:var(--ink); font-size:1.1765rem; }
  .route-hero .rh-ic{ display:none; }
  .route-hero .rh-uah{ display:none; }
  /* Кнопка «назад» у шапці Маршрут (для СВ/РОП) */
  .today-back-hdr{ background:transparent; border:none; color:var(--on-fill); padding:4px 8px; margin:0 2px; cursor:pointer; display:inline-flex; align-items:center; }
  .today-back-hdr:active{ opacity:.6; }
  /* Золота кнопка «+» у шапці кожної ТТ — додати задачу саме цій ТТ */
  #today-content .today-tile-v2 .tt-add-task{ width:26px; height:26px; border-radius:8px; background:var(--fill); color:var(--ink); border:1px solid var(--sep2); font-size:1.1765rem; font-weight:700; line-height:1; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; align-self:center; margin-left:8px; }
  #today-content .today-tile-v2 .tt-add-task:active{ opacity:.8; }

  /* === Тёмний дизайн-код Маршруту (єдиний стиль з планувальником СВ) === */
  #today-content .today-tile-v2{ background:var(--card) !important; border-color:var(--sep2) !important; }
  #today-content .today-tile-v2.visited{ background:var(--card) !important; border-color:var(--sep) !important; }
  #today-content .today-tile-v2.skipped{ background:var(--card) !important; border-color:var(--sep) !important; }
  #today-content .tt-card-total{ color:var(--mut) !important; font-size:0.6471rem !important; font-weight:700 !important; background:var(--fill); border:1px solid var(--sep); border-radius:8px; padding:8px 12px; }
  #today-content .tt-card-total.zero{ color:var(--bad) !important; background:var(--bad-soft); border-color:var(--bad-brd); }
  #today-content .tt-task-line{ background:var(--fill) !important; color:var(--ink) !important; }
  #today-content .tt-task-line.tp-done{ background:var(--fill) !important; color:var(--ink) !important; }
  #today-content .tt-task-line.tp-done .tt-task-mark{ color:var(--ink) !important; }
  #today-content .tt-task-line.tp-part{ background:var(--accent-soft) !important; color:var(--ink) !important; }
  #today-content .tt-task-line.tp-fail{ background:var(--bad-soft) !important; color:var(--bad) !important; }
  #today-content .tt-task-line.tp-sv{ background:var(--fill) !important; color:var(--ink) !important; }
  /* ТТ із невиконаною ручною задачею СВ/РОП — рожева рамка (показ лише в день маршруту) */
  #today-content .today-tile-v2.has-svtask{ box-shadow:none !important; border-left:3px solid var(--bad-brd) !important; }
  #today-content .today-tile-v2.has-svtask .tt-summary{ border-top:none !important; }
  /* Автор ручної задачі: РОП — фіолетовий, СВ — червоний. Рамка плитки — за старшим. */
  #today-content .today-tile-v2.has-svtask.by-rop{ box-shadow:none !important; border-left:3px solid var(--ink) !important; }
  #today-content .today-tile-v2.has-svtask.by-rop .tt-summary{ border-top:none !important; }
  #today-content .today-tile-v2.has-svtask.by-sv{ box-shadow:none !important; border-left:3px solid var(--bad-brd) !important; }
  #today-content .today-tile-v2.has-svtask.by-sv .tt-summary{ border-top:none !important; }
  /* Плашка задачі — суцільна заливка, білий текст */
  .today-task.svby-rop, #today-content .today-task.svby-rop{ background:var(--accent) !important; border-color:var(--accent-brd) !important; }
  .today-task.svby-sv,  #today-content .today-task.svby-sv{  background:var(--bad) !important; border-color:var(--bad-brd) !important; }
  .today-task.svby-rop .today-task-title, #today-content .today-task.svby-rop .today-task-title,
  .today-task.svby-sv .today-task-title,  #today-content .today-task.svby-sv .today-task-title{ color:var(--ink) !important; font-weight:700 }
  .today-task.svby-rop .today-task-by, .today-task.svby-sv .today-task-by,
  .today-task.svby-rop .tt-task-who,   .today-task.svby-sv .tt-task-who{ color:var(--on-fill) !important; }
  .today-task.svby-rop .today-task-dl, .today-task.svby-sv .today-task-dl{ background:var(--fill) !important; color:var(--ink) !important; }
  .today-task.svby-rop.done .today-task-title, .today-task.svby-sv.done .today-task-title{ opacity:.6 }
  /* Рядок ручної задачі СВ/РОП у розгорнутій картцi/модалi — рожевий */
  .today-task[data-svtask]:not([data-svtask=""]){ background:var(--card2) }
  #today-content .today-task[data-svtask]:not([data-svtask=""]){ background:var(--fill) !important; }
  #today-content .today-task[data-svtask]:not([data-svtask=""]) .today-task-title{ color:var(--ink) !important; }
  #today-content .tt-comment-line{ background:var(--card) !important; color:var(--mut) !important; }
  #today-content .tt-comment-line b{ color:var(--ink) !important; }
  #today-content .tt-ico-btn.phone{ background:var(--fill) !important; color:var(--ink) !important; border:1px solid var(--sep2) !important; }
  #today-content .tt-ico-btn.media{ background:var(--card) !important; color:var(--mut) !important; }
  #today-content .ev-card{ border-color:var(--sep) !important; }
  #today-content .ev-card-body{ background:var(--card) !important; }
  #today-content .ev-tt{ border-bottom-color:var(--ink) !important; }
  #today-content .ev-tt-name{ color:var(--ink) !important; }
  #today-content .ev-tt-cnt{ background:var(--card) !important; color:var(--ink) !important; }
  #today-content .ev-tt-empty, #today-content .ev-list-hdr{ color:var(--mut) !important; }
  #today-content .eb-fiz{ background:var(--inv) !important; color:var(--ok) !important; }
  #today-content .eb-tel{ background:var(--inv) !important; color:var(--on-inv) !important; }
  #today-content .eb-no{ background:var(--card) !important; color:var(--mut) !important; }
  #today-content .today-add-tt-btn{ background:var(--card) !important; border-color:var(--sep2) !important; color:var(--ink) !important; }

  /* Fullscreen модал задач ТТ */
  .tt-task-modal{
    position:fixed; inset:0; z-index:1100;
    background:var(--card2); display:flex; flex-direction:column;
  }
  .tt-task-modal-bar{
    display:flex; align-items:center; gap:8px;
    background:var(--card); color:var(--ink);
    padding:calc(10px + env(safe-area-inset-top, 0px)) 12px 10px;
    flex-shrink:0; position:sticky; top:0; z-index:2;
  }
  .tt-task-modal-back{
    background:transparent; color:var(--ink); border:none;
    font-size:1.6471rem; line-height:1; padding:4px 12px; cursor:pointer;
  }
  .tt-task-modal-title{
    flex:1; font-size:0.8824rem; font-weight:600; color:var(--ink);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .tt-task-modal-done{
    background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink);
    padding:8px 16px; border-radius:8px;
    font-size:0.7647rem; font-weight:600; cursor:pointer;
  }
  .tt-task-modal-body{
    flex:1; overflow-y:auto; padding-bottom:20px;
  }
  .tt-details .today-task-list{ padding:0 }
  .tt-details .today-comment-wrap{ padding:8px 12px }
  .tt-details .today-comment{ min-height:36px; height:36px }
  /* Якщо плитка вже відвідана/тел — не показуємо деталі взагалі */
  .today-tile-v2.visited .tt-details,
  .today-tile-v2.skipped .tt-details{ display:none !important }
  /* Захист від «пустого боксу»: на згорнутій плитці лишаємо ТІЛЬКИ шапку (+ кнопки чекіну),
     все інше (будь-яке тіло, коментар, textarea) ховаємо примусово. */
  .today-tile-v2.visited > *:not(.tt-summary):not(.tt-actions-icons):not(.tt-card-body),
  .today-tile-v2.skipped > *:not(.tt-summary):not(.tt-actions-icons):not(.tt-card-body){ display:none !important }
  .today-tile-v2.visited .tt-summary > *:not(.tt-num):not(.tt-info):not(.tt-reopen):not(.tt-add-task):not(.kkl-hero-stats),
  .today-tile-v2.skipped .tt-summary > *:not(.tt-num):not(.tt-info):not(.tt-reopen):not(.tt-add-task):not(.kkl-hero-stats){ display:none !important }
  /* Відвідана / тел.режим плитка лишається клікабельною — повторний клік відкриває модал задач */
  .today-tile-v2.visited .tt-summary,
  .today-tile-v2.skipped .tt-summary{ cursor:pointer }
  .tt-reopen{
    flex-shrink:0; align-self:center; color:var(--mut);
    font-size:1.2941rem; line-height:1; padding-left:4px;
  }
  /* Фази дня */
  .today-stack.phase-morning .today-tile,
  .today-stack.phase-morning .today-evening{ display:none }
  .today-stack.phase-route .today-morning-list,
  .today-stack.phase-route .today-add-btn{ display:none }
  .today-stack.phase-evening .today-add-btn,
  .today-stack.phase-evening .today-morning-list,
  .today-stack.phase-evening .today-morning-row-add{ display:none }
  .today-stack.phase-evening .today-task-btn,
  .today-stack.phase-evening .today-btn{
    pointer-events:none; opacity:.5;
  }
  .today-stack.phase-evening .today-comment{
    pointer-events:none; opacity:.7;
  }
  /* Архівна фаза — все read-only */
  .today-stack.phase-archive .today-add-btn,
  .today-stack.phase-archive .today-add-tt-btn,
  .today-stack.phase-archive .today-morning-row-add{ display:none }
  .today-stack.phase-archive .today-task-btn,
  .today-stack.phase-archive .today-btn{
    pointer-events:none; opacity:.5;
  }
  .today-stack.phase-archive .today-comment{
    pointer-events:none; opacity:.7;
  }
  /* === Звіт «Виконання» === */
  .perf-header{ padding:8px 12px 0 }
  .perf-toolbar{
    display:flex; gap:8px; padding:8px 12px;
    background:var(--card); align-items:center;
  }
  .perf-mo-nav{
    width:32px; height:32px; border-radius:8px;
    background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink);
    font-size:1rem; cursor:pointer; font-weight:700;
  }
  .perf-mo-nav:disabled{ opacity:.35 }
  #perf-month-input{
    flex:1; padding:8px 12px; border:none; border-radius:8px;
    background:var(--card); color:var(--ink); font-weight:700; font-size:0.8824rem;
    font-family:inherit;
  }
  .perf-table-wrap{ padding:12px 8px; overflow-x:auto }
  .perf-table{
    width:100%; border-collapse:collapse; font-size:0.7059rem;
    background:var(--card); border:1px solid var(--sep);
  }
  .perf-table th, .perf-table td{
    padding:8px 8px; border:1px solid var(--sep); text-align:right;
    white-space:nowrap;
  }
  .perf-table th{ background:var(--card); color:var(--ink); font-weight:700; font-size:0.6471rem; text-transform:uppercase }
  .perf-table th:first-child, .perf-table td:first-child{ text-align:left }
  .perf-table tfoot td{ background:var(--card2); font-weight:700; border-top:2px solid var(--ink) }
  /* 6.01.26 (ZIV): «Виконання» — 8 колонок мають влазити на екран телефона без прокрутки вбік */
  .perf-table.perf-fit{ table-layout:auto; font-size:0.7059rem }
  .perf-table.perf-fit th, .perf-table.perf-fit td{ padding:8px 4px }
  .perf-table.perf-fit th{ font-size:0.6471rem; white-space:normal; line-height:1.15; text-align:center }
  .perf-table.perf-fit td{ text-align:center }   /* 6.01.27: дані по центру, як шапка; лише ТП — зліва */
  .perf-table.perf-fit th:first-child, .perf-table.perf-fit td:first-child{ padding-left:8px; text-align:left }
  .perf-period{ text-align:center; padding:12px 12px 4px; color:var(--ink); font-size:0.8824rem; font-weight:700 }
  .perf-period:first-letter{ text-transform:uppercase }
  .perf-pct.ok{  color:var(--ok); font-weight:700 }
  .perf-pct.mid{ color:var(--ink); font-weight:700 }
  .perf-pct.bad{ color:var(--bad); font-weight:700 }

  /* Date-picker і архівний банер */
  .today-datebar{
    display:none !important;  /* зміна дати прибрана — маршрут тільки на сьогодні */
    align-items:center; gap:8px;
    padding:8px 12px 0;
  }
  .today-date-nav{
    width:36px; height:36px;
    background:none; color:var(--ink); border:none;
    font-size:1.6471rem; font-weight:700; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .today-date-nav:disabled{ opacity:.35; cursor:not-allowed }
  #today-date-input{
    flex:1; padding:8px 12px; border:1px solid var(--ink); border-radius:8px;
    background:var(--card); font-size:0.8824rem; font-weight:600; color:var(--ink);
    font-family:inherit;
  }
  .today-date-today{
    padding:8px 12px; background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink);
    border-radius:8px; font-weight:700; font-size:0.7647rem; cursor:pointer;
  }
  .today-archive-banner{
    margin:6px 12px 0; padding:8px 12px;
    background:var(--accent-soft); color:var(--gold-text); border:1px solid var(--accent-brd);
    border-radius:8px; font-size:0.7059rem; font-weight:600; text-align:center;
  }
  .today-block{
    background:var(--card); border-radius:12px; margin-bottom:14px;
    border:1px solid var(--sep); box-shadow:0 1px 3px rgba(0,0,0,.06);
    overflow:hidden;
  }
  .today-block-hdr{
    background:var(--card); color:var(--ink);
    font-size:0.7059rem; font-weight:700; letter-spacing:.08em;
    padding:12px 16px; text-transform:uppercase;
  }
  /* Утро */
  .today-morning .today-morning-date{
    padding:12px 16px 8px; font-size:0.7647rem; color:var(--mut);
  }
  .today-morning-grid{
    display:grid; grid-template-columns:repeat(5, 1fr);
    gap:4px; padding:4px 12px 12px;
  }
  .today-morning-cell{
    background:var(--card2); padding:8px 4px; border-radius:8px; text-align:center;
  }
  .today-morning-cell b{ display:block; font-size:1rem; color:var(--ink); font-weight:700; line-height:1.1 }
  .today-morning-cell span{ display:block; font-size:0.6471rem; color:var(--mut); margin-top:3px; text-transform:uppercase; letter-spacing:.02em }
  .today-add-btn{
    width:calc(100% - 28px); margin:0 14px 12px; padding:12px;
    border:1.5px dashed var(--ink); background:var(--card2); color:var(--gold-text);
    border-radius:8px; font-weight:700; font-size:0.7647rem; cursor:pointer;
  }
  .today-add-btn:active{ background:var(--accent-soft) }
  /* Кнопка «Додати ТТ» внизу маршруту */
  .today-add-tt-btn{
    display:block; width:100%; padding:16px;
    background:var(--card2); color:var(--gold-text);
    border:1.5px dashed var(--ink); border-radius:12px;
    font-size:0.8824rem; font-weight:700; cursor:pointer;
    margin:0 0 14px;
  }
  .today-add-tt-btn:active{ background:var(--accent-soft) }
  /* Компактний список ТТ в утрі */
  .today-morning-list{ padding:0 12px 8px }
  .today-morning-row{
    display:flex; align-items:center; gap:12px;
    padding:8px 8px; background:var(--card2);
    border:1px solid var(--accent-brd); border-radius:8px;
    margin-bottom:4px;
  }
  .today-morning-row-num{
    flex-shrink:0; background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink);
    width:22px; height:22px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:0.6471rem; font-weight:700;
  }
  .today-morning-row-body{ flex:1; min-width:0 }
  .today-morning-row-name{
    font-size:0.7647rem; font-weight:600; color:var(--ink);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .today-morning-row-meta{ font-size:0.6471rem; color:var(--mut); margin-top:1px }
  .today-morning-row-add{
    flex-shrink:0; width:32px; height:32px; border-radius:8px;
    border:1.5px solid var(--ink); background:var(--card); color:var(--gold-text);
    font-size:1rem; font-weight:700; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }
  .today-morning-row-add:active{ background:var(--accent-soft) }
  /* ТТ поза маршрутом */
  .today-outside{ border-color:var(--accent-brd) }
  .today-outside .today-block-hdr{ background:var(--accent); color:var(--on-accent) }
  .today-outside-list{ padding:8px 12px 12px }
  .today-outside-row{
    padding:8px 12px; background:var(--card2); border:1px solid var(--accent-brd);
    border-radius:8px; margin-bottom:4px; cursor:pointer;
    display:flex; align-items:center; justify-content:space-between; gap:8px;
  }
  .today-outside-row:active{ background:var(--accent-soft) }
  .today-outside-name{ font-size:0.7647rem; font-weight:600; color:var(--ink); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
  .today-outside-dz{ font-size:0.7059rem; color:var(--bad); font-weight:700; flex-shrink:0 }
  /* Вечер */
  .today-evening{ border-color:var(--sep2) }
  .today-evening .today-block-hdr{ background:var(--card) }
  .today-evening-grid{
    display:grid; grid-template-columns:1fr 1fr 1fr;
    gap:8px; padding:12px 16px;
  }
  .today-evening-cell{
    background:var(--card2); padding:8px 4px; border-radius:8px; text-align:center;
  }
  .today-evening-cell b{ display:block; font-size:1rem; color:var(--ink); font-weight:700; line-height:1.1 }
  .today-evening-cell span{ display:block; font-size:0.6471rem; color:var(--mut); margin-top:3px; text-transform:uppercase; letter-spacing:.04em }
  .today-evening-block{ padding:8px 16px 12px }
  .today-evening-sub{ font-size:0.6471rem; font-weight:700; color:var(--mut); text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px }
  .today-evening-list{ margin:0; padding-left:20px; font-size:0.7647rem; color:var(--ink); line-height:1.5 }
  .today-evening-list li{ margin-bottom:2px }
  .today-evening-ok{ font-size:0.7647rem; color:var(--ok); font-weight:600 }
  /* === Modal: додати ТТ або задачу === */
  .tm-modal{
    position:fixed; inset:0; z-index:1500;
    background:var(--scrim);
    display:flex; align-items:flex-end; justify-content:center;
  }
  .tm-modal-box{
    width:100%; max-width:500px; background:var(--card);
    border-radius:14px 14px 0 0;
    max-height:88vh; display:flex; flex-direction:column;
  }
  .tm-modal-hdr{
    padding:16px 16px; background:var(--card); color:var(--ink);
    border-radius:14px 14px 0 0;
    display:flex; align-items:center; justify-content:space-between;
    font-weight:700; font-size:0.8824rem;;border:1px solid var(--sep)}
  .tm-modal-close{
    background:none; border:none; color:var(--ink); font-size:1.2941rem; cursor:pointer;
    width:32px; height:32px; padding:0;
  }
  .tm-modal-body{ padding:16px 16px; overflow-y:auto; flex:1 }
  .tm-field{ margin-bottom:12px }
  .tm-field label{
    display:block; font-size:0.6471rem; font-weight:700; color:var(--mut);
    text-transform:uppercase; letter-spacing:.04em; margin-bottom:4px;
  }
  .tm-field input, .tm-field select, .tm-field textarea{
    width:100%; box-sizing:border-box;
    padding:8px 12px; border:1px solid var(--accent-brd); border-radius:8px;
    background:var(--card2); font-size:0.7647rem; font-family:inherit;
  }
  .tm-field textarea{ min-height:60px; resize:vertical }
  .tm-tabs{ display:flex; gap:8px; margin-bottom:10px }
  .tm-tab{
    flex:1; padding:8px; border:1px solid var(--accent-brd); background:var(--card);
    border-radius:8px; font-size:0.7059rem; font-weight:600; cursor:pointer; color:var(--mut);
  }
  .tm-tab.active{ background:var(--card); color:var(--ink); border-color:var(--ink) }
  .tm-list{
    max-height:200px; overflow-y:auto;
    border:1px solid var(--accent-brd); border-radius:8px; margin-top:6px;
    background:var(--card);
  }
  .tm-list-item{
    padding:8px 12px; border-bottom:1px solid var(--sep); cursor:pointer; font-size:0.7647rem;
  }
  .tm-list-item:last-child{ border-bottom:none }
  .tm-list-item:hover, .tm-list-item.sel{ background:var(--card2) }
  .tm-list-item-name{ font-weight:600; color:var(--ink) }
  .tm-list-item-meta{ font-size:0.6471rem; color:var(--mut); margin-top:2px }
  .tm-list-empty{ padding:12px; text-align:center; color:var(--mut); font-size:0.7059rem }
  .tm-modal-actions{
    display:flex; gap:8px; padding:12px 16px 16px; border-top:1px solid var(--sep);
  }
  .tm-btn-cancel, .tm-btn-ok{
    flex:1; padding:12px; border:none; border-radius:8px;
    font-size:0.8824rem; font-weight:700; cursor:pointer;
  }
  .tm-btn-cancel{ background:var(--card2); color:var(--mut) }
  .tm-btn-ok{ background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink) }
  .tm-btn-ok:disabled{ background:var(--card2); color:var(--mut) }

  .today-summary{
    background:var(--card); color:var(--ink); border-radius:12px;
    padding:12px 16px; margin-bottom:12px;
    display:flex; align-items:center; justify-content:space-between;
    box-shadow:0 1px 3px rgba(0,0,0,.1);;border:1px solid var(--sep)}
  .today-summary-main{ font-size:0.8824rem; font-weight:700 }
  .today-summary-sub{ font-size:0.7059rem; opacity:.75; margin-top:2px }
  .today-summary-stats{ text-align:right; font-size:0.7059rem; opacity:.85 }
  .today-summary-stats b{ font-size:1rem; color:var(--ink); display:block }
  .today-tile{
    background:var(--card); border-radius:12px; margin-bottom:12px;
    border:1px solid var(--sep); box-shadow:0 1px 2px rgba(0,0,0,.05);
    overflow:hidden;
  }
  .today-tile.visited{ background:var(--card2); border-color:var(--ok-brd) }
  .today-tile.skipped{ background:var(--card2); border-color:var(--sep2); opacity:.7 }
  /* Заблокована плитка — поки нема чекіну */
  .today-tile.locked .today-task-btn,
  .today-tile.locked .today-comment,
  .today-tile-v2.locked .today-task-btn,
  .today-tile-v2.locked .today-comment{
    pointer-events:none; opacity:.4;
  }
  .today-tile.locked .today-section,
  .today-tile-v2.locked .today-section{ opacity:.65 }
  .today-lock-hint{
    background:var(--accent-soft); color:var(--gold-text);
    border-top:1px solid var(--accent-brd); border-bottom:1px solid var(--accent-brd);
    padding:8px 16px; font-size:0.7059rem; text-align:center;
  }
  .today-lock-hint b{ color:var(--gold-text) }
  .today-tt-head{
    padding:12px 16px 12px;
    display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
    background:var(--card); color:var(--ink);
  }
  .today-tt-name{ flex:1; min-width:0 }
  .today-tt-title{ font-size:0.8824rem; font-weight:700; color:var(--ink); line-height:1.25 }
  .today-tt-addr{ font-size:0.7059rem; color:var(--mut); margin-top:3px; line-height:1.3 }
  .today-tt-order{
    flex-shrink:0; background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink);
    width:28px; height:28px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:0.7647rem; font-weight:700;
  }
  .today-task-list{ padding:0 }
  .today-section{ padding:8px 12px 8px 16px; border-left:4px solid transparent }
  .today-section + .today-section{ margin-top:1px }
  .today-section-hdr{
    font-size:0.6471rem; font-weight:700; letter-spacing:.04em;
    padding:8px 0 4px; text-transform:uppercase;
  }
  .today-section.s-dz{    background:var(--card); border-left-color:var(--bad-brd) }
  .today-dz-table{ overflow-x:auto; margin:4px 0 6px }
  .today-dz-table table{
    width:100%; border-collapse:collapse; font-size:0.6471rem;
    background:var(--card); border:1.5px solid var(--bad-brd); border-radius:8px; overflow:hidden;
  }
  .today-dz-table th, .today-dz-table td{
    padding:4px 8px; text-align:right; border:1px solid var(--bad-brd);
    white-space:nowrap;
  }
  .today-dz-table th{ background:var(--card2); color:var(--bad); font-weight:700; text-transform:uppercase; font-size:0.6471rem }
  .today-dz-table th:first-child, .today-dz-table td:first-child{ text-align:left }
  .today-dz-table tfoot td{ background:var(--card2); font-weight:700; border-top:1.5px solid var(--bad-brd) }
  .today-section.s-equip{ background:var(--card2); border-left-color:var(--ink) }
  .today-section.s-tara{  background:var(--card2); border-left-color:var(--accent-brd) }
  .today-section.s-tara-30{ background:var(--card2) }
  .today-section.s-tara-45{ background:var(--card2) }
  .today-section.s-tara-60{ background:var(--accent-soft) }
  .today-section.s-tara-90{ background:var(--accent); border-left-color:var(--accent-brd) }
  .today-section.s-manual{background:var(--card2); border-left-color:var(--accent-brd) }
  .today-section.s-dz    .today-section-hdr{ color:var(--bad) }
  .today-section.s-equip .today-section-hdr{ color:var(--ink) }
  .today-section.s-tara  .today-section-hdr{ color:var(--gold-text) }
  .today-section.s-manual.today-section-hdr{ color:var(--gold-text) }
  /* всередині секції розділювач між задачами — світліший за фон */
  .today-section .today-task{ border-bottom:1px solid var(--sep) }
  .today-section .today-task:last-child{ border-bottom:none }
  .today-task{
    display:flex; align-items:flex-start; gap:8px;
    padding:8px 0; border-bottom:1px solid var(--sep);
  }
  .today-task:last-child{ border-bottom:none }
  .today-task-body{ flex:1; min-width:0 }
  .today-route-search{ width:100%; box-sizing:border-box; padding:12px 16px; margin:2px 0 6px; border-radius:12px; border:1px solid var(--accent-brd); background:var(--card); font-size:0.8824rem; color:var(--ink); -webkit-appearance:none }
  .today-route-search::placeholder{ color:var(--mut) }
  .today-route-search:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 2px var(--accent-brd) }
  .today-task-title{ font-size:0.7647rem; font-weight:600; color:var(--ink); line-height:1.35 }
  .today-task-by{
    display:inline-block; margin-left:6px; padding:0px 8px;
    background:var(--accent); color:var(--on-accent); font-size:0.6471rem; font-weight:700;
    border-radius:4px; letter-spacing:.04em; vertical-align:middle;
  }
  .today-task-desc{ font-size:0.7059rem; color:var(--mut); margin-top:2px; line-height:1.35 }
  .today-task-badge{
    display:inline-block; padding:0px 8px; border-radius:4px;
    font-size:0.6471rem; font-weight:700; margin-right:5px; vertical-align:middle;
  }
  .today-task-badge.t-dz{ background:var(--card2); color:var(--bad) }
  .today-task-badge.t-equip{ background:var(--card2); color:var(--ink) }
  .today-task-badge.t-tara{ background:var(--accent-soft); color:var(--gold-text) }
  .today-task-badge.t-sales{ background:var(--accent-soft); color:var(--gold-text) }
  .today-task-badge.t-manual{ background:var(--card2); color:var(--gold-text) }
  .today-task-btns{ display:flex; gap:8px; flex-shrink:0 }
  .today-task-btn{
    width:32px; height:32px; border-radius:8px; border:1.5px solid var(--sep);
    background:var(--card); cursor:pointer; font-size:0.8824rem; font-weight:700;
    display:flex; align-items:center; justify-content:center;
    transition: all .12s; padding:0;
  }
  .today-task-btn.t-ok{ color:var(--ok) }
  .today-task-btn.t-no{ color:var(--bad) }
  .today-task-btn.t-part{ color:var(--gold-text) }
  /* Активні ✓/✗/½ — скло в4 (6.00.39): зелене/червоне/золоте, не суцільна заливка */
  .today-task-btn.active.t-ok{ background:var(--ok-soft); color:var(--ok); border-color:var(--ok-brd) }
  .today-task-btn.active.t-no{ background:var(--bad-soft); color:var(--bad); border-color:var(--bad-brd) }
  .today-task-btn.active.t-part{ background:var(--accent-soft); color:var(--ink); border-color:var(--accent-brd) }
  .today-task.partial .today-task-title{ color:var(--gold-text) }
  .today-task.done .today-task-title{ text-decoration:line-through; opacity:.55 }
  .today-task.failed .today-task-title{ color:var(--bad) }
  /* Неспрацювання кранів: червоним лише цифра, не весь рядок */
  .tt-red{ color:var(--bad); font-weight:700 }
  .tt-task-modal .tt-red{ color:var(--bad) }
  .today-task.done .tt-red{ color:inherit }
  .today-task.partial{ background:var(--accent-soft) }
  .today-task.partial .today-task-title{ color:var(--ink) }
  /* Контрол часткового вводу (тара степпер / ДЗ сума) */
  .task-part{ display:flex; align-items:center; gap:8px; margin:5px 0 2px; flex-wrap:wrap }
  .task-part .tps-btn{ width:30px; height:30px; border-radius:8px; border:1.5px solid var(--accent-brd); background:var(--card); color:var(--gold-text); font-size:1rem; font-weight:700; line-height:1; cursor:pointer; flex-shrink:0; display:flex; align-items:center; justify-content:center }
  .task-part .tps-btn:active{ transform:scale(.94) }
  .task-part .tps-inp{ width:74px; height:30px; border:1.5px solid var(--accent-brd); border-radius:8px; text-align:center; font-size:0.8824rem; font-weight:700; color:var(--gold-text); background:var(--card); padding:0 4px }
  .task-part .tps-lbl{ font-size:0.7059rem; font-weight:600; color:var(--gold-text) }
  .task-part .tps-of{ font-size:0.7059rem; color:var(--gold-text); white-space:nowrap }
  .today-task-res{ font-size:0.7059rem; font-weight:700; color:var(--ink); margin-top:3px }
  /* Фото на чек-iнi */
  .vp-section{ padding:8px 16px 4px }
  .vp-hdr{ display:flex; align-items:center; gap:8px; font-size:0.7059rem; font-weight:700; color:var(--mut); margin-bottom:8px }
  .vp-add{ margin-left:auto; background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); border-radius:10px; padding:8px 12px; font-size:0.7647rem; font-weight:700; cursor:pointer }
  .vp-add:disabled{ opacity:.6 }
  .vp-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(56px,1fr)); gap:8px }
  .vp-grid.vp-loading,.vp-empty{ color:var(--mut); font-size:0.7059rem; padding:8px 4px }
  .vp-cell{ position:relative; aspect-ratio:1/1; border-radius:10px; overflow:hidden; background:var(--card); cursor:pointer;border:1px solid var(--sep)}
  .vp-cell img{ width:100%; height:100%; object-fit:cover; display:block }
  .vp-broken{ display:flex; align-items:center; justify-content:center; height:100%; color:var(--mut) }
  .vp-tag{ position:absolute; left:0; right:0; bottom:0; background:var(--inv); color:var(--pink); font-size:0.6471rem; font-weight:700; padding:4px 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
  .vp-cell.vp-pend{ opacity:.92 }
  .vp-cell .vp-clock{ position:absolute; top:3px; right:3px; background:var(--accent); color:var(--on-accent); font-size:0.6471rem; border-radius:8px; padding:0px 4px }
  .today-task-cam{ width:32px; height:32px; border-radius:8px; border:1.5px solid var(--sep); background:var(--card); cursor:pointer; font-size:0.8824rem; display:flex; align-items:center; justify-content:center; padding:0; flex-shrink:0 }
  #today-content .today-task-cam{ background:var(--card) !important; border-color:var(--ink) !important; }
  .vp-viewer{ position:fixed; inset:0; z-index:10050; background:var(--inv); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:16px }
  .vp-viewer img{ max-width:100%; max-height:80vh; border-radius:10px; object-fit:contain }
  .vp-viewer-bar{ display:flex; gap:12px }
  .vp-viewer-bar button{ background:var(--card); color:var(--mut); border:none; border-radius:10px; padding:12px 20px; font-size:0.8824rem; font-weight:700; cursor:pointer }
  .vp-viewer-bar .vp-del{ background:var(--bad); color:var(--on-fill) }
  /* Мiкрофон голосового набору */
  .cmt-mic{ border:none; background:var(--fill); color:var(--ink); border-radius:8px; padding:4px 8px; font-size:0.8824rem; cursor:pointer; margin-left:6px; vertical-align:middle }
  .cmt-mic.on{ background:var(--bad); color:var(--on-fill); animation:cmtmic 1s infinite }
  @keyframes cmtmic{ 0%,100%{opacity:1} 50%{opacity:.45} }
  /* Індикатор офлайн-черги */
  .wq-badge{ display:flex; align-items:center; gap:8px; margin:0 8px 10px; padding:8px 12px; border-radius:10px; background:var(--accent); color:var(--on-accent); font-size:0.7647rem; font-weight:700; border:1px solid var(--accent-brd) }
  .wq-badge .wq-dot{ width:9px; height:9px; border-radius:50%; background:var(--accent); flex-shrink:0 }
  .wq-badge .wq-dot.wq-on{ background:var(--ok) }
  .wq-badge #wq-send{ margin-left:auto; background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); border-radius:8px; padding:8px 12px; font-size:0.7059rem; font-weight:700; cursor:pointer }
  .today-comment-wrap{ padding:8px 16px 12px }
  .today-comment-lbl{ font-size:0.6471rem; color:var(--mut); margin-bottom:4px; font-weight:600 }
  .today-comment{
    width:100%; box-sizing:border-box;
    border:1px solid var(--accent-brd); border-radius:8px;
    background:var(--card2); color:var(--ink);
    padding:8px 12px; font-size:0.7647rem; font-family:inherit;
    min-height:60px; resize:vertical;
  }
  .today-actions{
    display:flex; gap:8px; padding:8px 16px 12px;
  }
  .today-btn{
    flex:1; padding:12px; border-radius:10px; border:none;
    font-size:0.7647rem; font-weight:700; cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:8px;
  }
  .today-btn.checkin{ background:var(--card); color:var(--ink) }
  .today-btn.skip{ background:var(--accent-soft); color:var(--gold-text); border:1px solid var(--accent-brd) }
  .today-btn.checkout{ background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-brd) }
  .today-btn.media{ flex:0 0 44px; background:var(--card2); color:var(--mut); font-size:1rem }
  .today-skip-info{
    flex:1; padding:8px 12px; background:var(--accent-soft); border-radius:8px;
    font-size:0.7647rem; color:var(--gold-text); text-align:center;
  }
  .today-final{
    position:sticky; bottom:0; padding:12px 12px 16px;
    background:linear-gradient(0deg, var(--card2) 70%, transparent 100%);
    margin:0 -12px -90px;
  }
  .today-final-btn{
    width:100%; padding:16px; border-radius:12px; border:none;
    background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); font-weight:700; font-size:0.8824rem;
    cursor:pointer; box-shadow:0 2px 8px var(--accent-brd);
  }
  .today-empty{
    text-align:center; padding:60px 20px; color:var(--mut);
  }
  .today-empty-icon{ font-size:2.8235rem; margin-bottom:10px }
  .dz-divider{ border-top:1px dashed var(--accent-brd); margin:14px 4px 10px }
  .dz-bigcard{
    background:var(--card); border-radius:12px; padding:12px 16px; margin-bottom:10px;
    box-shadow: 0 1px 3px rgba(0,0,0,.06); border:1px solid var(--sep);
    transition: transform .08s; overflow:hidden;
  }
  .dz-bigcard:active{ transform:scale(.992) }
  /* Синя шапка на всю ширину (як ДЗ RISK / Маршрут) */
  .dz-head{
    display:flex; justify-content:space-between; align-items:center; gap:8px;
    background:var(--card); margin:-12px -14px 10px; padding:12px 16px; border-bottom:none;
  }
  .dz-head-info{ min-width:0 }
  .dz-code{ font-size:0.8824rem; font-weight:700; color:var(--ink) }
  .dz-viol-pill{
    padding:4px 12px; border-radius:999px; font-size:0.7059rem; font-weight:600;
    background:var(--card2); flex:none;
  }
  .dz-viol-pill.v-ok{ background:var(--ok-soft); border:1px solid var(--ok-brd); color:var(--ok) }
  .dz-viol-pill.v-bad{ background:var(--bad-soft); border:1px solid var(--bad-brd); color:var(--bad) }
  .dz-sub{ font-size:0.6471rem; color:var(--mut); margin:2px 0 0 }
  .dz-grid{
    display:grid; grid-template-columns: repeat(2, 1fr); gap:8px; margin-bottom:8px;
  }
  .dz-cell{ background:var(--fill); border:1px solid var(--sep); border-radius:8px; padding:8px 12px }
  .dz-cell-lbl{ font-size:0.6471rem; color:var(--mut); text-transform:uppercase; letter-spacing:.3px }
  .dz-cell-val{ font-size:0.8824rem; font-weight:700; color:var(--ink); margin-top:1px;
                font-variant-numeric:tabular-nums }
  .dz-cell-val.v-bad{ color:var(--bad) }
  .dz-rules-row{
    display:flex; gap:12px; justify-content:space-around; padding-top:8px;
    border-top:1px dashed var(--sep); font-size:0.6471rem; color:var(--mut);
    font-variant-numeric:tabular-nums;
  }
  .dz-rules-row .v-ok{ color:var(--ok) }
  .dz-rules-row .v-bad{ color:var(--bad) }

  /* Плитки ТТ на рівні менеджера */
  .dz-ok{ color:var(--ok) }
  .dz-bad{ color:var(--bad) }
  .dz-tt-card{
    background:var(--card); border-radius:12px; padding:12px 16px; margin-bottom:10px;
    box-shadow: 0 1px 3px rgba(0,0,0,.06); border:1px solid var(--sep);
    cursor:pointer; transition: transform .08s; overflow:hidden;
  }
  .dz-tt-card:active{ transform:scale(.992) }
  .dz-tt-ok { background:var(--card) }
  .dz-tt-mid{ background:var(--card) }
  .dz-tt-bad{ background:var(--card) }
  /* Шапка картки ДЗ — синя на всю ширину (як у Маршруті) */
  .dz-tt-head{
    display:flex; align-items:center; gap:12px;
    background:var(--card); border-radius:0; padding:12px 16px;
    margin:-12px -14px 10px; border-bottom:none;
  }
  .dz-tt-sq{
    display:inline-flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:10px; flex:none;
    background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); font-size:1rem; font-weight:700;
  }
  .dz-tt-ok  .dz-tt-sq{ background:var(--ok-soft); border:1px solid var(--ok-brd); color:var(--ok) }
  .dz-tt-mid .dz-tt-sq{ background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink) }
  .dz-tt-name{ flex:1; min-width:0 }
  .dz-tt-title{
    font-size:0.8824rem; font-weight:700; color:var(--ink);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .dz-tt-addr{
    font-size:0.6471rem; color:var(--mut); line-height:1.3; margin-top:2px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  .dz-tt-viol{ text-align:center; min-width:48px; flex:none }
  .dz-tt-vnum{ font-size:1.1765rem; font-weight:700; color:var(--bad); line-height:1 }
  .dz-tt-ok .dz-tt-vnum{ color:var(--ok) }
  .dz-tt-mid .dz-tt-vnum{ color:var(--ink) }
  .dz-tt-vlbl{ font-size:0.6471rem; color:var(--blue); text-transform:uppercase; letter-spacing:.3px; margin-top:2px }
  /* ===== Обладнання — звіт по KPI кранів ===== */
  .ol-card.ol-green { background:var(--card) }
  .ol-card.ol-yellow{ background:var(--card) }
  .ol-card.ol-pink  { background:var(--card) }
  .ol-card.ol-orange{ background:var(--card) }
  .ol-card.ol-red   { background:var(--card) }
  .ol-card.ol-agg   { background:var(--card) }
  .ol-table td.ol-bad{ color:var(--bad); font-weight:700 }
  
  /* Картки команд/менеджерів у звітах — синя шапка на всю картку, без пустого тіла */
  .dz-bigcard.dz-grp{ padding:0 }
  .dz-bigcard.dz-grp .dz-head{ margin:0; border-radius:0 }
  /* Таблиця тари — вміщається на один екран без горизонтального скролу */
  .ol-table.ol-tara{ table-layout:fixed; width:100% }
  .ol-table.ol-tara th, .ol-table.ol-tara td{ padding:4px 4px; font-size:0.6471rem }
  .ol-table.ol-tara th.ol-l, .ol-table.ol-tara td.ol-l{ white-space:normal; word-break:break-word; line-height:1.2; padding-left:8px }
  .ol-table.ol-tara th:nth-child(2), .ol-table.ol-tara td:nth-child(2){ width:42px }
  .ol-table.ol-tara th:nth-child(n+3), .ol-table.ol-tara td:nth-child(n+3){ width:30px }
  .ol-table tr.ol-sum td{ border-top:2px solid var(--sep2); padding-top:8px; color:var(--ink); background:var(--fill) }
  .ol-table tr.ol-sum td[colspan]{ text-align:center; color:var(--bad) }
  .ol-pct{ font-size:1rem; font-weight:700; color:var(--ink); white-space:nowrap }
  .ol-card.ol-red .ol-pct{ color:var(--bad); font-size:0.7059rem }
  .ol-body{ }
  .ol-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch }
  .ol-table{ width:100%; border-collapse:collapse; font-size:0.6471rem; font-variant-numeric:tabular-nums }
  .ol-table th{ background:var(--card); color:var(--ink); padding:4px 8px; font-size:0.6471rem; font-weight:700; text-transform:uppercase; text-align:center; white-space:nowrap }
  .ol-table td{ padding:4px 8px; text-align:center; border-bottom:1px solid var(--sep); color:var(--ink) }
  .ol-table td + td, .ol-table th + th{ border-left:1px solid var(--sep) }
  .ol-table th.ol-l, .ol-table td.ol-l{ text-align:left; font-weight:700; white-space:nowrap }
  /* ОБЛАДНАННЯ SKU — на білому, назви переносяться, без горизонтального скролу */
  .ol-table.ol-items{ background:var(--card); border-radius:8px; overflow:hidden; table-layout:fixed }
  .ol-table.ol-items td{ background:var(--card) }
  .ol-table.ol-items th.ol-l, .ol-table.ol-items td.ol-l{ white-space:normal; word-break:break-word; line-height:1.25 }
  .ol-table.ol-items th:last-child, .ol-table.ol-items td:last-child{ width:54px; text-align:center }
  .ol-table.ol-items tr.ol-tot td{ background:var(--fill) }
  .ol-table td.ol-k{ font-weight:700; color:var(--bad) }
  .ol-table tr.ol-tot td{ background:var(--fill); font-weight:700; border-bottom:none }
  /* Підрядки конекторів (Комбі/Флеш/УсФлеш/Корб) — праворуч, курсив, сіре */
  .ol-table tr.ol-sub td{ color:var(--ink); font-size:0.6471rem }
  .ol-table tr.ol-sub td.ol-l{ text-align:right; font-weight:500; font-style:italic; color:var(--mut); padding-right:16px }
  .ol-table tr.ol-sub td.ol-k{ color:var(--ink); font-weight:600 }
  
  
  .folder-card.ol-f-pink  { border-left:5px solid var(--pink-brd) }
  .folder-card.ol-f-red   { border-left:5px solid var(--bad-brd) }
  .ol-table.ol-items{ margin-top:10px }
  .dz-tt-grid{
    display:grid; grid-template-columns: repeat(3, 1fr); gap:8px; margin-bottom:8px;
  }
  .dz-tt-cell{ background:var(--card2); border-radius:8px; padding:8px 8px }
  .dz-tt-ok  .dz-tt-cell{ background:var(--fill); border:1px solid var(--sep) }
  .dz-tt-bad .dz-tt-cell{ background:var(--bad-soft); border:1px solid var(--bad-brd) }
  .dz-tt-lbl{ font-size:0.6471rem; color:var(--mut); text-transform:uppercase; letter-spacing:.3px }
  .dz-tt-val{ font-size:0.7647rem; font-weight:700; color:var(--ink); margin-top:1px;
              font-variant-numeric:tabular-nums }
  .dz-tt-val.v-bad{ color:var(--bad) }
  .dz-tt-val.dim{ color:var(--mut) }
  .dz-tt-rules{
    display:flex; justify-content:space-around; gap:8px;
    padding-top:8px; border-top:1px dashed var(--sep);
  }
  .dz-tt-rule{
    font-size:0.6471rem; color:var(--mut);
    display:flex; align-items:center; gap:4px;
  }
  .dz-tt-rule span{ color:var(--mut) }
  .dz-tt-rule .dz-ok, .dz-tt-rule .dz-bad{ font-size:0.7647rem; font-weight:700 }

  /* Кольорова схема за позицією */
  .cyber-dept{ background:var(--card) }
  .cyber-c1  { background:var(--card) }  /* A / №1 — червоний */
  .cyber-c2  { background:var(--card) }  /* B / №2 — зелений */
  .cyber-c3  { background:var(--card) }  /* D / №3 — жовтий */
  .cyber-c4  { background:var(--card) }  /* H / №4 — синій */
  /* Папки зберігають колір менеджера, але виділяємо смужкою */
  .tt-bigcard-ws{ box-shadow:inset 4px 0 0 var(--ok-brd) }
  .tt-bigcard-ns{ box-shadow:inset 4px 0 0 var(--pink-brd) }
  .tp-bigcard[data-folder]:active,
  .tp-bigcard[data-team]:active,
  .tp-bigcard[data-mgr]:active{ transform:scale(.992) }
  /* Рівні висоти всередині bigcard */
  .tp-bigcard{ display:flex; flex-direction:column }
  .tp-bigcard-body{ align-items:stretch }
  /* Фікс злипання «ИТОГО» з числами */
  .ts-eq-total .ts-eq-key{ min-width:54px }

  /* ===== Папки-карточки (відділ / команда / менеджер / 2 фолдери) ===== */
  .tasks-stack{ padding:12px 12px 80px }
  .tasks-section-title{
    font-size:0.6471rem; color:var(--mut); text-transform:uppercase; letter-spacing:.5px;
    padding:12px 4px 8px; font-weight:600;
  }
  .tasks-folder-card{
    display:flex; align-items:center; gap:12px;
    background:var(--card); border-radius:12px; padding:16px 16px;
    margin-bottom:8px;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
    cursor:pointer; transition: transform .08s;
    border:1px solid var(--sep);
  }
  .tasks-folder-card:active{ transform:scale(.99) }
  .tfc-main{ flex:1; min-width:0 }
  .tfc-code{ font-size:1rem; font-weight:700; color:var(--ink) }
  .tfc-title{ font-size:0.7059rem; color:var(--mut); font-weight:500; margin-left:4px }
  .tfc-meta{ font-size:0.6471rem; color:var(--mut); margin-top:3px; line-height:1.35 }
  .tfc-kpi{ text-align:center; min-width:54px }
  .tfc-kpi-num{ font-size:1rem; font-weight:700; line-height:1.1 }
  .tfc-kpi-lbl{ font-size:0.6471rem; color:var(--mut); text-transform:uppercase; letter-spacing:.4px }
  .tfc-arrow{ font-size:1.1765rem; color:var(--mut); font-weight:300; padding-left:4px }

  .folder-with-sales{ border-left:4px solid var(--ok-brd) }
  .folder-no-sales{ border-left:4px solid var(--pink-brd); background:var(--card) }

  /* ===== Велика картка ТТ (міні-копія ТП-плитки) ===== */
  .tt-bigcard{
    background:var(--card); border-radius:14px;
    box-shadow:none;
    padding:16px 16px 16px; border:1px solid var(--sep);
    margin-bottom:12px;
    cursor:pointer; transition: transform .08s; overflow:hidden;
  }
  .tt-bigcard:active{ transform:scale(.992) }
  .tt-bigcard.tt-no-sales{
    background:var(--card2); border-color:var(--pink-brd);
  }
  .tt-bigcard.tt-no-sales .tp-bigcard-body .ts-tile{ background:var(--bad-soft) }
  /* Синя шапка на всю ширину */
  .tt-bigcard-head{
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    background:var(--card); margin:-16px -14px 10px; padding:12px 16px; border-bottom:none;
  }
  .tt-bigcard-name{ flex:1; min-width:0 }
  .tt-name-row{ display:flex; align-items:center; gap:8px; flex-wrap:wrap }
  .tt-name-main{
    font-size:0.8824rem; font-weight:700; color:var(--ink);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .tt-name-addr{
    font-size:0.6471rem; color:var(--mut); line-height:1.3; margin-top:2px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
    overflow:hidden; word-break:break-word;
  }
  .tt-bigcard-right{
    display:flex; flex-direction:column; align-items:flex-end; gap:8px;
    white-space:nowrap;
  }
  .tt-bigcard.tt-no-sales .tt-name-main::after{
    content:''; display:inline-block; margin-left:6px;
    background:var(--pink-soft); color:var(--bad);
    font-size:0.6471rem; padding:4px 8px; border-radius:8px;
    font-weight:500; vertical-align:middle;
  }
  .tt-card{
    background:var(--card); border-radius:12px; padding:12px 16px; margin-bottom:10px;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
    cursor:pointer; transition: transform .08s, box-shadow .15s;
  }
  .tt-card:active{ transform: scale(.985) }
  .tt-head{ display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:10px }
  .tt-name{ font-size:0.8824rem; font-weight:600; line-height:1.25; color:var(--ink); flex:1; min-width:0;
            overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
  .tt-meta{ font-size:0.6471rem; color:var(--mut); white-space:nowrap }

  .tt-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px }
  .tt-tile{ border-radius:8px; padding:8px 12px; min-height:50px }
  .tt-tile-lbl{
    font-size:0.6471rem; font-weight:600; text-transform:uppercase; letter-spacing:.4px;
    margin-bottom:3px; opacity:.85;
  }
  .tt-tile-val{ font-size:0.7647rem; font-weight:600; line-height:1.2 }
  .tt-tile-big{ font-size:1rem; font-weight:700 }

  .tt-cat-ok{   background:var(--card2); color:var(--ok) }
  .tt-cat-ok .tt-tile-lbl{ color:var(--ok) }
  .tt-cat-mid{  background:var(--accent-soft); color:var(--gold-text) }
  .tt-cat-mid .tt-tile-lbl{ color:var(--gold-text) }
  .tt-cat-bad{  background:var(--card2); color:var(--bad) }
  .tt-cat-bad .tt-tile-lbl{ color:var(--bad) }
  .tt-cat-neutral{ background:var(--card2); color:var(--mut) }
  .tt-cat-neutral .tt-tile-lbl{ color:var(--mut) }

  .tasks-back-bar{
    padding:12px 12px; background:var(--card); border-top:1px solid var(--sep);
  }
  .tasks-back-btn{
    background:var(--card); color:var(--ink); border:none;
    padding:12px 20px; border-radius:8px; font-size:0.8824rem; cursor:pointer
  }

  /* КК — пошук по назві ТТ */
  /* Пошук — спека ZIV п.7: білий, h40, r11, inset-тінь */
  .kk-search-wrap{
    position:relative; margin:10px 16px 6px;
  }
  .kk-search-wrap input{
    width:100%; box-sizing:border-box; height:40px;
    background:var(--card);
    border:1px solid var(--sep2);
    border-radius:10px;
    padding:0 38px 0 36px;
    color:var(--ink); font-size:0.7647rem; outline:none;
  }
  .kk-search-wrap input::placeholder{ color:var(--mut); }
  .kk-search-wrap input:focus{ border-color:var(--ink); }
  .kk-search-icon{
    position:absolute; left:12px; top:50%; transform:translateY(-50%);
    width:16px; height:16px; color:var(--mut); pointer-events:none;
  }
  .kk-search-clear{
    position:absolute; right:8px; top:50%; transform:translateY(-50%);
    width:26px; height:26px; border:none; background:var(--fill);
    color:var(--ink); border-radius:50%; cursor:pointer; font-size:1rem; line-height:1;
    display:flex; align-items:center; justify-content:center;
  }
  .kk-search-clear:hover{ background:var(--fill); }
  /* Профіль (спека п.11, мокап 10a): чорно-золотий */
  .pf-hero{display:flex;align-items:center;gap:20px;background:var(--card);border:1px solid var(--sep2);border-radius:14px;padding:20px;margin-bottom:16px}
  .pf-ava{flex:0 0 auto;width:104px;height:104px;border-radius:50%;border:2px solid var(--sep2);overflow:hidden;display:flex;align-items:center;justify-content:center;
    font-family:'Cormorant Garamond', Georgia, serif;font-weight:600;font-size:2rem;color:var(--on-inv);background:var(--inv)}
  .pf-info{flex:1;min-width:0}
  .pf-name{font-size:1.2941rem;font-weight:700;color:var(--ink);line-height:1.25}
  .pf-mail{font-size:0.7647rem;font-weight:600;color:var(--mut);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pf-badges{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
  .pf-badge{font-size:0.6471rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:8px;padding:4px 8px;background:var(--fill);border:1px solid var(--sep);color:var(--mut)}
  .pf-badge.gold{color:var(--ink);background:var(--accent-soft);border-color:var(--accent-brd)}
  .pf-sec{font-size:0.6471rem;font-weight:700;letter-spacing:.12em;color:var(--mut);text-transform:uppercase;margin:14px 2px 8px}
  .pf-block{background:var(--card);border:1px solid var(--sep2);border-radius:14px;overflow:hidden;margin-bottom:4px}
  .pf-row{display:flex;align-items:center;gap:16px;padding:16px 16px;cursor:pointer}
  .pf-row + .pf-row{border-top:1px solid var(--sep)}
  .pf-row-ic{flex:0 0 auto;color:var(--ink);display:inline-flex}
  .pf-row-t{flex:1;min-width:0;color:var(--ink);font-size:0.8824rem;font-weight:700;line-height:1.3}
  .pf-row-s{display:block;color:var(--mut);font-size:0.6471rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pf-row-go{color:var(--mut);font-size:1rem}
  .pf-admin{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .pf-atile{height:68px;border:1px solid var(--bad-brd);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(150deg, var(--bad-soft) 0%, var(--bad-soft) 60%, var(--bad-soft) 100%);color:var(--ink);font-size:0.6471rem;font-weight:700;transition:transform .06s}
  .pf-atile:active{transform:translateY(1px);box-shadow:none}
  .pf-atile svg{color:var(--gold-text);width:19px;height:19px}
  .pf-foot{display:flex;align-items:center;justify-content:space-between;margin-top:18px}
  .pf-ver{font-size:0.6471rem;font-weight:700;color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:8px;padding:4px 12px}
  .pf-exit{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:10px;border:1px solid var(--bad-brd);background:var(--bad-soft);color:var(--bad);font-size:0.7059rem;font-weight:700;cursor:pointer}
  /* 10.1: плитки маршрутів поруч із командою — h62, r11 (єдиний вигляд скрізь) */
  .kk-team-strip .kk-mgr-tile{min-height:64px;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0}
  .kk-team-strip .kk-mgr-tile .kk-tile-n{font-size:0.7647rem;font-weight:700;color:var(--ink)}
  .kk-team-strip .kk-mgr-tile .kk-tile-l{font-size:0.6471rem;font-weight:700;color:var(--mut)}
  /* П.10: плитка команди у списку КК — світліша, із золотою рамкою */
  .kk-lead-tile{flex:0 0 auto;height:auto;min-height:64px;border:none;border-left:3px solid var(--accent-brd);border-radius:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;
    background:var(--accent-soft);
    box-shadow:none;transition:transform .06s}
  .kk-lead-tile:active{transform:translateY(1px)}
  /* П.10: лічильники КК — 3 колонки, усі чорні; колір лише в цифрі проблемних */
  .kk-tiles{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .kk-tiles .kk-tile{min-height:56px;border-radius:12px !important;
    background:var(--card) !important;
    box-shadow:none;border:1px solid var(--sep)}
  .kk-tiles .kk-tile .kk-tile-n{font-size:1.1765rem;font-weight:700;color:var(--ink)}
  .kk-tiles .kk-tile .kk-tile-l{font-size:0.6471rem;font-weight:700;color:var(--mut)}
  .kk-tiles .kk-tile.tile-red .kk-tile-n{color:var(--bad)}
  .kk-tiles .kk-tile.on{
    background:var(--accent-soft) !important;
    border-color:var(--accent-brd) !important; border-top-color:var(--accent-brd) !important;
    box-shadow:none}
  .kk-tiles .kk-tile.on .kk-tile-n{color:var(--ink) !important}
  .kk-tiles .kk-tile.on .kk-tile-l{color:var(--ink2) !important}
  .kk-tiles .kk-tile.on.tile-red .kk-tile-n{color:var(--bad) !important}
  /* Меню КК — плитки 2×2 (мокап 7b): велика цифра, назва, підпис */
  /* Плитки меню (спека п.7, 05.09.2026): h118, число 46/800, по центру, без шеврона */
  /* Спека 7.2 (фінал 05.09.2026): ВИСОТА ФІКСОВАНА 132px; flex:1 / rows:1fr / height:100% /
     space-between ЗАБОРОНЕНО. Порожнє місце під сіткою — норма, його не виїдаємо. */
  .kk7-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:minmax(132px,auto);gap:8px;margin:10px 16px;align-content:start;height:auto}
  .kk7-tile{border:1px solid var(--sep2);border-radius:14px;cursor:pointer;text-align:left;padding:12px;display:flex;min-height:132px;
    background:var(--card);
    box-shadow:none;
    transition:transform .06s}
  /* Спека 7.2 фінал: три елементи ПІДРЯД (число, назва, одиниця), flex-start, gap 6 */
  .kk7-in{flex:1;width:100%;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px;text-align:left}
  .kk7-lb{display:contents}
  .kk7-tile:active{transform:translateY(1px);box-shadow:none}
  .kk7-tile .n{font-size:1.6471rem;font-weight:700;color:var(--ink);line-height:1;display:inline-block;transform:scaleY(1.3);transform-origin:left top;margin-bottom:8px;letter-spacing:-.01em}
  .kk7-grid.kkroot .kk7-tile .n{font-size:2rem;transform:scaleY(1.35);margin-bottom:12px}
  .kk7-tile .t{font-size:0.7059rem;font-weight:700;color:var(--ink)}
  .kk7-tile .s{font-size:0.6471rem;font-weight:700;color:var(--mut)}
  /* Компактна картка списку КК (мокап 6a, спека п.7): ~90px, темна */
  .kk6-card{background:var(--card);border:1px solid var(--sep);border-radius:14px;padding:12px 12px;margin-bottom:8px;display:flex;align-items:center;gap:8px;cursor:pointer}
  .kk6-name{font-size:0.8824rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kk6-addr{font-size:0.6471rem;font-weight:600;color:var(--mut);white-space:normal;line-height:1.35;margin-top:2px}
  .kk6-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px}
  .kk6-chip{border:1px solid var(--sep);height:20px;line-height:18px;padding:0 8px;border-radius:10px;font-size:0.6471rem;font-weight:700;cursor:pointer;background:var(--fill);color:var(--mut);white-space:nowrap}
  .kk6-chip.c-gold{background:var(--accent-soft);border-color:var(--accent-brd);color:var(--ink)}
  .kk6-chip.c-red{background:var(--bad-soft);border-color:var(--bad-brd);color:var(--bad)}
  .kk6-right{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px;flex:0 0 auto;align-self:stretch}
  .kk6-time{font-size:0.6471rem;color:var(--mut);white-space:nowrap}
  .kk6-arr{color:var(--ink);font-size:1rem;line-height:1}
  /* Плитки-лічильники списку (h54, r12): активна золота, решта чорні */
  .kk6-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 16px 8px}   /* 6.00.67: 5 чипів (+ Не в маршруті) */
  .kk6-tile{height:54px;border-radius:12px;border:1px solid var(--sep2);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0px;
    background:var(--card);
    box-shadow:none;transition:transform .06s}
  .kk6-tile:active{transform:translateY(1px);box-shadow:none}
  .kk6-tile .n{font-size:1.1765rem;font-weight:700;color:var(--ink);line-height:1.05}
  .kk6-tile .l{font-size:0.6471rem;font-weight:700;color:var(--mut);white-space:nowrap}
  /* Актив — золоте скло (ZIV 06.09.2026): прозоре, видно і вибір, і текст */
  .kk6-tile.on{background:var(--accent-soft);border-color:var(--accent-brd);
    box-shadow:none}
  .kk6-tile.on .n{color:var(--ink)}
  .kk6-tile.on .l{color:var(--ink2)}
  .kk6-tile.kk6-warn{background:var(--bad-soft);border-color:var(--bad-brd)}
  .kk6-tile.kk6-warn .n{color:var(--bad)}
  .kk6-tile.kk6-warn.on{background:var(--bad-soft);border-color:var(--bad-brd)}
  .kk6-tile .n.warn{color:var(--bad)}
  .kk6-tile.on .n.warn{color:var(--bad)}
  .kk-search-meta{
    margin:0 16px 8px; font-size:0.6471rem; color:var(--blue); font-weight:500;
  }
  .feed-item:active{transform:scale(.985)}
  /* Розовая плашка для карточек без продаж */
  .feed-item.no-sales{
    background:linear-gradient(135deg, var(--card2) 0%, var(--bad-soft) 100%);
    border-color:var(--bad-brd);
    color:var(--bad);
  }
  .feed-item.no-sales .feed-title{color:var(--bad)}
  .feed-item.no-sales .feed-meta{color:var(--bad)}
  .feed-item.no-sales .feed-arrow{color:var(--bad)}
  /* Розовая папка «КК без продажів» в корне окна КК */
  /* Плитки-фільтри КК (стиль 5: тёмні плитки 3 в ряд, кольорова смужка зверху) */
  .kk-tiles{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; padding:4px 16px 4px; }
  .kk-tile{ background:var(--card); border:1px solid var(--sep2); border-top:3px solid var(--sep2); border-radius:8px; padding:12px 8px 8px; text-align:center; cursor:pointer; transition:transform .1s; }
  .kk-tile:active{ transform:scale(.96); }
  .kk-tile-n{ color:var(--ink); font-size:1.2941rem; font-weight:700; line-height:1.05; }
  .kk-tile-l{ font-size:0.6471rem; font-weight:600; margin-top:2px; color:var(--mut); }
  /* Плитки закрашені повністю за статусом, білий шрифт (золото — тёмний) */
  .kk-tile.tile-gold{ background:var(--accent-soft); border-color:var(--accent-brd); border-top-color:var(--accent-brd); }
  .kk-tile.tile-gold .kk-tile-n{ color:var(--ink); } .kk-tile.tile-gold .kk-tile-l{ color:var(--ink2); }
  .kk-tile.tile-red{ background:var(--card); border-color:var(--bad-brd); border-top-color:var(--bad-brd); }
  .kk-tile.tile-red .kk-tile-n{ color:var(--bad) } .kk-tile.tile-red .kk-tile-l{ color:var(--mut) }
  .kk-tile.tile-green{ background:var(--card); border-color:var(--sep2); border-top-color:var(--sep2); }
  .kk-tile.tile-green .kk-tile-n{ color:var(--ok) } .kk-tile.tile-green .kk-tile-l{ color:var(--mut) }
  .kk-tile.tile-gray{ background:var(--card); border-color:var(--sep2); border-top-color:var(--sep2); }
  .kk-tile.tile-gray .kk-tile-n, .kk-tile.tile-gray .kk-tile-l{ color:var(--ink); }
  .kk-tile.tile-pink{ background:var(--card); border-color:var(--bad-brd); border-top-color:var(--bad-brd); }
  .kk-tile.tile-pink .kk-tile-n{ color:var(--bad) } .kk-tile.tile-pink .kk-tile-l{ color:var(--mut) }
  /* П.15 (спека ZIV 06.09.2026): приглушених плиток НЕ БУВАЄ. У сітках лічильників фон
     примусово чорний, а варіанти (tile-gold тощо) лишали свій ТЕМНИЙ текст → «зламані» плитки
     («50–100%», «Зависла 45 дн»). Нормалізуємо: число var(--ink), підпис .6, одиниця золота;
     проблемна (tile-red) — число/одиниця var(--bad) + смуга var(--bad) + теплий підтон. */
  .kk-tiles .kk-tile .kk-tile-n{color:var(--ink) !important}
  .kk-tiles .kk-tile .kk-tile-l{color:var(--mut) !important}
  .kk-tiles .kk-tile .kk-tile-l + .kk-tile-l{color:var(--ink) !important}
  .kk-tiles .kk-tile.tile-red{background:var(--bad-soft) !important;border:1px solid var(--bad-brd) !important;border-left:3px solid var(--bad-brd) !important}
  .kk-tiles .kk-tile.tile-red .kk-tile-n, .kk-tiles .kk-tile.tile-red .kk-tile-l + .kk-tile-l{color:var(--bad) !important}
  .kk-tiles .kk-tile.on .kk-tile-n{color:var(--ink) !important}
  .kk-tiles .kk-tile.on .kk-tile-l{color:var(--ink2) !important}
  .kk-tiles .kk-tile.on .kk-tile-l + .kk-tile-l{color:var(--ink) !important}
  .kk-tiles .kk-tile.on.tile-red .kk-tile-n{color:var(--bad) !important}
  /* Лічильники у Звітах (ДЗ/Обладнання/Тара/Recovery): h74, r13, число 24/800 */
  .kk-tiles.kk-tiles-rep{gap:8px}
  .kk-tiles.kk-tiles-rep .kk-tile{min-height:74px;border-radius:12px !important;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 16px}
  .kk-tiles.kk-tiles-rep .kk-tile .kk-tile-n{font-size:1.2941rem;font-weight:700;line-height:1.05}
  .kk-tiles.kk-tiles-rep .kk-tile .kk-tile-l{font-size:0.6471rem;font-weight:700;margin-top:2px}
  /* Випукла кнопка (рецепт ZIV, 05.09.2026): 4 шари тіней + радіальний градієнт, 2px мʼяко.
     Клас додається ПІСЛЯ kk-tile/kk-mgr-tile — перекриває їх фон/бордер. */
  /* Випуклість ВСІХ плиток (05.09.2026, ZIV «применяем выпуклость на всем»):
     background-image-плівка (світло зверху → тінь знизу) працює ПОВЕРХ будь-якого кольору
     плитки (золото/червоний/зелений/рожевий лишаються), + 4 шари тіней рецепту. */
  .kk-tile, .kk-mgr-tile{
    border:1px solid var(--sep2) !important;
    background-image:none !important;
    box-shadow:none;
    transition:transform .06s; }
  .kk-tile:active, .kk-mgr-tile:active{ transform:translateY(1px);
    box-shadow:none; }
  /* Випуклість CTA-кнопок Маршруту і навігаційних плашок (05.09.2026) */
  .sv-open-route, .today-date-today, .today-add-tt-btn, .today-date-nav{
    background-image:none !important;
    box-shadow:none;
    border:none !important; border-radius:8px !important; transition:transform .06s; }
  .sv-open-route:active, .today-date-today:active, .today-add-tt-btn:active, .today-date-nav:active{
    transform:translateY(1px);
    box-shadow:none; }
  /* Плашки-папки (Звіти/Аналітика/КК) — випуклі кнопки. Плівка перекриває рідний
     градієнт, тому базовий колір повертаємо через background-color (фікс 5.05.16:
     плашки ставали кремовими — просвічувало тло сторінки). */
  .folder-card{
    background-color:var(--fill) !important;
    background-image:none !important;
    box-shadow:none;
    border:1px solid var(--sep2) !important; border-radius:10px !important; transition:transform .06s; }
  .folder-card:active{ transform:translateY(1px);
    box-shadow:none; }
  .folder-card.no-sales-folder{ background-color:var(--card2) !important; box-shadow:none; }
  .folder-card.wo-folder{ background-color:var(--card2) !important; box-shadow:none; }
  .folder-card.rec-folder{ background-color:var(--pink-soft) !important; box-shadow:none; }
  .folder-card.sb-folder{ background-color:var(--card2) !important; box-shadow:none; }
  .vk-btn{ border:1px solid var(--sep2) !important; border-radius:8px;
    background:var(--card) !important;
    box-shadow:none;
    cursor:pointer; transition:transform .06s; }
  .vk-btn:active{ transform:translateY(1px);
    box-shadow:none; }
  .vk-btn.vk-gold{ background:var(--accent-soft) !important; border:1px solid var(--accent-brd) !important;
    box-shadow:none; }
  .vk-btn.vk-gold:active{ transform:translateY(1px);
    box-shadow:none; }
  .kk-tile.on{ box-shadow:0 0 0 3px var(--sep); }
  /* Розбивка по менеджерах у картці команди */
  .kk-mgr-break{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:11px; padding-top:12px; border-top:1px solid var(--sep); }
  .kk-mgr-tile{ background:var(--card); border:1px solid var(--sep2); border-top:3px solid var(--sep2); border-radius:8px; padding:8px 4px 8px; text-align:center; cursor:pointer; transition:transform .1s; }
  .kk-mgr-tile:active{ transform:scale(.95); }
  .kk-mgr-tile .kk-tile-n{ font-size:1.1765rem; }
  .kk-mgr-tile .kk-tile-l{ color:var(--ink); font-size:0.6471rem; }
  /* Ряд команди на підложці-картці: [Команда][A1..A4] однією стрічкою */
  .kk-team-wrap{ background:var(--card); border:1px solid var(--sep); border-radius:14px; padding:0; margin-bottom:10px; box-shadow:none; overflow:hidden; }
  .kk-team-strip{ display:grid; grid-template-columns:88px repeat(4,1fr); gap:0; align-items:stretch; }
  .kk-team-strip .kk-mgr-tile{ background:transparent; border:none; border-left:1px solid var(--sep); border-radius:0; padding:12px 4px; }
  .kk-team-strip > :first-child{ border-left:none; }
  .kk-team-strip.tasks-strip{ display:flex; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .kk-team-strip.tasks-strip::-webkit-scrollbar{ display:none; }
  .kk-team-strip.tasks-strip .kk-mgr-tile{ flex:0 0 auto; width:94px; padding:12px 8px; }
  .folder-card.no-sales-folder{
    background:linear-gradient(135deg, var(--card2) 0%, var(--bad-soft) 100%);
    border-color:var(--bad-brd);
  }
  .folder-card.no-sales-folder .folder-card-name{color:var(--bad)}
  .folder-card.no-sales-folder .folder-card-meta{color:var(--bad)}
  .folder-card.no-sales-folder .folder-card-arrow{color:var(--bad)}
  /* ДЗ Списане — зелена плашка */
  .folder-card.wo-folder{background:linear-gradient(135deg,var(--card2) 0%,var(--ok-soft) 100%);border-color:var(--ok-brd)}
  .folder-card.wo-folder .folder-card-name{color:var(--ok)}
  .folder-card.wo-folder .folder-card-meta{color:var(--ok)}
  .folder-card.wo-folder .folder-card-arrow{color:var(--ok)}
  .folder-card.sb-folder{
    background:linear-gradient(135deg, var(--card2) 0%, var(--ok-soft) 100%);
    border-color:var(--ok-brd);
  }
  .folder-card.sb-folder .folder-card-name{color:var(--ok)}
  .folder-card.sb-folder .folder-card-meta{color:var(--ok)}
  .folder-card.sb-folder .folder-card-arrow{color:var(--ok)}
  .folder-card.rec-folder{
    background:linear-gradient(135deg, var(--card2) 0%, var(--pink-soft) 100%);
    border-color:var(--pink-brd);
  }
  .folder-card.rec-folder .folder-card-name{color:var(--pink)}
  .folder-card.rec-folder .folder-card-meta{color:var(--pink)}
  .folder-card.rec-folder .folder-card-arrow{color:var(--pink)}
  /* Модал ЖИВОЇ КК-картки (HTML на весь экран, повторює PDF) */
  .kkl-modal{
    position:fixed;inset:0;z-index:1000;
    background:var(--card2);display:none;flex-direction:column;
  }
  .kkl-modal.open{display:flex}
  /* Шапка картки — спека ZIV 05.09.2026: темна var(--ink), кнопки випуклі, активна золота */
  .kkl-modal-toolbar{
    display:flex;align-items:center;justify-content:flex-start;
    padding:max(8px, env(safe-area-inset-top,0px)) 12px 8px;
    background:var(--inv);color:var(--on-inv);flex-shrink:0;gap:8px;
    border-bottom:1px solid var(--accent-brd);
  }
  .kkl-modal-toolbar .logo-iba{ flex-shrink:0; }
  .kkl-modal-title{
    flex:1;text-align:left;font-size:1rem;font-weight:700;color:var(--on-fill);margin-left:4px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .kkl-modal-btn{
    background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--card2);
    border:1px solid var(--accent-brd);color:var(--ink);padding:8px 16px;border-radius:8px;
    font-size:0.7647rem;font-weight:700;cursor:pointer;min-width:44px;
    box-shadow:none;
    transition:transform .06s;
  }
  .kkl-modal-btn.kkl-act, .kkl-modal-btn.on{
    background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--card2);
    color:var(--ink);
    box-shadow:none;
  }
  /* Стрілка «Назад» — золота, без рамки (як в інших шапках) */
  .kkl-modal-btn.kkl-close{ background:transparent;border:none;color:var(--on-fill);padding:4px 8px;min-width:0;box-shadow:none; }
  .kkl-modal-btn.kkl-close svg{ display:block; }
  .kkl-modal-btn:active{transform:translateY(1px);box-shadow:none}
  .kkl-modal-btn.kkl-close:active{transform:scale(.94);box-shadow:none}
  .kkl-modal-body{
    flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
    background:var(--card2);
    padding-bottom:env(safe-area-inset-bottom,8px);
  }
  .kkl-modal-body.no-sales{background:var(--card2)}

  /* ===== Жива КК-картка — точне повторення PDF ===== */
  .kk-live{padding:8px;display:flex;flex-direction:column;gap:8px;font-family:-apple-system,Arial,sans-serif;color:var(--ink);font-size:0.7059rem}
  /* «СКЛО насичена» (спека 06.09.2026): картка клієнта — скляні таблиці на графіті.
     Шапка клієнта — акцентне скло; шапки таблиць — золотий тінт .10 + назва var(--ink). */
  .kk-live .head{background:linear-gradient(165deg,var(--card) 0%,var(--accent-soft) 100%);border:1.5px solid var(--accent-brd);color:var(--ink);border-radius:12px;padding:12px 12px;display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;
    position:sticky;top:0;z-index:5;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  .kk-live .head .logo{width:30px;height:30px;background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--ink);font-size:0.6471rem;flex-shrink:0}
  .kk-live .head h2{font-size:0.7059rem;font-weight:700;margin:0;line-height:1.25;color:var(--ink)}
  /* Спека п.6/11.2 (05.09.2026): адреса ПОВНІСТЮ, до двох рядків, БЕЗ «…» */
  .kk-live .head .sub{font-size:0.6471rem;font-weight:600;color:var(--mut);margin-top:3px;line-height:1.35;white-space:normal;overflow:visible;text-overflow:clip}
  .kk-live .head .ttl{flex:1;min-width:0}
  .kk-live .head .date{margin-left:auto;display:inline-flex;align-items:center;background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:10px;color:var(--ink);padding:8px 12px;font-size:0.8824rem;font-weight:700;flex-shrink:0;align-self:center;white-space:nowrap;line-height:1.2}

  .kk-live .sales-top{display:flex;gap:8px;align-items:stretch}
  .kk-live .sales-top > .b{flex:1;margin:0}
  .kk-live .b{background:transparent;border:1px solid var(--sep2);border-radius:12px;overflow:hidden}
  .kk-live .b table{width:100%;border-collapse:collapse;font-size:0.6471rem}
  .kk-live .b th{background:var(--accent-soft);color:var(--ink);padding:4px 4px;text-align:center;font-weight:700;font-size:0.6471rem;text-transform:uppercase;letter-spacing:.04em;border:none;border-left:1px solid var(--sep);border-bottom:1px solid var(--sep2);white-space:nowrap}
  .kk-live .b th:first-child{text-align:left;color:var(--ink);font-weight:700;font-size:0.6471rem;letter-spacing:.08em;border-left:none;padding-left:8px}
  .kk-live .b td{padding:4px 4px;border:none;border-top:1px solid var(--sep);border-left:1px solid var(--sep);text-align:center;color:var(--ink2);font-weight:700;font-size:0.6471rem;font-variant-numeric:tabular-nums;white-space:nowrap}
  .kk-live .b td:first-child{text-align:left;font-weight:700;font-size:0.6471rem;color:var(--ink);border-left:none;padding-left:8px;white-space:normal}
  .kk-live .b tr.tot td{background:var(--fill);color:var(--ink);font-weight:700;font-size:0.6471rem}
  .kk-live .b tr.tot td:first-child{color:var(--ink);font-weight:700}
  .kk-live .b.dark{background:transparent;border-color:var(--sep2)}
  .kk-live .b.dark th{background:var(--accent-soft);color:var(--ink)}
  .kk-live .b.dark th:first-child{color:var(--ink)}
  .kk-live .b.dark td{color:var(--ink2);border-color:var(--sep)}
  .kk-live .b.dark td:first-child{color:var(--ink)}
  .kk-live .b.dark tr.tot td{background:var(--fill);color:var(--ink)}

  .kk-live .b .lim{color:var(--mut);font-weight:600}
  .kk-live .b td.warn{background:var(--bad-soft);color:var(--bad);font-weight:700}
  .kk-live .b td.bad{background:var(--bad-soft);color:var(--bad);font-weight:700}
  .kk-live .b .good{color:var(--ok);font-weight:700}   /* зелений — «добре», лишаємо */
  .kk-live .b .neg{color:var(--bad);font-weight:700}
  .kk-live .b .pos{color:var(--ok);font-weight:700}
  .kk-live .b .muted{color:var(--mut);font-weight:600}
  .kk-live .b .dash{color:var(--mut);font-weight:600}
  .kk-live .eq td{text-align:center}
  .kk-live .eq td:first-child{text-align:left}

  .kk-live .eq tr:last-child td{font-weight:600}
  /* Вкладені конектори (Комбі/Флеш/Ус Флеш/Корб) — курсив, відступ, приглушені */
  /* Конектори (Комбі/Флеш/Ус Флеш/Корб) — зліва під «Кега кран», без курсиву (6.00.30) */
  .kk-live .eq tr.eq-connector td:first-child{
    text-align:left; color:var(--mut); font-size:0.6471rem; font-weight:600;
  }
  .kk-live .eq td.eqk{color:var(--ink2);font-weight:600}
  .kk-live .eq td.eqr{font-weight:700}

  .kk-live .year{background:transparent;border:1px solid var(--sep2);border-radius:12px;overflow:hidden}
  .kk-live .year-head{display:flex;align-items:center;background:var(--accent-soft);border-bottom:1px solid var(--accent-brd);color:var(--ink);padding:8px 12px;font-size:0.6471rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;text-align:left}
  .kk-live .year-body{padding:12px 8px}
  .kk-live .year .bars{display:grid;grid-template-columns:repeat(13,1fr);gap:4px;align-items:end;height:120px}
  .kk-live .year .bars .br{background:var(--inv);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:4px 0;min-height:34px}
  .kk-live .year .bars .br .sku{font-size:0.6471rem;font-weight:700;color:var(--on-fill);line-height:1;margin-bottom:2px}
  .kk-live .year .bars .br .val{font-size:0.6471rem;font-weight:700;color:var(--on-fill);line-height:1.05}
  .kk-live .year .bars .br.z{background:var(--fill)}
  .kk-live .year .bars .br.z .sku{font-size:0.6471rem;color:var(--mut)}
  .kk-live .year .bars .br.z .val{color:var(--mut)}
  .kk-live .year .bars .br.cur{background:var(--accent-soft);border:1px solid var(--accent-brd)}
  .kk-live .year .bars .br.cur .sku{color:var(--ink2)}
  .kk-live .year .bars .br.cur .val{color:var(--ink2)}
  .kk-live .year .labs{display:grid;grid-template-columns:repeat(13,1fr);gap:4px;font-size:0.6471rem;color:var(--mut);text-align:center;margin-top:4px;font-weight:700;height:12px}
  .kk-live .year .labs > div{white-space:nowrap;overflow:hidden}
  .kk-live .year .labs .now{color:var(--ink);font-weight:700}

  /* «Скло насичене» 11.2/11.3: зведення в шапці + заголовки секцій з правим фактом */
  .kkl-sec{display:flex;align-items:center;gap:8px;margin:4px 2px 0;font-size:0.6471rem;font-weight:700;letter-spacing:.1em;color:var(--ink);text-transform:uppercase}
  .kkl-sec i{flex:1;height:1px;background:var(--fill2)}
  .kkl-sec b{font-size:0.6471rem;font-weight:700;letter-spacing:0;text-transform:none;white-space:nowrap}
  .kkl-hero-stats{display:flex;margin-top:8px;border-top:1px solid var(--sep2);padding-top:8px;width:100%}
  .kkl-hs{flex:1;text-align:center;min-width:0;white-space:nowrap;border-left:1px solid var(--sep2);padding:0 4px}
  .kkl-hs:first-child{border-left:none}
  .kkl-hs .v{display:block;font-size:0.7647rem;font-weight:700;color:var(--ink)}
  .kkl-hs .l{display:block;font-size:0.6471rem;font-weight:700;color:var(--mut);margin-top:1px}
  /* Кольори-як-умова класами (замість інлайну) — щоб світла версія 11.9 їх перекривала */
  .kk-live .eq30.ok{color:var(--ok);font-weight:700}
  .kk-live .eq30.bad{color:var(--bad);font-weight:700}
  .kk-live .mcur{color:var(--ink);font-weight:700}
  .kk-live .f-ok{color:var(--ok)}
  .kk-live .f-bad{color:var(--bad)}
  .kkl-sec b.f-red{color:var(--bad)}
  .kkl-sec b.f-mut{color:var(--mut)}
  .kkl-hs .hs-gold{color:var(--ink)}
  .kkl-hs .hs-red{color:var(--bad)}
  .kkl-hs .hs-dim{color:var(--mut)}
  .kkl-hs .hs-sl{color:var(--mut)}

  /* ===== 11.9 СВІТЛА ВЕРСІЯ картки клієнта (альтернатива до тестування, тумблер у барі) =====
     Та сама структура й правила кольору-як-умови; шапка екрана/таб-бар лишаються темними.
     Золото ТЕКСТУ на світлому — var(--ink) (яскраве var(--ink) для тексту ЗАБОРОНЕНО);
     заливок-підсвіток проблеми немає — проблему тримає лише колір цифри var(--bad). */
  .kkl-light{background:var(--card2) !important}
  .kkl-light .kk-live{color:var(--ink)}
  /* 11.11: sticky-шапка клієнта — суцільний фон, без backdrop-filter (миготіння на Android) */
  /* 6.01.38 (ZIV 02.10.2026, iPhone iOS 27: шапка КК «розмита»): жодних backdrop-filter у картці клієнта — iOS малює
     для них окремий шар розмиття, який на iPhone зачіпав шапку екрана. Шапка клієнта й так суцільна. */
  .kk-live .head, .kkl-modal-body, .kkl-modal-toolbar{backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
  .kkl-modal-toolbar{position:relative;z-index:6;transform:translateZ(0)}
  .kkl-light .kk-live .head{background:linear-gradient(165deg,var(--card) 0%,var(--accent-soft) 100%);border-color:var(--accent-brd);border-width:1.5px;backdrop-filter:none;-webkit-backdrop-filter:none}
  .kkl-light .kk-live .head h2{color:var(--ink)}
  .kkl-light .kk-live .head .sub{color:var(--mut)}
  .kkl-light .kk-live .head .date{color:var(--ink)}
  .kkl-light .kkl-hero-stats{border-top-color:var(--sep2)}
  .kkl-light .kkl-hs{border-left-color:var(--sep2)}
  .kkl-light .kkl-hs .v{color:var(--ink)}
  .kkl-light .kkl-hs .l{color:var(--mut)}
  .kkl-light .kkl-hs .hs-gold{color:var(--ink)}
  .kkl-light .kkl-hs .hs-red{color:var(--bad)}
  .kkl-light .kkl-hs .hs-dim{color:var(--mut)}
  .kkl-light .kkl-hs .hs-sl{color:var(--mut)}
  .kkl-light .kk-live .f-ok{color:var(--ok)}
  .kkl-light .kk-live .f-bad{color:var(--bad)}
  .kkl-light .kkl-sec{color:var(--ink)}
  .kkl-light .kkl-sec i{background:var(--fill2)}
  .kkl-light .kkl-sec b.f-red{color:var(--bad)}
  .kkl-light .kkl-sec b.f-mut{color:var(--mut)}
  .kkl-light .kk-live .b,.kkl-light .kk-live .b.dark,.kkl-light .kk-live .year{background:var(--card);border-color:var(--sep2)}
  .kkl-light .kk-live .b th,.kkl-light .kk-live .b.dark th{background:var(--accent-soft);color:var(--ink);border-left-color:var(--accent-brd);border-bottom-color:var(--accent-brd)}
  .kkl-light .kk-live .b th:first-child,.kkl-light .kk-live .b.dark th:first-child{color:var(--ink)}
  .kkl-light .kk-live .b td,.kkl-light .kk-live .b.dark td{color:var(--ink2);border-top-color:var(--sep);border-left-color:var(--sep)}
  .kkl-light .kk-live .b td:first-child,.kkl-light .kk-live .b.dark td:first-child{color:var(--ink)}
  .kkl-light .kk-live .b tr.tot td,.kkl-light .kk-live .b.dark tr.tot td{background:var(--fill);color:var(--ink)}
  .kkl-light .kk-live .b tr.tot td:first-child,.kkl-light .kk-live .b.dark tr.tot td:first-child{color:var(--ink)}
  .kkl-light .kk-live .b td.warn,.kkl-light .kk-live .b td.bad{background:transparent;color:var(--bad)}
  .kkl-light .kk-live .b .muted{color:var(--mut)}
  .kkl-light .kk-live .b .dash{color:var(--mut)}
  .kkl-light .kk-live .b .lim{color:var(--mut)}
  .kkl-light .kk-live .b .neg{color:var(--bad)}
  .kkl-light .kk-live .b .good,.kkl-light .kk-live .b .pos{color:var(--ok)}
  .kkl-light .kk-live .eq30.ok{color:var(--ok)}
  .kkl-light .kk-live .eq30.bad{color:var(--bad)}
  .kkl-light .kk-live .mcur{color:var(--ink)}
  .kkl-light .kk-live .eq tr.eq-connector td:first-child{color:var(--ink2)}
  .kkl-light .kk-live .year-head{background:var(--accent-soft);border-bottom-color:var(--accent-brd);color:var(--ink)}
  .kkl-light .kk-live .year .bars .br.z{background:var(--fill)}
  .kkl-light .kk-live .year .bars .br.z .sku,.kkl-light .kk-live .year .bars .br.z .val{color:var(--mut)}
  .kkl-light .kk-live .year .bars .br.cur{background:var(--accent-soft);border-color:var(--accent-brd)}
  .kkl-light .kk-live .year .bars .br.cur .sku,.kkl-light .kk-live .year .bars .br.cur .val{color:var(--ink)}
  .kkl-light .kk-live .year .labs{color:var(--mut)}
  .kkl-light .kk-live .year .labs .now{color:var(--ink)}
  /* Капсула — ТІЛЬКИ стрілка назад; назва екрана — світлим текстом (ZIV 06.09.2026) */
  .hdr-scr{display:inline-flex;align-items:center;gap:8px;min-width:0}
  .hdr-scr:has(> button:not([style*="none"])) > button{background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--card2);border:1px solid var(--accent-brd);border-radius:14px;color:var(--ink) !important;padding:4px 12px;display:inline-flex;align-items:center}
  .hdr-cap{display:inline-flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}
  .kkl-modal-toolbar .hdr-cap{margin-right:auto}
  .hdr-cap .ott-back,.hdr-cap .wc-back{background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--card2);border:1px solid var(--accent-brd);border-radius:14px;color:var(--ink) !important;width:auto;height:auto;font-size:1.1765rem;padding:4px 12px}
  .hdr-cap .kkl-close{background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--card2) !important;border:1px solid var(--accent-brd) !important;border-radius:14px !important;color:var(--ink) !important;padding:4px 12px !important}
  .ott-title{flex:0 1 auto !important;margin:0;background:none;border:none;padding:0 4px;color:var(--on-fill) !important;font-size:1rem !important}
  .wc-title{flex:0 1 auto !important;margin:0;background:none;border:none;padding:0 4px;color:var(--on-fill) !important;font-size:1rem !important}
  .kkl-modal-title{flex:0 1 auto !important;margin:0;background:none;border:none;padding:0 4px;color:var(--on-fill) !important;font-size:0.8824rem !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Друк живої картки (кнопка PDF → window.print). Ховаємо весь інтерфейс,
     лишаємо тільки .kk-live на повну сторінку. */
  @media print {
    body * { visibility: hidden !important; }
    .kkl-modal, .kkl-modal * { visibility: visible !important; }
    .kkl-modal { position: fixed !important; inset: 0 !important; background: var(--card) !important; overflow: visible !important; }
    .kkl-modal-toolbar { display: none !important; }
    .kk-live { padding:8px !important; }
    .kk-live .b, .kk-live .year { break-inside: avoid; page-break-inside: avoid; }
    @page { size: A4; margin: 8mm; }
  }

  /* На вузьких екранах (телефон): продажі/заводи один над одним, щоб усі колонки
     влізли в ширину. Особливо «ГРН» не повинна обрізатись. */
  @media (max-width: 500px) {
    .kk-live .sales-top{flex-direction:column;gap:8px}
    .kk-live .sales-top > .b{flex:none;width:100%}
    .kk-live .b table{font-size:0.6471rem}
    .kk-live .b th{padding:4px 4px;font-size:0.6471rem}
    .kk-live .b td{padding:4px 4px}
    .kk-live .b tr.tot td{font-size:0.6471rem}
  }

  /* П.19: щільна шкала таблиць картки — виняток лише для 400–480px.
     На ≥768px (браузер/планшет) — загальна шкала: числа 11px, підписи колонок 9px. */
  @media (min-width: 768px) {
    .kk-live .b th{font-size:0.6471rem;padding:8px 4px}
    .kk-live .b th:first-child{font-size:0.6471rem}
    .kk-live .b td{font-size:0.6471rem;padding:8px 4px}
    .kk-live .b td:first-child{font-size:0.6471rem}
    .kk-live .b tr.tot td{font-size:0.7059rem}
  }


  /* Дашборд менеджера — таблиці зі скролом на вузьких екранах */
  .mgr-card .b{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .mgr-card .b table{min-width:max-content}
  /* Заводи: ~5 рядків видимих, далі скрол всередині блока */
  .mgr-card .mgr-plants{max-height:200px;overflow-y:auto;overflow-x:auto}
  .mgr-card .mgr-plants thead th{position:sticky;top:0;z-index:1;background:var(--card)}

  /* ===== Дашборд менеджера — плиткова версія (Hero Σ + сітка плиток) ===== */
  .md-wrap{display:flex;flex-direction:column;gap:4px;padding:4px}
  /* П.18 (спека ZIV 06.09.2026): службові заголовки видимі; акцент лише в проблемного блоку */
  .md-sec{color:var(--mut);font-size:0.6471rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;margin:10px 3px 4px;display:flex;align-items:baseline;gap:8px}
  .md-sec .md-sec-kpi{margin-left:auto;font-size:0.6471rem;letter-spacing:0;text-transform:none}
  .md-panel{background:transparent;border-radius:14px;padding:0}
  .md-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .md-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
  .md-tile{background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:8px 12px;color:var(--ink)}
  .md-tile.acc-g, .md-tile.acc-y{border-left:none}
  .md-tile.acc-r{border-left:none}
  .md-nm{font-size:0.7647rem;color:var(--ink);font-weight:600}
  .md-big{font-size:1.1765rem;font-weight:700;letter-spacing:.3px;color:var(--ink);line-height:1.15}
  .md-mut{font-size:0.6471rem;color:var(--mut);line-height:1.35}
  .md-bar{height:6px;border-radius:4px;background:var(--card);overflow:hidden;margin-top:7px;border:1px solid var(--sep)}
  .md-cat{display:flex;flex-direction:column}
  .md-cat .md-cat-bar{margin-top:auto;padding-top:0}
  .md-card .year{background:var(--card);border:0;border-radius:14px;margin:0 0 4px}
  .md-card .year-body{padding:12px 12px}
  .md-card .year .bars .br{background:linear-gradient(180deg,var(--inv),var(--inv))}
  .md-card .year .bars .br.now{background:linear-gradient(180deg,var(--accent),var(--accent))}
  .md-card .year .bars .br.now .val{color:var(--ink)}
  .md-card .year .bars .br.yoy{background:linear-gradient(180deg,var(--accent),var(--accent));outline:1px solid var(--sep2);outline-offset:1px}
  .md-card .year .bars .br.yoy .sku,.md-card .year .bars .br.yoy .val{color:var(--ink)}
  .md-card .year .labs .yoy{color:var(--ink);font-weight:700}
  .md-card .year .bars .br .sku{color:var(--on-fill)}
  .md-card .year .bars .br.now .sku{color:var(--ink)}
  .md-card .year .bars .br .val{color:var(--on-fill)}
  .md-card .year .labs{color:var(--mut)}
  .md-card .year .labs .now{color:var(--ok);font-weight:700}
  /* Суми в ₴ ВЕРТИКАЛЬНО в стовпці (ZIV 06.09.2026: «горизонтально не видно») —
     текст знизу вгору над числом ТТ; при короткому стовпці вилазить вгору поверх нього */
  .md-card .year .bars .br{min-height:58px;padding:8px 0 4px}
  .md-card .year .bars .br .val{writing-mode:vertical-rl;transform:rotate(180deg);font-size:0.6471rem;font-weight:700;line-height:1;margin:0 auto 3px;order:-1;white-space:nowrap}
  .md-bar>i{display:block;height:100%;border-radius:4px}
  .md-up{color:var(--ok)}.md-dn{color:var(--bad)}
  .md-stat{background:var(--card);border:1px solid var(--sep);border-radius:10px;padding:8px 8px;text-align:center;border:1px solid var(--sep)}
  .md-stat .l{font-size:0.6471rem;color:var(--mut);text-transform:uppercase;letter-spacing:.3px}
  .md-stat .v{font-size:1rem;font-weight:700;color:var(--ink);margin-top:3px}
  .md-row-sb{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
  .md-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}
  /* П.18.5: чип інтервалу — нейтральний; червоний лише реально прострочений */
  .md-chip{font-size:0.6471rem;font-weight:700;color:var(--mut);background:var(--fill);border:1px solid var(--sep);border-radius:8px;padding:4px 8px;white-space:nowrap}
  .md-chip.bad{background:var(--bad-soft);border-color:var(--bad-brd);color:var(--bad)}
  .md-herocard{position:sticky;top:0;z-index:6;background:linear-gradient(165deg,var(--card) 0%,var(--accent-soft) 100%);border:1.5px solid var(--accent-brd);border-radius:12px;overflow:hidden;margin:0 0 6px;box-shadow:none}
  .md-herocard .head{position:static;border-radius:0;box-shadow:none;padding:12px 16px 8px;align-items:center}
  /* П.18.2: п'ять міні-плиток KPI — h48, r10, напівпрозорі */
  .md-kpirow{display:flex;gap:8px;padding:0 12px 12px}
  .md-kpi{flex:1 1 0;min-width:0;height:48px;background:var(--fill);border-radius:10px;padding:8px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
  .md-kpi-l{font-size:0.6471rem;font-weight:700;color:var(--mut);letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .md-kpi-v{font-size:0.8824rem;font-weight:700;line-height:1}
  .md-zp{padding:0 12px 12px}
  .md-zp-top{display:flex;justify-content:space-between;font-size:0.7059rem;color:var(--mut);margin-bottom:7px}
  .md-zp-bar{height:11px;background:var(--fill);border-radius:8px;overflow:hidden;display:flex}
  /* Список ЗП по сотрудникам (Аналітика РОПа) */
  .zp-row{background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px 12px;margin-bottom:8px}
  .zp-row-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
  .zp-code{flex:none;width:36px;height:30px;border-radius:8px;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:0.7647rem;display:inline-flex;align-items:center;justify-content:center}
  .zp-main{flex:1;min-width:0;font-size:0.7647rem;color:var(--ink);line-height:1.3}
  .zp-razom{flex:none;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:0.7059rem;border-radius:8px;padding:4px 8px;white-space:nowrap}
  .zp-dop{margin-top:7px;font-size:0.7059rem;color:var(--mut)}
  .md-zp-bar i{display:block;height:100%}
  .md-zp-bar .md-zp-fc{background:repeating-linear-gradient(90deg,var(--ok),var(--ok) 5px,var(--ok) 5px,var(--ok) 10px)}
  .md-zp-foot{display:flex;gap:8px;margin-top:9px}
  .md-zp-row{display:flex;gap:8px;margin-bottom:11px}
  .md-zp-stat{flex:1;min-width:0;background:var(--card);border:1px solid var(--sep);border-radius:8px;padding:8px 4px;text-align:center;border:1px solid var(--sep)}
  .md-zp-stat .md-zp-l{font-size:0.6471rem;color:var(--mut);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .md-zp-stat .md-zp-v{font-size:0.7647rem;font-weight:700;color:var(--mut);white-space:nowrap}
  .md-zp-total{border:1px solid var(--accent-brd);background:var(--inv)}
  .md-zp-total .md-zp-v{color:var(--ink)}
  .md-zp-line{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
  .md-zp-main{color:var(--mut);font-size:0.7647rem;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .md-zp-sub{color:var(--mut);font-size:0.7059rem}
  .md-zp-razom{background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:8px;padding:4px 12px;color:var(--ink);font-size:0.7647rem;font-weight:700;white-space:nowrap;flex-shrink:0}
  .md-dop-hdr{display:flex;align-items:center;gap:8px;margin:10px 3px 4px}
  .md-dop-h{color:var(--ink);font-size:0.7059rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
  .md-dop-i{width:18px;height:18px;border-radius:50%;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-size:0.6471rem;font-weight:700;font-style:italic;line-height:1;cursor:pointer;flex-shrink:0}
  .md-dop-total{margin-left:auto;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:0.7647rem;padding:4px 12px;border-radius:8px}
  .md-dop-grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .md-dop-tile{background:var(--card);border:1px solid var(--sep);border-radius:10px;padding:8px 12px;border:1px solid var(--sep)}
  .md-op{margin-bottom:8px}
  .md-op-t{display:flex;align-items:center;font-size:0.8824rem;font-weight:700;color:var(--ink);margin-bottom:8px}
  .md-op-dgrn{margin-left:auto;font-size:0.7647rem;font-weight:700;color:var(--ok)}
  .md-op-cols{display:flex;gap:12px}
  .md-op-col{flex:1;min-width:0;background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:8px 12px}
  .md-op-cl{display:flex;align-items:center;font-size:0.7059rem;font-weight:700;color:var(--mut);margin-bottom:5px}
  .md-op-cpct{margin-left:auto;font-size:0.8824rem;font-weight:700}
  .md-op-cv{font-size:0.7647rem;color:var(--mut);line-height:1.5}.md-op-cv b{color:var(--ink)}
  .md-op-bar{height:6px;background:var(--fill);border-radius:4px;overflow:hidden;margin-top:6px}
  .md-op-bar i{display:block;height:100%}
  .md-op-tap{cursor:pointer}
  .md-op-tap:active{background:var(--card)}
  .ott-modal{position:fixed;inset:0;z-index:1000;background:var(--bg);display:flex;flex-direction:column}
  /* safe-area-inset-top: на iPhone (PWA) шапка ховалась під статус-бар — «‹» не натиснути (скрін ZIV 06.09.2026) */
  .ott-bar{display:flex;align-items:center;gap:8px;padding:calc(12px + env(safe-area-inset-top,0px)) 12px 12px;background:var(--inv);border-bottom:1px solid var(--accent-brd)}
  .ott-back{width:36px;height:36px;border:none;background:none;color:var(--on-fill);font-size:1.6471rem;cursor:pointer}
  .ott-title{flex:1;text-align:center;font-size:1rem;font-weight:700;color:var(--on-fill)}
  .ott-sub{padding:8px 16px;font-size:0.7647rem;color:var(--mut);background:var(--card)}
  .ott-head{display:flex;align-items:center;padding:8px 16px;background:var(--fill);border-bottom:1px solid var(--sep);font-size:0.6471rem;font-weight:700;color:var(--mut)}
  .ott-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .ott-row{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--ink);font-size:0.7647rem;color:var(--ink)}
  .ott-row.red{background:var(--bad-soft)}
  .ott-row.red .ott-n{color:var(--bad)}
  .ott-n{flex:1;min-width:0;display:flex;flex-direction:column;gap:0px}
  .ott-nm{overflow:hidden;text-overflow:ellipsis}
  .ott-ad{font-size:0.6471rem;color:var(--mut);line-height:1.25;overflow:hidden;text-overflow:ellipsis}
  .ott-row.red .ott-ad{color:var(--bad)}
  .ott-v{flex:0 0 52px;text-align:right;font-weight:700;color:var(--mut)}
  .ott-foot{padding:12px 16px;font-size:0.7059rem;color:var(--mut);background:var(--card);border-top:1px solid var(--sep)}

  /* ===== Навчання (уроки) — рідний стиль IBA ===== */
  .lsn-modal{position:fixed;inset:0;z-index:1200;background:var(--bg);display:flex;flex-direction:column}
  .lsn-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top,0px)) 14px 10px;background:var(--inv);border-bottom:1px solid var(--accent-brd)}
  .lsn-back{flex:0 0 auto;background:var(--card);border:1px solid var(--accent-brd);border-radius:14px;color:var(--ink);font-size:1.2941rem;line-height:1;cursor:pointer;padding:4px 16px}
  .lsn-back:active{transform:scale(.96)}
  .lsn-bar-tt{flex:1;min-width:0;padding-top:0px}
  .lsn-kicker{font-size:0.6471rem;font-weight:700;letter-spacing:1.6px;color:var(--gold-text);text-transform:uppercase}
  .lsn-title{font-size:1.1765rem;font-weight:700;color:var(--on-fill);line-height:1.2;margin-top:2px}
  .lsn-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px calc(34px + env(safe-area-inset-bottom,0px))}
  /* список уроків */
  .lsn-card{display:flex;align-items:center;gap:12px;border:1px solid var(--sep);border-radius:14px;padding:16px 16px;margin-bottom:10px;cursor:pointer;
    background:var(--card);
    box-shadow:none;
    transition:transform .06s}
  .lsn-card:active{transform:translateY(1px);box-shadow:none}
  .lsn-card:active{transform:scale(.99)}
  .lsn-card-ic{flex:0 0 auto;width:46px;height:46px;border-radius:10px;background:var(--fill);display:flex;align-items:center;justify-content:center;font-size:1.2941rem}
  .lsn-card-tt{flex:1;min-width:0}
  .lsn-card-name{font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .lsn-card-sub{font-size:0.7059rem;color:var(--mut);margin-top:2px}
  .lsn-card-arr{flex:0 0 auto;color:var(--ink);font-size:1.2941rem}
  /* 7 навичок — квадратний золотий номер + бейдж «готовий урок» */
  .skl-n{flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:center}
  .skl-badge{display:inline-block;margin-left:7px;font-size:0.6471rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--on-fill);background:var(--ok);border-radius:8px;padding:4px 8px;vertical-align:middle}
  .lsn-card.skl-soon{opacity:.72}
  .lsn-card.skl-soon .lsn-card-arr{color:var(--ink)}
  /* шпаргалка (акцентна золота картка) */
  .lsn-hero{background:var(--card);border:1.5px solid var(--ink);border-radius:14px;padding:16px;box-shadow:0 0 0 1px rgba(20,22,27,.06),0 8px 22px rgba(0,0,0,.32)}
  .lsn-hero-h{font-size:0.8824rem;font-weight:700;letter-spacing:.5px;color:var(--ink);text-transform:uppercase;margin-bottom:13px}
  .lsn-step{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
  .lsn-step:last-of-type{margin-bottom:0}
  .lsn-num{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--bad);color:var(--on-fill);font-weight:700;font-size:0.8824rem;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px var(--bad-brd)}
  .lsn-step-n{flex:1;min-width:0}
  .lsn-step-t{font-size:0.8824rem;font-weight:700;color:var(--ink);line-height:1.25}
  .lsn-step-d{font-size:0.7647rem;color:var(--mut);margin-top:3px}
  .lsn-hero-hr{height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);margin:14px 0 12px}
  .lsn-hero-foot{font-size:0.8824rem;font-weight:700;color:var(--ink);line-height:1.35}
  .lsn-hero-foot .red{color:var(--bad)}
  .lsn-hint{text-align:center;font-size:0.6471rem;font-weight:700;letter-spacing:1px;color:var(--mut);text-transform:uppercase;margin:17px 0}
  /* золота плашка */
  .lsn-gold{background:var(--card);border-left:4px solid var(--ink);border-radius:12px;padding:16px 16px;font-size:0.8824rem;color:var(--ink);line-height:1.45}
  .lsn-gold b{color:var(--ink);font-weight:700}
  .lsn-sec-h{font-size:0.7059rem;font-weight:700;letter-spacing:1.6px;color:var(--mut);text-transform:uppercase;margin:22px 2px 13px;border-bottom:1px solid var(--sep);padding-bottom:8px}
  /* картки правил */
  .lsn-rule{background:var(--card);border:1px solid var(--sep);border-radius:12px;padding:12px 16px;margin-bottom:12px}
  .lsn-rule-h{display:flex;align-items:center;gap:12px;margin-bottom:8px}
  .lsn-rule-n{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:var(--fill);border:1px solid var(--sep2);color:var(--ink);font-weight:700;font-size:0.8824rem;display:flex;align-items:center;justify-content:center}
  .lsn-rule-t{font-size:1rem;font-weight:700;color:var(--ink)}
  .lsn-rule-d{font-size:0.7647rem;color:var(--ink);line-height:1.5}
  .lsn-rule-d b{color:var(--ink);font-weight:700}
  .lsn-rule-d .opt{color:var(--ink);font-weight:700;font-style:italic}
  /* червона плашка-вердикт */
  .lsn-red{background:var(--bad-soft);border:1px solid var(--bad-brd);border-radius:14px;padding:16px 16px;margin-top:6px;font-size:0.8824rem;font-weight:700;color:var(--bad);line-height:1.4}
  .lsn-foot{margin-top:16px;padding:12px 4px;border-top:1px dashed var(--sep2);font-size:0.7059rem;color:var(--mut);text-align:center}
  /* золотий номер у шпаргалці (для рівнозначних кроків) */
  .lsn-num.gold{background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);box-shadow:0 0 0 3px rgba(20,22,27,.08)}
  /* рамка-цитата «💬 Кажеш клієнту» */
  .lsn-quote{background:var(--card);border:1px solid var(--sep2);border-left:3px solid var(--ink);border-radius:10px;padding:12px 12px;margin-top:10px;font-size:0.7647rem;color:var(--ink);line-height:1.5;font-style:italic}
  .lsn-quote b{display:block;font-style:normal;font-weight:700;color:var(--ink);font-size:0.6471rem;letter-spacing:.6px;text-transform:uppercase;margin-bottom:5px}
  .lsn-after{font-size:0.7647rem;color:var(--mut);margin-top:9px;line-height:1.45}
  .lsn-after b{color:var(--mut);font-weight:700}
  /* ХПВ — картка товару + таблиця 3 колонки */
  .hpv-card{background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px 16px;margin:14px 0 16px;text-align:center}
  .hpv-card .nm{color:var(--ink);font-size:0.8824rem;font-weight:700}
  .hpv-card .ds{color:var(--mut);font-size:0.7059rem;margin-top:3px}
  .hpv-card .pr{color:var(--ink);font-weight:700;font-size:0.7647rem;margin-top:7px}
  .hpv-head{position:sticky;top:0;z-index:1;display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:4px;background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:8px 8px;margin-bottom:8px}
  .hpv-head span{font-size:0.6471rem;font-weight:700;letter-spacing:.2px;text-transform:uppercase;text-align:center;line-height:1.15}
  .hpv-h-x{color:var(--mut)}
  .hpv-h-p{color:var(--ink)}
  .hpv-h-v{color:var(--ok)}
  .hpv-row{background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:8px;margin-bottom:8px}
  .hpv-row-h{display:flex;align-items:center;gap:8px;margin-bottom:7px}
  .hpv-row-n{flex:0 0 auto;width:20px;height:20px;border-radius:8px;background:var(--fill);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:0.6471rem;display:flex;align-items:center;justify-content:center}
  .hpv-row-t{font-size:0.7647rem;font-weight:700;color:var(--ink);line-height:1.2}
  .hpv-cells{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:4px}
  .hpv-c{font-size:0.6471rem;line-height:1.32;padding:8px;border-radius:8px}
  .hpv-x{background:var(--fill);color:var(--ink);border:1px solid var(--sep)}
  .hpv-p{background:var(--accent-soft);color:var(--ink);border:1px solid var(--accent-brd)}
  .hpv-v{background:var(--ok-soft);color:var(--ok);font-style:italic;border:1px solid var(--ok-brd)}
  .hpv-v b{color:var(--ink);font-weight:700;font-style:normal}
  .md-dop-n{color:var(--mut);font-size:0.7647rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .md-dop-bf{color:var(--mut);font-size:0.6471rem;font-weight:400}
  .md-dop-d{color:var(--mut);font-size:0.6471rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .md-dop-d b{color:var(--mut);font-weight:600}
  .md-dop-bar{height:5px;background:var(--fill);border-radius:4px;margin:6px 0 5px;overflow:hidden}
  .md-dop-bar i{display:block;height:100%;border-radius:4px}
  .md-dop-payrow{display:flex;justify-content:space-between;align-items:center}
  .md-dop-pay{font-size:0.7647rem;font-weight:700}
  .md-dop-pct{color:var(--mut);font-size:0.6471rem}
  /* === Планувальник СВ — картки на кремовому, як у ТП === */
  .sv-wrap{padding:12px 12px calc(90px + env(safe-area-inset-bottom, 0px))}
  .sv-hero{margin-bottom:10px}
  .sv-tap{cursor:pointer}
  .sv-tap:active{filter:brightness(1.12)}
  .sv-tap .rh-top{display:flex;align-items:center}
  .sv-hero-go{margin-left:auto;color:var(--ink);font-size:1.2941rem;font-weight:700;line-height:1;padding-left:8px}
  .sv-change-row{display:flex;align-items:center;gap:12px;margin:0 2px 12px}
  .sv-locked{font-size:0.7059rem;color:var(--gold-text);flex:1}
  .sv-change.ghost{background:transparent;border-color:var(--accent-brd);color:var(--gold-text)}
  .sv-head{display:flex;justify-content:space-between;align-items:center;margin:4px 2px 2px}
  .sv-head-t{font-size:1.1765rem;font-weight:700;color:var(--ink)}
  .sv-head-clock{font-size:0.7059rem;color:var(--gold-text);font-weight:700;display:inline-flex;align-items:center;gap:4px}
  .sv-head-sub{font-size:0.7647rem;color:var(--mut);margin:3px 2px 14px}
  .sv-tile-i{color:var(--ink);line-height:1}
  .sv-tile-i svg{display:block}
  .sv-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .sv-tile{background:var(--card);border:1px solid var(--sep2);border-radius:14px;padding:12px 12px;min-height:94px;cursor:pointer;transition:.12s}
  .sv-tile:active{transform:scale(.97);background:var(--card)}
  .sv-tile-i{font-size:1.2941rem;line-height:1}
  .sv-tile-t{font-size:0.7647rem;font-weight:700;color:var(--ink);margin-top:8px}
  .sv-tile-s{font-size:0.6471rem;color:var(--mut);margin-top:2px}
  .sv-mode-bar{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:8px 12px;margin:2px 0 12px}
  .sv-mode-titles{flex:1}
  .sv-back{background:none;border:none;color:var(--ink);font-size:1.2941rem;line-height:1;padding:0 4px;cursor:pointer}
  .sv-mode-name{font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .sv-mode-sub{font-size:0.7059rem;color:var(--mut);margin-top:1px}
  .sv-change{background:var(--card);border:1px solid var(--ink);border-radius:8px;color:var(--ink);font-size:0.7059rem;font-weight:600;padding:8px 12px;cursor:pointer}
  .sv-sub-h{font-size:0.7059rem;font-weight:700;color:var(--ink);letter-spacing:.3px;margin:6px 2px 8px}
  .sv-tasks{display:flex;flex-direction:column;gap:8px}
  .sv-task{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:12px 12px;cursor:pointer}
  .sv-task.done{opacity:.5}
  .sv-task.done .sv-task-txt{text-decoration:line-through}
  .sv-task-chk{width:20px;height:20px;border-radius:8px;border:1.5px solid var(--ok-brd);color:var(--ok);font-size:0.7647rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .sv-task-txt{flex:1;font-size:0.7647rem;color:var(--ink)}
  .sv-task-tic{color:var(--ink);display:inline-flex;flex:0 0 auto}.sv-task-tic svg{width:17px;height:17px}
  .sv-tt-list{background:var(--card);border:1px solid var(--sep);border-radius:14px;padding:8px 12px;border:1px solid var(--sep)}
  .sv-tt-tile{display:flex;align-items:center;gap:12px;padding:12px 4px;border-top:1px solid var(--sep);cursor:pointer}
  .sv-tt-tile:first-child{border-top:none}
  .sv-tt-ic{color:var(--ink);display:inline-flex;flex:0 0 auto}.sv-tt-ic svg{width:23px;height:23px}
  .sv-tt-t{flex:1;font-size:0.8824rem;color:var(--ink);font-weight:500}
  .sv-tt-go{color:var(--ink);font-size:1.1765rem;font-weight:700}
  .sv-task-del{color:var(--ink);font-size:0.8824rem;padding:4px 4px}
  /* Автор задачі: РОП — фіолетова, СВ — червона (колір лівої полоски + тексту) */
  /* Тёмний фон, білий шрифт. Автор — кольорова смуга зліва (РОП фіолетова, СВ червона).
     Суцільний тёмний var(--ink) замість rgba(): на світлому екрані «Мої задачі» напівпрозоре
     ставало блідо-рожевим і текст зникав. */
  .sv-task.sv-by-rop{ background:var(--card); border-color:transparent; border-left:3px solid var(--ink) }
  .sv-task.sv-by-sv{  background:var(--card); border-color:var(--sep); border-left:4px solid var(--bad-brd) }
  .sv-task.sv-by-rop .sv-task-txt, .sv-task.sv-by-sv .sv-task-txt{ color:var(--ink) }
  .sv-task.done.sv-by-rop .sv-task-txt, .sv-task.done.sv-by-sv .sv-task-txt{ opacity:.55 }
  .sv-by-tag{ flex:0 0 auto; font-size:0.6471rem; font-weight:700; color:var(--ink); background:var(--accent-soft);border:1px solid var(--accent-brd);
    border-radius:8px; padding:0px 4px; margin-left:6px; letter-spacing:.3px }
  .sv-task-wrap{display:flex;flex-direction:column;gap:0}
  .sv-task-wrap .sv-task{border-radius:10px 10px 0 0;border-bottom:none}
  .sv-task-comment{width:100%;background:var(--card);border:1px solid var(--sep2);border-top:none;border-radius:0 0 10px 10px;color:var(--mut);font-size:0.7059rem;padding:8px 12px;resize:none;font-family:inherit;min-height:34px;box-sizing:border-box}
  .sv-task-comment::placeholder{color:var(--mut)}
  .sv-task-edit{flex:0 0 auto;color:var(--blue);font-size:0.8824rem;padding:4px 4px;background:none;border:none;cursor:pointer}
  .sv-task-edit:active{color:var(--ink)}
  .sv-task-editing{gap:8px}
  .sv-task-edit-input{flex:1;min-width:0;background:var(--card);border:1px solid var(--sep2);border-radius:8px;color:var(--ink);font-size:0.7647rem;padding:8px 8px;font-family:inherit}
  .sv-task-edit-ok{flex:0 0 auto;background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-brd);border-radius:8px;width:32px;height:32px;font-size:0.8824rem;cursor:pointer}
  .sv-week{display:flex;gap:8px;margin-bottom:11px}
  .meet-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-4px 0 11px;padding:8px 12px;background:var(--card);border:1px solid var(--sep2);border-radius:10px}
  .meet-bar-l{font-size:0.7059rem;color:var(--mut);font-weight:600;margin-right:2px}
  .meet-day-b{min-width:34px;background:var(--card);border:1px solid var(--sep2);border-radius:8px;padding:4px 8px;font-size:0.7059rem;font-weight:700;color:var(--mut);cursor:pointer}
  .meet-day-b.on{background:var(--accent-soft);border-color:var(--accent-brd);color:var(--ink)}
  .meet-day-b.meet-reset{color:var(--ink)}
  .sv-wday{flex:1;background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:var(--mut);min-width:0}
  .sv-wday.on{background:var(--accent-soft);border-color:var(--accent-brd);color:var(--ink)}
  .sv-wday-d{font-size:0.7647rem;font-weight:700;line-height:1}
  .sv-wday.today .sv-wday-d::after{content:'•';color:var(--ok);margin-left:3px}
  .sv-wday.on.today .sv-wday-d::after{color:var(--gold-text)}
  .sv-wday-m{font-size:0.6471rem;opacity:.82;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}
  .sv-add-btn{width:100%;background:var(--card);border:1.5px dashed var(--sep2);border-radius:12px;color:var(--mut);font-size:0.7647rem;font-weight:600;padding:12px;margin-top:10px;cursor:pointer}
  .sv-empty{text-align:center;color:var(--mut);font-size:0.7647rem;padding:24px 0}
  .sv-tp-list{display:flex;flex-direction:column;gap:8px}
  .sv-tp{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:12px 12px;cursor:pointer}
  .sv-tp-code{font-weight:700;color:var(--ink);font-size:0.8824rem}
  .sv-tp-cnt{font-size:0.7059rem;color:var(--mut);flex:1}
  .sv-tp-nm{flex:1;font-size:0.7647rem;color:var(--ink);line-height:1.35}
  .sv-tp-ad{font-size:0.6471rem;color:var(--mut)}
  .sv-tp-go{color:var(--ink);font-size:1rem;font-weight:700}
  .sv-note{background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:10px;padding:12px 12px;font-size:0.7647rem;color:var(--ink);margin-bottom:10px}
  .sv-open-route{width:100%;background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok-brd);border-radius:12px;font-size:0.8824rem;font-weight:700;padding:12px;cursor:pointer}
  .sv-search{width:100%;box-sizing:border-box;border:1px solid var(--ink);border-radius:10px;padding:12px 12px;font-size:0.8824rem;margin-bottom:10px;background:var(--card);color:var(--ink)}
  .sv-vtoggle{display:flex;gap:8px;margin-bottom:11px}
  .sv-vtoggle button{flex:1;border:1px solid var(--ink);background:var(--card);border:1px solid var(--sep);border-radius:10px;padding:8px;font-size:0.7059rem;color:var(--mut);font-weight:600;cursor:pointer}
  .sv-vtoggle button.on{background:var(--accent-soft);border-color:var(--accent-brd);color:var(--ink)}
  .sv-sc-list{display:flex;flex-direction:column;gap:8px}
  .sv-sc-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:12px 12px;cursor:pointer}
  .sv-sc-row-main{flex:1}
  .sv-sc-name{font-size:0.7647rem;font-weight:700;color:var(--ink)}
  .sv-sc-meta{font-size:0.7059rem;color:var(--mut);margin-top:2px}
  .sv-sc-share{font-size:0.8824rem;font-weight:700}
  .sv-sc-share.good{color:var(--ok)}.sv-sc-share.bad{color:var(--bad)}
  .sv-cattabs{display:flex;gap:8px;margin-bottom:11px}
  .sv-cattab{flex:1;text-align:center;font-size:0.7059rem;background:var(--card);color:var(--mut);border-radius:8px;padding:8px 0;cursor:pointer;font-weight:600;border:1px solid var(--sep2)}
  .sv-cattab.on{background:var(--accent-soft);color:var(--ink);border-color:var(--accent-brd)}
  .sv-panel{background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:4px 12px 8px;margin-bottom:8px}
  .sv-cap,.sv-sc-cap{font-size:0.6471rem;font-weight:700;color:var(--ink);letter-spacing:.3px;margin:10px 2px 6px}
  .sv-cnt-row{display:flex;justify-content:space-between;align-items:center;padding:8px 4px;border-bottom:1px solid var(--sep)}
  .sv-cnt-row.big{background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:12px 12px;margin-bottom:8px}
  .sv-cnt-row.big.our{background:var(--card);border-color:var(--ok-brd)}
  .sv-cnt-row.big.our .sv-cnt-nm{color:var(--ok)}
  .sv-cnt-row.big.chuzhi{background:var(--card);border-color:var(--bad-brd)}
  .sv-cnt-row.big.chuzhi .sv-cnt-nm{color:var(--bad)}
  .sv-cnt-nm{font-size:0.7647rem;color:var(--ink)}
  .sv-cnt-ctl{display:flex;align-items:center;gap:12px}
  .sv-cnt-ctl b{font-size:0.8824rem;color:var(--ink);min-width:18px;text-align:center}
  .sv-cnt-b{width:30px;height:30px;border-radius:8px;border:1px solid var(--sep2);background:var(--card);font-size:1rem;line-height:1;color:var(--ink);cursor:pointer}
  .sv-cnt-b.plus{color:var(--ok);border-color:var(--ok-brd)}
  .sv-add-comp{font-size:0.7059rem;font-weight:600;color:var(--mut);padding:12px 4px 4px;border-top:1px dashed var(--sep2);margin-top:6px;cursor:pointer}
  .sv-sc-total{display:flex;justify-content:space-between;background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:12px 12px;font-size:0.7059rem;margin:12px 0;color:var(--ink)}
  .sv-sc-total .good{color:var(--ok);font-weight:700}.sv-sc-total .bad{color:var(--bad);font-weight:700}
  /* Вечірній звіт СВ */
  .sv-evening{background:var(--card);border:1px solid var(--sep2);border-radius:14px;padding:12px 16px;margin-top:16px;color:var(--ink)}
  .sv-ev-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
  .sv-ev-pct{background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:0.8824rem;border-radius:10px;padding:8px 12px;min-width:46px;text-align:center}
  .sv-ev-t{font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .sv-ev-s{font-size:0.7059rem;color:var(--mut);margin-top:1px}
  .sv-ev-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
  .sv-ev-list li{display:flex;align-items:center;gap:8px;font-size:0.7647rem;color:var(--mut);padding:8px 4px;border-top:1px solid var(--ink)}
  .sv-ev-list li b{flex:1;font-weight:600;color:var(--ink)}
  .sv-ev-ic{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--ink);color:var(--ink);font-size:0.6471rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .sv-ev-ic.ok{border-color:var(--ok-brd);color:var(--ok)}
  .sv-ev-r{font-weight:700}.sv-ev-r.good{color:var(--ok)}.sv-ev-r.bad{color:var(--bad)}
  .sv-ev-empty{color:var(--mut);justify-content:center}
  /* Команда в шапці «Ранкове планування» */
  .sv-team{margin-top:12px;border-top:1px solid var(--sep);padding-top:8px;display:flex;flex-direction:column;gap:0px}
  .sv-mgr{display:flex;align-items:center;gap:12px;padding:8px 12px;margin:0 -12px;font-size:0.7647rem;color:var(--ink);cursor:pointer}
  .rop-team .sv-mgr + .sv-mgr{border-top:1px solid var(--sep)}
  .sv-mgr-f{font-size:0.7647rem;font-weight:700;color:var(--ink)}
  .sv-mgr-den{color:var(--mut);font-weight:600}
  .sv-mgr-task{margin-left:auto;font-size:0.7059rem;font-weight:700;color:var(--ink)}
  .sv-mgr-task .sv-mgr-den{font-size:0.6471rem;color:var(--mut)}
  .sv-mgr:active{background:var(--card)}
  .sv-mgr-c{font-weight:700;color:var(--ink);font-size:0.7647rem;min-width:26px}
  .sv-mgr-s{color:var(--mut)}.sv-mgr-s b{color:var(--ink);font-weight:700}
  .sv-mgr-go{color:var(--mut);font-size:1rem;font-weight:700;line-height:1}
  /* overflow:hidden — рядок СВ і задачі йдуть на всю ширину (margin:0 -12px) із прямими кутами,
     без обрізання їх фон вилазив за скруглені кути картки (скрін ZIV 06.09.2026) */
  .rop-team{background:var(--card);border:1px solid var(--sep2);border-radius:14px;padding:4px 12px;margin-bottom:8px;overflow:hidden}
  .rop-team .rop-sv{background:var(--accent-soft);border-bottom:1px solid var(--accent-brd);margin:0 -12px;padding:8px 12px;border-radius:0}
  .rop-team .rop-sv .sv-mgr-c{background:none;color:var(--ink);border:1px solid var(--accent-brd);border-radius:8px;font-size:0.6471rem;letter-spacing:.05em;padding:4px 8px;min-width:0}
  .rop-sv-tasks{margin:0 -12px;padding:4px 12px 8px 12px;background:var(--accent-soft);border-bottom:1px solid var(--sep);display:flex;flex-direction:column;gap:4px}
  .rop-sv-task{font-size:0.7059rem;color:var(--mut);line-height:1.35}
  .rop-sv-task .rdone{color:var(--ok)}
  .rop-sv-cmt{font-size:0.7059rem;color:var(--mut);margin-top:1px;padding-left:12px}
  .sv-team-empty{color:var(--mut);font-size:0.7059rem;padding:8px 4px}
  .sv-self{display:flex;align-items:center;gap:8px;margin-top:9px;border-top:1px solid var(--sep);padding-top:12px}
  .sv-self-ic{color:var(--ink);display:inline-flex}.sv-self-ic svg{width:17px;height:17px}
  .sv-self-t{font-weight:700;color:var(--ink);font-size:0.7647rem;flex:1}
  .sv-self-m{font-size:0.7647rem;color:var(--mut)}.sv-self-m b{color:var(--ok);font-weight:700}
  .sv-self-none{font-size:0.7647rem;color:var(--mut);font-style:italic}
  .sv-section-cap{display:flex;justify-content:space-between;align-items:baseline;margin:16px 2px 9px;text-transform:uppercase}
  .sv-section-cap .cap-t{font-size:0.7647rem;font-weight:700;color:var(--ink);border-bottom:1px solid var(--accent-brd);padding-bottom:4px;letter-spacing:.3px}
  .sv-section-cap .cap-sum{font-size:0.6471rem;font-weight:700;color:var(--mut)}
  /* 9.1 шапка РОП: два стовпці через роздільник + прогрес */
  .rop-stats{display:flex;border-top:1px solid var(--sep);margin-top:12px;padding-top:12px}
  .rop-stat{flex:1;padding:0 12px;min-width:0}
  .rop-stat+.rop-stat{border-left:1px solid var(--sep)}
  .rop-stat-n{font-size:1.2941rem;font-weight:700;color:var(--ink);line-height:1.1}
  .rop-stat-n .den{font-size:0.7647rem;font-weight:700;color:var(--mut)}
  .rop-stat-n.gold{color:var(--ink)}
  .rop-stat-l{font-size:0.6471rem;font-weight:700;letter-spacing:.06em;color:var(--mut);text-transform:uppercase;margin-top:3px}
  .rop-prog{height:4px;border-radius:4px;background:var(--fill2);margin-top:7px;overflow:hidden}
  .rop-prog i{display:block;height:100%;background:var(--accent)}
  /* Звіт по зборах */
  .mr-tt{background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px 12px;margin-bottom:9px}
  .mr-tt-h{font-size:0.7647rem;font-weight:700;color:var(--ink);display:flex;align-items:flex-start;gap:8px}
  /* День зборів (6.00.49): шапка ТТ як плитка маршруту — плашка КК + ряд зведення */
  .mr-tt-h.mr-tt-h2{flex-wrap:wrap;background:linear-gradient(165deg,var(--card) 0%,var(--accent-soft) 100%);border:1.5px solid var(--accent-brd);border-radius:12px;padding:12px 12px;margin:-4px -5px 10px}
  .mr-tt-h.mr-tt-h2 .mr-tt-ad{display:block;margin-top:3px;font-weight:600;line-height:1.3}
  .mr-tt-h.mr-tt-h2 .kkl-hero-stats{flex-basis:100%;width:auto;margin:9px -6px 0}
  .mr-tt-h.mr-tt-h2 .kkl-hs{flex:1 1 auto;padding:0 4px}
  .mr-tt-h.mr-tt-h2 .kkl-hs.kkl-hs-tr{flex:1.7 1 auto}
  .mr-tt-h.mr-tt-h2 .kkl-hs .v{font-size:0.7059rem} .mr-tt-h.mr-tt-h2 .kkl-hs.kkl-hs-tr .v{font-size:0.6471rem}
  .mr-tt-h.mr-tt-h2 .kkl-hs .f-ok{color:var(--ok)} .mr-tt-h.mr-tt-h2 .kkl-hs .f-bad{color:var(--bad)}
  .mr-tt-nm{flex:1;min-width:0}
  .mr-tt-ad{font-size:0.6471rem;font-weight:400;color:var(--mut)}
  .mr-kk-btn{flex:0 0 auto;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);border-radius:8px;padding:4px 12px;font-size:0.7059rem;font-weight:700;cursor:pointer;letter-spacing:.3px}
  .mr-kk-btn:active{background:var(--accent-soft)}
  .mr-added{border-color:var(--ok-brd);cursor:pointer}
  .mr-added:active{background:var(--card)}
  .mr-added-meta{font-size:0.7059rem;color:var(--mut);margin-top:6px}
  .mr-added-meta .mr-geo{color:var(--ok);font-weight:600}
  .mr-added-meta .mr-nogeo{color:var(--gold-text)}
  .mr-added-meta .mr-open-hint{color:var(--ink);font-weight:600}
  .mr-tasks{margin:8px 0;display:flex;flex-direction:column;gap:4px}
  .mr-task{display:flex;align-items:center;gap:8px;font-size:0.7647rem;color:var(--mut);cursor:pointer;padding:4px 0}
  /* 6.01.51 (ZIV 05.10.2026): між задачами — пунктирна лінія */
  .mr-task + .mr-task{border-top:1px dashed var(--sep2);padding-top:8px}
  .mr-chk{width:21px;height:21px;border-radius:8px;border:1.5px solid var(--sep2);color:var(--mut);font-size:0.7059rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .mr-chk.done{background:var(--ok-soft);border-color:var(--ok-brd);color:var(--ok)}
  .mr-chk.fail{background:var(--bad-soft);border-color:var(--bad-brd);color:var(--bad)}
  .mr-txt{flex:1}
  .mr-comment{width:100%;box-sizing:border-box;background:var(--card);border:1px solid var(--sep2);border-radius:8px;color:var(--ink);font-size:0.7059rem;padding:8px 8px;resize:vertical;min-height:38px;font-family:inherit}
  .mr-comment::placeholder{color:var(--ink)}
  /* Задачі СВ/РОП на ТТ — світяться (золотий) поки не виконані */
  /* Блок «Задачі від СВ/РОП» на зборах — золоте скло в4 (6.00.50), не чорна плашка v2 */
  .mr-svblock{margin:6px 0 8px;background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:10px;padding:8px 8px}
  .mr-svcap{font-size:0.6471rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);margin-bottom:5px}
  .mr-svtask{display:flex;align-items:center;gap:8px;font-size:0.7647rem;color:var(--ink);padding:4px 0}
  /* 6.01.50 (ZIV 05.10.2026): кожна задача — окрема плашка; від кого — у шапці плашки; СВ — червоне скло, РОП — фіолетове */
  .mr-svcard{border-radius:10px;padding:8px 8px 8px;margin-bottom:7px;border:1px solid}
  .mr-svcard.by-sv{background:var(--bad-soft);border-color:var(--bad-brd)}
  .mr-svcard.by-rop{background:var(--blue-soft);border-color:var(--blue-brd)}
  .mr-svcard-h{display:flex;align-items:center;gap:8px;font-size:0.6471rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:5px}
  .mr-svcard-h > span:first-child{flex:1;min-width:0}
  /* 6.01.52 (ZIV 05.10.2026): строк — помітна «кнопка» праворуч у шапці плашки; без дати — «безстроково» */
  .mr-svcard .mr-svdl{margin-left:0;flex:0 0 auto;font-size:0.6471rem;font-weight:700;letter-spacing:0;text-transform:none;border-radius:999px;padding:4px 12px;background:var(--card);color:var(--ink);border:1.5px solid var(--sep2);vertical-align:0}
  .mr-svcard .mr-svdl.dl-soon{background:var(--accent);color:var(--on-accent);border-color:var(--accent-brd)}
  .mr-svcard .mr-svdl.dl-over{background:var(--bad);color:var(--on-fill);border-color:var(--bad-brd)}
  .mr-svcard .mr-svdl.dl-none{background:var(--card)}   /* 6.01.53: «безстроково» — біла, як «до 10.10» */
  .mr-svcard.by-sv .mr-svcard-h{color:var(--bad)}
  .mr-svcard.by-rop .mr-svcard-h{color:var(--blue)}
  .mr-svcard .mr-svtask{padding:4px 0}
  .mr-svchk{width:21px;height:21px;border-radius:8px;border:1.5px solid var(--accent-brd);background:var(--card);color:var(--ink);font-size:0.7059rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto;cursor:pointer}
  .mr-svtxt{flex:1}
  .mr-svfrom{font-size:0.6471rem;font-weight:700;color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:8px;padding:4px 8px;flex:0 0 auto}
  .mr-svadd{display:flex;gap:8px;margin-top:6px;align-items:flex-start}
  /* 6.01.49 (ZIV 05.10.2026): поле задачі — textarea, що росте під час набору (видно весь текст) */
  .mr-svadd-in{flex:1;min-width:0;box-sizing:border-box;background:var(--card);border:1px solid var(--sep2);border-radius:8px;color:var(--ink);font-size:0.7647rem;line-height:1.35;padding:8px 8px;font-family:inherit;resize:none;overflow:hidden;min-height:36px;height:36px}
  /* дата — квадратик з календариком першим; сам input type=date прозорий поверх (тап відкриває системний календар) */
  .mr-svadd-dt{position:relative;flex:0 0 auto;width:38px;height:36px;box-sizing:border-box;background:var(--card);border:1px solid var(--sep2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--ink);overflow:hidden}
  .mr-svadd-dt.on{width:auto;padding:0 8px;background:var(--accent-soft);border-color:var(--accent-brd)}
  .mr-svadd-dtv{font-size:0.7059rem;font-weight:700;white-space:nowrap}
  .mr-svadd-dt .mr-svadd-due{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;padding:0;margin:0;cursor:pointer}
  .mr-svadd-in::placeholder{color:var(--gold-text)}
  .mr-svadd-btn{flex:0 0 auto;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);border-radius:8px;font-weight:700;font-size:0.7059rem;padding:0 12px;cursor:pointer}
  .mr-svadd-btn:disabled{opacity:.6}
  .mr-svadd-btn{height:36px}
  /* Чип дедлайну в задачі (День зборів) */
  .mr-svdl{display:inline-block;margin-left:8px;font-size:0.6471rem;font-weight:700;border-radius:8px;padding:0px 8px;vertical-align:1px}
  .mr-svdl.dl-soon{background:var(--accent-soft);color:var(--ink);border:1px solid var(--accent-brd)}
  .mr-svdl.dl-over{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad-brd)}
  /* 6.01.74 (СВ А, 13.10.2026): текст задачі зі строком «горить» був світло-жовтим (спадок темної теми) — на світлій плашці не читався. Тепер чорний; прострочено — червоний. */
  .mr-svtask.is-soon{color:var(--ink);font-weight:700}
  .mr-svtask.is-over{color:var(--bad);font-weight:700}
  /* КК: кнопка «+ у маршрут» і модал вибору днів */
  .kk-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}
  .kk-route-btn{font-size:0.6471rem;font-weight:700;border:1px solid var(--accent-brd);background:var(--accent-soft);color:var(--ink);border-radius:8px;padding:4px 12px;cursor:pointer}
  .kk-route-btn.on{background:var(--inv);border-color:var(--ok-brd);color:var(--ok)}
  .kk-hide-btn{font-size:0.6471rem;font-weight:700;border:1px solid var(--ink);background:var(--inv);color:var(--pink);border-radius:8px;padding:4px 12px;cursor:pointer}
  .kk-hide-btn.on{background:var(--card);border-color:var(--sep2);color:var(--ink)}
  .rp-modal{position:fixed;inset:0;background:var(--scrim);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
  .rp-card{background:var(--card);border:1px solid var(--sep2);border-radius:14px;padding:20px 16px;max-width:340px;width:100%;box-shadow:0 18px 60px rgba(0,0,0,.5)}
  .rp-h{font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .rp-mgr{font-size:0.6471rem;font-weight:700;color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:8px;padding:4px 8px;margin-left:6px}
  .rp-addr{font-size:0.7059rem;color:var(--mut);margin-top:4px}
  .rp-sub{font-size:0.7059rem;color:var(--mut);margin:12px 0 8px}
  .rp-days{display:flex;gap:8px;flex-wrap:wrap}
  .rp-day{flex:1;min-width:42px;padding:12px 0;border-radius:10px;border:1.5px solid var(--sep);background:var(--card);color:var(--mut);font-size:0.8824rem;font-weight:700;cursor:pointer}
  .rp-day.on{background:var(--accent-soft);border-color:var(--accent-brd);color:var(--ink)}
  .rp-close{width:100%;margin-top:14px;padding:12px;border:none;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-size:0.8824rem;font-weight:700;cursor:pointer}
  /* Задачі на менеджера — рожеві, зверху маршруту */
  .mtask-wrap{display:flex;flex-direction:column;gap:8px;padding:12px 12px 4px}
  .mtask{background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px 12px}   /* 6.00.66: база світла (v2 була бордова) */
  .mtask-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
  .mtask-from{font-size:0.6471rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--bad)}
  .mtask-dates{font-size:0.6471rem;color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent-brd);border-radius:8px;padding:4px 8px;white-space:nowrap}
  .mtask-body{display:flex;align-items:center;gap:12px}
  .mtask-txt{flex:1;font-size:0.8824rem;font-weight:600;color:var(--ink);line-height:1.35}
  .mtask-go{flex:0 0 auto;color:var(--bad);font-size:1.2941rem;font-weight:700;line-height:1}
  .mtask-cmt{margin-top:7px;font-size:0.7059rem;color:var(--mut);line-height:1.4}
  .mtask-cmt b{color:var(--bad);font-weight:700}
  /* Автор задачі: РОП — фіолетова плашка, СВ — червона (суцільна заливка) */
  .mtask.mtask-by-rop{ background:linear-gradient(150deg, var(--bad-soft) 0%, var(--bad-soft) 60%, var(--bad-soft) 100%); border:1px solid var(--bad-brd); border-left:3px solid var(--bad-brd); border-radius:14px }
  .mtask.mtask-by-rop .mtask-from{ color:var(--ink); font-size:0.6471rem; letter-spacing:.1em }
  .mtask.mtask-by-rop .mtask-dates{ background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); font-size:0.6471rem; font-weight:700; border-radius:8px }
  .mtask.mtask-by-rop .mtask-txt{ color:var(--ink) }
  .mtask.mtask-by-rop .mtask-go{ color:var(--rop) }
  .mtask.mtask-by-rop .mtask-dates{ background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); font-weight:700 }
  .mtask.mtask-by-rop .mtask-cmt{ color:var(--rop) }
  .mtask.mtask-by-rop .mtask-cmt b{ color:var(--ink) }
  .mtask.mtask-by-sv{ background:var(--bad-soft); border-color:var(--bad-brd); border-left:3px solid var(--bad-brd); border-radius:14px }
  .mtask.mtask-by-sv .mtask-from{ color:var(--bad); font-size:0.6471rem; letter-spacing:.1em }
  .mtask.mtask-by-sv .mtask-txt{ color:var(--ink) }
  .mtask.mtask-by-sv .mtask-go{ color:var(--bad) }
  .mtask.mtask-by-sv .mtask-dates{ background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); font-weight:700 }
  .mtask.mtask-by-sv .mtask-cmt{ color:var(--mut) }
  .mtask.mtask-by-sv .mtask-cmt b{ color:var(--ink) }
  /* Спецзадача: SKU + квадратики + лінія */
  .stk-item{ background:var(--card); border:1px solid var(--sep); border-radius:10px; padding:8px 12px; margin-bottom:7px }   /* 6.00.66: біла картка замість сірої підкладки v2 */
  .stk-sku{ color:var(--ink); font-size:0.7647rem; font-weight:700; margin-bottom:7px; line-height:1.3 }
  .stk-chips{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:7px }
  .mtask-spec-done{border:2px solid var(--ok-brd) !important}
.stk-chip-over{background:var(--ok-soft) !important;border-color:var(--ok-brd) !important;color:var(--ok) !important}
.stk-chip-add{background:transparent !important;border:1px dashed var(--sep2) !important;color:var(--mut) !important;font-weight:700}
.stk-chip-nd{width:auto !important;padding:0 12px;background:transparent !important;border:1px solid var(--bad-brd) !important;color:var(--bad) !important;font-size:0.7059rem !important}
.stk-chip-nd.on{background:var(--bad-soft) !important;border-color:var(--bad-brd) !important;color:var(--bad) !important}
.stk-num-over{color:var(--ok) !important}
.stk-chip{ width:34px; height:32px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center;
    font-size:0.7647rem; font-weight:700; cursor:pointer; background:var(--fill); color:var(--ink); user-select:none }
  .stk-chip.on{ color:var(--ink);
    background:var(--accent-soft);border:1px solid var(--accent-brd);
    box-shadow:none}
  .stk-chip-add{ background:transparent !important; border:1.5px dashed var(--sep2); color:var(--mut) }
  .stk-step{ display:flex; align-items:center; gap:12px; margin-bottom:7px }
  .stk-btn{ width:30px; height:30px; border-radius:8px; background:var(--card); border:1px solid var(--sep2); color:var(--ink); font-size:1rem; line-height:1; cursor:pointer }
  .stk-num{ color:var(--ink); font-size:0.8824rem; font-weight:700; min-width:56px; text-align:center }
  .stk-line{ display:flex; align-items:center; gap:8px }
  .stk-bar{ flex:1; height:6px; background:var(--fill2); border-radius:4px; overflow:hidden }
  .stk-bar i{ display:block; height:100%; background:var(--accent) }
  .stk-pct{ color:var(--ink); font-size:0.6471rem; font-weight:700; white-space:nowrap }
  .stk-total{ display:flex; align-items:center; gap:8px; border-top:1px solid var(--sep); padding-top:8px; margin-top:2px }
  .stk-total .stk-bar{ height:7px }
  /* Дедлайн на плашці задачі-на-менеджера */
  /* Дедлайн (6.00.66): «скоро» — золота рамка, «прострочено» — червона; без чорних обводок і темних заливок */
  .mtask.mtask-soon{border-color:var(--accent-brd);box-shadow:0 0 0 1px var(--accent-brd) inset}
  .mtask.mtask-over{border-color:var(--bad-brd);box-shadow:0 0 0 2px var(--bad-brd) inset;background:var(--bad-soft)}
  /* Дедлайн не перебиває колір автора — лишаємо лише рамку/обводку */
  .mtask.mtask-by-rop.mtask-over, .mtask.mtask-by-sv.mtask-over{ background:inherit }
  .mtask.mtask-by-rop.mtask-over, .mtask.mtask-by-sv.mtask-over{ border-color:var(--bad-brd); box-shadow:0 0 0 2px var(--bad-brd) inset }
  .mtask.mtask-by-rop.mtask-soon, .mtask.mtask-by-sv.mtask-soon{ border-color:var(--accent-brd); box-shadow:0 0 0 1px var(--accent-brd) inset }
  .mtask.mtask-by-rop .mtask-dl, .mtask.mtask-by-sv .mtask-dl{ background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); border-color:var(--accent-brd); font-weight:700 }
  .mtask-dl{display:inline-block;margin-left:8px;font-size:0.6471rem;font-weight:700;border-radius:8px;padding:0px 8px;vertical-align:1px}
  .mtask-dl.dl-soon{background:var(--accent-soft);color:var(--ink);border:1px solid var(--accent-brd)}
  .mtask-dl.dl-over{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad-brd)}
  /* Дедлайн у плашках задач картки ТТ (taskPlatesHtml) */
  .tt-task-dl{display:inline-block;margin-left:7px;font-size:0.6471rem;font-weight:700;border-radius:8px;padding:0px 8px}
  .tt-task-dl.dl-soon{background:var(--accent-soft);color:var(--ink);border:1px solid var(--accent-brd)}
  .tt-task-dl.dl-over{background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad-brd)}
  .tt-task-line.tp-over{color:var(--bad)}
  .tt-task-line.tp-soon{color:var(--gold-text)}
  /* Дедлайн у задачах маршруту (today-task) */
  .today-task-dl{display:inline-block;margin-left:7px;font-size:0.6471rem;font-weight:700;border-radius:8px;padding:0px 8px;white-space:nowrap}
  .today-task-dl.dl-soon{background:var(--accent-soft);color:var(--gold-text)}
  .today-task-dl.dl-over{background:var(--bad-soft);color:var(--bad)}
  .today-task.t-over{background:var(--card)}
  .today-task.t-soon{background:var(--card2)}
  /* Секція «ПРОСТРОЧЕНО» зверху списку задач маршруту */
  .today-section.s-overdue .today-section-hdr{color:var(--bad);font-weight:700}
  .today-section.s-overdue{border:1px solid var(--bad-brd);border-radius:10px;background:var(--card);margin-bottom:8px}
  /* Деталь дня СВ (РОП) */
  .svd-modal{position:fixed;inset:0;background:var(--scrim);z-index:9999;display:flex;align-items:flex-end;justify-content:center;padding:0}
  .svd-card{background:var(--card);border-top:1px solid var(--sep);border-radius:14px 14px 0 0;width:100%;max-width:560px;max-height:82vh;overflow-y:auto;padding:0 0 20px}
  .svd-head{position:sticky;top:0;background:var(--card);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 12px;border-bottom:1px solid var(--ink)}
  .svd-title{font-size:1rem;font-weight:700;color:var(--ink)}
  .svd-mode{font-size:0.7647rem;color:var(--ink);margin-top:2px}
  .svd-x{flex:0 0 auto;background:none;border:none;color:var(--mut);width:32px;height:32px;font-size:1.2941rem;cursor:pointer}
  .svd-body{padding:12px 16px}
  .svd-sub{font-size:0.6471rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);margin:10px 0 7px}
  .svd-task{background:var(--card);border:1px solid var(--sep2);border-radius:10px;padding:12px 12px;margin-bottom:8px}
  .svd-task-h{display:flex;align-items:flex-start;gap:8px}
  .svd-chk{flex:0 0 auto;width:20px;height:20px;border-radius:8px;border:1.5px solid var(--ink);color:var(--ink);font-size:0.7059rem;display:flex;align-items:center;justify-content:center}
  .svd-chk.on{border-color:var(--ok-brd);color:var(--ok)}
  .svd-txt{flex:1;font-size:0.7647rem;color:var(--ink);line-height:1.35}
  .svd-type{font-size:0.6471rem;color:var(--ink);margin:5px 0 0 29px}
  .svd-cmt{font-size:0.7059rem;color:var(--mut);margin:4px 0 0 29px;line-height:1.4}
  .svd-empty{text-align:center;color:var(--mut);padding:24px}
  .svd-add{display:flex;gap:8px;margin-top:12px}
  .svd-add-in{flex:1;min-width:0;box-sizing:border-box;background:var(--card);border:1px solid var(--sep2);border-radius:8px;color:var(--ink);font-size:0.7647rem;padding:8px 12px;font-family:inherit}
  .svd-add-in::placeholder{color:var(--ink)}
  .svd-add-btn{flex:0 0 auto;background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);border-radius:8px;font-weight:700;font-size:0.7647rem;padding:0 16px;cursor:pointer}
  .svd-add-btn:disabled{opacity:.6}
  .sv-dash-cards{display:flex;flex-direction:column;gap:8px;margin-top:4px}
  .sv-dashc{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px 12px;cursor:pointer}
  .sv-dashc:active{filter:brightness(1.12)}
  .sv-dashc-code{background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:0.8824rem;border-radius:10px;padding:8px 12px;min-width:34px;text-align:center;flex:0 0 auto}
  .sv-dashc-body{flex:1}
  .sv-dashc-t{font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .sv-dashc-s{font-size:0.7059rem;color:var(--mut);margin-top:2px}
  .sv-dashc-kpi{font-size:1rem;font-weight:700}
  .sv-dashc-kpi.good{color:var(--ok)}.sv-dashc-kpi.bad{color:var(--bad)}
  .sv-ev-cap{font-size:0.6471rem;font-weight:700;color:var(--ink);letter-spacing:.3px;margin:10px 2px 4px}
  .sv-ev-team{display:flex;flex-direction:column;gap:0px;margin-bottom:4px}
  .md-hstats{padding:0 12px 12px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
  .md-hstats .md-stat{background:var(--card)}
  /* Inline-режим: відступ знизу, щоб графік не накладався на нижнє меню */
  #analytics-content .mgr-card{padding-bottom:90px}
  /* ===== Написати клієнту (картинка для Viber) ===== */
  .wc-modal{position:fixed;inset:0;z-index:1300;background:var(--bg);display:flex;flex-direction:column}
  .wc-bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top,0px)) 14px 12px;background:var(--inv);border-bottom:1px solid var(--accent-brd)}
  .wc-back{flex:0 0 auto;width:40px;height:40px;border:none;background:none;color:var(--on-fill);font-size:1.6471rem;line-height:1;cursor:pointer;padding:0}
  .wc-title{font-size:1rem;font-weight:700;color:var(--on-fill)}
  .wc-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 12px calc(30px + env(safe-area-inset-bottom,0px))}
  /* 13.1 (спека ZIV): теми — чипи в один рядок зі скролом, без емодзі */
  .wc-vars{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -12px 14px;padding:0 12px;scrollbar-width:none}
  .wc-vars::-webkit-scrollbar{display:none}
  .wc-var{flex:0 0 auto;height:32px;display:inline-flex;align-items:center;background:var(--card);border:1px solid var(--sep2);color:var(--mut);border-radius:14px;padding:0 12px;font-size:0.7059rem;font-weight:700;cursor:pointer;white-space:nowrap}
  .wc-var.sel{color:var(--ink);font-weight:700;border:none;
    background:var(--accent-soft);border:1px solid var(--accent-brd);
    box-shadow:none}
  .wc-var.off{opacity:.5;cursor:not-allowed}
  .wc-soon{display:block;font-size:0.6471rem;color:var(--mut);font-weight:600;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}
  .wc-preview{width:100%;max-width:420px;margin-left:auto;margin-right:auto;border-radius:14px;display:block;box-shadow:none;image-rendering:-webkit-optimize-contrast}
  /* 13.7: одна головна золота «Надіслати клієнту» + квадратна копія зліва */
  .wc-actions{display:flex;gap:8px;margin-top:10px}
  .wc-btn{flex:1;height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;font-size:0.8824rem;font-weight:700;cursor:pointer;border:1px solid var(--sep2);background:var(--card);color:var(--ink)}
  .wc-btn.wc-share{border:none;color:var(--ink);
    background:var(--accent-soft);border:1px solid var(--accent-brd);
    box-shadow:none}
  .wc-btn.wc-share:active{transform:translateY(1px);box-shadow:none}
  .wc-btn.wc-copy{flex:0 0 52px}
  /* ===== P&L демо ===== */
  .pnl-kicker{font-size:0.6471rem;font-weight:700;letter-spacing:1.5px;color:var(--ink);text-transform:uppercase}
  .pnl-title{font-size:1.2941rem;font-weight:700;color:var(--ink);margin-top:3px}
  .pnl-sub{font-size:0.7647rem;color:var(--mut);margin:2px 0 14px}
  .pnl-hero{background:var(--card);border:1.5px solid var(--sep2);border-radius:14px;padding:20px;text-align:center;margin-bottom:16px}
  .pnl-hero-l{font-size:0.7059rem;color:var(--mut);text-transform:uppercase;letter-spacing:.5px}
  .pnl-hero-v{font-size:2rem;font-weight:700;color:var(--ok);margin:4px 0 2px}
  .pnl-hero-p{font-size:0.7647rem;color:var(--mut)}
  .pnl-row{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:10px;margin-bottom:7px;background:var(--card);border:1px solid var(--sep2)}
  .pnl-l{flex:1;font-size:0.8824rem;color:var(--ink);font-weight:600}
  .pnl-note{display:inline-block;margin-left:6px;font-size:0.6471rem;color:var(--mut);background:var(--card);border:1px solid var(--sep);border-radius:8px;padding:0px 8px;font-weight:700;border:1px solid var(--sep)}
  .pnl-v{font-size:0.8824rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
  .pnl-p{flex:0 0 54px;text-align:right;font-size:0.7647rem;color:var(--mut);font-weight:700}
  .pnl-rev .pnl-v{color:var(--ink)}
  .pnl-cost .pnl-v{color:var(--bad)}
  .pnl-gm .pnl-l,.pnl-gm .pnl-v{color:var(--ink);font-weight:700}
  .pnl-foot{margin-top:14px;padding:12px 12px;background:var(--card);border:1px solid var(--sep);border-radius:10px;font-size:0.7059rem;color:var(--mut);line-height:1.5}
  .pnl-foot b{color:var(--ink)}
  /* Аналітика — картки в новому дизайн-коді (05.09.2026): чорні випуклі кнопки */
  .ana-svdash{display:flex;align-items:center;gap:12px;border:1px solid var(--sep2);border-radius:14px;padding:16px 16px;margin:0 0 10px;cursor:pointer;
    background:var(--card);
    box-shadow:none;
    transition:transform .06s}
  .ana-svdash:active{transform:translateY(1px);
    box-shadow:none}
  .ana-svdash-ic{color:var(--ink);display:inline-flex;flex:0 0 auto}
  .ana-svdash-t{flex:1;color:var(--ink);font-size:0.8824rem;font-weight:700;line-height:1.3}
  .ana-svdash-s{color:var(--mut);font-size:0.6471rem;font-weight:600}
  .ana-svdash-go{color:var(--ink);font-size:1.2941rem;font-weight:700}
  .ana-sq{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .ana-sq .ana-svdash{flex-direction:column;align-items:flex-start;gap:8px;min-height:132px;margin:0;padding:16px 16px 12px;justify-content:flex-start}
  .ana-sq .ana-svdash-ic svg{width:26px;height:26px}
  .ana-sq .ana-svdash-t{flex:0 0 auto;font-size:0.8824rem;margin-top:2px}
  .ana-sq .ana-svdash-go{display:none}
  /* Плитка «Задачі СВ/РОП» + список з папками */
  .ana-svover-badge{flex:0 0 auto;background:var(--bad);color:var(--on-fill);font-size:0.7647rem;font-weight:700;border-radius:10px;min-width:24px;text-align:center;padding:4px 8px}
  .ar-mon.st-tab-over.on{background:var(--bad);color:var(--on-fill)}
  .ar-mon.st-tab-over{color:var(--bad)}
  .ov-row{background:var(--card);border:1px solid var(--sep);border-radius:10px;padding:12px 12px;margin-bottom:9px;cursor:pointer}
  
  .ov-row:active{filter:brightness(1.1)}
  .ov-row-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}
  .ov-mgr{font-size:0.6471rem;font-weight:700;letter-spacing:.03em;color:var(--mut);background:var(--card);border:1px solid var(--sep);border-radius:8px;padding:4px 8px;border:1px solid var(--sep)}
  .ov-days{font-size:0.6471rem;font-weight:700;border-radius:8px;padding:4px 8px;white-space:nowrap}
  .ov-days-over{color:var(--bad);background:var(--bad-soft);border:1px solid var(--bad-brd)}
  .ov-days-soon{color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent-brd)}
  .ov-days-none{color:var(--mut);background:var(--card)}
  .ov-title{font-size:0.8824rem;font-weight:600;color:var(--ink);line-height:1.35}
  .ov-meta{font-size:0.6471rem;color:var(--mut);margin-top:4px}
  .st-team-h{font-size:0.8824rem;font-weight:700;color:var(--ink);margin:2px 2px 10px}
  .st-mgr-cap{font-size:0.6471rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin:12px 2px 7px}
  /* Рейтинг менеджерів */
  .rat-row{background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px 12px;margin-bottom:9px;cursor:pointer}
  .rat-row.rat-row-static{cursor:default}
  .rat-row:active{filter:brightness(1.1)}
  .rat-top{display:flex;align-items:center;gap:12px}
  .rat-rank{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:var(--card);color:var(--mut);font-size:0.7647rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:1px solid var(--sep)}
  .rat-rank.rat-rank-top{background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink)}
  .rat-code{flex:1;min-width:0;font-size:0.8824rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rat-name{font-weight:500;color:var(--mut);font-size:0.7059rem}
  .rat-total{flex:0 0 auto;font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .rat-bar{height:5px;border-radius:4px;background:var(--card);margin:8px 0 9px;overflow:hidden;border:1px solid var(--sep)}
  .rat-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--inv),var(--inv));border-radius:4px}
  .rat-bot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
  .rat-spark{flex:0 0 auto;width:132px}
  .rat-yoy{flex:1;text-align:right;font-size:0.8824rem;font-weight:700;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
  .rat-yoy-sub{font-size:0.6471rem;font-weight:500;color:var(--mut)}
  .rat-yoy-up{color:var(--ok)}
  .rat-yoy-down{color:var(--bad)}
  .rat-yoy-na{color:var(--mut)}
  .rat-data{flex:1;text-align:right;font-size:0.8824rem;font-weight:700;white-space:nowrap}
  .rat-d-up{color:var(--ok)}
  .rat-d-down{color:var(--bad)}
  .rat-d-plan{color:var(--ink)}
  .rat-d-sep{color:var(--ink);font-weight:600}
  .rat-d-diff{font-size:0.7059rem;margin-left:4px}
  .rat-d-mut{color:var(--mut);font-size:0.7059rem;font-weight:600}
  /* Архіви СВ (збори / маршрути) */
  /* 04.09.2026 (ZIV): чипи → сегмент-стиль як у «КК Задачі» (_kkSeg). Правиться ТІЛЬКИ тут —
     всі 86 місць (фільтри екранів + модалки) використовують ці класи. Довгі набори
     (місяці, ТП) загортаються сіткою: flex-wrap + min-width ~6 у ряд. */
  /* П.17 (спека ZIV 06.09.2026): одна група фільтра = ОДИН рядок чипів h32 r16 зі скролом,
     НІКОЛИ не переноситься на другий ряд. Активний — золотий рельєф, неактивний — плаский чип. */
  .ar-months{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;background:transparent;border-radius:0;padding:4px 4px 4px;margin-bottom:7px}
  .ar-months::-webkit-scrollbar{display:none}
  /* Рік-фільтр закріплений зверху при прокрутці звіту «Кеговий відділ» */
  .dr-yearbar{position:sticky;top:0;z-index:20;background:var(--bg);margin:0 -12px 0;padding:8px 12px 8px}
  .dr-yearbar .ar-months{margin-bottom:0}
  /* П.17 (спека ZIV 06.09.2026): чип фільтра — h32, r16, плаский; активний — золотий рельєф.
     Ряди-режими (h38, flex:1) задають розміри інлайном поверх цих правил. */
  .ar-mon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:0;height:32px;text-align:center;font-size:0.7059rem;font-weight:700;color:var(--mut);border:1px solid var(--sep2);border-radius:14px;padding:0 12px;cursor:pointer;white-space:nowrap;line-height:1.15;
    background:var(--card);box-shadow:none}
  .ar-mon:active{transform:translateY(1px)}
  .ar-mon.on{color:var(--ink);font-weight:700;border:1px solid var(--accent-brd);
    background:var(--accent-soft);
    box-shadow:none}
  /* Ряд-режим (не фільтр): кнопки h38 r10, неактивні — темний рельєф (п.3/п.11) */
  .ar-mon.ar-seg{flex:1 1 0;height:38px;border-radius:10px;padding:0 8px;font-size:0.7059rem;border:1px solid var(--sep2);color:var(--mut);
    background:var(--card);
    box-shadow:none}
  .ar-mon.ar-seg:active{transform:translateY(1px);box-shadow:none}
  .ar-mon.ar-seg.on{color:var(--ink);font-weight:700;border:1px solid var(--accent-brd);
    background:var(--accent-soft);
    box-shadow:none}
  .dr-weeknav{position:sticky;top:0;z-index:21;background:var(--bg);display:flex;align-items:center;gap:12px;margin:0 -12px;padding:8px 12px 4px}
  .dr-wk-arrow{flex:0 0 auto;width:40px;height:38px;background:none;border:none;color:var(--ink);font-size:1.6471rem;font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .dr-wk-arrow:disabled{opacity:.35;cursor:default}
  .dr-wk-cur{flex:1;text-align:center;font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .dr-wk-n{font-size:0.7059rem;font-weight:600;color:var(--gold-text)}
  /* Тижні (Т1…Т52) — довга стрічка: лишаємо скрол, не загортаємо в сітку */
  .dr-wkchips{padding:4px;margin:0 -12px;flex-wrap:nowrap;overflow-x:auto}
  .dr-wkchips .ar-mon{flex:0 0 auto;font-size:0.7059rem;padding:8px 12px}
  .wk-tbl td{vertical-align:top}
  .wk-tbl .wk-sh{font-size:0.6471rem;color:var(--ink);font-weight:600;line-height:1.1}
  .wk-tbl .wk-g{font-weight:700;font-size:0.7059rem;line-height:1.15}
  .wk-tbl .wk-d{font-size:0.6471rem;font-weight:700;display:block;margin-top:1px}
  .wk-tbl .wk-d.up{color:var(--ok)}
  .wk-tbl .wk-d.down{color:var(--bad)}
  .wk-tbl .wk-na{font-size:0.6471rem;color:var(--mut);display:block;margin-top:1px}
  .wk-tbl tr.wk-pick{cursor:pointer}
  .wk-tbl tr.wk-pick.on td{background:var(--card)}
  .wk-tbl tr.wk-pick.on td.dr-nm{color:var(--ink);box-shadow:inset 3px 0 0 var(--ink)}
  .wk-tbl tr.wk-selrow td{background:var(--accent);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
  .wk-tbl tr.wk-selrow td.dr-nm{color:var(--ink);font-weight:700}
  .wk-tbl tr.wk-selrow .wk-g{color:var(--ink)}
  .ar-list{display:flex;flex-direction:column;gap:8px}
  .ar-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px 12px;cursor:pointer}
  .ar-row:active{filter:brightness(1.12)}
  .ar-code{background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;font-size:0.7647rem;border-radius:10px;padding:8px 12px;min-width:34px;text-align:center;flex:0 0 auto}
  .ar-body{flex:1;min-width:0}
  .ar-t{font-size:0.7647rem;font-weight:700;color:var(--ink)}
  .ar-s{font-size:0.7059rem;color:var(--mut);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ar-go{color:var(--ink);font-size:1.1765rem;font-weight:700}
  /* Архів відвідувань ТТ — плитки місяців */
  .va-tt{background:var(--card);border:1px solid var(--sep2);border-radius:12px;padding:12px;margin-bottom:9px}
  .va-tt-n{font-size:0.7647rem;font-weight:700;color:var(--ink)}
  .va-tt-ad{font-size:0.6471rem;color:var(--mut);margin:2px 0 9px}
  .va-tt-n + .va-tiles{margin-top:9px}
  .va-tiles{display:flex;gap:8px;justify-content:flex-start;flex-wrap:wrap}
  .va-mtile{flex:0 0 auto;min-width:62px;background:var(--fill);border:1px solid var(--sep);border-radius:10px;padding:8px 12px;text-align:center}
  .va-mtile.has{background:var(--accent-soft);border-color:var(--accent-brd)}
  .va-mtile.cur{border-color:var(--accent-brd);border-width:1.5px}
  .va-mtile.has{cursor:pointer}
  .va-mtile.has:active{filter:brightness(1.18)}
  .va-mval{font-size:0.8824rem;font-weight:700;color:var(--ink)}
  .va-mtile:not(.has) .va-mval{color:var(--mut)}
  .va-mlbl{font-size:0.6471rem;color:var(--mut);margin-top:1px}
  .va-tt.novisit{background:var(--bad-soft);border-color:var(--bad-brd)}
  .va-tt.novisit .va-tt-n{color:var(--ink)}
  .va-grp{font-size:0.6471rem;font-weight:700;color:var(--ok);letter-spacing:.3px;text-transform:uppercase;margin:14px 2px 8px}
  /* Кеговий відділ — таблиці по заводах/категоріях */
  /* Заголовки секцій Кегового відділу — були темні (для кремового фону), на графіті не читались (ZIV 06.09.2026) */
  .dr-h{font-size:0.8824rem;font-weight:700;color:var(--ink);margin:6px 2px 8px;letter-spacing:.2px}
  .dr-hint{font-size:0.6471rem;color:var(--mut);font-weight:600;margin:6px 2px 8px}
  .dr-clr{display:inline-block;margin-left:8px;font-size:0.6471rem;font-weight:700;color:var(--bad);background:var(--bad-soft);border:1px solid var(--bad-brd);border-radius:8px;padding:4px 8px;cursor:pointer}
  .dr-tbl tr.dr-cat{cursor:pointer}
  .dr-tbl tr.dr-cat td.dr-nm{position:relative}
  .dr-tbl tr.dr-cat.on td{background:var(--card)}
  .dr-tbl tr.dr-cat.on td.dr-nm{color:var(--ink);box-shadow:inset 3px 0 0 var(--ink)}
  .dr-wrap{background:var(--card);border:1px solid var(--sep2);border-radius:12px;overflow:hidden}
  .grn-card-h{background:var(--accent-soft);color:var(--ink);font-weight:700;font-size:0.7647rem;text-align:center;padding:12px;letter-spacing:.02em;text-transform:uppercase;border-bottom:1px solid var(--sep)}
  .dr-tbl{width:100%;border-collapse:collapse;font-size:0.6471rem}
  .dr-tbl th{background:var(--fill);color:var(--ink);font-weight:700;padding:8px 4px;text-align:center;white-space:nowrap;font-size:0.6471rem;border-right:1px solid var(--sep)}
  .dr-tbl th:first-child{padding-left:8px}
  .dr-tbl th:last-child{padding-right:8px;border-right:none}
  .dr-tbl td{padding:8px 4px;text-align:right;color:var(--ink);border-top:1px solid var(--sep);border-right:1px solid var(--ink);white-space:nowrap}
  .dr-tbl td:last-child{padding-right:8px;border-right:none}
  .dr-tbl td.dr-nm{text-align:left;font-weight:600;color:var(--ink);white-space:normal;line-height:1.15;word-break:break-word;padding-left:8px}
  .dr-tbl td.dr-pct{color:var(--ink);font-weight:700}
  .dr-tbl td.dr-kpi{color:var(--ink);font-weight:700;background:var(--accent-soft)}
  .dr-tbl tr.dr-tot td{background:var(--card);font-weight:700;color:var(--ink);border-top:1px solid var(--sep2)}
  .dr-tbl tr.dr-tot td.dr-pct{color:var(--ink)}
  /* Звіт «Продажі ГРН по ТП» */
  .dr-tbl td.g{color:var(--ok);font-weight:700}
  .dr-tbl td.r{color:var(--bad);font-weight:700}
  .coef-tbl td{text-align:center}
  .grn-tbl td{text-align:center}
  .grn-tbl th,.grn-tbl td{padding:4px 4px}
  .grn-tbl td.dr-nm{white-space:nowrap}
  /* 6.01.72 (ZIV 13.10.2026): назви акцій у шапці зведеної — у кілька рядків, щоб 4+ акції влазили без прокрутки */
  .grn-tbl th,.grn-tbl td{padding:4px 0px}   /* 6.01.72–73: вужчі відступи, щоб 4 акції влізли без прокрутки (375px: таблиця 349 з 351) */
  .grn-tbl th.pm-th{white-space:normal;overflow-wrap:break-word;line-height:1.15;font-size:0.6471rem;padding:4px 0;width:53px;max-width:53px;letter-spacing:-.02em}   /* 6.01.73: однакова ширина колонок акцій; 53px — «Ориджинал» цілим словом */
  .grn-tbl tr:not(.grn-sub):not(.grn-tot):nth-of-type(even) td{background:var(--fill)}
  .grn-tbl tr.grn-sub td{background:var(--fill);font-weight:700;color:var(--ink);border-top:2px solid var(--sep2);border-bottom:2px solid var(--sep2)}
  .grn-tbl tr.grn-sub td.dr-nm{color:var(--ink);font-size:0.7647rem;border-left:3px solid var(--ink)}
  .grn-tbl tr.grn-sub td.g,.grn-tbl tr.grn-sub td.r{color:var(--ink)}
  .grn-tbl tr.grn-sub td.dr-kpi{color:var(--ink);background:var(--accent-soft)}
  .grn-tbl tr.grn-tot td{background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700;border-top:3px solid var(--ink)}
  .grn-tbl tr.grn-tot td.g,.grn-tbl tr.grn-tot td.r{color:var(--ink)}
  .grn-tbl tr.grn-tot td.dr-kpi{color:var(--on-accent);background:var(--accent)}
  /* Таблиці виконання по брендах (допмотивація СВ, без грошей) */
  .dt-brand{background:var(--card);border:1px solid var(--sep2);border-radius:12px;overflow:hidden;margin-bottom:12px}
  .dt-h{background:var(--card);color:var(--ink);font-weight:700;font-size:0.8824rem;text-align:center;padding:12px}
  .dt-tbl{width:100%;border-collapse:collapse;font-size:0.7647rem}
  .dt-tbl th{background:var(--fill);color:var(--ink);font-weight:700;padding:8px 4px;text-align:center;font-size:0.6471rem}
  .dt-tbl th:first-child{text-align:left;padding-left:12px}
  .dt-tbl td{padding:8px 4px;text-align:center;color:var(--ink);border-top:1px solid var(--ink);font-weight:700}
  .dt-tbl td.dt-c{font-weight:700;color:var(--ink);text-align:left;padding-left:12px}
  .dt-tbl td.g{color:var(--ok);font-weight:700}
  .dt-tbl td.r{color:var(--bad);font-weight:700}
  .dt-tbl tr.dt-sub td{font-weight:700;background:var(--card);border-top:1px solid var(--sep)}
  .dt-tbl tr.dt-sub td.dt-c{color:var(--ink)}
  .dt-tbl tr.dt-tot td{border-top:2px solid var(--ink);font-weight:700;background:var(--card)}
  /* Компактний режим — щоб таблиця відділу влазила */
  .dt-compact .dt-h{font-size:0.7647rem;padding:8px}
  .dt-compact .dt-tbl{font-size:0.6471rem}
  .dt-compact .dt-tbl th{padding:4px 4px;font-size:0.6471rem}
  .dt-compact .dt-tbl td{padding:4px 4px}
  .dt-compact .dt-brand{margin-bottom:10px}
  .dt-tbl td.dt-plan{color:var(--gold-text);font-weight:700}
  .dt-tbl td.dt-fcg{color:var(--ok);font-weight:700}
  .dt-tbl td.dt-fcr{color:var(--bad);font-weight:700}
  .dt-tbl td,.dt-tbl th{border-right:1px solid var(--ink)}
  .dt-tbl td:last-child,.dt-tbl th:last-child{border-right:none}

  /* Шапка inline-дашборду менеджера в Аналітиці */
  .mgr-inline-toolbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--card);color:var(--ink);position:sticky;top:0;z-index:10}
  .mgr-inline-title{flex:1;font-size:0.7647rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mgr-inline-pdf{background:var(--accent-soft);border:1px solid var(--accent-brd);color:var(--ink);border:1px solid var(--ink);padding:8px 16px;border-radius:10px;font-size:0.7647rem;font-weight:700;cursor:pointer;min-width:60px}
  .mgr-inline-pdf:active{transform:scale(.96)}

  /* ТТ-блок у шапці дашборду менеджера (перед датою) */
  .mgr-card .mgr-head-tt{background:var(--card);border:1px solid var(--ink);color:var(--ink);padding:4px 12px;border-radius:8px;font-size:0.6471rem;font-weight:700;text-align:center;line-height:1.2;flex-shrink:0;margin-right:6px}
  .mgr-card .mgr-head-tt b{font-size:0.7647rem;color:var(--ink)}

  /* Кольорові акценти в дашборді менеджера */
  .mgr-card .sku-cell{color:var(--ink);font-weight:700}        /* SKU — синім */
  .mgr-card .kpi-cell{color:var(--ink);font-weight:700}        /* KPI — золотим/жовтим */
  .mgr-card .b.dark .sku-cell{color:var(--mut);font-weight:700}  /* у темному блоці яскравіший синій */
  .mgr-card .b.dark .kpi-cell{color:var(--ink);font-weight:700}

  /* Плашки категорій у дашборді менеджера — назва зверху, треугольник+ТТ нижче */
  .mgr-cats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
  @media (max-width: 700px){ .mgr-cats{grid-template-columns:repeat(2,1fr)} }
  .mgr-cat{background:var(--card);border:1px solid var(--sep);border-top:3px solid var(--ink);border-radius:8px;overflow:hidden;font-size:0.6471rem}
  .mgr-cat-head{color:var(--ink);padding:4px 8px;font-weight:700;text-align:center}
  .mgr-cat-name{font-size:0.7059rem;letter-spacing:.5px}
  .mgr-cat-arrow{font-size:0.6471rem;display:inline-block;background:var(--card);border-radius:4px;padding:0 4px;line-height:1}
  .mgr-cat-tt{font-size:0.6471rem;margin-top:2px;font-weight:700;opacity:.95}
  .mgr-cat-line{padding:4px 8px;font-weight:700;color:var(--ink);text-align:center}
  .mgr-cat-sub{padding:4px 8px 4px;color:var(--mut);border-top:1px solid var(--sep);font-weight:600;text-align:center;font-size:0.6471rem}

  /* Заводи в картці мережі (>5) — показуємо рівно 5 рядків, решта скролиться.
     Заголовок зверху і УСЬОГО знизу — закріплені (sticky). */
  /* 11.11: sticky-шар — ТІЛЬКИ суцільний hex (крізь rgba просвічували рядки), без backdrop-filter */
  .kkl-modal .kkl-plants-scroll{max-height:230px;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .kkl-modal .kkl-plants-scroll thead th{position:sticky;top:0;z-index:2;background:var(--accent-soft);border-bottom:1px solid var(--sep2)}
  .kkl-modal .kkl-plants-scroll tfoot td{position:sticky;bottom:0;z-index:2;background:var(--card2);color:var(--ink);border-top:1px solid var(--sep2);box-shadow:0 -6px 12px rgba(0,0,0,.2)}

  /* SKU 4 місяці — той самий принцип: видно ~5-6 рядків, скрол, sticky шапка і УСЬОГО */
  .kkl-modal .kkl-sku3m-scroll{max-height:230px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .kkl-modal .kkl-sku3m-scroll thead th{position:sticky;top:0;z-index:2;background:var(--accent-soft);border-bottom:1px solid var(--sep2)}
  .kkl-modal .kkl-sku3m-scroll tfoot td{position:sticky;bottom:0;z-index:2;background:var(--card2);color:var(--ink);border-top:1px solid var(--sep2);box-shadow:0 -6px 12px rgba(0,0,0,.2)}
  /* Обладнання SKU — той же принцип */
  .kkl-modal .kkl-eqsku-scroll{max-height:230px;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .kkl-modal .kkl-eqsku-scroll thead th{position:sticky;top:0;z-index:2;background:var(--accent-soft);border-bottom:1px solid var(--sep2)}
  .kkl-modal .kkl-eqsku-scroll tfoot td{position:sticky;bottom:0;z-index:2;background:var(--card2);color:var(--ink);border-top:1px solid var(--sep2);box-shadow:0 -6px 12px rgba(0,0,0,.2)}
  /* 11.11 у світлій картці: шапка var(--on-fill), «УСЬОГО» var(--on-fill), лінії var(--mut) */
  .kkl-light .kkl-plants-scroll thead th,.kkl-light .kkl-sku3m-scroll thead th,.kkl-light .kkl-eqsku-scroll thead th{background:var(--accent-soft) !important;border-bottom:1px solid var(--accent-brd)}
  .kkl-light .kkl-plants-scroll tfoot td,.kkl-light .kkl-sku3m-scroll tfoot td,.kkl-light .kkl-eqsku-scroll tfoot td{background:var(--card2) !important;color:var(--ink);border-top:1px solid var(--sep2);box-shadow:0 -6px 12px rgba(20,22,27,.14)}
  /* Історія відвідувань (внизу КК-картки) */
  .kkl-modal .kkl-visits-history{
    background:var(--fill); border:1px solid var(--sep); border-radius:8px;
    padding:12px 12px; margin-top:8px;
  }
  .kkl-modal .kkl-visits-hdr{
    font-size:0.7647rem; font-weight:700; color:var(--ink);
    text-transform:uppercase; letter-spacing:.04em;
    padding-bottom:8px; border-bottom:1px solid var(--accent-brd); margin-bottom:6px;
  }
  .kkl-modal .kkl-visits-loading,
  .kkl-modal .kkl-visits-empty{
    text-align:center; padding:16px; color:var(--mut); font-size:0.7059rem;
  }
  .kkl-modal .kkl-visits-list{ max-height:300px; overflow-y:auto }
  .kkl-modal .kkl-visit-row{
    padding:8px 8px; border-bottom:1px solid var(--accent-brd);
  }
  .kkl-modal .kkl-visit-row:last-child{ border-bottom:none }
  .kkl-modal .kkl-visit-line1{
    display:flex; flex-wrap:wrap; gap:8px 12px;
    font-size:0.7647rem; color:var(--ink); align-items:baseline;
  }
  .kkl-modal .kkl-visit-date{ font-weight:700; color:var(--ink) }
  .kkl-modal .kkl-visit-mgr{ font-weight:700; color:var(--mut) }
  .kkl-modal .kkl-visit-status.ok{ color:var(--ok); font-weight:600 }
  .kkl-modal .kkl-visit-status.skip{ color:var(--mut); font-weight:600 }
  .kkl-modal .kkl-visit-status.no{ color:var(--mut) }
  .kkl-modal .kkl-visit-tasks{ color:var(--mut); font-size:0.7059rem; margin-left:auto }
  .kkl-modal .kkl-visit-comment{
    margin-top:4px; padding:4px 8px; background:var(--card);
    border-radius:8px; font-size:0.7059rem; color:var(--mut); font-style:italic;
  }

  /* Список ТТ внизу карточки мережі */
  .net-tt-list-wrap{background:var(--card);border-top:1px solid var(--sep2);padding:8px 8px 16px;flex-shrink:0;max-height:50vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
  /* Акордеон точок мережі у списку КК */
  .net-wrap{ margin-bottom:0 }
  .net-tt-panel{ background:var(--card2); border-radius:0 0 10px 10px }
  .net-tt-panel[data-open="1"]{ padding:8px 8px 12px; border-top:1px solid var(--sep) }
  .net-tt-search-wrap{ padding:8px 8px 8px }
  .net-tt-search{ width:100%; box-sizing:border-box; background:var(--card); border:1px solid var(--sep); border-radius:10px; color:var(--ink); font-size:0.7647rem; padding:8px 12px; font-family:inherit }
  .net-tt-search::placeholder{ color:var(--blue) }
  .net-tt-rows{ display:flex; flex-direction:column; gap:4px }
  .net-tt-row{ display:flex; align-items:center; gap:8px; background:var(--card); border-radius:10px; padding:8px 12px; cursor:pointer }
  .net-tt-row:active{ background:var(--card2) }
  .net-tt-sleep{ background:var(--card2) }
  .net-tt-mgr{ width:30px; height:30px; background:var(--card); color:var(--ink); border-radius:8px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.6471rem; flex-shrink:0;border:1px solid var(--sep)}
  .net-tt-sleep .net-tt-mgr{ background:var(--bad); color:var(--on-fill); border-color:var(--bad) }
  .net-tt-body{ flex:1; min-width:0; overflow:hidden }
  .net-tt-name{ font-size:0.7647rem; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
  .net-tt-sub{ font-size:0.6471rem; color:var(--mut); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
  .net-tt-chip{ font-size:0.6471rem; font-weight:700; border-radius:8px; padding:0px 4px }
  .net-tt-chip-keg{ background:var(--inv); color:var(--on-inv) }
  .net-tt-chip-dz{ background:var(--card2); color:var(--bad) }
  .net-tt-chip-kran.bad{ background:var(--card2); color:var(--bad) }
  .net-tt-chip-kran.good{ background:var(--card2); color:var(--ok) }
  .net-tt-right{ flex-shrink:0; text-align:right }
  .net-tt-sales{ font-size:0.7059rem; font-weight:700; white-space:nowrap }
  .net-tt-go{ flex:0 0 auto; color:var(--ink); font-size:1rem; padding-left:4px }
  /* Обладнання по ТТ — таблиця як у КК, по кожній точці */
  .neqt-block{ background:var(--card); border-radius:12px; margin-bottom:10px; overflow:hidden }
  .neqt-h{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; background:var(--card); padding:8px 12px; cursor:pointer }
  /* 6.01.06 (ZIV 24.09.2026): назва ТТ у шапці блоку не обрізається «…» — переноситься до 2 рядків */
  .neqt-nm{ color:var(--ink); font-size:0.7647rem; font-weight:700; line-height:1.25; white-space:normal; overflow-wrap:anywhere; min-width:0; flex:1 1 auto }   /* 6.01.07: повністю, без «…» */
  .neqt-go{ color:var(--ink); font-size:0.6471rem; font-weight:700; white-space:nowrap; flex:0 0 auto }
  .neqt-exp{ flex:0 0 auto; background:var(--card); border:1px solid var(--ink); border-radius:8px; color:var(--ink); font-size:0.6471rem; font-weight:700; padding:4px 12px; cursor:pointer; white-space:nowrap }
  .neqt-nm[data-open-tt]{ cursor:pointer }
  .neqt-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch }
  .neqt{ width:100%; border-collapse:collapse; font-size:0.7059rem; min-width:340px }
  /* 6.01.05: телефон — 7 колонок тари/обладнання не влазили (горизонтальний скрол). Компактніше: без min-width,
     менший шрифт/відступи, перша колонка може переноситись, числові — вузькі. */
  @media (max-width: 500px) {
    .neqt{ min-width:0; font-size:0.6471rem; table-layout:auto }
    .neqt thead th{ font-size:0.6471rem; padding:4px 4px }
    .neqt td{ padding:4px 4px }
    .neqt td:first-child, .neqt thead th:first-child{ white-space:normal; padding-left:8px; line-height:1.2 }
    .neqt td:not(:first-child){ width:1%; min-width:26px }
  }
  .neqt thead th{ background:var(--accent-soft); color:var(--ink); font-size:0.6471rem; font-weight:700; padding:8px 4px; text-align:center; white-space:nowrap }
  .neqt thead th:first-child{ text-align:left; padding-left:12px }
  .neqt td{ padding:8px 4px; text-align:center; color:var(--ink); border-top:1px solid var(--sep); white-space:nowrap }
  .neqt td:first-child{ text-align:left; padding-left:12px; font-weight:700 }
  .neqt td:nth-child(2){ font-weight:700 }
  .neqt tr.eq-connector td:first-child{ padding-left:24px; font-weight:500; color:var(--mut); font-style:italic }
  .neqt td.bad{ background:none; color:var(--bad); font-weight:700 }
  .neqt td.good{ background:none; color:var(--ok); font-weight:700 }
  .neqt tr.neqt-tot td{ background:var(--fill); font-weight:700; color:var(--ink); border-top:2px solid var(--sep2) }
  .neqt tr.neqt-tot td.bad{ color:var(--bad); background:none }
  .neqt tr.neqt-tot td.good{ color:var(--ok); background:none }
  .net-tt-list-title{font-size:0.6471rem;font-weight:700;color:var(--ink);padding:4px 12px 8px;text-transform:uppercase;letter-spacing:.5px}
  .net-tt-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--sep);cursor:pointer}
  .net-tt-row:active{background:var(--card2)}
  .net-tt-mgr{width:30px;height:30px;background:var(--card);color:var(--ink);border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.6471rem;flex-shrink:0;border:1px solid var(--sep)}
  .net-tt-body{flex:1;min-width:0;overflow:hidden}
  .net-tt-name{font-size:0.7059rem;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .net-tt-addr{font-size:0.6471rem;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .net-tt-sales{font-size:0.6471rem;font-weight:700;color:var(--ok);white-space:nowrap;flex-shrink:0}

  /* Модал перегляду КК-картки (PNG на весь экран) */
  .kk-modal{
    position:fixed; inset:0; z-index:1000;
    background:var(--card2);
    display:none; flex-direction:column;
  }
  .kk-modal.open{display:flex}
  .kk-modal-toolbar{
    display:flex; align-items:center; justify-content:space-between;
    padding:max(8px, env(safe-area-inset-top,0px)) 10px 8px;
    background:var(--card2);
    color:var(--ink);
    flex-shrink:0;
    gap:8px;
  }
  .kk-modal-title{
    flex:1; text-align:center;
    font-size:0.7647rem; font-weight:700;
    color:var(--ink);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .kk-modal-btn{
    background:var(--fill);
    border:1px solid var(--accent-brd);
    color:var(--ink);
    padding:8px 16px;
    border-radius:10px;
    font-size:0.7647rem; font-weight:700;
    cursor:pointer;
    min-width:44px;
  }
  .kk-modal-btn:active{transform:scale(.96)}
  .kk-modal-btn.kk-modal-pdf{color:var(--ink);background:var(--accent-soft);border:1px solid var(--accent-brd);border-color:var(--ink)}
  .kk-modal-body{
    flex:1; overflow:auto;
    display:flex; align-items:flex-start; justify-content:center;
    background:var(--card2);
    padding-bottom:env(safe-area-inset-bottom,0);
  }
  .kk-modal-body img{
    max-width:100%;
    height:auto;
    display:block;
  }
  /* ====== АНАЛІТИКА (live dashboard) ====== */
  .ana-loading{padding:40px 16px;text-align:center;color:var(--mut);font-size:0.7647rem}
  .ana-loading::before{content:'';display:block;margin:0 auto 14px;width:9px;height:9px;border-radius:50%;animation:ldr3 1.1s infinite linear}
  @keyframes ldr3{0%,100%{box-shadow:-16px 0 var(--accent-brd),16px 0 var(--accent-brd);background:var(--accent)}33%{box-shadow:-16px 0 var(--accent-brd),16px 0 var(--accent-brd);background:var(--accent)}66%{box-shadow:-16px 0 var(--accent-brd),16px 0 var(--accent-brd);background:var(--accent-soft)}}
  .ldr{display:inline-flex;gap:8px;height:20px;align-items:flex-end}
  .ldr i{width:9px;height:9px;border-radius:50%;background:var(--accent);animation:ldrB 1.2s infinite}
  .ldr i:nth-child(2){animation-delay:.15s}
  .ldr i:nth-child(3){animation-delay:.3s}
  @keyframes ldrB{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-7px);opacity:1}}
  .ana-meta{padding:16px 16px 8px;font-size:0.6471rem;color:var(--mut);font-weight:500;letter-spacing:.5px}
  .ana-block{
    background:var(--card);border:1px solid var(--sep);border-radius:12px;
    margin:0 16px 12px;overflow:hidden;
  }
  .ana-block-head{
    background:var(--card);color:var(--mut);padding:10px 12px;border-bottom:0.5px solid var(--sep);
    font-size:0.6471rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
    display:flex;justify-content:space-between;align-items:center;
  }
  .ana-count{
    background:var(--bad);color:var(--on-fill);font-size:0.6471rem;font-weight:700;
    padding:4px 8px;border-radius:8px;min-width:22px;text-align:center;
  }
  .ana-count.ok{background:var(--ok)}
  .ana-subtitle{
    padding:8px 12px 4px;font-size:0.6471rem;color:var(--mut);
    font-weight:700;letter-spacing:.5px;background:var(--card2);
  }
  .ana-row{
    padding:12px 12px;border-bottom:1px solid var(--sep);
    display:flex;align-items:center;gap:12px;cursor:pointer;
  }
  .ana-row:active{background:var(--card)}
  .ana-row:last-child{border-bottom:none}
  .ana-mgr{
    background:var(--card2);color:var(--bad);font-size:0.6471rem;font-weight:700;
    padding:4px 8px;border-radius:8px;min-width:26px;text-align:center;flex-shrink:0;
  }
  .ana-body{flex:1;min-width:0}
  .ana-tt{
    font-size:0.7059rem;color:var(--ink);font-weight:600;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .ana-addr{font-size:0.6471rem;color:var(--mut);margin-top:2px;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .ana-row-right{text-align:right;flex-shrink:0}
  .ana-row-right > div:first-child,
  .ana-row-right{font-size:0.7647rem;font-weight:700;color:var(--bad)}
  .ana-num{font-size:0.7647rem;font-weight:700;color:var(--bad)}
  .ana-stuck{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:80px}
  .ana-stuck-line{font-size:0.6471rem;color:var(--mut);font-weight:500;line-height:1.2}
  .ana-stuck-line b{color:var(--bad);font-weight:700}
  .ana-stuck .ana-num{margin-top:2px;font-size:0.7647rem}
  .ana-sub{font-size:0.6471rem;color:var(--mut);font-weight:500;margin-top:2px}
  .ana-more{
    padding:12px 12px;text-align:center;
    background:var(--card2);font-size:0.6471rem;color:var(--mut);cursor:pointer;
  }
  .ana-empty{padding:16px 12px;text-align:center;font-size:0.7059rem;color:var(--ok)}
  .ana-teams{
    margin:0 16px 12px;background:linear-gradient(135deg,var(--inv),var(--inv));
    border-radius:12px;padding:12px;display:flex;gap:8px;
    justify-content:space-between;align-items:center;
  }
  .ana-teams-label{font-size:0.6471rem;color:var(--ink);font-weight:700;letter-spacing:.5px;text-transform:uppercase}
  .ana-teams-row{display:flex;gap:8px}
  .ana-team-pill{
    background:var(--fill);border-radius:8px;
    padding:4px 12px;font-size:0.6471rem;color:var(--ink);
  }
  .ana-team-pill b{color:var(--ink);margin-right:4px}
  .ana-team-pill span{color:var(--bad);font-weight:700}
  .ana-archive{
    margin:0 16px 24px;background:var(--card);border:1px solid var(--sep);border-radius:12px;
    padding:16px 16px;display:flex;justify-content:space-between;align-items:center;
    color:var(--mut);font-size:0.7647rem;cursor:pointer;font-weight:500;
  }
  .ana-archive:active{background:var(--card)}
  .ana-archive-arrow{color:var(--ink);font-size:1rem}

  .feed-meta-badge{
    display:inline-block;
    margin-left:8px;
    padding:0px 8px;
    border-radius:8px;
    background:var(--bad);
    color:var(--on-fill);
    font-size:0.6471rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.3px;
  }
  .feed-icon{
    width:42px;height:42px;
    border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    font-size:1rem;font-weight:700;color:var(--ink);
    flex-shrink:0;
  }
  .feed-icon.c-dashboard{background:linear-gradient(135deg,var(--inv),var(--inv));color:var(--ink)}
  .feed-icon.c-tasks{background:linear-gradient(135deg,var(--inv),var(--inv));color:var(--ink)}
  .feed-icon.c-dz{background:linear-gradient(135deg,var(--accent),var(--accent))}
  .feed-icon.c-dz-tt{background:linear-gradient(135deg,var(--bad),var(--bad))}
  .feed-icon.c-dop{background:linear-gradient(135deg,var(--ok),var(--ok))}
  .feed-icon.c-seti{background:linear-gradient(135deg,var(--accent),var(--accent))}
  .feed-icon.c-other{background:linear-gradient(135deg,var(--ok),var(--ok))}
  .feed-body{flex:1;min-width:0}
  .feed-title{
    font-size:0.8824rem;font-weight:700;color:var(--ink);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    margin-bottom:3px;
  }
  .feed-meta{
    font-size:0.6471rem;color:var(--mut);
    display:flex;gap:8px;align-items:center;flex-wrap:wrap;
  }
  .feed-meta .badge-type{
    background:var(--accent-soft);
    color:var(--mut);
    padding:4px 8px;border-radius:8px;font-weight:600;
  }
  .feed-meta .badge-scope{
    background:var(--fill);
    color:var(--ink);
    padding:4px 8px;border-radius:8px;font-weight:600;
  }

  .feed-empty{
    text-align:center;
    padding:60px 32px;
    color:var(--mut);
  }
  .feed-empty-icon{
    width:64px;height:64px;
    margin:0 auto 16px;
    border-radius:50%;
    background:var(--blue-soft);
    display:flex;align-items:center;justify-content:center;
    color:var(--mut);
  }
  .feed-empty-text{font-size:0.8824rem;line-height:1.5}

  /* Back button для папок */
  .folder-back{
    display:flex;align-items:center;gap:16px;
    padding:20px 16px 8px;
    color:var(--ink);
    font-size:1.2941rem;font-weight:700;
    cursor:pointer;
  }
  .folder-back:active{opacity:.5}
  .folder-back-arrow{
    width:44px;height:44px;border-radius:14px;
    background:var(--blue-soft);
    display:flex;align-items:center;justify-content:center;
    font-size:1.6471rem;
  }

  /* ===== АНАЛИТИКА ===== */
  /* iframe растянут на весь доступный экран (от шапки до bottom-nav) */
  #screen-analytics .content{padding:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .analytics-dash-frame{
    width:100%;
    height:100%;
    border:none;
    background:var(--card);
    display:block;
  }
  .analytics-soon{
    margin:auto;
    padding:32px 24px;
    text-align:center;
    color:var(--mut);
    font-size:0.8824rem;line-height:1.6;
    max-width:300px;
  }
  .analytics-soon b{color:var(--ink)}
  .analytics-open-btn{
    position:absolute;
    bottom:96px;right:16px;
    z-index:20;
    background:linear-gradient(180deg, var(--mut) 0%, var(--ink) 100%);
    color:var(--ink);
    border:none;
    padding:12px 20px;
    border-radius:14px;
    font-size:0.7647rem;font-weight:700;
    cursor:pointer;
    box-shadow:0 8px 20px var(--accent-brd);
    display:flex;align-items:center;gap:8px;
  }
  .analytics-open-btn svg{width:16px;height:16px}
  .analytics-open-btn:active{transform:scale(.96)}

  /* ===== ЭКРАНЫ-ЗАГЛУШКИ ===== */
  .placeholder-wrap{
    flex:1;
    display:flex;flex-direction:column;
    align-items:center;justify-content:center;
    padding:40px 32px;
    text-align:center;
  }
  .placeholder-icon{
    width:80px;height:80px;
    border-radius:14px;
    background:var(--accent-soft);
    color:var(--ink);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:18px;
  }
  .placeholder-icon svg{width:36px;height:36px}
  .placeholder-title{font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:6px}
  .placeholder-tag{
    display:inline-block;padding:4px 12px;border-radius:10px;
    background:var(--blue-soft);color:var(--mut);
    font-size:0.6471rem;font-weight:700;letter-spacing:1px;
    text-transform:uppercase;margin-bottom:14px;
  }
  .placeholder-desc{
    font-size:0.7647rem;color:var(--mut);line-height:1.5;
    max-width:280px;
  }

  /* ===== ПРОФИЛЬ — Premium dark ===== */
  .profile-wrap{padding:20px 16px}
  .profile-card{
    background:var(--card);
    border:1px solid var(--accent-brd);
    border-radius:14px;
    padding:24px 20px;
    box-shadow:0 8px 24px rgba(0,0,0,.25);
    text-align:center;
    margin-bottom:16px;
  }
  .profile-avatar{
    width:80px;height:80px;
    margin:0 auto 14px;
    background:linear-gradient(135deg, var(--inv) 0%, var(--mut) 100%);
    color:var(--ink);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-size:2rem;font-weight:700;
    border:3px solid var(--ink);
  }
  .profile-name{font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:4px}
  .profile-email{font-size:0.7059rem;color:var(--mut);margin-bottom:12px}
  .profile-role-badge{
    display:inline-block;
    padding:8px 16px;
    background:linear-gradient(135deg, var(--ink) 0%, var(--mut) 100%);
    color:var(--ink);
    border-radius:14px;
    font-size:0.7059rem;font-weight:700;
    letter-spacing:0.5px;
  }
  .profile-stats{
    background:var(--card);
    border:1px solid var(--accent-brd);
    border-radius:14px;
    padding:16px 20px;
    box-shadow:0 6px 18px rgba(0,0,0,.22);
    margin-bottom:16px;
  }
  .profile-stat-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:12px 0;
    border-bottom:1px solid var(--accent-brd);
  }
  .profile-stat-row:last-child{border-bottom:none}
  .profile-stat-label{font-size:0.7647rem;color:var(--mut)}
  .profile-stat-value{font-size:0.7647rem;font-weight:700;color:var(--ink)}
  .btn-pass{ width:100%; padding:16px; background:var(--card); color:var(--ink); border:1.5px solid var(--ink); border-radius:12px; font-size:0.8824rem; font-weight:700; cursor:pointer; margin-bottom:12px }
  .btn-pass:active{ transform:scale(.99) }
  .pass-modal{ position:fixed; inset:0; background:var(--scrim); z-index:99998; display:flex; align-items:flex-end; justify-content:center }
  .pass-sheet{ background:var(--card2); width:100%; max-width:520px; max-height:86vh; border-radius:14px 14px 0 0; display:flex; flex-direction:column; overflow:hidden }
  .pass-head{ display:flex; align-items:center; justify-content:space-between; padding:16px 16px; background:var(--card); color:var(--ink); font-size:1rem; font-weight:700; border-bottom:1px solid var(--sep) }
  .pass-x{ background:none; border:0; color:var(--ink); font-size:1.6471rem; line-height:1; cursor:pointer }
  .pass-body{ overflow-y:auto; padding:12px }
  .pass-form{ background:var(--card); border:1px solid var(--sep); border-radius:12px; padding:12px; margin-bottom:10px }
  .pass-form-email{ color:var(--ink); font-size:0.7647rem; font-weight:700; margin-bottom:8px }
  .pass-input{ width:100%; padding:12px 12px; border-radius:10px; border:1px solid var(--sep2); background:var(--card); color:var(--ink); font-size:0.8824rem; box-sizing:border-box }
  .pass-form-btns{ display:flex; gap:8px; margin-top:10px }
  .pass-cancel{ flex:1; padding:12px; border-radius:10px; border:1px solid var(--sep2); background:var(--card); color:var(--mut); font-weight:600; cursor:pointer }
  .pass-save{ flex:2; padding:12px; border-radius:10px; border:0; background:var(--accent-soft);border:1px solid var(--accent-brd); color:var(--ink); font-weight:700; cursor:pointer }
  .pass-msg{ margin-top:9px; font-size:0.7647rem; font-weight:700; min-height:16px }
  .pass-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 12px; border-radius:10px; background:var(--card); margin-bottom:7px; cursor:pointer;border:1px solid var(--sep)}
  .pass-row:active{ background:var(--card) }
  .pass-row-code{ color:var(--ink); font-size:0.8824rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
  .pass-row-email{ color:var(--mut); font-size:0.6471rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
  .pass-row-key{ font-size:1rem; flex:none }
  .pass-add-btn{ width:100%; padding:12px; border-radius:10px; border:1px dashed var(--ink); background:transparent; color:var(--ink); font-size:0.8824rem; font-weight:700; cursor:pointer; margin-bottom:10px }
  .pass-add-btn:active{ background:var(--card) }
  .btn-logout{
    width:100%;
    padding:16px;
    background:var(--card);
    border:1.5px solid var(--bad-brd);
    border-radius:12px;
    color:var(--bad);
    font-size:0.8824rem;font-weight:700;
    cursor:pointer;
    margin-top:10px;
  }
  .btn-logout:active{background:var(--bad-soft)}
  .profile-version{
    text-align:center;
    font-size:0.6471rem;
    color:var(--mut);
    margin-top:16px;
    letter-spacing:.3px;
    font-weight:500;
  }

  /* ===== ДОКУМЕНТЫ В ПРОФИЛЕ — Premium dark ===== */
  .profile-section-title{
    font-size:0.6471rem;font-weight:700;color:var(--mut);
    text-transform:uppercase;letter-spacing:1.5px;
    padding:8px 4px 8px;
  }
  .profile-docs{
    background:var(--card);
    border:1px solid var(--accent-brd);
    border-radius:14px;
    box-shadow:0 6px 18px rgba(0,0,0,.22);
    margin-bottom:16px;
    overflow:hidden;
  }
  .profile-doc-row{
    display:flex;align-items:center;gap:12px;
    padding:12px 16px;
    border-bottom:1px solid var(--accent-brd);
    cursor:pointer;
    transition:background .1s;
    color:var(--ink);
  }
  .profile-doc-row:last-child{border-bottom:none}
  .profile-doc-row:active{background:var(--accent-soft)}
  .profile-doc-icon{
    width:36px;height:36px;
    border-radius:10px;
    background:linear-gradient(135deg, var(--ink) 0%, var(--mut) 100%);
    color:var(--ink);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
  }
  .profile-doc-icon svg{width:18px;height:18px}
  .profile-doc-body{flex:1;min-width:0}
  .profile-doc-name{
    font-size:0.7647rem;font-weight:700;color:var(--ink);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    margin-bottom:2px;
  }
  .profile-doc-meta{font-size:0.6471rem;color:var(--mut)}
  .profile-doc-arrow{font-size:1.1765rem;color:var(--mut);flex-shrink:0;font-weight:300}
  /* Если документы пустые — серая строка должна быть читаемой */
  .profile-docs .profile-stat-row{padding:16px;color:var(--mut)}
  .profile-docs .profile-stat-row .profile-stat-label{color:var(--mut);font-style:italic}

  /* ===== ЛОАДЕР ===== */
  .global-loader{
    position:absolute;
    top:0;left:0;right:0;bottom:0;
    background:var(--card);
    display:flex;align-items:center;justify-content:center;
    z-index:200;
    backdrop-filter:blur(4px);
  }
  .spinner{
    width:40px;height:40px;
    border:3px solid var(--accent-brd);
    border-top-color:var(--ink);
    border-radius:50%;
    animation:spin .8s linear infinite;
  }
  @keyframes spin{to{transform:rotate(360deg)}}

  /* «СКЛО насичена» (06.09.2026): ролі плиток + таб-бар текстом + заголовки секцій */
  .kk7-tile.acc{background:var(--fill) !important;border:1px solid var(--sep2) !important}
  .kk7-tile.acc .n{color:var(--ink)}
  .kk7-tile.redt{background:var(--card) !important;border:1px solid var(--bad-brd) !important}
  .kk7-tile.redt .n{color:var(--bad)}
  .kk7-tile.redt#ana-svtasks .n{color:var(--ink)}
  /* Таб-бар: іконки прибрано, тільки текст (п.8) */
  /* розмір як був з іконками, але тільки текст (ZIV 06.09.2026) */
  .bottom-nav{padding:20px 12px 24px;padding-bottom:max(24px, env(safe-area-inset-bottom));gap:8px}
  .nav-item .nav-icon-wrap{display:none}
  /* всі вкладки займають свою колонку повністю — плашка активної не зсуває сусідів */
  .nav-item{font-size:0.7647rem;font-weight:700;color:var(--on-fill);justify-content:center;padding:12px 4px;width:100%;border-radius:10px}
  .nav-item.active{background:linear-gradient(var(--accent-soft),var(--accent-soft)),var(--card2);border:1px solid var(--accent-brd);color:var(--ink);font-weight:700}
  /* перебій каскаду (аудит 06.09.2026): неактивні підписи були темними на чорному барі */
  .bottom-nav .nav-item:not(.active), .bottom-nav .nav-item:not(.active) span{color:var(--on-fill) !important;-webkit-text-fill-color:var(--on-fill) !important}
  .bottom-nav .nav-item.active, .bottom-nav .nav-item.active span{color:var(--ink) !important;-webkit-text-fill-color:var(--ink) !important}
  /* Заголовки секцій (п.2): золото + лінія праворуч */
  .md-sec{color:var(--ink);letter-spacing:.1em}
  .md-sec::after{content:"";flex:1 1 auto;height:1px;background:var(--fill2);margin-left:8px;align-self:center}
  .pf-sec{display:flex;align-items:center;gap:8px;color:var(--ink);letter-spacing:.1em}
  .pf-sec::after{content:"";flex:1;height:1px;background:var(--fill2)}
  .sv-section-cap .cap-t{flex:1;display:flex;align-items:center;gap:8px;font-size:0.6471rem;letter-spacing:.1em;color:var(--ink);border-bottom:none;padding-bottom:0}
  .sv-section-cap .cap-t::after{content:"";flex:1;height:1px;background:var(--fill2)}
  .sv-section-cap .cap-sum{font-size:0.6471rem;font-weight:700;color:var(--mut)}
