:root{
  --bg:#0A0710;
  --surface:#171026;
  --surface-2:#1E1533;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);
  --text:rgba(255,255,255,.88);
  --muted:rgba(255,255,255,.48);
  --faint:rgba(255,255,255,.32);
  --brand:#7C5CFF;
  --brand-soft:#A594FF;
  --pad:.85rem;
  --radius:.8rem;
  --side-w:15.5rem;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

body{
  margin:0;
  min-height:100dvh;
  background:var(--bg);
  color:var(--text);
  font-family:'Outfit',ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg,video{max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit}
::selection{background:var(--brand);color:#fff}
:focus-visible{outline:2px solid var(--brand-soft);outline-offset:2px}

.wrap{width:100%;max-width:64rem;margin-inline:auto;padding-inline:1rem}
@media(min-width:640px){.wrap{padding-inline:1.5rem}}

.grid{display:grid;gap:1rem}
.stack{display:grid;gap:1.25rem;align-content:start}
.stack-sm{display:grid;gap:.5rem}

.g-2{grid-template-columns:minmax(0,1fr)}
@media(min-width:640px){.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}}

.g-3{grid-template-columns:minmax(0,1fr)}
@media(min-width:600px){.g-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:940px){.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}}

.g-side{grid-template-columns:minmax(0,1fr)}
@media(min-width:1024px){.g-side{grid-template-columns:19rem minmax(0,1fr)}}

.g-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
@media(max-width:380px){
  .g-money{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-money > *:last-child{grid-column:1 / -1}
}

.span-2{grid-column:1 / -1}
.hidden{display:none !important}

.ico{display:inline-flex;align-items:center;gap:.5rem;line-height:1;min-width:0}
.ico > svg{flex:0 0 auto;display:block}
.ico > span:not(.chip),.ico > b{display:inline-block;line-height:1.25;min-width:0}
.ico > .chip{display:inline-flex;align-items:center}

.ico-col{display:flex;align-items:center;gap:.6rem}
.ico-col > svg{flex:0 0 auto}

.tico{width:1.05rem;height:1.05rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tico-sm{width:.9rem;height:.9rem}
.tico-lg{width:1.35rem;height:1.35rem}
.tico-xl{width:1.7rem;height:1.7rem}

.nowrap{white-space:nowrap}
.nowrap > span,.nowrap > b{white-space:nowrap}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.white{color:#fff}

.field{
  width:100%;
  border-radius:var(--radius);
  background:rgba(255,255,255,.05);
  border:1px solid var(--line);
  color:#fff;
  padding:.7rem var(--pad);
  font-size:16px;
  line-height:1.35;
  transition:border-color .15s,box-shadow .15s;
}
@media(min-width:640px){.field{font-size:.93rem;padding:.68rem var(--pad)}}
.field::placeholder{color:var(--faint)}
.field:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(124,92,255,.22)}
textarea.field{resize:vertical;min-height:5rem}

select.field{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:calc(var(--pad) + 1.05rem + .55rem);
  background-repeat:no-repeat;
  background-position:right var(--pad) center;
  background-size:1.05rem 1.05rem;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23A594FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
  cursor:pointer;
}
select.field:focus,select.field:active{
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23A594FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15l6 -6l6 6'/%3E%3C/svg%3E");
}
select.field::-ms-expand{display:none}
select.field option{background:var(--surface);color:#fff}

input[type=checkbox]{
  width:1.1rem;height:1.1rem;
  border-radius:.3rem;
  border:1px solid var(--line-strong);
  background:rgba(255,255,255,.06);
  accent-color:var(--brand);
  flex:0 0 auto;
}

.check{display:inline-flex;align-items:center;gap:.55rem;font-size:.88rem;color:var(--muted);cursor:pointer}
.check span{min-width:0}

.card{border:1px solid var(--line);background:var(--surface);border-radius:1rem;min-width:0}

.empty{
  display:flex;
  width:100%;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  padding:2.5rem 1.25rem;
  text-align:center;
  color:var(--muted);
  font-size:.9rem;
}
.empty svg{flex:0 0 auto}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  border:1px solid transparent;
  border-radius:var(--radius);
  padding:.6rem 1rem;
  min-height:2.6rem;
  font-size:.86rem;
  font-weight:600;
  line-height:1.2;
  cursor:pointer;
  white-space:nowrap;
  transition:background-color .15s,border-color .15s,color .15s;
}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn svg{flex:0 0 auto}
.btn-primary{background:#ffffff;color:#0A0710;border-color:#ffffff}
.btn-primary:hover:not(:disabled){background:var(--brand-soft);color:#0A0710;border-color:var(--brand-soft)}
.btn-brand{background:var(--brand);color:#ffffff;border-color:var(--brand)}
.btn-brand:hover:not(:disabled){background:#6B47FF;color:#ffffff}
.btn-ghost{background:transparent;color:rgba(255,255,255,.78);border-color:var(--line-strong)}
.btn-ghost:hover:not(:disabled){border-color:var(--brand);color:#fff;background:rgba(124,92,255,.10)}
.btn-danger{background:transparent;color:#FDA4AF;border-color:rgba(244,63,94,.38)}
.btn-danger:hover:not(:disabled){background:rgba(244,63,94,.14);color:#FECDD3}
.btn-block{width:100%}

.iconbtn{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.4rem;height:2.4rem;
  border-radius:.6rem;
  border:1px solid var(--line-strong);
  background:transparent;color:var(--muted);cursor:pointer;flex:0 0 auto;
  transition:color .15s,border-color .15s;
}
.iconbtn:hover{color:#fff;border-color:var(--brand)}

.chip{
  display:inline-flex;align-items:center;gap:.35rem;
  border-radius:999px;padding:.3rem .65rem;
  font-size:.72rem;font-weight:600;line-height:1;
  white-space:nowrap;
}
.chip span{white-space:nowrap}
.chip-ok{background:rgba(52,211,153,.16);color:#6EE7B7}
.chip-warn{background:rgba(251,191,36,.16);color:#FCD34D}
.chip-err{background:rgba(251,113,133,.16);color:#FDA4AF}
.chip-brand{background:rgba(124,92,255,.20);color:var(--brand-soft)}
.chip-mute{background:rgba(148,163,184,.16);color:#CBD5E1}

.note{
  display:flex;align-items:center;gap:.6rem;
  border-radius:var(--radius);border:1px solid var(--line);
  padding:.75rem 1rem;font-size:.88rem;
}
.note svg{flex:0 0 auto}
.note span{min-width:0;overflow-wrap:anywhere}
.note-ok{border-color:rgba(52,211,153,.32);background:rgba(52,211,153,.10);color:#D1FAE5}
.note-err{border-color:rgba(251,113,133,.32);background:rgba(251,113,133,.10);color:#FFE4E6}

.rowline{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;min-width:0}

.rowscroll{
  display:flex;align-items:center;gap:.75rem;
  flex-wrap:nowrap;
  overflow-x:auto;overflow-y:hidden;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:var(--brand) transparent;
}
.rowscroll > *{flex:0 0 auto}
.rowscroll .grow{flex:1 0 auto;min-width:10rem}

.tabrow{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  flex-wrap:nowrap;overflow-x:auto;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;padding-bottom:.2rem;
}
.tabrow::-webkit-scrollbar{display:none}
.tabrow > *{flex:0 0 auto}

.tablewrap{
  overflow-x:auto;overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:var(--brand) transparent;
}


.tabbtn{
  display:inline-flex;align-items:center;gap:.5rem;
  border-radius:999px;border:1px solid var(--line-strong);
  background:transparent;color:rgba(255,255,255,.7);
  padding:.6rem 1.1rem;min-height:2.6rem;
  font-size:.88rem;font-weight:500;cursor:pointer;white-space:nowrap;
  transition:background-color .15s,border-color .15s,color .15s;
}
.tabbtn:hover{border-color:var(--brand);color:#fff}
.tabbtn[aria-selected=true]{background:#fff;color:#0A0710;border-color:#fff}
.tabbtn[aria-selected=true] svg{stroke:#0A0710}

.hero-title{font-size:clamp(1.6rem,6vw,2.25rem);font-weight:600;letter-spacing:-.025em;margin:0;color:#fff}
.hero-sub{margin:.7rem auto 0;max-width:32rem;font-size:clamp(.9rem,3.4vw,1rem);color:var(--muted)}

.pkg{
  display:flex;flex-direction:column;min-width:0;
  border:1px solid var(--line);background:var(--surface);
  border-radius:1rem;padding:1.25rem;
  transition:border-color .15s,background-color .15s,transform .15s;
}
.pkg:hover{border-color:rgba(124,92,255,.55);background:var(--surface-2);transform:translateY(-2px)}
.pkg h2{color:#fff;min-width:0}
.pkg h2 span{overflow-wrap:anywhere}

.price{font-size:clamp(1.4rem,5vw,1.65rem);font-weight:600;letter-spacing:-.02em;color:#fff}
.price-old{font-size:.85rem;color:var(--faint);text-decoration:line-through}

.feat{display:flex;align-items:center;gap:.5rem;font-size:.86rem;color:rgba(255,255,255,.62);padding:.15rem 0}
.feat svg{flex:0 0 auto;stroke:var(--brand-soft)}
.feat span{min-width:0;overflow-wrap:anywhere}

.modal{
  position:fixed;inset:0;z-index:70;
  display:none;align-items:flex-end;justify-content:center;
  background:rgba(0,0,0,.74);
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}
.modal.open{display:flex}
.modal-box{
  width:100%;max-width:26rem;
  max-height:92dvh;overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  border:1px solid var(--line);background:var(--surface);
  border-radius:1rem 1rem 0 0;
  padding:1.25rem 1.1rem calc(1.25rem + env(safe-area-inset-bottom));
}
@media(min-width:640px){
  .modal{align-items:center;padding:1rem}
  .modal-box{border-radius:1rem;padding:1.4rem;max-height:88dvh}
}

.cardnum{position:relative}
.cardnum .field{padding-right:3.6rem;letter-spacing:.06em}
.cardnum .brandbox{
  position:absolute;top:50%;right:.6rem;transform:translateY(-50%);
  display:inline-flex;align-items:center;justify-content:center;
  height:1.7rem;min-width:2.5rem;
  border-radius:.35rem;background:rgba(255,255,255,.94);
  border:1px solid var(--line);pointer-events:none;
}
.cardnum .brandbox img{max-height:1rem;width:auto;display:block}
.cardnum .brandbox.empty{background:transparent;border-color:transparent}
.cardnum .brandbox.empty img{display:none}

.shell{display:flex;min-height:100dvh;align-items:stretch}

.side{
  position:fixed;top:0;bottom:0;left:0;z-index:60;
  width:var(--side-w);max-width:82vw;
  display:flex;flex-direction:column;gap:.35rem;
  padding:1.1rem .9rem;
  background:var(--surface);border-right:1px solid var(--line);
  transform:translateX(-100%);
  transition:transform .22s ease;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.side.open{transform:none}

.sidehead{
  display:flex;align-items:center;gap:.55rem;
  padding:.2rem .3rem 1rem;font-weight:600;color:#fff;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

.navlink{
  display:flex;align-items:center;gap:.6rem;
  padding:.7rem;min-height:2.7rem;border-radius:.7rem;
  font-size:.87rem;font-weight:500;color:rgba(255,255,255,.62);
  white-space:nowrap;
  transition:background-color .15s,color .15s;
}
.navlink:hover{background:rgba(255,255,255,.055);color:#fff}
.navlink.active{background:rgba(124,92,255,.18);color:#fff}
.navlink.active svg{stroke:var(--brand-soft)}
.navlink svg{flex:0 0 auto}
.navlink.danger{color:#FDA4AF}
.navlink.danger:hover{background:rgba(244,63,94,.12);color:#FECDD3}

.sidefoot{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.35rem}

.backdrop{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.6);display:none}
.backdrop.open{display:block}

.main{flex:1 1 auto;min-width:0;width:100%;padding:1rem}

.topbar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1.1rem}
.topbar h1{font-size:1rem;margin:0;min-width:0}

.burger{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.6rem;height:2.6rem;border-radius:.65rem;
  border:1px solid var(--line-strong);
  background:transparent;color:#fff;cursor:pointer;flex:0 0 auto;
}

@media(min-width:1024px){
  .side{position:sticky;top:0;height:100dvh;max-width:none;transform:none;flex:0 0 var(--side-w)}
  .backdrop,.burger{display:none !important}
  .main{padding:1.6rem 1.9rem}
  .topbar h1{font-size:1.05rem}
}

.dl-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem var(--pad);font-size:.87rem;min-width:0}
.dl-row + .dl-row{border-top:1px solid rgba(255,255,255,.06)}
.dl-row dt{display:flex;align-items:center;gap:.45rem;color:var(--muted);white-space:nowrap;flex:0 0 auto}
.dl-row dt svg{stroke:var(--faint)}
.dl-row dd{margin:0;text-align:right;color:#fff;font-weight:500;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.testcards{width:100%;border-collapse:collapse;font-size:.76rem}
.testcards th,.testcards td{padding:.4rem .5rem;text-align:left;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.07)}
.testcards th{color:var(--muted);font-weight:600}
.testcards td{color:rgba(255,255,255,.8)}
.testcards code{font-size:.74rem;color:var(--brand-soft)}

pre.log{
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  border-radius:.6rem;background:rgba(0,0,0,.45);
  padding:.7rem;font-size:.7rem;line-height:1.5;
  color:rgba(255,255,255,.72);margin:0;max-height:22rem;
}

.site-footer{border-top:1px solid var(--line);margin-top:4rem;padding:2.25rem 0 2.5rem}
.foot-grid{display:grid;gap:1.75rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:640px){.foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.foot-title{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;color:rgba(255,255,255,.72);margin:0 0 .75rem}
.foot-item{display:flex;align-items:center;gap:.55rem;font-size:.86rem;color:var(--muted);padding:.28rem 0;min-width:0}
.foot-item svg{flex:0 0 auto;stroke:var(--brand-soft)}
.foot-item span{min-width:0;overflow-wrap:anywhere}
.foot-item a:hover{color:#fff}
.cards{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.cardlogo{
  display:inline-flex;align-items:center;justify-content:center;
  height:2rem;min-width:3rem;padding:0 .55rem;
  border-radius:.45rem;border:1px solid var(--line);
  background:rgba(255,255,255,.94);
}
.cardlogo img{max-height:1.15rem;width:auto;display:block}
.foot-bottom{
  display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap;
  margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);
  font-size:.78rem;color:var(--faint);text-align:center;
}

@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important}
  .pkg:hover{transform:none}
}

html{
  scrollbar-width:thin;
  scrollbar-color:var(--brand) var(--surface);
}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-button{display:none;width:0;height:0}
::-webkit-scrollbar-track{background-color:var(--surface);border-radius:999px}
::-webkit-scrollbar-thumb{
  background-color:var(--brand);
  background-clip:padding-box;
  border:3px solid transparent;
  border-radius:999px;
  min-height:2.5rem;
}
::-webkit-scrollbar-thumb:hover{
  background-color:var(--brand-soft);
  background-clip:padding-box;
}
::-webkit-scrollbar-corner{background-color:var(--surface)}

.rowscroll::-webkit-scrollbar,
.tablewrap::-webkit-scrollbar,
.side::-webkit-scrollbar,
.modal-box::-webkit-scrollbar,
pre.log::-webkit-scrollbar{width:8px;height:8px}

.rowscroll::-webkit-scrollbar-button,
.tablewrap::-webkit-scrollbar-button,
.side::-webkit-scrollbar-button,
.modal-box::-webkit-scrollbar-button,
pre.log::-webkit-scrollbar-button{display:none;width:0;height:0}

.rowscroll::-webkit-scrollbar-track,
.tablewrap::-webkit-scrollbar-track,
.side::-webkit-scrollbar-track,
.modal-box::-webkit-scrollbar-track,
pre.log::-webkit-scrollbar-track{background-color:transparent}

.rowscroll::-webkit-scrollbar-thumb,
.tablewrap::-webkit-scrollbar-thumb,
.side::-webkit-scrollbar-thumb,
.modal-box::-webkit-scrollbar-thumb,
pre.log::-webkit-scrollbar-thumb{
  background-color:var(--brand);
  background-clip:padding-box;
  border:2px solid transparent;
  border-radius:999px;
  min-height:2rem;
}

.rowscroll::-webkit-scrollbar-thumb:hover,
.tablewrap::-webkit-scrollbar-thumb:hover,
.side::-webkit-scrollbar-thumb:hover,
.modal-box::-webkit-scrollbar-thumb:hover,
pre.log::-webkit-scrollbar-thumb:hover{
  background-color:var(--brand-soft);
  background-clip:padding-box;
}

.side,.modal-box,pre.log{
  scrollbar-width:thin;
  scrollbar-color:var(--brand) transparent;
}

details > summary{
  display:flex;
  align-items:center;
  gap:.6rem;
  list-style:none;
  cursor:pointer;
}
details > summary::-webkit-details-marker{display:none}
details > summary::marker{content:''}

details > summary::before{
  content:'';
  flex:0 0 auto;
  width:1rem;
  height:1rem;
  transform-origin:center;
  transition:transform .18s ease;
  background-repeat:no-repeat;
  background-position:center;
  background-size:1rem 1rem;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23A594FF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E");
}

details[open] > summary::before{transform:rotate(180deg)}

details > summary > *{flex:1 1 auto;min-width:0}

@media (prefers-reduced-motion:reduce){
  details > summary::before{transition:none}
}