:root{
  --navy:#101B4A;--ink:#070B24;--gold:#E3B93C;--gold-l:#F3DA8C;--red:#D8283B;--blue:#2349B8;
  --text:#EEF2FA;--muted:#9AA8CF;--line:rgba(243,218,140,.2);
  --en:#2349B8;--ru:#7A2E8E;--ko:#0F7C78;--ja:#C2361F;
  --font:Onest,system-ui,sans-serif;--head:Unbounded,Onest,sans-serif;
}
html[data-lang=ja]{--font:'Noto Sans JP',Onest,sans-serif;--head:'Noto Sans JP',Unbounded,sans-serif}
html[data-lang=ko]{--font:'Noto Sans KR',Onest,sans-serif;--head:'Noto Sans KR',Unbounded,sans-serif}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);color:var(--text);min-height:100vh;
  background-color:var(--ink);
  background-image:radial-gradient(900px 520px at 85% 0%,rgba(35,73,184,.42),transparent 70%),
    radial-gradient(700px 420px at 0% 100%,rgba(227,185,60,.12),transparent 70%),
    linear-gradient(180deg,#070B24,#101B4A 60%,#0A1030);background-attachment:fixed}
a{color:var(--gold-l)}a:hover{color:#fff}
img{max-width:100%}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}
.glass{background:rgba(255,255,255,.07);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 40px rgba(0,0,0,.35)}
.glass-solid{background:rgba(20,30,72,.78);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass,.glass-solid{background:#141F4F}}
h1,h2,h3{font-family:var(--head);margin:0}
.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:12px;border:0;font:600 15px var(--font);cursor:pointer;text-decoration:none}
.btn-gold{background:var(--gold);color:#1E1604}.btn-gold:hover{background:var(--gold-l);color:#1E1604}
.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn-ghost:hover{border-color:var(--gold);color:#fff}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold-l);outline-offset:2px}
label.fld{display:flex;flex-direction:column;gap:6px;font-size:14px;color:#C9D3E6}
.inp{min-height:48px;border-radius:12px;border:1px solid rgba(243,218,140,.3);background:rgba(7,11,36,.65);color:#fff;padding:0 14px;font:16px var(--font);width:100%}
select.inp{padding:0 10px}
textarea.inp{padding:12px 14px;min-height:90px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{border-radius:18px;padding:22px}
.pill-group{display:flex;gap:4px;background:rgba(255,255,255,.07);padding:4px;border-radius:999px}
.pill-group button{min-width:44px;height:36px;border:0;border-radius:999px;background:transparent;color:#D5DEEA;font:600 13px var(--font);cursor:pointer}
.pill-group button[aria-pressed=true]{background:var(--gold);color:#1E1604}
.alert{border-radius:12px;padding:12px 14px;font-weight:600}
.alert.ok{background:rgba(52,195,143,.15);border:1px solid rgba(52,195,143,.5);color:#B8F0D8}
.alert.err{background:rgba(216,40,59,.15);border:1px solid rgba(216,40,59,.5);color:#FFC9CF}
.alert.info{background:rgba(227,185,60,.14);border:1px solid rgba(227,185,60,.45);color:var(--gold-l)}
#toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:50}
.toast{padding:12px 16px;border-radius:12px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.4);max-width:360px}
.toast.ok{background:#0F5132;color:#DFF7EA}.toast.err{background:#7A1420;color:#FFE3E6}
.hidden{display:none!important}
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:620px}
.tbl th{text-align:left;color:var(--muted);font-weight:600;padding:10px 8px;border-bottom:1px solid var(--line)}
.tbl td{padding:12px 8px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:middle}
.chip{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#fff}
.empty{border:1px dashed var(--line);border-radius:14px;padding:28px;text-align:center;color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
