/* GS Shield — виджет капчи. Палитра совпадает с auth.css */
.gs-shield{margin-top:22px;position:relative}
.gss{--acc:#8b6cff;--acc2:#3ee6ff;--ok:#61d99a;--bad:#ff6f7d;position:relative;border-radius:16px;border:1px solid rgba(139,108,255,.24);background:linear-gradient(160deg,rgba(18,20,32,.78),rgba(9,10,16,.82));box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 10px 30px rgba(0,0,0,.35);overflow:hidden;transition:border-color .3s,box-shadow .3s}
.gss::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:conic-gradient(from var(--gss-a,0deg),transparent 0 70%,rgba(62,230,255,.7) 80%,rgba(139,108,255,.9) 90%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s;pointer-events:none}
@property --gss-a{syntax:'<angle>';inherits:false;initial-value:0deg}
.gss.open::before,.gss[data-state=checking]::before{opacity:1;animation:gss-orbit 3.2s linear infinite}
.gss[data-state=checking]::before{animation-duration:1s}
@keyframes gss-orbit{to{--gss-a:360deg}}
.gss[data-state=ok]{border-color:rgba(97,217,154,.5);box-shadow:0 0 26px rgba(97,217,154,.14)}
.gs-shield.need .gss{animation:gss-shake .45s,gss-need 1.6s ease-out}
@keyframes gss-need{0%,40%{border-color:rgba(255,111,125,.75);box-shadow:0 0 22px rgba(255,111,125,.25)}}

/* Полоса-заголовок */
.gss-bar{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:13px;padding:13px 14px;cursor:pointer;position:relative}
.gss-bar:focus-visible{outline:2px solid var(--acc);outline-offset:-3px;border-radius:14px}
.gss-mark{width:40px;height:40px;flex:none;position:relative}
.gss-mark svg{width:100%;height:100%;overflow:visible}
.gss-ring-bg{fill:rgba(139,108,255,.08);stroke:rgba(139,108,255,.22);stroke-width:2}
.gss-ring{fill:none;stroke:var(--acc2);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:28 86;transform-origin:22px 22px;animation:gss-spin 1.6s linear infinite;opacity:.0;transition:opacity .3s,stroke .3s}
.gss[data-state=loading] .gss-ring,.gss[data-state=checking] .gss-ring{opacity:1}
.gss-shield-ic{fill:rgba(139,108,255,.18);stroke:#a18bff;stroke-width:1.6;stroke-linejoin:round;transition:.35s}
.gss-check{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;transition:stroke-dashoffset .45s .15s}
.gss[data-state=ok] .gss-shield-ic{fill:rgba(97,217,154,.9);stroke:var(--ok);filter:drop-shadow(0 0 8px rgba(97,217,154,.7))}
.gss[data-state=ok] .gss-check{stroke-dashoffset:0}
.gss[data-state=ok] .gss-ring-bg{stroke:rgba(97,217,154,.4);fill:rgba(97,217,154,.08)}
.gss[data-state=fail] .gss-shield-ic{stroke:var(--bad);fill:rgba(255,111,125,.25)}
@keyframes gss-spin{to{transform:rotate(360deg)}}
.gss-copy{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.gss-title{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:#f5f7fb}
.gss-sub{font-size:11.5px;color:#7d869a;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gss[data-state=ok] .gss-title{color:#9ff0c4}
.gss-brand{flex:none;text-align:right;font-family:Orbitron,Inter,sans-serif;font-size:10px;letter-spacing:1.6px;color:#c6bbff;line-height:1.25}
.gss-brand i{font-style:normal;color:var(--acc2);text-shadow:0 0 10px rgba(62,230,255,.6);margin-right:2px}
.gss-brand small{display:block;font-family:Inter,sans-serif;letter-spacing:.8px;color:#586074;font-size:9px;text-transform:uppercase}

/* Раскрывающаяся панель */
.gss-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1)}
.gss.open .gss-panel{grid-template-rows:1fr}
.gss-panel-in{overflow:hidden;min-height:0;padding:0 14px;opacity:0;transform:translateY(-6px);transition:opacity .3s,transform .35s,padding .35s}
.gss.open .gss-panel-in{opacity:1;transform:none;padding:0 14px 14px}
.gss-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 0 10px;border-top:1px solid rgba(139,108,255,.14);padding-top:12px}
.gss-task{font-size:12.5px;color:#9aa3b5;line-height:1.4}
.gss-task b{color:#e6e0ff;font-weight:600}
.gss-refresh{flex:none;width:32px;height:32px;border-radius:9px;border:1px solid rgba(139,108,255,.3);background:rgba(139,108,255,.06);color:#a18bff;cursor:pointer;display:grid;place-items:center;transition:.2s}
.gss-refresh svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .5s}
.gss-refresh:hover{color:#fff;background:rgba(139,108,255,.16);box-shadow:0 0 14px rgba(139,108,255,.35)}
.gss-refresh:hover svg{transform:rotate(-200deg)}

/* Сцена */
.gss-stage{position:relative;aspect-ratio:2/1;border-radius:11px;overflow:hidden;background:#0a0b12;border:1px solid rgba(139,108,255,.2);user-select:none;-webkit-user-select:none;isolation:isolate}
.gss-stage img{position:absolute;display:block;pointer-events:none;-webkit-user-drag:none;image-rendering:auto}
.gss-bg{inset:0;width:100%;height:100%;transition:filter .4s,opacity .4s}
.gss-piece{left:0;height:auto;z-index:2;filter:drop-shadow(0 0 6px rgba(255,255,255,.35)) drop-shadow(0 4px 10px rgba(0,0,0,.7));transition:filter .25s}
.gss.dragging .gss-piece{filter:drop-shadow(0 0 10px rgba(62,230,255,.8)) drop-shadow(0 6px 14px rgba(0,0,0,.8))}
.gss.snap .gss-piece{transition:left .3s cubic-bezier(.2,.8,.2,1),filter .25s}
.gss-stage.is-loading img{opacity:0}
.gss-loader{position:absolute;inset:0;display:none;place-content:center;justify-items:center;gap:10px;z-index:3;background:repeating-linear-gradient(90deg,rgba(139,108,255,.05) 0 1px,transparent 1px 22px),repeating-linear-gradient(0deg,rgba(139,108,255,.05) 0 1px,transparent 1px 22px)}
.gss-stage.is-loading .gss-loader{display:grid}
.gss-loader span{width:120px;height:3px;border-radius:3px;background:rgba(139,108,255,.15);overflow:hidden;position:relative}
.gss-loader span::after{content:'';position:absolute;inset:0;width:40%;background:linear-gradient(90deg,transparent,var(--acc2),transparent);animation:gss-load 1s ease-in-out infinite}
.gss-loader em{font-style:normal;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#6f7890}
@keyframes gss-load{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
.gss-scan{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;background:linear-gradient(180deg,transparent 0,rgba(62,230,255,.0) 40%,rgba(62,230,255,.55) 50%,rgba(62,230,255,0) 52%,transparent 100%);background-size:100% 220%}
.gss[data-state=checking] .gss-scan{opacity:1;animation:gss-scan 1s linear infinite}
@keyframes gss-scan{from{background-position:0 120%}to{background-position:0 -120%}}
.gss-flash{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0}
.gss.flash-ok .gss-flash{animation:gss-flash .7s ease-out forwards;background:radial-gradient(circle at 50% 50%,rgba(97,217,154,.55),rgba(97,217,154,.08) 60%,transparent)}
.gss[data-state=fail] .gss-flash{animation:gss-flash .8s ease-out forwards;background:linear-gradient(90deg,rgba(255,111,125,.35),rgba(255,111,125,.05))}
.gss[data-state=fail] .gss-bg{filter:saturate(.3) hue-rotate(-30deg)}
.gss[data-state=fail] .gss-piece{animation:gss-glitch .35s steps(2) 2}
@keyframes gss-flash{0%{opacity:0}25%{opacity:1}100%{opacity:0}}
@keyframes gss-glitch{0%{transform:translate(0)}33%{transform:translate(-3px,1px)}66%{transform:translate(3px,-1px)}100%{transform:translate(0)}}
.gss.shake{animation:gss-shake .45s}
@keyframes gss-shake{0%,100%{transform:none}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}

/* Трек и ручка */
.gss-track{position:relative;height:46px;margin-top:12px;border-radius:12px;background:rgba(8,9,14,.85);border:1px solid rgba(139,108,255,.22);overflow:hidden}
.gss-fill{position:absolute;left:0;top:0;bottom:0;width:23px;background:linear-gradient(90deg,rgba(109,77,242,.35),rgba(62,230,255,.22));border-right:1px solid rgba(62,230,255,.45)}
.gss.snap .gss-fill,.gss.snap .gss-knob{transition:width .3s cubic-bezier(.2,.8,.2,1),transform .3s cubic-bezier(.2,.8,.2,1)}
.gss-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-left:40px;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;pointer-events:none;color:transparent;background:linear-gradient(90deg,#5b6272 0,#5b6272 40%,#e6e0ff 50%,#5b6272 60%,#5b6272 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:gss-shine 2.4s linear infinite;transition:opacity .2s}
@keyframes gss-shine{from{background-position:100% 0}to{background-position:-100% 0}}
.gss-knob{position:absolute;left:0;top:0;width:46px;height:44px;border-radius:11px;display:grid;place-items:center;cursor:grab;touch-action:none;z-index:2;background:linear-gradient(135deg,#7a5cff,#5a3fe0);box-shadow:0 0 18px rgba(139,108,255,.55),inset 0 1px 0 rgba(255,255,255,.25);transition:box-shadow .2s,background .3s}
.gss-knob svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.gss-knob:hover{box-shadow:0 0 26px rgba(139,108,255,.85),inset 0 1px 0 rgba(255,255,255,.3)}
.gss-knob:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}
.gss.dragging .gss-knob{cursor:grabbing;background:linear-gradient(135deg,#3ee6ff,#7a5cff)}
.gss[data-state=ok] .gss-knob{background:linear-gradient(135deg,#61d99a,#2fae74);box-shadow:0 0 22px rgba(97,217,154,.7)}
.gss[data-state=ok] .gss-fill{background:linear-gradient(90deg,rgba(97,217,154,.35),rgba(97,217,154,.15));border-color:rgba(97,217,154,.6)}
.gss[data-state=fail] .gss-knob{background:linear-gradient(135deg,#ff6f7d,#c73e55);box-shadow:0 0 22px rgba(255,111,125,.6)}
.gss[data-state=checking] .gss-knob,.gss[data-state=loading] .gss-knob{cursor:progress}

/* Подвал */
.gss-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:11.5px}
.gss-status{color:#7d869a;min-height:1.3em;transition:color .2s}
.gss-status.ok{color:var(--ok)}
.gss-status.bad{color:#ff9aa5}
.gss-pow{flex:none;display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;border:1px solid rgba(139,108,255,.22);color:#7d869a;font-size:10.5px;letter-spacing:.4px}
.gss-pow i{width:6px;height:6px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc);animation:gss-blink 1s ease-in-out infinite}
.gss-pow b{font-weight:600;color:#b8adff}
.gss-pow em{font-style:normal;font-variant-numeric:tabular-nums}
.gss-pow.done{border-color:rgba(97,217,154,.35);color:#8ed9c0}
.gss-pow.done i{background:var(--ok);box-shadow:0 0 8px var(--ok);animation:none}
.gss-pow.done b{color:#9ff0c4}
@keyframes gss-blink{50%{opacity:.35}}

@media (max-width:420px){.gss-brand{display:none}.gss-task{font-size:12px}}
@media (prefers-reduced-motion:reduce){.gss *,.gss::before{animation:none!important;transition:none!important}}
