/* partner.vibem.ru: кабинет и вход партнёра в бренде 39е (как /39e и 39eai.ru) — бумага, тушь, сурик, Inter Tight, стекло.
   Поверх s2.css, только на партнёрском домене (base.html, body.pr). Шрифт, палитра и .glass — из lp/39e-tokens.css (общие с /39e);
   lp39.css сюда не подключается. Светлая тема всегда: бренд не переключается системной тёмной темой. */
body.pr{color-scheme:light;
  --bg:var(--paper);--bg2:var(--pole);--bg3:#ECECE8;--label:var(--ink);--label2:var(--mute);--label3:var(--dim);
  --sep:var(--lin);--fill:rgba(11,11,10,.045);--fill2:rgba(11,11,10,.08);
  --tint:var(--surik);--tint-ink:#fff;--blue:#2457C5;--green:#1E8E4E;--orange:#B86E00;--red:#C8341A;--gray:var(--dim);
  --shadow:var(--glass-sh);--grad:linear-gradient(100deg,#FF8A5C,var(--surik) 55%,var(--surik-t));
  --ok-bg:rgba(30,142,78,.1);--amber-bg:rgba(184,110,0,.1);--red-bg:rgba(200,52,26,.09);--na-bg:var(--fill);
  font-family:"Inter Tight",-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:-.005em;
  /* фон — бумага с тонкой сеткой чертежа и тёплым светом сверху, как первый экран /39e */
  background:radial-gradient(55% 35% at 85% -8%,rgba(226,73,27,.1),transparent 70%),
    linear-gradient(rgba(11,11,10,.045) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(90deg,rgba(11,11,10,.045) 1px,transparent 1px) 0 0/48px 48px,var(--paper);
  background-attachment:fixed}

body.pr h1{font-weight:800;letter-spacing:-.045em;line-height:1}
body.pr h2{font-weight:750;letter-spacing:-.03em}
body.pr a{color:var(--surik-t)}
body.pr .logo{color:var(--ink);font-weight:750;letter-spacing:-.02em}
body.pr .logo svg{width:auto;height:24px;color:var(--ink)}
body.pr header.top{background:rgba(244,244,242,.72);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid var(--lin)}
body.pr nav.tabs{background:rgba(11,11,10,.05);border-radius:99px;padding:3px}
body.pr nav.tabs a{color:var(--mute);border-radius:99px;font-weight:600}
body.pr nav.tabs a.on{background:var(--pole);color:var(--ink);box-shadow:0 1px 2px rgba(11,11,10,.08),0 4px 12px -6px rgba(11,11,10,.2)}
/* карточки — стекло 39е */
body.pr .card,body.pr .panel,body.pr .arow,body.pr .req2,body.pr .tariff,body.pr .tile{
  background:var(--glass);border:1px solid var(--glass-b);box-shadow:var(--glass-sh),inset 0 1px 0 rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%)}
body.pr .req2{border-left:4px solid var(--surik)}
body.pr .req2.is-done{border-left-color:var(--green)}
body.pr .req2.is-fail{border-left-color:var(--red)}
body.pr .tariff:has(input:checked){border-color:var(--surik);background:linear-gradient(180deg,var(--surik-s),rgba(255,255,255,.6))}
body.pr .t-badge{background:var(--surik);color:#fff}
/* кнопки — пилюли как на /39e: главная чёрная, вторичная — стекло */
body.pr .btn{background:rgba(255,255,255,.7);color:var(--ink);border:1px solid var(--lin2);border-radius:99px;font-family:inherit;font-weight:650;
  transition:transform .2s var(--ease),background .2s}
body.pr .btn:hover{background:var(--pole);opacity:1}
body.pr .btn.primary{background:var(--ink);color:#fff;border:0;box-shadow:0 10px 26px -12px rgba(11,11,10,.7)}
body.pr .btn.primary:hover{background:var(--surik)}
body.pr .btn:active{transform:scale(.98)}
body.pr .btn.ghost{background:none;border-color:transparent;color:var(--surik-t)}
body.pr .btn.danger{color:var(--red)}
/* доход — тёмная плашка-«штамп» с суриком */
body.pr .income{background:radial-gradient(70% 90% at 100% 0%,rgba(226,73,27,.35),transparent 60%),var(--ink);color:#fff;
  box-shadow:0 24px 50px -24px rgba(11,11,10,.6)}
body.pr .income .btn{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);color:#fff}
body.pr .income .btn:hover{background:var(--surik)}
body.pr .tier-t i,body.pr .stepper li.s-now i{background:var(--surik)}
body.pr .cab-nav{background:transparent}
body.pr .cab-nav a{background:var(--glass);border:1px solid var(--glass-b);box-shadow:var(--glass-sh);color:var(--ink);border-radius:var(--r2)}
body.pr .cab-nav a b{color:var(--surik)}
body.pr .req2-next{background:var(--fill)}
body.pr .seg{background:rgba(11,11,10,.05);border-radius:99px}
body.pr .seg button{color:var(--mute);border-radius:99px}
body.pr .seg button.on{background:var(--pole);color:var(--ink);box-shadow:0 1px 2px rgba(11,11,10,.08),0 4px 12px -6px rgba(11,11,10,.2)}
body.pr input[type=text],body.pr input[type=search],body.pr input[type=email],body.pr input[type=tel],body.pr input[type=password],body.pr input[type=number],
body.pr input[type=date],body.pr select,body.pr textarea,body.pr .panel input,body.pr .panel select,body.pr .panel textarea,
body.pr dialog input,body.pr dialog select,body.pr dialog textarea{background:var(--pole);border:1px solid var(--lin2);color:var(--ink);font-family:inherit}
body.pr input:focus,body.pr select:focus,body.pr textarea:focus{outline:0;border-color:var(--surik);box-shadow:0 0 0 3px var(--surik-s)}
body.pr dialog.sheet{background:var(--paper);border:1px solid var(--glass-b);box-shadow:var(--glass-sh)}
body.pr dialog .tariff{background:rgba(255,255,255,.7)}
body.pr .copy{background:var(--pole);border:1px solid var(--lin2)}
body.pr code{background:var(--fill2)}
body.pr .ok-banner{border:1px solid rgba(30,142,78,.28)}
body.pr .warn-banner{border:1px solid rgba(184,110,0,.3)}
body.pr .lbar-t,body.pr .tier-t{background:var(--fill2)}
@media (max-width:700px){
  body.pr header.top{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--paper)}  /* иначе шапка — рамка для fixed таб-панели (см. s2.css) */
  body.pr header.top nav.tabs{background:rgba(244,244,242,.92);border-top:1px solid var(--lin);border-radius:0;
    -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
  body.pr nav.tabs a{color:var(--dim)}
  body.pr nav.tabs a.on{color:var(--surik);background:none;box-shadow:none}
}

/* ── вход партнёра: объёмный знак 39е справа (3D, без WebGL — чертёж), форма — стекло слева ── */
.lg39{position:relative;min-height:calc(100vh - 40px);display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);align-items:center;
  gap:clamp(20px,3vw,40px);width:min(1320px,100vw - 32px);margin-left:50%;transform:translateX(-50%);padding:clamp(24px,5vh,56px) 0}
.lg-znak{position:relative;aspect-ratio:1978/1214;width:100%;pointer-events:none;user-select:none;order:2}
.lg-znak img,.lg-znak canvas{position:absolute;inset:0;width:100%;height:100%}
.lg-znak img{opacity:.14;transition:opacity .6s}
.lg-znak canvas{opacity:0;transition:opacity .8s}
.lg-znak canvas.on{opacity:1}
.lg-znak.live img{opacity:0}
.lg-card{order:1;border-radius:var(--r);padding:clamp(22px,4vw,34px)}
.lg-card .lg-logo{display:inline-flex;color:var(--ink);margin-bottom:18px}
.lg-card .lg-logo svg{height:30px;width:auto}
.lg-card h1{font-size:clamp(36px,4vw,48px);margin:0 0 8px}
.lg-card h1 em{font-style:normal;color:var(--surik)}
.lg-card .sub{color:var(--mute);margin:0 0 20px}
.lg-card .lbl39{margin-bottom:14px}
body.pr .lg-card .panel{background:none;border:0;box-shadow:none;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none;margin:0}
.lg-or{display:flex;align-items:center;gap:12px;color:var(--dim);font-size:14px;margin:18px 0}
.lg-or::before,.lg-or::after{content:"";flex:1;height:1px;background:var(--lin2)}
.lg-links{display:flex;justify-content:space-between;gap:12px;font-size:15px;margin-top:14px}
.lg-note{color:var(--mute);font-size:14px;margin:10px 0 0}
@media (max-width:860px){
  .lg39{grid-template-columns:minmax(0,1fr);gap:0;padding-top:8px;min-height:0;width:auto;margin-left:0;transform:none}
  .lg-znak{order:0;width:min(520px,100%);margin:0 auto -6%}
}

/* ── маскот Бип в шапке кабинета (3D, без WebGL — картинка); нажмите — подпрыгнет ── */
body.pr .cab-h{position:relative}
.bip3d{position:relative;width:132px;height:132px;margin:-18px 0 -6px auto;flex:none;
  background:url(/m/3d/bip.webp) center/contain no-repeat}  /* постер фоном: нет файла — пусто, а не «битая» картинка */
.bip3d.live{background:none}
.bip3d canvas{position:absolute;inset:0;width:100%;height:100%}
.bip3d canvas{opacity:0;transition:opacity .6s;cursor:pointer}
.bip3d canvas.on{opacity:1}
@media (max-width:700px){.bip3d{position:absolute;right:-6px;top:-4px;width:96px;height:96px;margin:0}
  body.pr .cab-h h1{padding-right:84px}}

/* кнопки шапки кабинета: агент в 1 клик, клиент с брифом, пополнить баланс */
.cab-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.cab-acts .btn{width:auto;margin-top:0}
@media (max-width:700px){.cab-acts{width:100%}.cab-acts .btn{flex:1 1 100%}}

/* отмена заявки партнёром */
.req2-cancel{margin-top:8px}
.req2-cancel summary{cursor:pointer;color:var(--mute);font-size:14px;list-style:none}
.req2-cancel summary::-webkit-details-marker{display:none}
.req2-cancel summary::before{content:"✕ "}
.req2-cancel .btn{width:auto}

/* закрытые заявки — свёрнуты под активными */
.req-closed{margin-top:12px}
.req-closed>summary{cursor:pointer;color:var(--mute);font-weight:600;padding:10px 0;list-style:none}
.req-closed>summary::-webkit-details-marker{display:none}
.req-closed>summary::before{content:"▸ "}
.req-closed[open]>summary::before{content:"▾ "}
.req-closed .req2{opacity:.78}

/* ── загрузчик долгих действий: объёмный знак 39е (8 слоёв в глубину, вращение в 3D) + кольцо суриком ── */
.busy39{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;
  background:rgba(244,244,242,.55);-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);
  opacity:0;transition:opacity .25s}
.busy39.on{opacity:1}
.busy39[hidden]{display:none}
.b39-card{border-radius:var(--r);padding:28px 30px 24px;text-align:center;max-width:360px;width:100%}
.b39-stage{position:relative;width:150px;height:150px;margin:0 auto 12px;perspective:700px}
.b39-znak{position:absolute;inset:38px 16px;transform-style:preserve-3d;animation:b39spin 2.4s cubic-bezier(.55,.05,.35,1) infinite}
.b39-znak i{position:absolute;inset:0;transform:translateZ(calc(var(--z) * -2.4px));background:var(--graf);
  -webkit-mask:url(/static/lp/39e/znak.svg) center/contain no-repeat;mask:url(/static/lp/39e/znak.svg) center/contain no-repeat}
.b39-znak i:first-child{background:linear-gradient(160deg,#3a3935,var(--ink) 55%)}   /* лицо — тушь с бликом */
.b39-znak i:last-child{background:var(--surik)}                                      /* задний слой — кант суриком */
.b39-ring{position:absolute;inset:0;border-radius:50%;border:2px solid transparent;border-top-color:var(--surik);
  border-right-color:rgba(226,73,27,.35);animation:b39ring 1.1s linear infinite}
.b39-t{display:block;font-size:20px;letter-spacing:-.02em}
.b39-t::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:b39dots 1.2s steps(4) infinite}
.b39-s{color:var(--mute);font-size:14px;margin:6px 0 0;min-height:1em}
@keyframes b39spin{0%{transform:rotateY(-28deg) rotateX(8deg)}50%{transform:rotateY(28deg) rotateX(-6deg)}100%{transform:rotateY(-28deg) rotateX(8deg)}}
@keyframes b39ring{to{transform:rotate(360deg)}}
@keyframes b39dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
@media (prefers-reduced-motion:reduce){.b39-znak,.b39-ring{animation-duration:6s}}
/* регистрация (та же раскладка, что вход) и экраны «Проверьте почту» в бренде 39е */
.lg-card .lp-form .foot{margin-top:12px}
.lg-msg{border-radius:var(--r);padding:28px}
.lg-msg .lg-logo svg{height:34px;width:auto;color:var(--ink)}

/* «Войти через Вайб-Маркетолог» */
.sso-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px;text-decoration:none;
  background:linear-gradient(100deg,#8a5cff,#c04df5 50%,#ff4fd8)!important;color:#fff!important;border:0!important}
.sso-btn:hover{filter:brightness(1.05)}

/* баланс на vibemarketolog.ru и ключи Вайб-API агентов */
.wallet-bal{display:flex;gap:16px;align-items:center;justify-content:space-between;border-radius:var(--r2);padding:18px 20px;margin-bottom:12px}
.wallet-bal>div{display:flex;flex-direction:column;gap:2px}
.wallet-bal b{font-size:32px;letter-spacing:-.03em}
.wallet-bal .btn{width:auto;margin:0}
.keys h3{margin:0 0 8px;font-size:17px}
.key-row{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:10px 0;border-top:1px solid var(--lin)}
.key-row:first-of-type{border-top:0}
.key-row>div{display:flex;flex-direction:column;gap:2px}
@media (max-width:700px){.wallet-bal{flex-direction:column;align-items:stretch}.wallet-bal .btn{width:100%}.key-row{flex-direction:column}}

/* экран «что дальше» после оформления агента: шаги и крупные кнопки сразу сверху */
.nx{max-width:720px;margin:0 auto}
.nx-back{display:inline-block;margin:6px 0 10px;color:var(--mute)}
.nx-head h1{font-size:clamp(32px,5vw,44px);margin:0 0 4px}
.nx-steps{list-style:none;display:flex;gap:6px;padding:0;margin:16px 0 18px;flex-wrap:wrap}
.nx-steps li{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:99px;background:var(--fill);color:var(--mute);font-size:14px}
.nx-steps li i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--pole);font-style:normal;font-weight:700;font-size:13px}
.nx-steps li.s-done{color:var(--green)}.nx-steps li.s-done i{background:var(--green);color:#fff}
.nx-steps li.s-now{background:var(--ink);color:#fff}.nx-steps li.s-now i{background:var(--surik);color:#fff}
.nx-steps li.s-fail{background:var(--red-bg);color:var(--red)}
.nx-card{display:flex;gap:16px;align-items:flex-start;background:var(--glass);border:1px solid var(--glass-b);box-shadow:var(--glass-sh);
  border-radius:var(--r2);padding:20px;margin-bottom:12px;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
.nx-card.ok{border-color:rgba(30,142,78,.35)}
.nx-card.mute{opacity:.75}
.nx-n{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;font-size:18px}
.nx-card.ok .nx-n{background:var(--green)}
.nx-card.mute .nx-n{background:var(--fill2);color:var(--mute)}
.nx-b{flex:1;min-width:0}
.nx-b h2{margin:4px 0 6px;font-size:22px}
.nx-b p{margin:0 0 12px;color:var(--mute)}
.nx-big{display:flex;justify-content:center;width:100%;font-size:18px;padding:16px 20px;margin:0}
.nx-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.nx-row .btn{width:auto;margin:0}
.nx-topup{display:flex;gap:8px;margin-top:10px;align-items:flex-end;flex-wrap:wrap}
.nx-topup label{display:flex;flex-direction:column;gap:2px}
.nx-topup input{width:140px}
.nx-topup .btn{width:auto;margin:0}
@media (max-width:700px){.nx-topup label,.nx-topup input{width:100%}}
.nx-cancel{margin-top:6px}
.req2-h .btn{width:auto;margin:0 0 0 auto}
@media (max-width:700px){.nx-card{padding:16px;gap:12px}.nx-n{width:34px;height:34px;font-size:16px}.nx-row .btn,.nx-topup .btn{flex:1 1 100%}}

/* ── админка stats в 39е: меню, пульт ── */
body.adm .wrap{max-width:1200px}
body.adm header.top .in{max-width:1200px}
@media (max-width:1000px){body.adm nav.tabs .tab-x{display:none}}
@media (min-width:701px) and (max-width:1000px){body.adm .logo small{display:none}body.adm nav.tabs a{padding:6px 9px}}
.db-top h1{font-size:clamp(30px,4vw,44px);margin:0 0 4px}
.db-alerts{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.db-alert{display:block;padding:10px 14px;border-radius:14px;font-weight:600;color:var(--ink)!important;text-decoration:none}
.db-alert.hot{background:var(--surik);color:#fff!important}
.db-alert.warn{background:var(--amber-bg);border:1px solid rgba(184,110,0,.3)}
.db-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.db-tile{display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:var(--r2);background:var(--glass);border:1px solid var(--glass-b);
  box-shadow:var(--glass-sh);color:var(--ink)!important;text-decoration:none;transition:transform .2s var(--ease)}
.db-tile:hover{transform:translateY(-2px)}
.db-tile span{font-size:13px;color:var(--mute);font-weight:600}
.db-tile b{font-size:34px;letter-spacing:-.04em;line-height:1.05}
.db-tile small{font-size:12px;color:var(--dim)}
.db-tile.hot{background:var(--ink);border-color:var(--ink)}.db-tile.hot span,.db-tile.hot small{color:rgba(255,255,255,.7)}.db-tile.hot b{color:#fff}
.db-tile.warn b{color:var(--surik)}
.db-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.db-box{background:var(--glass);border:1px solid var(--glass-b);box-shadow:var(--glass-sh);border-radius:var(--r2);padding:14px 16px;margin-bottom:12px}
.db-box-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.db-box-h h2{font-size:18px;margin:0}.db-box-h a{font-size:14px}
.db-row{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--lin);color:var(--ink)!important;text-decoration:none;flex-wrap:wrap}
.db-row:first-of-type{border-top:0}
.db-row b{font-weight:650}
.db-t{min-width:92px}
.dot{width:10px;height:10px;border-radius:50%;background:var(--dim);flex:none}
.dot.ok,.dot.c-ok{background:var(--green)}.dot.warn,.dot.c-amber{background:var(--orange)}.dot.crit,.dot.c-red,.dot.down{background:var(--red)}
.db-links{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 20px}.db-links .btn{width:auto;margin:0}
@media (max-width:900px){.db-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.db-cols{grid-template-columns:1fr}}
@media (max-width:420px){.db-tile b{font-size:28px}}

/* админка: оплата агента в группе */
.pay-box{margin-top:6px}
.pay-box h3{margin:0 0 6px;font-size:16px}
.pay-st{margin:0 0 4px}
.pay-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;margin-top:8px}
.pay-acts .btn,.pay-more>summary.btn{width:auto;margin:0;list-style:none}
.pay-more>summary::-webkit-details-marker{display:none}
.pay-more[open]{flex-basis:100%}
.pay-more form{margin-top:8px}
