/* УТБ Обслуживание — тема «Динамо»: тёмно-синий, синий, белый. Эксплуатация — УКТС групп. v2 */
:root{
  --dyn-900:#00205B; --dyn-800:#002B7A; --dyn-700:#003DA5; --dyn-600:#0B4EA2; --dyn-200:#C9D8F2; --dyn-100:#E6EEFA; --dyn-50:#F3F7FD;
  --dyn:var(--dyn-700); --dyn-d:var(--dyn-900); --dyn-l:var(--dyn-100);
  --ok:#1B7F3B; --ok-bg:#E5F4EA; --warn:#A15C00; --warn-bg:#FDF1DD; --bad:#B42318; --bad-bg:#FDE8E7;
  --ink:#0B1F3F; --ink-2:#4A5568; --ink-3:#6B7385; --line:#DCE3EE;
  --stripe:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 14px,rgba(255,255,255,0) 14px 28px);
  --surface-gray-10:var(--dyn-700); --surface-gray-9:var(--dyn-900);
  --btn-primary:var(--dyn-700); --ink-blue-link:var(--dyn-700);
}
[data-theme="light"], :root:not([data-theme]){
  --surface-sidebar:#F3F6FB; --surface-gray-2:#EEF3FA; --surface-gray-3:#E3ECF8;
}
body{font-feature-settings:"tnum","cv11"}
[data-theme="light"] body{background:#F6F8FC}
a{color:var(--dyn-700)}
.es-button,.btn,.form-control,.input-with-feedback,input,select,textarea{border-radius:10px!important}
.btn-primary,.btn-primary:focus{background:var(--dyn-700)!important;border-color:var(--dyn-700)!important;color:#fff!important}
.btn-primary:hover{background:var(--dyn-800)!important}
:focus-visible{outline:2px solid var(--dyn-600)!important;outline-offset:2px}

/* Боковое меню: шапка — тёмно-синяя полоса, активный пункт — синий */
.body-sidebar .sidebar-header{background:var(--dyn-900);background-image:var(--stripe);color:#fff!important;border-radius:12px;margin:6px 6px 8px;padding:6px 8px}
.body-sidebar .sidebar-header *{color:#fff!important}
.body-sidebar .standard-sidebar-item.active-sidebar{background:var(--dyn-700)!important;color:#fff!important}
.body-sidebar .standard-sidebar-item.active-sidebar *{color:#fff!important;stroke:#fff}
.body-sidebar .standard-sidebar-item:not(.active-sidebar):hover{background:var(--dyn-100)}
.body-sidebar [class*="section"] .sidebar-item-label,.body-sidebar .section-break-label{letter-spacing:.06em}
.utb-credit{display:block;font-size:11px;line-height:1.3;color:var(--ink-3)!important;text-decoration:none!important;padding:6px 12px 2px;opacity:.85}
.utb-credit b{font-weight:600;color:var(--ink-2)}
.utb-credit:hover{opacity:1;color:var(--dyn-700)!important}

/* Заголовки страниц и карточки */
.page-head .title-text{font-weight:700;color:var(--ink);letter-spacing:-.01em}
.frappe-card,.widget{border-radius:14px}
.indicator-pill.green,.indicator-pill.blue,.indicator-pill.orange,.indicator-pill.red{font-weight:600}

/* Рабочее место (телефон) */
.utbw .utb-hero{position:relative;margin:4px 0 14px;padding:16px 16px 14px;border-radius:18px;color:#fff;
  background:linear-gradient(135deg,var(--dyn-900) 0%,var(--dyn-700) 100%);background-image:var(--stripe),linear-gradient(135deg,var(--dyn-900) 0%,var(--dyn-700) 100%);box-shadow:0 8px 24px rgba(0,32,91,.25)}
.utbw .utb-hero .k{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.utbw .utb-hero .h{font-size:20px;font-weight:700;margin-top:2px}
.utbw .utb-hero .s{font-size:13px;opacity:.9;margin-top:4px}
.utbw .tile{border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 1px 2px rgba(11,31,63,.05)!important;transition:transform .08s,box-shadow .15s,border-color .15s;min-height:124px!important}
.utbw .tile:hover{border-color:var(--dyn-200)!important;box-shadow:0 6px 18px rgba(0,61,165,.10)!important}
.utbw .tile:active{transform:scale(.98);background:var(--dyn-50)!important}
.utbw .tile .ic{width:54px;height:54px;border-radius:50%;background:var(--dyn-100);display:flex;align-items:center;justify-content:center;font-size:27px!important}
.utbw .tile .tt{color:var(--ink)!important;font-weight:700!important;letter-spacing:-.01em}
.utbw .tile .st{color:var(--ink-3)!important}
.utbw .tile .badge{background:var(--dyn-700)!important;font-weight:700}
.utbw .back{min-height:44px}
.utbw .utb-credit{text-align:center;margin:18px 0 6px}

/* Страница входа */
body[data-path="login"]{background:#F3F6FB}
body[data-path="login"]::before{content:"";position:fixed;left:0;right:0;top:0;height:38vh;z-index:-1;
  background-image:var(--stripe),linear-gradient(135deg,var(--dyn-900) 0%,var(--dyn-700) 100%)}
.for-login .page-card,.for-login .login-content{border-radius:20px!important;box-shadow:0 18px 50px rgba(0,32,91,.18)!important;border:0!important}
.page-card-head::before{content:"УТБ ВТБ «Новогорск-Динамо»";display:block;color:var(--dyn-900);font-weight:800;font-size:16px;letter-spacing:.01em;margin-bottom:6px}
.page-card-head::after{content:"Система обслуживания объекта";display:block;color:var(--ink-3);font-size:12px;margin-top:4px}
.for-login .btn-primary{min-height:44px;font-weight:600}
.utb-login-credit{text-align:center;margin:16px auto 24px;font-size:12px;color:var(--ink-3)}
.utb-login-credit a{color:var(--ink-2)!important;text-decoration:none}
.utb-login-credit a:hover{color:var(--dyn-700)!important}

@media (max-width:767px){.utbw{padding-left:12px!important;padding-right:12px!important}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ===== v3: иконки, таблицы, списки, статусы (по образцу Linear / Stripe / Notion) ===== */
.utb-ico{display:inline-flex;align-items:center;justify-content:center;vertical-align:-.2em;margin-right:.35em;line-height:1}
.utb-ico:last-child{margin-right:0}
.utb-ico svg.icon{width:1.15em;height:1.15em;--icon-stroke:currentColor;stroke:currentColor;color:inherit}
.utb-dot{display:inline-block;width:.62em;height:.62em;border-radius:50%;margin-right:.4em;vertical-align:.05em;background:#C4CBD8}
.utb-dot.ok{background:var(--ok)}.utb-dot.bad{background:var(--bad)}.utb-dot.idle{background:#C4CBD8}
.utbw .tile .ic .utb-ico{margin:0}
.utbw .tile .ic .utb-ico svg.icon{width:26px;height:26px;color:var(--dyn-700);--icon-stroke:var(--dyn-700);stroke-width:1.8}

/* Списки Frappe (заявки, ППР, смены…) */
.list-row-head{position:sticky;top:0;z-index:2;background:var(--surface-white,#fff)!important;border-bottom:1px solid var(--line)!important}
.list-row-head .list-row-col,.list-row-head span{font-size:11px!important;font-weight:600!important;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)!important}
.list-row-container{border-bottom:1px solid #EEF1F6!important}
.list-row{min-height:44px;transition:background .12s}
.list-row:hover,.list-row-container:hover{background:var(--dyn-50)!important}
.list-row .list-subject a,.list-row .bold{color:var(--ink)!important;font-weight:600}
.list-row .list-row-col{font-variant-numeric:tabular-nums}
.list-row-container.row-selected,.list-row-container:has(input:checked){background:var(--dyn-100)!important}
.standard-filter-section .form-control,.standard-filter-section input{height:32px}
.list-paging-area .btn-paging.btn-info{background:var(--dyn-700)!important;color:#fff!important}
.no-result .no-result-text,.msg-box{color:var(--ink-3)}

/* Статусы — единые «таблетки» */
.indicator-pill{border-radius:999px!important;font-weight:600!important;padding:2px 10px!important;font-size:12px!important}
.indicator-pill.green{background:var(--ok-bg)!important;color:var(--ok)!important}
.indicator-pill.orange,.indicator-pill.yellow{background:var(--warn-bg)!important;color:var(--warn)!important}
.indicator-pill.red{background:var(--bad-bg)!important;color:var(--bad)!important}
.indicator-pill.blue,.indicator-pill.darkblue,.indicator-pill.cyan{background:var(--dyn-100)!important;color:var(--dyn-700)!important}
.indicator-pill.gray,.indicator-pill.grey{background:#EEF1F6!important;color:var(--ink-2)!important}
.indicator-pill::before{display:none!important}

/* Отчёты (таблица данных) */
.dt-cell__content{font-variant-numeric:tabular-nums}
.dt-header .dt-cell__content,.dt-row-header .dt-cell__content{font-weight:600;color:var(--ink-2);font-size:12px;letter-spacing:.02em}
.dt-header .dt-cell,.dt-row-header .dt-cell{background:#F6F8FC!important}
.dt-row:hover .dt-cell{background:var(--dyn-50)!important}
.dt-cell{border-color:#EEF1F6!important}

/* Формы */
.form-section .section-head{font-weight:700;color:var(--ink);letter-spacing:-.01em}
.control-label,.frappe-control .control-label{color:var(--ink-2)!important;font-weight:500}
.form-control:focus,.input-with-feedback:focus{box-shadow:0 0 0 3px rgba(0,61,165,.15)!important;border-color:var(--dyn-600)!important}

/* Свои страницы: строки-списки как таблица */
.utbs .row-item,.utbs > div > .item,.utbt .card,.utbt .box{border-radius:12px}
[id^="page-utb-"] .layout-main-section button:not(.btn-primary):not(.btn){border-radius:10px}
[id^="page-utb-"] .layout-main-section{font-variant-numeric:tabular-nums}

/* Пустые состояния и скелетон */
.utb-empty{padding:28px 12px;text-align:center;color:var(--ink-3)}

/* «Сегодня»: показатели как в Stripe — белые карточки, цвет только у числа и полоски */
.utbt .kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:12px!important}
.utbt .kpi{background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;padding:12px 14px!important;position:relative;overflow:hidden}
.utbt .kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--dyn-200)}
.utbt .kpi .n{font-size:28px!important;font-weight:800!important;color:var(--ink)!important;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.utbt .kpi .t{font-size:12px!important;color:var(--ink-3)!important;text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.utbt .kpi.bad::before{background:var(--bad)}.utbt .kpi.bad .n{color:var(--bad)!important}
.utbt .kpi.warn::before{background:#E8A33D}.utbt .kpi.warn .n{color:var(--warn)!important}
.utbt .box{background:#fff;border:1px solid var(--line)!important;border-radius:14px!important}
.utbt .box h4{font-size:12px!important;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)!important;font-weight:700!important}
.utbt .tabs{background:#EEF2F8;border-radius:10px;padding:3px;display:inline-flex!important;gap:2px!important}
.utbt .tab{border:0!important;background:transparent!important;border-radius:8px!important;color:var(--ink-2)!important}
.utbt .tab.on{background:#fff!important;color:var(--dyn-700)!important;box-shadow:0 1px 3px rgba(11,31,63,.12)}
.utbt .tab b{margin-left:6px;color:inherit}
.utbt .rq{border-radius:10px;padding-top:8px;padding-bottom:8px}
.utbt .rq:hover,.utbt .rd:hover,.utbt .em:hover{background:var(--dyn-50)}
.utbt .pill{border-radius:999px!important;font-weight:600}

/* Вход: кнопка в цветах темы; фон из фотографий (если загружены) */
.for-login .es-button,.for-login button.btn-primary,.page-card .es-button[type="submit"],.for-forgot .es-button{background:var(--dyn-700)!important;color:#fff!important;border-color:var(--dyn-700)!important;min-height:44px;font-weight:600}
.for-login .es-button:hover,.for-forgot .es-button:hover{background:var(--dyn-800)!important}
.utb-bg{position:fixed;inset:0;z-index:-1;background:var(--dyn-900)}
.utb-bg-s{position:absolute;inset:0;background-size:cover;background-position:center 30%;opacity:0;transition:opacity 1.6s ease}
.utb-bg-s.on{opacity:1}
.utb-bg-ov{position:absolute;inset:0;background:linear-gradient(160deg,rgba(0,32,91,.78) 0%,rgba(0,61,165,.55) 55%,rgba(0,32,91,.80) 100%)}
body.utb-has-bg::before{display:none}


/* Подпись УКТС групп: логотип + текст, неброско */
.utb-credit,.utb-login-link{display:flex!important;align-items:center;gap:8px}
.utb-uk-logo{width:18px;height:auto;flex:none;opacity:.9}
.utb-uk-tx{display:flex;flex-direction:column;line-height:1.3}
.utb-uk-tx .l2,.utb-uk-tx .l3{font-size:10.5px;color:var(--ink-3);font-weight:400}
.utbw .utb-credit{justify-content:center;text-align:left}
.utbw .utb-credit .utb-uk-logo{width:24px}
/* Вход: подпись УКТС в правом нижнем углу (вариант Б) */
.utb-login-credit{position:fixed;right:32px;bottom:28px;z-index:5;margin:0!important;text-align:left!important}
.utb-login-link{display:flex!important;align-items:center;gap:12px;color:var(--ink-3)!important;text-decoration:none!important;max-width:360px;opacity:.75;transition:opacity .2s}
.utb-login-link:hover{opacity:1}
.utb-login-link .utb-uk-logo{width:30px}
.utb-login-link .utb-uk-tx{border-left:1px solid rgba(107,115,133,.35);padding-left:12px;gap:2px}
.utb-login-link .l1{font-size:12px;letter-spacing:.02em}
.utb-login-link .l2{font-size:11px;opacity:.85;line-height:1.35;color:inherit!important}
body.utb-has-bg .utb-login-link,body.utb-has-bg .utb-login-link *{color:#fff!important}
body.utb-has-bg .utb-login-link .utb-uk-logo{filter:brightness(0) invert(1)}
body.utb-has-bg .utb-login-link .utb-uk-tx{border-left-color:rgba(255,255,255,.4)}
body.utb-has-bg .utb-login-link{text-shadow:0 1px 8px rgba(0,20,60,.45)}
@media (max-width:767px),(max-height:640px){
 .utb-login-credit{position:static;display:flex;justify-content:center;margin:24px auto 32px!important;padding:0 16px;box-sizing:border-box;width:100%}
 .utb-login-link{max-width:340px}
}

/* v54-login-card: на ширине до 576px Frappe задаёт карточке min-height:100svh */
@media (max-width:575.98px){
 body[data-path="login"] .page-content-wrapper{min-height:0!important}
 body[data-path="login"] .for-login .page-card,
 body[data-path="login"] .for-forgot .page-card,
 body[data-path="login"] .for-signup .page-card,
 body[data-path="login"] .for-email-login .page-card{
  min-height:0!important;height:auto!important;margin-top:20px!important
 }
}

/* v55-login-split: на широком экране вход слева, фото на остальной площади */
@media (min-width:960px){
 body[data-path="login"] .page-content-wrapper{
  position:fixed!important;left:0;top:0;bottom:0;z-index:2;
  width:480px;max-width:42vw;min-height:100vh!important;height:100vh;
  margin:0!important;padding:0!important;
  display:flex!important;align-items:center;
  background:#fff;overflow:auto;
  box-shadow:12px 0 40px rgba(0,20,60,.12)
 }
 body[data-path="login"] .page-content-wrapper .container,
 body[data-path="login"] .page_content,
 body[data-path="login"] .for-login,
 body[data-path="login"] .for-forgot,
 body[data-path="login"] .for-signup,
 body[data-path="login"] .for-email-login{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:transparent!important
 }
 body[data-path="login"] .for-login .page-card,
 body[data-path="login"] .for-login .login-content,
 body[data-path="login"] .for-forgot .page-card,
 body[data-path="login"] .for-signup .page-card,
 body[data-path="login"] .for-email-login .page-card{
  width:100%!important;max-width:none!important;margin:0!important;
  border-radius:0!important;box-shadow:none!important;background:transparent!important;
  padding:36px 48px!important
 }
 body.utb-has-bg .utb-bg-s{background-position:68% center!important}
 body.utb-has-bg .utb-bg-ov{
  background:linear-gradient(90deg,rgba(0,32,91,.22) 0%,rgba(0,32,91,.12) 46%,rgba(0,20,60,.28) 100%)!important
 }
}
/* v57-login-look: фото на весь экран, форма без белой карточки.
   Широкий экран — снимок слева, вход справа. Телефон — форма на снимке. */
body.utb-has-bg .utb-bg-ov{
 background:linear-gradient(160deg,rgba(0,32,91,.78) 0%,rgba(0,61,165,.55) 55%,rgba(0,32,91,.80) 100%)!important
}
body[data-path="login"] .page-card-head h4,
body[data-path="login"] h4{color:#fff!important;font-weight:800!important;letter-spacing:.04em;margin:0 0 6px!important}
body[data-path="login"] .page-card-head::before{color:rgba(255,255,255,.85)!important;font-size:13px!important;letter-spacing:.02em;font-weight:700!important}
body[data-path="login"] .page-card-head::after,
body[data-path="login"] .page-card,
body[data-path="login"] .page-card p,
body[data-path="login"] .control-label,
body[data-path="login"] label,
body[data-path="login"] .for-login a{color:rgba(255,255,255,.82)!important}
body[data-path="login"] input,
body[data-path="login"] .form-control{
 background:rgba(255,255,255,.1)!important;border:1px solid rgba(255,255,255,.38)!important;
 color:#fff!important;border-radius:12px!important;height:48px!important;box-shadow:none!important
}
body[data-path="login"] input::placeholder{color:rgba(255,255,255,.55)!important}
body[data-path="login"] .toggle-password,
body[data-path="login"] .toggle-password svg{color:#fff!important;stroke:#fff}
body[data-path="login"] .btn-primary,
body[data-path="login"] .es-button,
body[data-path="login"] button[type="submit"]{
 background:linear-gradient(90deg,#003DA5 0%,#00205B 100%)!important;border:0!important;color:#fff!important;
 border-radius:12px!important;min-height:48px!important;font-weight:700!important;width:100%!important
}
@media (max-width:959px){
 body[data-path="login"] .page-content-wrapper{
  position:relative!important;left:auto!important;right:auto!important;width:100%!important;height:auto!important;
  min-height:0!important;background:transparent!important;box-shadow:none!important;display:block!important
 }
 body[data-path="login"] .for-login .page-card,
 body[data-path="login"] .for-login .login-content,
 body[data-path="login"] .for-forgot .page-card,
 body[data-path="login"] .for-signup .page-card,
 body[data-path="login"] .for-email-login .page-card{
  background:transparent!important;box-shadow:none!important;border-radius:0!important;
  width:calc(100% - 40px)!important;max-width:420px!important;margin:14vh auto 0!important;
  min-height:0!important;height:auto!important;padding:8px 4px 16px!important
 }
 body[data-path="login"] h4{font-size:32px!important}
}
@media (min-width:960px){
 body[data-path="login"] .page-content-wrapper{
  position:fixed!important;right:0;left:auto!important;top:0;bottom:0;z-index:2;
  width:min(520px,46vw);max-width:none!important;height:100vh;min-height:100vh!important;
  margin:0!important;padding:48px 56px!important;
  display:flex!important;align-items:center;justify-content:center;
  background:linear-gradient(180deg,rgba(0,32,91,.62),rgba(0,16,48,.78))!important;
  box-shadow:none!important;overflow:auto
 }
 body[data-path="login"] .page-content-wrapper .container,
 body[data-path="login"] .page_content,
 body[data-path="login"] .for-login,
 body[data-path="login"] .for-forgot,
 body[data-path="login"] .for-signup,
 body[data-path="login"] .for-email-login{width:100%!important;max-width:400px!important;margin:0 auto!important;padding:0!important;background:transparent!important}
 body[data-path="login"] .for-login .page-card,
 body[data-path="login"] .for-login .login-content,
 body[data-path="login"] .for-forgot .page-card,
 body[data-path="login"] .for-signup .page-card,
 body[data-path="login"] .for-email-login .page-card{
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
  background:transparent!important;box-shadow:none!important;border-radius:0!important
 }
 body[data-path="login"] .page-card-head::before,
 body[data-path="login"] .page-card-head::after{display:none!important}
 body[data-path="login"] h4{font-size:40px!important}
 body.utb-has-bg[data-path="login"]::after{
  content:"УТБ ВТБ\A«Новогорск-Динамо»";white-space:pre-line;
  position:fixed;left:56px;bottom:64px;z-index:1;max-width:42vw;
  color:#fff;font-size:44px;font-weight:800;line-height:1.12;letter-spacing:-.02em;
  text-shadow:0 2px 18px rgba(0,20,60,.45);pointer-events:none
 }
 body[data-path="login"] .utb-login-credit{left:40px!important;right:auto!important;top:28px!important;bottom:auto!important}
}
/* v58-login-contrast: белые поля и тёмный текст, подписи чисто белые. */
body[data-path="login"] .page-card-head::before,
body[data-path="login"] .page-card-head::after,
body[data-path="login"] .page-card p,
body[data-path="login"] .control-label,
body[data-path="login"] label,
body[data-path="login"] .for-login a,
body[data-path="login"] .for-forgot a,
body[data-path="login"] .for-signup a,
body[data-path="login"] .for-email-login a{
 color:#fff!important;font-weight:600!important;
 text-shadow:0 1px 2px rgba(0,12,36,.55)
}
body[data-path="login"] h4{text-shadow:0 2px 14px rgba(0,12,36,.45)}
body[data-path="login"] input,
body[data-path="login"] .form-control{
 background:#fff!important;border:1.5px solid #fff!important;
 color:#00205B!important;-webkit-text-fill-color:#00205B!important;
 font-size:16px!important;font-weight:600!important;caret-color:#00205B;
 box-shadow:0 1px 3px rgba(0,16,48,.28)!important
}
body[data-path="login"] input::placeholder{color:#3E4C66!important;opacity:1!important;font-weight:500!important;-webkit-text-fill-color:#3E4C66!important}
body[data-path="login"] input:focus,
body[data-path="login"] .form-control:focus{
 border-color:#fff!important;box-shadow:0 0 0 3px rgba(255,255,255,.7)!important;outline:none!important
}
body[data-path="login"] input:-webkit-autofill,
body[data-path="login"] input:-webkit-autofill:focus{
 -webkit-text-fill-color:#00205B!important;
 box-shadow:0 0 0 1000px #fff inset!important
}
body[data-path="login"] .toggle-password,
body[data-path="login"] .toggle-password svg{color:#00205B!important;stroke:#00205B!important;fill:#00205B}
@media (min-width:960px){
 body[data-path="login"] .page-content-wrapper{
  background:linear-gradient(180deg,rgba(0,20,58,.9),rgba(0,10,32,.94))!important
 }
}
