/* auth-gate — брендированный экран входа «Кабинет руководителя» (точь-в-точь по макету).
   Полноэкранный оверлей поверх дашборда + меню «Выход» на чипе профиля.
   Палитра/шрифты согласованы с дашбордом (Manrope/Bricolage, синий #1f73e0). */

:root{
  --tc-blue:#2f6fed;
  --tc-blue-deep:#1f5fd6;
  --tc-blue-soft:#eaf2fd;
  --tc-blue-line:#d6e6fb;
  --tc-ink:#16233f;
  --tc-ink-2:#46587a;
  --tc-ink-3:#8190a8;
  --tc-line:#e6eef8;
  --tc-ok:#16a34a;
  --tc-ease:cubic-bezier(.2,.75,.2,1);
}

/* экран заблокирован — прячем дашборд под оверлеем */
html.tc-locked{overflow:hidden}
html.tc-locked body>.dashboard{display:none!important}

/* ── оверлей ── */
.tc-auth{
  position:fixed;inset:0;z-index:99999;
  display:flex;align-items:center;justify-content:center;padding:28px;
  font-family:'Manrope',system-ui,sans-serif;color:var(--tc-ink);
  background:
    radial-gradient(120% 90% at 78% -10%,rgba(255,255,255,.55),transparent 55%),
    linear-gradient(168deg,#eaf3fc 0%,#d8e9f7 42%,#cadef2 100%);
  overflow:auto;
  animation:tc-fade .5s var(--tc-ease) both;
}
/* индустриальный силуэт + декоративная линия (фон под фото; заменяемо через --tc-bg) */
.tc-auth__bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.tc-auth__bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* мягкий скрим над фото — карточка/текст читаются, низ уходит в светлую волну */
.tc-auth__bg::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0) 32%,rgba(245,249,253,.30))}
.tc-auth__silhouette{position:absolute;left:0;right:0;bottom:0;width:100%;height:46%;opacity:.13;color:#3f5f86}
.tc-auth__line{position:absolute;top:-6%;left:-4%;width:60%;height:70%;opacity:.5;color:#9cc0ec;fill:none}

/* ── карточка ── */
.tc-card{
  position:relative;z-index:1;
  display:grid;grid-template-columns:0.82fr 1fr;
  width:min(1180px,100%);min-height:560px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.7);
  border-radius:30px;overflow:hidden;
  box-shadow:0 40px 90px -40px rgba(22,50,95,.45),0 12px 36px -18px rgba(22,50,95,.25);
  backdrop-filter:blur(8px);
  animation:tc-rise .55s var(--tc-ease) both;
}

/* ── левая колонка: бренд + преимущества ── */
.tc-side{
  position:relative;padding:48px 46px;
  background:linear-gradient(168deg,#f4f9fe 0%,#eaf3fc 100%);
  border-right:1px solid var(--tc-line);
  display:flex;flex-direction:column;
}
.tc-brand{display:flex;align-items:center;gap:16px}
.tc-logo{width:58px;height:58px;flex:none}
.tc-brand__name{font-family:'Bricolage Grotesque',Manrope,sans-serif;font-weight:700;font-size:30px;letter-spacing:.01em;color:#16233f;line-height:1}
.tc-brand__sub{font-size:11.5px;letter-spacing:.22em;color:var(--tc-ink-3);font-weight:600;margin-top:6px}
.tc-divider{width:54px;height:4px;border-radius:3px;background:var(--tc-blue);margin:26px 0 22px}
.tc-side h2{font-family:'Bricolage Grotesque',Manrope,sans-serif;font-weight:700;font-size:27px;line-height:1.18;letter-spacing:-.01em;margin:0 0 14px;color:#16233f}
.tc-side p.lead{font-size:14.5px;line-height:1.55;color:var(--tc-ink-2);margin:0 0 30px;max-width:330px}
.tc-feats{display:flex;flex-direction:column;gap:20px;margin-top:auto}
.tc-feat{display:flex;align-items:flex-start;gap:15px}
.tc-feat__ic{width:46px;height:46px;flex:none;border-radius:13px;background:#fff;border:1px solid var(--tc-blue-line);
  display:grid;place-items:center;color:var(--tc-blue);box-shadow:0 4px 12px -6px rgba(47,111,237,.4)}
.tc-feat__ic svg{width:22px;height:22px}
.tc-feat__t{font-weight:700;font-size:15px;color:#16233f}
.tc-feat__d{font-size:12.5px;color:var(--tc-ink-2);line-height:1.4;margin-top:2px}

/* ── правая колонка: форма ── */
.tc-form{padding:48px 56px;display:flex;flex-direction:column;justify-content:center;background:#fff}
.tc-lock{width:84px;height:84px;margin:0 auto 18px;border-radius:50%;
  display:grid;place-items:center;color:var(--tc-blue);
  background:radial-gradient(circle at 50% 45%,#eaf2fd 0%,#f3f8ff 70%);
  border:2px dashed var(--tc-blue-line)}
.tc-lock svg{width:34px;height:34px}
.tc-form h1{font-family:'Bricolage Grotesque',Manrope,sans-serif;text-align:center;font-weight:700;font-size:30px;letter-spacing:-.01em;margin:0 0 8px;color:#16233f}
.tc-form .tc-welcome-sub{text-align:center;font-size:14.5px;color:var(--tc-ink-2);margin:0 0 26px}

.tc-field{margin-bottom:18px}
.tc-field>label{display:block;font-size:13px;font-weight:600;color:var(--tc-ink-2);margin-bottom:8px}
.tc-input{position:relative;display:flex;align-items:center}
.tc-input>svg.lead-ic{position:absolute;left:15px;width:19px;height:19px;color:var(--tc-ink-3);pointer-events:none}
.tc-input input{
  width:100%;height:54px;padding:0 16px 0 46px;
  border:1.5px solid var(--tc-line);border-radius:13px;background:#fff;
  font:inherit;font-size:15px;font-weight:600;color:var(--tc-ink);
  transition:border-color .16s var(--tc-ease),box-shadow .16s var(--tc-ease);
}
.tc-input input::placeholder{color:#a8b4c8;font-weight:500}
.tc-input input:focus{outline:none;border-color:var(--tc-blue);box-shadow:0 0 0 4px rgba(47,111,237,.12)}
.tc-input.has-trail input{padding-right:128px}
.tc-secure{position:absolute;right:16px;display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--tc-ok)}
.tc-secure svg{width:14px;height:14px}
.tc-eye{position:absolute;right:14px;width:30px;height:30px;border:0;background:transparent;color:var(--tc-ink-3);cursor:pointer;display:grid;place-items:center;border-radius:8px}
.tc-eye:hover{color:var(--tc-ink-2);background:#f2f6fc}
.tc-eye svg{width:21px;height:21px}

.tc-row{display:flex;align-items:center;justify-content:space-between;margin:6px 0 22px}
.tc-remember{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--tc-ink-2);cursor:pointer;user-select:none}
.tc-remember input{position:absolute;opacity:0;width:0;height:0}
.tc-check{width:21px;height:21px;border-radius:6px;border:1.5px solid #c5d3e6;display:grid;place-items:center;transition:all .15s var(--tc-ease)}
.tc-check svg{width:13px;height:13px;color:#fff;opacity:0;transform:scale(.6);transition:all .15s var(--tc-ease)}
.tc-remember input:checked+.tc-check{background:var(--tc-blue);border-color:var(--tc-blue)}
.tc-remember input:checked+.tc-check svg{opacity:1;transform:scale(1)}
.tc-remember input:focus-visible+.tc-check{box-shadow:0 0 0 4px rgba(47,111,237,.18)}
.tc-forgot{font-size:14px;font-weight:600;color:var(--tc-blue);background:none;border:0;cursor:pointer;padding:0}
.tc-forgot:hover{text-decoration:underline}

.tc-btn{
  width:100%;height:56px;border:0;border-radius:14px;font:inherit;font-size:16px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:10px;
  transition:transform .14s var(--tc-ease),box-shadow .16s var(--tc-ease),background .16s var(--tc-ease);
}
.tc-btn.primary{color:#fff;background:linear-gradient(180deg,var(--tc-blue),var(--tc-blue-deep));
  box-shadow:0 14px 26px -12px rgba(31,95,214,.6)}
.tc-btn.primary:hover{transform:translateY(-1px);box-shadow:0 18px 32px -12px rgba(31,95,214,.7)}
.tc-btn.primary:active{transform:translateY(0)}
.tc-btn.primary svg{width:20px;height:20px}
.tc-btn.ghost{margin-top:13px;background:#fff;color:var(--tc-ink);border:1.5px solid var(--tc-line)}
.tc-btn.ghost:hover{background:#f6f9fe;border-color:var(--tc-blue-line)}

.tc-error{margin:-6px 0 14px;font-size:13.5px;font-weight:600;color:#d83a32;min-height:18px;text-align:center}
.tc-setup-hint{margin:-6px 0 14px;font-size:13px;color:var(--tc-blue);text-align:center;font-weight:600}
.tc-shake{animation:tc-shake .4s var(--tc-ease)}

/* ── меню «Выход» на чипе профиля ── */
.dashboard .profile{cursor:pointer;position:relative}
.tc-logout-menu{
  position:fixed;z-index:100000;min-width:190px;padding:7px;
  background:#fff;border:1px solid var(--tc-line);border-radius:14px;
  box-shadow:0 18px 40px -16px rgba(22,50,95,.4);
  animation:tc-pop .16s var(--tc-ease) both;
}
.tc-logout-menu__user{padding:9px 11px 11px;border-bottom:1px solid var(--tc-line);margin-bottom:6px}
.tc-logout-menu__user small{display:block;font-size:11.5px;color:var(--tc-ink-3)}
.tc-logout-menu__user b{font-size:14px;color:var(--tc-ink)}
.tc-logout-menu button{
  width:100%;display:flex;align-items:center;gap:11px;padding:11px 12px;border:0;border-radius:9px;
  background:transparent;font:inherit;font-size:14px;font-weight:600;color:#d83a32;cursor:pointer;text-align:left;
}
.tc-logout-menu button:hover{background:#fdeceb}
.tc-logout-menu button svg{width:18px;height:18px}

/* ── брендированное подтверждение (вместо системного confirm/alert) ── */
.tc-modal-wrap{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(16,30,55,.42);backdrop-filter:blur(3px);font-family:'Manrope',system-ui,sans-serif;
  animation:tc-fade .18s var(--tc-ease) both}
.tc-modal{width:min(420px,100%);background:#fff;border-radius:20px;padding:26px 26px 22px;text-align:center;
  box-shadow:0 30px 70px -30px rgba(16,40,80,.5);animation:tc-rise .22s var(--tc-ease) both}
.tc-modal-ic{width:56px;height:56px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;
  background:var(--tc-blue-soft);color:var(--tc-blue)}
.tc-modal-ic.danger{background:#fdeceb;color:#d83a32}
.tc-modal-ic svg{width:26px;height:26px}
.tc-modal h3{font-family:'Bricolage Grotesque',Manrope,sans-serif;font-size:20px;font-weight:700;color:var(--tc-ink);margin:0 0 8px}
.tc-modal p{font-size:14px;line-height:1.5;color:var(--tc-ink-2);margin:0 0 20px}
.tc-modal-actions{display:flex;gap:10px}
.tc-modal-actions .tc-btn{height:48px;font-size:15px;flex:1}
.tc-btn.danger{color:#fff;background:linear-gradient(180deg,#e4544b,#d2382f);box-shadow:0 12px 22px -12px rgba(210,56,47,.6)}
.tc-btn.danger:hover{filter:brightness(1.04);transform:translateY(-1px)}

@keyframes tc-fade{from{opacity:0}to{opacity:1}}
@keyframes tc-rise{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes tc-pop{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes tc-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}

@media(max-width:880px){
  .tc-card{grid-template-columns:1fr;min-height:0;max-width:480px}
  .tc-side{display:none}
  .tc-form{padding:40px 30px}
}
