/* Кабинет Стаффи — энтерпрайзная SaaS-панель в бренде (Manrope, светлая зелёная
   палитра, акцент #0a7c5d). Подключается последним и переопределяет инлайновый
   baseline из main.py.

   Макет: app-shell с фиксированным левым сайдбаром (лого + навигация), липкой
   верхней панелью (тариф + email + выход) и рабочей областью (дашборд, CRM-таблица,
   карточки вакансий). На мобильном сайдбар уезжает за край и открывается по кнопке. */

:root{
  /* нейтрали со слабым зелёным подтоном — выглядят осознанно, а не «серо» */
  --canvas:#f1f7f4; --surface:#ffffff; --surface-2:#f6faf8;
  --ink:#122019; --ink-2:#38493f; --muted:#5f716a;
  --line:#e3ece7; --line-2:#eef4f0;

  --brand:#0a7c5d; --brand-600:#0a6e52; --brand-ink:#ffffff;
  --soft:#e1f2eb; --wash:#ecfbf4;
  --brand-grad:linear-gradient(135deg,#0d8a67,#0a6e52);

  /* семантика статусов (отдельно от бренд-акцента) */
  --ok:#157f4a;    --ok-bg:#e4f7ea;
  --info:#2f66c9;  --info-bg:#eaf1fd;
  --warn:#976312;  --warn-bg:#fbf1dd;
  --violet:#6a43c0;--violet-bg:#f0ecfb;
  --danger:#c23b2e;--danger-bg:#fbeceb;

  --radius:16px; --radius-sm:12px;
  --shadow-card:0 1px 2px rgba(16,44,36,.04),0 1px 3px rgba(16,44,36,.07);
  --shadow-pop:0 24px 48px -26px rgba(16,44,36,.38);
  --sidebar-w:258px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;min-height:100vh;
  background:radial-gradient(1100px 500px at 50% -170px,#d6efe4 0,rgba(214,239,228,0) 60%),
             linear-gradient(180deg,#e7f3ee 0%,#f1f7f4 100%)}
body{font-family:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;background:transparent;
  color:var(--ink);line-height:1.55;margin:0;max-width:none;padding:0;min-height:100vh;
  -webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.muted{color:var(--muted)}
img{max-width:100%}
h1,h2,h3{line-height:1.18;letter-spacing:-.02em;margin:.1em 0 .5em;text-wrap:balance}
h1{font-size:clamp(22px,3.4vw,28px);font-weight:800}
h2{font-size:clamp(19px,2.6vw,23px);font-weight:800}
h3{font-size:16.5px;font-weight:700}
p{margin:.45em 0}
:focus-visible{outline:2.5px solid var(--brand);outline-offset:2px}

/* ------------------------------------------------ buttons ------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--brand-grad);
  color:var(--brand-ink);padding:11px 18px;border-radius:11px;text-decoration:none;border:1.5px solid transparent;
  cursor:pointer;font:inherit;font-weight:700;font-size:14.5px;line-height:1.1;
  box-shadow:0 8px 20px -12px rgba(10,124,93,.55);transition:transform .14s,box-shadow .14s,background .14s,border-color .14s,color .14s}
.btn svg{flex:0 0 auto}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px -12px rgba(10,124,93,.6);text-decoration:none}
.btn:active{transform:none}
.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:default;transform:none;box-shadow:none}
.btn.ghost{background:var(--surface);color:var(--brand);border-color:var(--line);box-shadow:none}
.btn.ghost:hover{background:var(--wash);border-color:color-mix(in srgb,var(--brand) 32%,var(--line))}
.btn.sm{padding:8px 13px;font-size:13px;border-radius:9px}
/* Вход через Яндекс — чистая нейтральная кнопка (без их товарного знака) */
.btn.yandex{background:var(--surface);color:var(--ink);border:1.5px solid var(--line);box-shadow:none}
.btn.yandex:hover{background:#fff;border-color:#d6e2dc;box-shadow:var(--shadow-card)}

/* ------------------------------------------------ forms --------- */
label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin-top:4px}
input,select,textarea{padding:11px 13px;border:1.5px solid var(--line);border-radius:11px;width:100%;
  margin:6px 0 14px;font:inherit;font-size:14.5px;background:var(--surface);color:var(--ink);
  transition:border-color .14s,box-shadow .14s}
input::placeholder,textarea::placeholder{color:#9aa8a3}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 16%,transparent)}
textarea{min-height:104px;resize:vertical;line-height:1.5}
select{appearance:none;-webkit-appearance:none;padding-right:36px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235f716a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px}
.form-grid .field{display:flex;flex-direction:column}
.form-grid .field.full{grid-column:1/-1}
.form-grid input,.form-grid textarea{margin:6px 0 10px}
.form-grid .btn{margin-top:4px;align-self:start}

/* ------------------------------------------------ cards --------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;box-shadow:var(--shadow-card)}
.card>h2:first-child,.card>h3:first-child{margin-top:0}
.card>p:last-child,.card>form:last-child{margin-bottom:0}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.card-head h3{margin:0}
.card-head a{font-size:13px;font-weight:600}

/* ------------------------------------------------ app shell ----- */
.app{display:flex;min-height:100vh;background:var(--canvas)}

.sidebar{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);background:var(--surface);
  border-right:1px solid var(--line);display:flex;flex-direction:column;
  padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar-head{padding:8px 10px 6px}
.sidebar .brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:800;
  font-size:20px;letter-spacing:-.02em}
.sidebar .brand:hover{text-decoration:none}
.sidebar .brand svg{flex:0 0 auto}
.nav-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);padding:16px 12px 7px}
.sidebar-nav{display:flex;flex-direction:column;gap:3px}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;
  color:var(--ink-2);font-weight:600;font-size:14.5px;text-decoration:none;position:relative}
.nav-item svg{flex:0 0 auto;color:var(--muted);transition:color .14s}
.nav-item:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}
.nav-item:hover svg{color:var(--ink-2)}
.nav-item.active{background:var(--soft);color:var(--brand)}
.nav-item.active svg{color:var(--brand)}
.nav-item.active::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;
  border-radius:0 3px 3px 0;background:var(--brand)}
