/* Proxy setup guides (e.g. /guide/metascalp) — built on top of proxy-cabinet.css
   variables/header/.card. Layout + content styles specific to long-form
   step-by-step documentation pages. */

.guide-wrap{max-width:880px;margin:0 auto;padding:32px 32px 80px;position:relative;z-index:1}

.guide-back{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--txt2);text-decoration:none;margin-bottom:22px;padding:6px 12px 6px 8px;border:1px solid transparent;border-radius:8px;transition:all .18s}
.guide-back:hover{color:var(--txt);background:rgba(255,255,255,0.03);border-color:var(--bdr)}
.guide-back svg{width:11px;height:11px;transition:transform .18s}
.guide-back:hover svg{transform:translateX(-2px)}

/* ── HERO ── */
.guide-hero{margin-bottom:30px;position:relative}
.guide-kicker{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);background:var(--green-d);border:1px solid rgba(52,211,153,0.2);border-radius:6px;padding:4px 10px;margin-bottom:16px}
.guide-kicker::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green-g);animation:guide-dot-pulse 2.2s ease-in-out infinite}
@keyframes guide-dot-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.guide-title{font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1.18;margin-bottom:12px;background:linear-gradient(135deg,var(--txt) 55%,rgba(56,189,248,0.85));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.guide-sub{font-size:14px;color:var(--txt2);line-height:1.65;max-width:640px}
.guide-sub a{color:var(--cyan);text-decoration:none}
.guide-sub a:hover{text-decoration:underline}

/* ── CALLOUT ── */
.guide-callout{display:flex;gap:12px;align-items:flex-start;background:linear-gradient(180deg,rgba(56,189,248,0.10),rgba(56,189,248,0.05));border:1px solid rgba(56,189,248,0.2);border-radius:var(--r);padding:15px 17px;margin-bottom:32px;font-size:13px;line-height:1.65;color:var(--txt);position:relative;overflow:hidden}
.guide-callout::before{content:'';position:absolute;top:0;left:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--cyan),transparent)}
.guide-callout svg{flex-shrink:0;margin-top:2px;width:15px;height:15px;color:var(--cyan)}
.guide-callout a{color:var(--cyan);font-weight:600;text-decoration:none}
.guide-callout a:hover{text-decoration:underline}
.guide-callout b{font-weight:600}

/* ── METHOD SWITCH (наше приложение ↔ Shadowsocks) ── */
.guide-switch{display:inline-flex;gap:4px;padding:4px;margin-bottom:26px;background:var(--surf);border:1px solid var(--bdr);border-radius:12px}
.guide-switch-btn{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--txt2);background:transparent;border:1px solid transparent;border-radius:9px;padding:8px 14px;cursor:pointer;transition:color .18s,background .18s,border-color .18s;white-space:nowrap}
.guide-switch-btn svg{width:14px;height:14px;flex-shrink:0;opacity:.8}
.guide-switch-btn:hover{color:var(--txt)}
.guide-switch-btn.is-active{color:var(--txt);background:linear-gradient(160deg,var(--surf2),var(--surf));border-color:var(--bdr2);box-shadow:0 2px 10px rgba(0,0,0,0.35)}
.guide-switch-btn.is-active svg{opacity:1;color:var(--cyan)}
.guide-switch-badge{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);background:var(--green-d);border:1px solid rgba(52,211,153,0.22);border-radius:5px;padding:2px 6px}

/* ── MODE VISIBILITY ── default markup shows nothing mode-specific until JS
   sets a mode on .guide-wrap; the inline mode-app fallback below keeps the
   recommended app path visible if JS fails to run. */
.guide-wrap .guide-only-ss{display:none}
.guide-wrap.mode-app .guide-only-ss,
.guide-wrap.mode-app .guide-step--ss{display:none}
.guide-wrap.mode-ss .guide-only-app,
.guide-wrap.mode-ss .guide-step--app{display:none}
.guide-wrap.mode-ss .guide-only-ss{display:flex}

/* ── STEPS (vertical timeline) ── */
/* Step numbers are driven by a CSS counter so they stay correct when the
   method switch hides one client-setup block (hidden display:none steps do
   not increment the counter). Hardcoded digits in the markup are collapsed
   via font-size:0 and replaced by counter() in ::before. */
.guide-steps{display:flex;flex-direction:column;gap:0;counter-reset:gstep}

.guide-step{display:flex;gap:18px;position:relative;padding-bottom:30px;counter-increment:gstep}
/* connector line between step numbers */
.guide-step::before{content:'';position:absolute;left:16px;top:40px;bottom:2px;width:1px;background:linear-gradient(180deg,var(--bdr2),var(--bdr))}
.guide-steps > .guide-step:last-of-type{padding-bottom:6px}
.guide-steps > .guide-step:last-of-type::before{display:none}

