:root{--green:#0d6b4f;--green-d:#094d39;--gold:#c9a227;--gold-l:#e8d27a;--bg:#f4f6f5;--card:#fff;--ink:#1f2a26;--muted:#6b7a74;--line:#e3e8e6;--shadow:0 1px 3px #00000014,0 6px 20px #0000000d;--basic:#2563eb;--master:#7c3aed;--grand:#be185d;--supergrand:#a16207;--trainer:#ea580c;--member:#0d9488;--sans:"Segoe UI",system-ui,-apple-system,sans-serif;--mono:ui-monospace,Consolas,monospace;--heading:"Segoe UI",system-ui,-apple-system,sans-serif;--text:var(--ink);--text-h:var(--ink);--border:var(--line);--accent:var(--green);--accent-bg:#0d6b4f1a;--accent-border:#0d6b4f80;font:14px/1.4 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{font-family:var(--sans);background:var(--bg);color:var(--ink);margin:0;font-size:14px}button{cursor:pointer;font-family:inherit}a{color:var(--green)}.hidden{display:none!important}#root{text-align:left;border:none;flex-direction:column;width:100%;max-width:none;min-height:100svh;margin:0;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h)}h1{letter-spacing:0;margin:0;font-size:17px}h2{margin:0;font-size:15px}header.app-header{background:linear-gradient(120deg,var(--green-d),var(--green));color:#fff;box-shadow:var(--shadow);z-index:50;align-items:center;gap:14px;padding:14px 22px;display:flex;position:sticky;top:0}header.app-header .logo{object-fit:contain;background:#fff;border-radius:50%;width:46px;height:46px;padding:3px}header.app-header .t1{font-size:17px;font-weight:700;line-height:1.1}header.app-header .t2{opacity:.85;font-size:12px}header.app-header .spacer{flex:1}.langtoggle{background:#ffffff26;border-radius:8px;display:flex;overflow:hidden}.langtoggle button{color:#fff;opacity:.7;background:0 0;border:none;padding:6px 12px;font-size:12px;font-weight:600}.langtoggle button.active{background:var(--gold);color:#3a2e00;opacity:1}nav.app-nav{background:var(--card);border-bottom:1px solid var(--line);z-index:40;gap:4px;padding:0 16px;display:flex;position:sticky;top:74px;overflow-x:auto}nav.app-nav button{color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;padding:14px 18px;font-size:14px;font-weight:600;transition:color .2s,border-color .2s}nav.app-nav button.active{color:var(--green);border-bottom-color:var(--gold)}nav.app-nav button:hover{color:var(--green)}main.app-main{width:100%;max-width:1180px;margin:0 auto;padding:22px 16px 60px}.page{animation:.25s fade}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1}}h2.section{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:26px 0 12px;font-size:15px;font-weight:700}.cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;display:grid}.stat{background:var(--card);box-shadow:var(--shadow);border-left:4px solid var(--green);border-radius:12px;padding:16px 18px}.stat .n{font-size:30px;font-weight:800;line-height:1}.stat .l{color:var(--muted);margin-top:6px;font-size:12px}.stat.b{border-left-color:var(--basic)}.stat.m{border-left-color:var(--master)}.stat.g{border-left-color:var(--grand)}.stat.sg{border-left-color:var(--supergrand)}.stat.tr{border-left-color:var(--trainer)}.stat.me{border-left-color:var(--member)}.chartcard{background:var(--card);box-shadow:var(--shadow);border-radius:12px;margin-bottom:18px;padding:18px 20px}.chartcard h3{margin:0 0 16px;font-size:14px}.bar{align-items:center;gap:10px;margin:7px 0;display:flex}.bar .lab{width:130px;color:var(--muted);text-align:right;flex-shrink:0;font-size:12px}.bar .track{background:#eef1f0;border-radius:6px;flex:1;height:22px;overflow:hidden}.bar .fill{color:#fff;border-radius:6px;justify-content:flex-end;align-items:center;min-width:24px;height:100%;padding-right:8px;font-size:11px;font-weight:700;transition:width .6s;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=780px){.grid2{grid-template-columns:1fr}.bar .lab{width:90px}}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.search{flex:1;min-width:200px;position:relative}.search input{border:1px solid var(--line);border-radius:9px;width:100%;padding:10px 12px 10px 36px;font-size:14px}.search svg{color:var(--muted);position:absolute;top:11px;left:11px}.sel{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px;font-size:13px}.btn{background:var(--green);color:#fff;border:none;border-radius:9px;align-items:center;gap:7px;padding:10px 16px;font-size:13px;font-weight:700;display:inline-flex}.btn:hover{background:var(--green-d)}.btn.gold{background:var(--gold);color:#3a2e00}.btn.gold:hover{filter:brightness(.95)}.btn.ghost{color:var(--green);border:1px solid var(--line);background:#fff}.btn.sm{padding:6px 11px;font-size:12px}.btn.danger{background:#dc2626}.btn.danger:hover{background:#b91c1c}.tablewrap{background:var(--card);box-shadow:var(--shadow);border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer;white-space:nowrap;background:#f0f4f2;padding:11px 12px;font-size:11px;position:sticky;top:0}th:hover{color:var(--green)}td{border-top:1px solid var(--line);vertical-align:middle;padding:10px 12px}tbody tr:hover{background:#f8faf9}.pill{color:#fff;border-radius:20px;margin:1px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.pill.b{background:var(--basic)}.pill.m{background:var(--master)}.pill.g{background:var(--grand)}.pill.sg{background:var(--supergrand)}.pill.tr{background:var(--trainer)}.pill.me{background:var(--member)}.muted{color:var(--muted)}.rowbtns{gap:6px;display:flex}.iconbtn{border:1px solid var(--line);color:var(--green);background:#fff;border-radius:7px;padding:5px 8px;font-size:12px}.iconbtn:hover{background:#f0f4f2}.count{color:var(--muted);margin:8px 2px;font-size:12px}.overlay{z-index:100;background:#0f19148c;justify-content:center;align-items:flex-start;padding:30px 14px;display:flex;position:fixed;inset:0;overflow:auto}.modal{background:#fff;border-radius:14px;width:100%;max-width:680px;animation:.2s pop;box-shadow:0 20px 60px #0000004d}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal header{background:linear-gradient(120deg,var(--green-d),var(--green));color:#fff;border-radius:14px 14px 0 0;justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.modal .body{padding:20px}.modal .x{color:#fff;background:#fff3;border:none;border-radius:8px;width:30px;height:30px;font-size:18px}.frow{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}@media (width<=600px){.frow{grid-template-columns:1fr}}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--muted);font-size:12px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13px}.field input:focus,.field textarea:focus{outline:2px solid var(--gold-l);border-color:var(--gold)}.field .err{color:#dc2626;font-size:11px;display:none}.field.invalid input{border-color:#dc2626}.field.invalid .err{display:block}.certgrid{background:#f8faf9;border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;padding:12px;display:grid}.certbox{flex-direction:column;gap:4px;display:flex}.certbox label{font-size:11px;font-weight:700}.certbox input{border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:12px}.modal .foot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.help{color:var(--muted);margin-top:-8px;margin-bottom:14px;font-size:11px}#toast{background:var(--ink);color:#fff;box-shadow:var(--shadow);z-index:200;opacity:0;border-radius:30px;padding:12px 22px;font-size:13px;font-weight:600;transition:transform .3s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(80px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}.empty{text-align:center;color:var(--muted);padding:50px 20px}.cert-host{background:#f8faf9;border-radius:12px;width:100%;padding:16px;overflow:auto}.cert{color:#4a3a2c;isolation:isolate;background:#fff;width:1056px;max-width:100%;height:816px;margin:0 auto;font-family:Bell MT,Bell MT W01,Bell MT Std,Georgia,Times New Roman,serif;position:relative;overflow:hidden;box-shadow:0 1px 3px #00000014,0 6px 20px #0000000d}.cert .badge{z-index:3;object-fit:contain;width:221px;height:185px;position:absolute;top:96px;left:72px}.cert .regtag{color:#3a2a1c;z-index:3;font-family:Times New Roman,serif;font-size:17px;font-style:italic;position:absolute;top:116px;right:69px}.cert .regtag b{font-family:Times New Roman,serif;font-style:normal}.cert .wm{opacity:.08;pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cert .wm img{object-fit:contain;width:449px;height:485px}.cert .top{text-align:center;z-index:2;width:100%;height:100%;position:relative}.cert .hereby{color:#5b4636;letter-spacing:.04em;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:27px;position:absolute;top:228px;left:50%;transform:translate(-50%)}.cert .name{color:#3a2a1c;white-space:nowrap;border-bottom:1px solid #bda079;padding:0 20px 4px;font-family:Bell MT,Georgia,serif;font-size:29px;font-weight:700;position:absolute;top:307px;left:50%;transform:translate(-50%)}.cert .body1{color:#5b4636;text-align:center;width:600px;font-family:Bell MT,Georgia,serif;font-size:17px;position:absolute;top:359px;left:50%;transform:translate(-50%)}.cert .lvl{color:#4a3526;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:22px;font-weight:700;position:absolute;top:408px;left:50%;transform:translate(-50%)}.cert .body2{color:#5b4636;text-align:center;width:680px;font-family:Bell MT,Georgia,serif;font-size:17px;position:absolute;top:444px;left:50%;transform:translate(-50%)}.cert .body3{color:#5b4636;text-align:center;width:720px;font-family:Bell MT,Georgia,serif;font-size:17px;position:absolute;top:464px;left:50%;transform:translate(-50%)}.cert .body4{color:#5b4636;text-align:center;font-family:Bell MT,Georgia,serif;font-size:17px;position:absolute;top:485px;left:50%;transform:translate(-50%)}.cert .ovalbadge{color:#4a3526;white-space:nowrap;border:2px solid #c4a06a;border-radius:50%/55%;padding:7px 35px;font-family:Bell MT,Georgia,serif;font-size:20px;font-weight:700;position:absolute;top:535px;left:50%;transform:translate(-50%)}.cert .datestamp-label{color:#4a3526;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:17px;font-style:italic;position:absolute;top:571px;left:50%;transform:translate(-50%)}.cert .datestamp{color:#4a3526;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:20px;font-weight:700;position:absolute;top:605px;left:50%;transform:translate(-50%)}.cert .cert-title{color:#4a3526;letter-spacing:.07em;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:44px;font-weight:400;position:absolute;top:221px;left:50%;transform:translate(-50%)}.cert .cert-sub{color:#6b4f3a;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:29px;position:absolute;top:265px;left:50%;transform:translate(-50%)}.cert .flourish-left{width:123px;height:13px;position:absolute;top:280px;left:267px}.cert .flourish-right{width:123px;height:13px;position:absolute;top:280px;left:647px}.cert .present{color:#5b4636;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:25px;position:absolute;top:339px;left:50%;transform:translate(-50%)}.cert .name-mem{color:#3a2a1c;white-space:nowrap;border-bottom:1px solid #bda079;padding:0 20px 4px;font-family:Bell MT,Georgia,serif;font-size:32px;font-weight:700;position:absolute;top:388px;left:50%;transform:translate(-50%)}.cert .lvl-mem{color:#4a3526;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:25px;position:absolute;top:449px;left:50%;transform:translate(-50%)}.cert .life-big{color:#3a2a1c;white-space:nowrap;font-family:Bell MT,Georgia,serif;font-size:22px;font-weight:700;position:absolute;top:521px;left:50%;transform:translate(-50%)}.cert .life-lab{color:#7a6a58;white-space:nowrap;border-top:1px solid #bda079;min-width:227px;padding-top:3px;font-family:Bell MT,Georgia,serif;font-size:22px;font-style:italic;position:absolute;top:557px;left:50%;transform:translate(-50%)}.cert .footer{z-index:2;justify-content:space-between;align-items:flex-end;height:130px;padding:0 72px 28px;display:flex;position:absolute;bottom:0;left:0;right:0}.cert .sig{text-align:center;width:320px;position:relative}.cert .sig .sig-img{object-fit:contain;z-index:3;width:192px;height:192px;margin:0 auto -10px;display:block;position:relative}.cert .sig .line{border-top:1px solid #3a2a1c;width:250px;margin:0 auto 5px}.cert .sig .role{color:#4a3a2c;font-family:Times New Roman,serif;font-size:17px;font-style:italic}.cert .rightcol{flex-direction:column;align-items:center;gap:8px;width:260px;display:flex}.cert .seal-area{justify-content:center;align-items:center;width:192px;height:192px;display:flex;position:relative}.cert .seal-circle{border:1.5px dashed #c4a888;border-radius:50%;width:144px;height:144px}.cert .auth{color:#8a7a68;text-align:center;font-family:Times New Roman,serif;font-size:11px;line-height:1.45}.cert-page{background:#fff;border-radius:12px}.certbar{background:var(--card);box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:14px;display:flex}.certbar .sel{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px;font-size:13px}.certbar .btn{cursor:pointer;border:none;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:700}.certbar .btn:disabled{opacity:.5;cursor:not-allowed}.certbar .btn.gold{background:var(--gold);color:#3a2e00}.certbar .muted{color:var(--muted);font-size:12px}.cert-empty{text-align:center;color:var(--muted);padding:80px 20px}@media print{@page{size:A4 landscape;margin:8mm}html,body{background:#fff;margin:0;padding:0}body *{visibility:hidden}.cert-host,.cert-host *{visibility:visible}.cert-host{background:#fff;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.cert{width:100%;height:192mm;box-shadow:none;page-break-inside:avoid;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;transform-origin:50%;border-radius:0}.cert .badge{width:18%}.certbar{display:none!important}}