.nav-item.soon{color:#9fadA7;cursor:default}
.nav-item.soon svg{color:#c4d0ca}
.nav-item.soon:hover{background:transparent}
.nav-item em{margin-left:auto;font-style:normal;font-size:10px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:#92a29b;background:var(--surface-2);border:1px solid var(--line);
  padding:2px 7px;border-radius:999px}
.sidebar-foot{margin-top:auto;padding:14px 12px 4px;border-top:1px solid var(--line-2);
  color:var(--muted);font-size:12.5px;line-height:1.5}

.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;min-height:62px;
  padding:12px 26px;background:color-mix(in srgb,var(--surface) 86%,transparent);
  -webkit-backdrop-filter:saturate(1.6) blur(8px);backdrop-filter:saturate(1.6) blur(8px);
  border-bottom:1px solid var(--line)}
.topbar-title{font-size:19px;font-weight:800;letter-spacing:-.02em;margin:0}
.topbar .spacer{flex:1}
.menu-btn{display:none;align-items:center;justify-content:center;width:40px;height:40px;
  border:1px solid var(--line);background:var(--surface);border-radius:10px;cursor:pointer;color:var(--ink-2)}
.user-email{color:var(--muted);font-size:13px;font-weight:600;max-width:220px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logout{color:var(--muted);font-weight:600;font-size:13px}
.logout:hover{color:var(--danger);text-decoration:none}

.content{flex:1;width:100%;max-width:1240px;margin:0 auto;
  padding:26px max(26px,env(safe-area-inset-right,0px)) 64px max(26px,env(safe-area-inset-left,0px))}
.section-label{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin:2px 0 12px}
.list-head{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.list-head h2{margin:0}
.count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;
  padding:0 9px;border-radius:999px;background:var(--soft);color:var(--brand);font-weight:800;
  font-size:13px;font-variant-numeric:tabular-nums}
.hint{color:var(--muted);font-size:13px;margin:13px 2px 0}

/* ------------------------------------------------ stat cards ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:0 0 22px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 16px 15px;
  display:flex;flex-direction:column;gap:9px;box-shadow:var(--shadow-card);position:relative;overflow:hidden}
.stat span{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.stat b{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1;
  font-variant-numeric:tabular-nums;color:var(--ink)}
.stat:first-child{background:linear-gradient(170deg,#f3fbf7,#ffffff);
  border-color:color-mix(in srgb,var(--brand) 26%,var(--line))}
.stat:first-child::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--brand-grad)}
.stat:first-child b{color:var(--brand)}

/* ------------------------------------------------ dashboard grid  */
.dash-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:16px;align-items:start}
.mini{display:flex;flex-direction:column}
.mini-row{display:flex;align-items:center;gap:12px;padding:11px 2px;border-top:1px solid var(--line-2)}
.mini-row:first-child{border-top:0}
.mini-main{min-width:0}
.mini-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-sub{color:var(--muted);font-size:12.5px;margin-top:1px}
.mini-row .badge{margin-left:auto;flex:0 0 auto}
.actions-list{display:flex;flex-direction:column;gap:10px}
.actions-list .btn{width:100%;justify-content:flex-start}

/* ------------------------------------------------ vacancy cards - */
.vac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px;margin-bottom:20px}
.vac-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:17px 18px;
  box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:13px;transition:border-color .14s,box-shadow .14s,transform .14s}