.guide-step-num{flex-shrink:0;width:33px;height:33px;border-radius:10px;background:linear-gradient(160deg,var(--surf2),var(--surf));border:1px solid var(--bdr2);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:0;font-weight:600;color:var(--cyan);margin-top:0;position:relative;z-index:1;box-shadow:0 0 0 4px var(--bg),0 2px 12px rgba(0,0,0,0.4);transition:border-color .2s,box-shadow .2s}
.guide-step-num::before{content:counter(gstep);font-size:13px}
.guide-step:hover .guide-step-num{border-color:rgba(56,189,248,0.45);box-shadow:0 0 0 4px var(--bg),0 0 18px rgba(56,189,248,0.18)}

.guide-step-body{flex:1;min-width:0;padding-top:5px}
.guide-step-title{font-size:15.5px;font-weight:600;margin-bottom:7px;letter-spacing:-.005em;color:var(--txt)}
.guide-step-text{font-size:13px;color:var(--txt2);line-height:1.75}
.guide-step-text + .guide-step-text{margin-top:8px}
.guide-step-text b,.guide-step-text strong{color:var(--txt);font-weight:600}
.guide-step-text a{color:var(--cyan);font-weight:600;text-decoration:none}
.guide-step-text a:hover{text-decoration:underline}
.guide-step-text code,.guide-kbd{font-family:var(--mono);font-size:12px;background:var(--surf2);border:1px solid var(--bdr2);border-radius:5px;padding:1px 6px;color:var(--cyan);white-space:nowrap}

/* ── SCREENSHOTS ── */
.guide-shots{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.guide-shots--row{flex-direction:row;flex-wrap:wrap}
.guide-shots--row .guide-shot{flex:1 1 240px}

.guide-shot{border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;background:var(--bg2);box-shadow:0 4px 24px rgba(0,0,0,0.25);transition:border-color .2s,transform .2s,box-shadow .2s}
.guide-shot:hover{border-color:rgba(56,189,248,0.35);transform:translateY(-2px);box-shadow:0 10px 36px rgba(0,0,0,0.4),0 0 24px rgba(56,189,248,0.07)}
.guide-shot img{display:block;width:100%;height:auto;cursor:zoom-in}
.guide-shot-cap{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;color:var(--txt2);padding:8px 11px;border-top:1px solid var(--bdr);background:var(--surf)}
.guide-shot-cap::before{content:'';flex-shrink:0;width:4px;height:4px;border-radius:50%;background:var(--cyan);opacity:.6}

/* ── DIVIDER (Shadowsocks part → terminal part) ── */
.guide-divider{position:relative;height:auto;background:none;margin:6px 0 30px;display:flex;align-items:center;gap:14px}
.guide-divider::before,.guide-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--bdr2))}
.guide-divider::after{background:linear-gradient(90deg,var(--bdr2),transparent)}
.guide-divider{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--txt3)}
.guide-divider-label{flex-shrink:0;display:inline-flex;align-items:center;gap:7px;color:var(--txt2);background:var(--surf);border:1px solid var(--bdr);border-radius:999px;padding:5px 14px}

/* ── END BLOCK ── */
.guide-end{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:32px;padding:20px 22px;background:var(--surf);border:1px solid var(--bdr);border-radius:var(--rlg);position:relative;overflow:hidden}
.guide-end::before{content:'';position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--green-g),transparent)}
.guide-end-text{font-size:13px;color:var(--txt2);line-height:1.65;flex:1;min-width:240px}
.guide-end-text b{color:var(--txt)}

/* ── LIGHTBOX (click-to-zoom for screenshots) ── */
.guide-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:40px;background:rgba(4,7,13,0.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;pointer-events:none;transition:opacity .2s;cursor:zoom-out}
.guide-lightbox.is-open{opacity:1;pointer-events:auto}
.guide-lightbox img{max-width:min(1100px,100%);max-height:100%;border-radius:var(--r);border:1px solid var(--bdr2);box-shadow:0 24px 80px rgba(0,0,0,0.6);transform:scale(.96);transition:transform .2s}
.guide-lightbox.is-open img{transform:scale(1)}
.guide-lightbox-cap{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);font-family:var(--mono);font-size:11px;color:var(--txt2);background:var(--surf);border:1px solid var(--bdr);border-radius:8px;padding:6px 14px;max-width:80vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:640px){
  .guide-wrap{padding:18px 16px 48px}
  .guide-title{font-size:24px}
  .guide-step{gap:13px;padding-bottom:24px}
  .guide-step::before{left:14px}
  .guide-step-num{width:29px;height:29px}
  .guide-step-num::before{font-size:12px}
  .guide-shots--row{flex-direction:column}
  .guide-lightbox{padding:14px}
  .guide-switch{display:flex;width:100%}
  .guide-switch-btn{flex:1;justify-content:center;padding:9px 8px;font-size:11.5px}
  .guide-switch-badge{display:none}
}
