:root{--bg:#f6f7f9;--surface:#fff;--text:#16181d;--muted:#5d6470;--border:#e3e6eb;--accent:#2f6fed;--accent-text:#fff;--ok:#1f8a4c;--warn:#b26b00;--radius:14px;--shadow:0 1px 2px #0000000a, 0 4px 16px #0000000d}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--surface:#181b21;--text:#e8eaee;--muted:#9aa2ae;--border:#2a2f38;--accent:#5b8fff;--ok:#3fbf74;--warn:#e0a040;--shadow:none}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent)}h1,h2,h3{line-height:1.2}h1{margin:.2em 0 .3em;font-size:clamp(1.7rem,4vw,2.3rem)}.wrap{max-width:1040px;margin:0 auto;padding:0 16px}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header .wrap{flex-wrap:wrap;align-items:center;gap:24px;min-height:60px;display:flex}.logo{color:var(--text);font-size:1.15rem;font-weight:800;text-decoration:none}.logo span{color:var(--accent)}.nav{flex-wrap:wrap;gap:18px;display:flex}.nav a{color:var(--muted);font-weight:500;text-decoration:none}.nav a:hover,.nav a[aria-current]{color:var(--text)}main{padding:28px 0 56px}.lead{color:var(--muted);max-width:680px;margin:0 0 28px;font-size:1.1rem}.crumbs{color:var(--muted);font-size:.9rem}.crumbs a{color:var(--muted)}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--shadow);padding:18px;text-decoration:none;transition:border-color .15s,transform .15s;display:block}a.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card h3{margin:0 0 6px;font-size:1.05rem}.card p{color:var(--muted);margin:0;font-size:.93rem}.card.soon{opacity:.55}.badge{background:var(--border);color:var(--muted);vertical-align:middle;border-radius:99px;margin-left:6px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.section{margin-top:40px}.section-head{align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.section-head h2{margin:0;font-size:1.35rem}.section-head a{font-size:.9rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px}.btn{background:var(--accent);color:var(--accent-text);font:inherit;cursor:pointer;border:0;border-radius:10px;align-items:center;gap:8px;padding:12px 20px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{color:var(--text);border:1px solid var(--border);background:0 0}.article{max-width:720px;margin-top:44px}.article h2{margin-top:1.8em;font-size:1.3rem}.article details{border-bottom:1px solid var(--border);padding:12px 0}.article summary{cursor:pointer;font-weight:600}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding:24px 0;font-size:.9rem}.site-footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.tool{gap:18px;display:grid}.modes{border:0;gap:8px;margin:0;padding:0;display:grid}.modes legend{margin-bottom:6px;font-weight:600}.modes label{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.modes small{color:var(--muted)}.actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.status{color:var(--muted)}.status.err{color:#d33}progress{width:100%;height:8px;accent-color:var(--accent)}.result{border-top:1px solid var(--border);justify-items:start;gap:12px;padding-top:18px;display:grid}.result .big{font-size:1.25rem;font-weight:700}.ok{color:var(--ok)}.warn{color:var(--warn)}.hint{color:var(--muted);margin:0;font-size:.9rem}.filelist{gap:8px;margin:0;padding:0;list-style:none;display:grid}.filelist li{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.filelist .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.filelist .meta{color:var(--muted);white-space:nowrap;font-size:.85rem}.filelist img{object-fit:cover;background:var(--border);border-radius:6px;flex:none;width:44px;height:44px}.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;flex:none;width:32px;height:32px;font-size:1rem;line-height:1}.icon-btn:hover{border-color:var(--accent)}.icon-btn:disabled{opacity:.35;cursor:default}.fields{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.field{gap:4px;display:grid}.field>span{color:var(--muted);font-size:.9rem}.field input,.field select,.field textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 11px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid color-mix(in srgb, var(--accent) 40%, transparent);border-color:var(--accent)}.field.wide{grid-column:1/-1}.fieldset-title{grid-column:1/-1;margin:8px 0 -4px;font-weight:700}.stats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.stat{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.stat b{font-variant-numeric:tabular-nums;font-size:1.3rem;display:block}.stat span{color:var(--muted);font-size:.88rem}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.93rem}table.data th,table.data td{white-space:nowrap;border-bottom:1px solid var(--border);text-align:right;padding:7px 10px}table.data th:first-child,table.data td:first-child{text-align:left}.table-wrap{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--muted) 40%, transparent) transparent;overflow:auto hidden}.table-wrap.panel:before{inset:0}html{color-scheme:light dark}.table-wrap table{width:100%}:root{--c1:#2f6fed;--c2:#e8762b;--c3:#1f9d6b;--c4:#8a8f98}@media (prefers-color-scheme:dark){:root{--c1:#6b9bff;--c2:#f0924f;--c3:#3fc28c;--c4:#9aa2ae}}.chart{position:relative}.chart svg{touch-action:pan-y;width:100%;height:auto;display:block}.chart text{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .grid{stroke:var(--border);stroke-width:1px}.chart .axis{stroke:var(--muted);stroke-width:1px}.chart .cursor{stroke:var(--muted);stroke-dasharray:3 3}.chart .line{fill:none;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart .line.dashed{stroke-dasharray:6 5;stroke-width:2px}.chart .c1{stroke:var(--c1)}.chart .c2{stroke:var(--c2)}.chart .c3{stroke:var(--c3)}.chart .c4{stroke:var(--c4)}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-bottom:6px;font-size:.88rem;display:flex}.chart-legend i,.chart-tip i{vertical-align:middle;border-radius:2px;width:14px;height:3px;margin-right:6px;display:inline-block}.chart-legend i.c1,.chart-tip i.c1{background:var(--c1)}.chart-legend i.c2,.chart-tip i.c2{background:var(--c2)}.chart-legend i.c3,.chart-tip i.c3{background:var(--c3)}.chart-legend i.c4,.chart-tip i.c4{background:var(--c4)}.chart-legend i.dashed{background:repeating-linear-gradient(90deg,currentColor 0 4px,#0000 4px 7px)!important}.chart-tip{pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);white-space:nowrap;z-index:2;border-radius:8px;padding:8px 10px;font-size:.85rem;position:absolute;top:34px}.chart-tip b{margin-bottom:2px;display:block}.verdict{margin:0;font-size:1.15rem;font-weight:700}@media (width<=760px){.site-header .wrap{gap:2px 16px;min-height:0;padding-top:10px}.nav{scrollbar-width:none;white-space:nowrap;flex-wrap:nowrap;width:100%;padding:6px 0 10px;overflow-x:auto}.nav::-webkit-scrollbar{display:none}}.site-footer .legal{flex-wrap:wrap;gap:6px 16px;width:100%;font-size:.85rem;display:flex}.site-footer .legal a{color:var(--muted)}.legal-doc{max-width:780px}.legal-doc h2{margin-top:1.6em;font-size:1.15rem}.legal-doc p{margin:.5em 0}body{background:radial-gradient(900px 500px at 100% -10%, #7c5cff1a, transparent 60%), radial-gradient(800px 500px at -10% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 60%), var(--bg);background-attachment:fixed}.site-header{z-index:40;background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid color-mix(in srgb, var(--border) 70%, transparent);position:sticky;top:0}.logo{letter-spacing:-.01em;align-items:center;gap:8px;display:inline-flex}.logo i{background:linear-gradient(135deg,#5b8fff,#a855f7);border-radius:5px;width:22px;height:26px;position:relative;box-shadow:0 4px 14px #5b8fff73}.logo i:after{content:"";background:linear-gradient(225deg,#0000 50%,#ffffff8c 50%);border-radius:0 5px 0 2px;width:8px;height:8px;position:absolute;top:0;right:0}.logo b{font-weight:inherit}.logo span{background:linear-gradient(90deg,#5b8fff,#a855f7);color:#0000;-webkit-background-clip:text;background-clip:text}.head-search{flex:220px;order:3;max-width:320px;margin-left:auto}.site-header .nav{order:2}.nav a{transition:color .15s;position:relative}.nav a[aria-current]:after{content:"";background:linear-gradient(90deg,#5b8fff,#a855f7);border-radius:2px;height:2px;position:absolute;bottom:-6px;left:0;right:0}body.home .site-header{-webkit-backdrop-filter:none;background:0 0;border-color:#0000;position:absolute;left:0;right:0}body.home .site-header .logo,body.home .nav a{color:#e6ebff}body.home .nav a:hover{color:#fff}h1{letter-spacing:-.02em}.panel{background:color-mix(in srgb, var(--surface) 88%, transparent);backdrop-filter:blur(10px);border-radius:18px}.btn{background:linear-gradient(135deg,#4f7dff,#8b5cf6);transition:transform .12s,box-shadow .2s,filter .2s;box-shadow:0 6px 18px #4f7dff47}.btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 10px 24px #4f7dff59}.btn.secondary{background:color-mix(in srgb, var(--surface) 80%, transparent);box-shadow:none}.btn.secondary:hover:not(:disabled){border-color:var(--accent);box-shadow:none}.card{background:color-mix(in srgb, var(--surface) 85%, transparent);backdrop-filter:blur(10px);border-radius:16px;position:relative;overflow:hidden}a.card:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--accent) 16%, transparent), transparent 50%);transition:opacity .2s;position:absolute;inset:0}a.card:hover:after{opacity:1}a.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px #0000001a}.drop{background:color-mix(in srgb, var(--accent) 3%, transparent)}@media (width<=760px){.head-search{flex-basis:100%;order:4;max-width:none;margin:0 0 8px}}@media (prefers-reduced-motion:reduce){.btn,a.card{transition:none}a.card:hover,.btn:hover{transform:none}}.site-footer{background:color-mix(in srgb, var(--surface) 70%, transparent);-webkit-backdrop-filter:blur(16px);border-top:0;margin-top:64px;padding:44px 0 18px;position:relative}.site-footer:before{content:"";opacity:.7;background:linear-gradient(90deg,#0000,#7aa2ff 25%,#c084fc 55%,#ffb27a 80%,#0000);height:1px;position:absolute;top:0;left:0;right:0}.site-footer .wrap.ft{gap:28px;justify-content:initial;grid-template-columns:minmax(240px,1.6fr) repeat(3,minmax(150px,1fr));display:grid}.ft-brand p{color:var(--muted);max-width:340px;margin:12px 0;font-size:.9rem}.ft-brand .logo{color:var(--text);font-size:1.15rem;font-weight:800;text-decoration:none}.ft-cookie{color:var(--muted);font-size:.85rem}.ft-col{align-content:start;gap:7px;display:grid}.ft-col b{text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin-bottom:4px;font-size:.8rem}.ft-col a{color:var(--muted);font-size:.9rem;text-decoration:none;transition:color .15s}.ft-col a:hover{color:var(--accent)}.site-footer .wrap.ft-bottom{border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:30px;padding-top:14px;font-size:.82rem;display:flex}@media (width<=760px){.site-footer .wrap.ft{grid-template-columns:1fr 1fr}.ft-brand{grid-column:1/-1}}.nav a{align-items:center;gap:6px;display:inline-flex}.nav-ico{filter:saturate(.9);font-size:.95em}body:not(.home):before{content:"";z-index:-1;pointer-events:none;opacity:.6;background:radial-gradient(40vmax 30vmax at 0 0,#dbe3ff,#0000 70%),radial-gradient(35vmax 30vmax at 100% 10%,#efe0ff,#0000 70%),radial-gradient(40vmax 30vmax at 70% 100%,#ffe9d4,#0000 70%);position:fixed;inset:0}@media (prefers-color-scheme:dark){body:not(.home):before{opacity:.12}}.panel,.card{background:linear-gradient(160deg, color-mix(in srgb, var(--surface) 82%, transparent), color-mix(in srgb, var(--surface) 62%, transparent));-webkit-backdrop-filter:blur(18px)saturate(1.4);border:1px solid color-mix(in srgb, #fff 70%, var(--border));position:relative;box-shadow:inset 0 1px #ffffffb3,0 16px 36px -14px #28326e2e}.panel:before,a.card:before{content:"";border-radius:inherit;pointer-events:none;opacity:.55;-webkit-mask-composite:xor;background:linear-gradient(140deg,#ffffffe6,#96aaff73 40%,#ffbe784d 70%,#ffffffb3);padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}@media (prefers-color-scheme:dark){.panel,.card{border-color:#ffffff14;box-shadow:inset 0 1px #ffffff0d,0 16px 36px -14px #00000080}.panel:before,a.card:before{opacity:.25}}.site-header .wrap{flex-wrap:nowrap;gap:20px}.site-header .nav{flex-wrap:nowrap;flex:1;align-items:center;gap:4px;min-width:0;padding:0;display:flex;overflow:visible}.nav-main{white-space:nowrap;border-radius:10px;padding:7px 10px}.nav-main:hover{background:color-mix(in srgb, var(--text) 6%, transparent)}.nav a.nav-main[aria-current]:after{bottom:0;left:10px;right:10px}.nav-more{position:relative}.nav-more summary{cursor:pointer;color:var(--muted);white-space:nowrap;user-select:none;border-radius:10px;align-items:center;gap:8px;padding:7px 12px;font-weight:500;list-style:none;display:inline-flex}.nav-more summary::-webkit-details-marker{display:none}.nav-more summary:hover,.nav-more[open] summary{color:var(--text);background:color-mix(in srgb, var(--text) 6%, transparent)}.nav-burger,.nav-burger:before,.nav-burger:after{background:currentColor;border-radius:2px;width:14px;height:2px;display:block}.nav-burger{position:relative}.nav-burger:before,.nav-burger:after{content:"";position:absolute;left:0}.nav-burger:before{top:-5px}.nav-burger:after{top:5px}body.home .nav-more summary{color:#e6ebff}.nav-panel{z-index:60;background:color-mix(in srgb, var(--surface) 96%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:18px;grid-template-columns:repeat(2,1fr);gap:4px;width:min(760px,92vw);padding:10px;animation:.16s ease-out navIn;display:grid;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 24px 60px -12px #00000059}@keyframes navIn{0%{opacity:0;transform:translate(-50%,-6px)}}.nav a.nav-cat{color:var(--text);border-radius:12px;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:grid}.nav a.nav-cat:hover,.nav a.nav-cat[aria-current]{background:color-mix(in srgb, var(--accent) 10%, transparent)}.nav a.nav-cat[aria-current]:after{display:none}.nav-cat-ico{background:color-mix(in srgb, var(--text) 5%, transparent);border-radius:12px;place-items:center;width:40px;height:40px;font-size:1.5rem;display:grid}.nav-cat b{font-size:.95rem;display:block}.nav-cat small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:400;line-height:1.35;display:block;overflow:hidden}.nav-cat span:nth-child(2){min-width:0}.nav-cat em{color:var(--muted);background:color-mix(in srgb, var(--text) 6%, transparent);border-radius:99px;padding:2px 8px;font-size:.78rem;font-style:normal;font-weight:700}.head-search{flex:0 240px;order:3;min-width:170px;margin-left:auto}.site-header .nav{flex:0 auto}.site-header .nav a.nav-main.nav-hide{display:none}@media (width<=900px){.site-header .nav a.nav-main{display:none}.head-search{flex-basis:200px}}@media (width<=760px){.site-header .wrap{flex-wrap:wrap;gap:8px 12px;padding-top:10px;padding-bottom:10px}.site-header .nav{flex:none;width:auto;margin-left:auto;padding:0;overflow:visible}.head-search{flex:100%;order:4}.nav-panel{grid-template-columns:1fr;width:auto;max-height:calc(100vh - 80px);position:fixed;top:58px;left:12px;right:12px;overflow-y:auto;transform:none}@keyframes navIn{0%{opacity:0;transform:translateY(-6px)}}}.mono,.field textarea.mono,.field input.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}.dev-out{gap:8px;width:100%;display:grid}.dev-row{border:1px solid var(--border);background:var(--bg);border-radius:10px;grid-template-columns:110px 1fr auto;align-items:center;gap:10px;padding:8px 12px;display:grid}.dev-row b{color:var(--muted);font-size:.85rem;font-weight:600}.dev-row code{word-break:break-all;font-size:.9rem}.dev-row button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:4px 10px;font-size:.8rem}@media (width<=560px){.dev-row{grid-template-columns:1fr auto}.dev-row b{grid-column:1/-1}}