.vac-card:hover{border-color:color-mix(in srgb,var(--brand) 26%,var(--line));box-shadow:0 10px 24px -18px rgba(16,44,36,.5)}
.vac-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.vac-head h3{margin:0;font-size:16px}
.vac-id{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.vac-meta{display:flex;flex-wrap:wrap;gap:7px}

/* ------------------------------------------------ chips & badges  */
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--line);
  border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:600;color:var(--ink-2)}
.chip.muted-chip{color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:4px 11px 4px 10px;
  font-size:12.5px;font-weight:700;line-height:1.3;white-space:nowrap}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.st-new{color:var(--info);background:var(--info-bg)}
.st-screening{color:var(--warn);background:var(--warn-bg)}
.st-booked{color:var(--violet);background:var(--violet-bg)}
.st-hired{color:var(--ok);background:var(--ok-bg)}
.st-rejected{color:var(--danger);background:var(--danger-bg)}

.pill{display:inline-flex;align-items:center;background:var(--soft);color:var(--brand);border-radius:999px;
  padding:5px 12px;font-size:12.5px;font-weight:700;white-space:nowrap}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.trial{background:var(--warn-bg);color:var(--warn)}

/* ------------------------------------------------ tables -------- */
.table-wrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface);
  box-shadow:var(--shadow-card)}
table{border-collapse:separate;border-spacing:0;width:100%}
thead th{background:var(--surface-2);color:var(--muted);font-weight:700;font-size:11px;
  text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:12px 16px;border-bottom:1px solid var(--line)}
tbody td{padding:13px 16px;border-bottom:1px solid var(--line-2);font-size:14px;vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--wash)}
.cell-name{font-weight:700;font-size:14px}
.cell-sub{color:var(--muted);font-size:12.5px;margin-top:2px}
.row-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.inline-form{display:flex;gap:8px;align-items:center;margin:0}
.inline-form select{width:auto;min-width:132px;margin:0;padding:8px 30px 8px 11px;font-size:13.5px;
  background-position:right 10px center}
.inline-form .btn{margin:0}

/* ------------------------------------------------ empty state --- */
.empty{text-align:center;padding:46px 24px;border:1.5px dashed var(--line);border-radius:16px;
  background:var(--surface-2);color:var(--muted)}
.empty-ic{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;
  border-radius:14px;background:var(--soft);color:var(--brand);margin-bottom:12px}
.empty h3{margin:0 0 5px;color:var(--ink)}
.empty p{margin:0 auto;max-width:380px;font-size:13.5px}

/* ------------------------------------------------ trial banner -- */
.banner{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#f0fbf6,#ffffff);
  border:1px solid color-mix(in srgb,var(--brand) 20%,var(--line));border-radius:14px;
  padding:15px 18px;margin:0 0 22px;box-shadow:var(--shadow-card);flex-wrap:wrap}
.b-ic{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;
  border-radius:11px;background:var(--surface);border:1px solid color-mix(in srgb,var(--brand) 24%,var(--line));color:var(--brand)}
.b-text{font-size:14px;line-height:1.45;flex:1;min-width:180px}
.b-text b{font-weight:800}
.banner form{margin:0 0 0 auto}
.banner .btn{white-space:nowrap}

/* ------------------------------------------------ auth pages ---- */
/* standalone-страницы (вход/регистрация/сообщения) центрируются поверх фона */
body>.card{max-width:520px;margin-block:48px;margin-inline:auto}
body>.card.auth{max-width:432px;margin-block:52px;box-shadow:0 36px 72px -36px rgba(16,44,36,.3);border-color:#dceee6}
@media(max-width:560px){body>.card{margin-inline:16px}}
.auth-head{text-align:center;margin-bottom:10px}
.auth-head .brand{display:inline-flex;justify-content:center;margin-bottom:14px;font-size:21px;font-weight:800;color:var(--ink)}
.auth-head .brand:hover{text-decoration:none}
.auth-head h2{margin:0 0 4px}
.auth-head p{margin:0}
.or{display:flex;align-items:center;gap:12px;text-align:center;color:var(--muted);font-size:13px;margin:18px 0 14px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}

/* ------------------------------------------------ scrim + mobile  */
.scrim{position:fixed;inset:0;background:rgba(16,36,30,.42);opacity:0;visibility:hidden;
  transition:opacity .2s;z-index:55}
.app.nav-open .scrim{opacity:1;visibility:visible}

@media(max-width:860px){
  .menu-btn{display:inline-flex}
  .sidebar{position:fixed;left:0;top:0;bottom:0;height:100vh;z-index:60;
    transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--shadow-pop)}
  .app.nav-open .sidebar{transform:none}
  .topbar{padding:11px 16px}
  .user-email{display:none}
  .dash-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .content{padding:18px 16px 56px}
  .card{padding:18px}
  .form-grid{grid-template-columns:1fr}
  .row-actions{align-items:stretch}
  .inline-form{flex:1}
  /* ≥16px, чтобы iOS не зумил поле при фокусе */
  input,select,textarea,.inline-form select{font-size:16px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ---------- тарифы ---------- */
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:4px 0 18px}
.plan-card{position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:22px 20px;display:flex;flex-direction:column;gap:14px;
  box-shadow:var(--shadow-card)}
.plan-card.best{border-color:var(--brand);box-shadow:var(--shadow-pop)}
.plan-badge{position:absolute;top:-11px;left:20px;background:var(--brand-grad);color:var(--brand-ink);
  font-size:12px;font-weight:700;padding:4px 11px;border-radius:999px}
.plan-card h3{margin:2px 0 0;font-size:19px}
.plan-price{font-size:30px;font-weight:800;color:var(--ink);line-height:1}
.plan-price small{font-size:14px;font-weight:600;color:var(--muted)}
.plan-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;
  font-size:14px;color:var(--ink-2);flex:1}
.plan-feats li{padding-left:22px;position:relative}
.plan-feats li::before{content:"";position:absolute;left:0;top:6px;width:12px;height:7px;
  border-left:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(-45deg)}
@media(max-width:820px){.plans-grid{grid-template-columns:1fr}}

/* ---------- пул кандидатов из чатов ---------- */
.lead-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin:4px 0 2px}
.lead-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 17px;
  box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:11px}
.lead-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.lead-ident{min-width:0}
.cand-contact{display:block;font-size:13px;font-weight:600;color:var(--brand);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cand-contact.masked{color:var(--muted);letter-spacing:.04em}
.lead-top form{margin:0;flex:0 0 auto}
.lead-text{margin:0;font-size:13.5px;color:var(--ink-2);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.lead-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.lead-meta .chip{font-size:12px;padding:3px 10px}
a.chip:hover{border-color:color-mix(in srgb,var(--brand) 32%,var(--line));text-decoration:none}

/* ---------- сообщения форм ---------- */
.form-error{background:var(--danger-bg);color:var(--danger);border-radius:10px;padding:10px 13px;font-size:14px;font-weight:600;margin:0 0 12px}
.form-ok{background:var(--ok-bg);color:var(--ok);border-radius:10px;padding:10px 13px;font-size:14px;font-weight:600;margin:0 0 12px}
