*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:18px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:#f6f8fb;color:#1c2430}
header,main,footer{max-width:760px;margin:0 auto;padding:1rem}
header{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;justify-content:space-between}
.brand{font-weight:700;color:#1f3a5f;text-decoration:none;font-size:1.15rem;min-height:48px;display:inline-flex;align-items:center}
header nav a{margin-left:1rem;color:#1f3a5f;min-height:48px;display:inline-flex;align-items:center}header nav a[aria-current]{font-weight:700}
h1{font-size:1.75rem;line-height:1.25;margin:.4rem 0 .5rem}h2{font-size:1.25rem}.lead{font-size:1.1rem;margin-top:0}
a{color:#1d5fa8}
.card{display:block;background:#fff;border:1px solid #dde4ee;border-radius:12px;padding:1rem 1.1rem;margin:1rem 0;color:inherit}
.btns,.bigbtns{display:flex;flex-wrap:wrap;gap:.75rem}
button,.btn{font:inherit;min-height:48px;padding:.6rem 1.1rem;border-radius:12px;border:2px solid #1d5fa8;background:#1d5fa8;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center}
button.sec,.btn.sec{background:#fff;color:#1d5fa8}
button.big,.btn.big{min-height:64px;font-size:1.25rem;font-weight:700;padding:.8rem 1.4rem;flex:1 1 15rem}
button.link{background:none;border:0;color:#1d5fa8;text-decoration:underline;padding:.5rem 0;font-size:1rem}
button:focus-visible,summary:focus-visible,input.vh:focus-visible+.btn{outline:3px solid #f0a500;outline-offset:2px}
.vh{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.tool{background:#fff;border:1px solid #dde4ee;border-radius:16px;padding:1rem;margin:1rem 0}
.drop{border:3px dashed #9db4d3;border-radius:14px;padding:1.1rem;text-align:center}
.drop.over{border-color:#1d5fa8;background:#eef5ff}
.draghint{margin:.6rem 0 0;color:#3d4757}
@media (hover:none){.draghint{display:none}}
.hfline{font-size:.95rem;color:#2c3645;margin:.9rem 0 .3rem}
.drop .small{margin:.3rem 0 0}
.stage{text-align:center;padding:.5rem 0}
.big-status{font-size:1.3rem;font-weight:700;margin:.6rem 0}.err{color:#a1260d}
progress{width:100%;height:1.4rem;accent-color:#1d5fa8}
#result{text-align:left}#result h2{margin-top:.2rem}
textarea{font:inherit;width:100%;min-height:14rem;padding:.75rem;border:1px solid #b9c4d3;border-radius:12px;margin:.2rem 0 .8rem;background:#fff}
select{font:inherit;width:100%;min-height:48px;padding:.6rem;border:1px solid #b9c4d3;border-radius:12px;margin:.3rem 0 .8rem;background:#fff}
details#more{margin-top:1rem;border-top:1px solid #dde4ee;padding-top:.4rem}
details#more summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:600;color:#1d5fa8}
details#more h2{font-size:1.05rem;margin:1rem 0 .3rem}
.steps{padding-left:1.4rem}.steps li{margin:.3rem 0;font-size:1.1rem}
.small,footer{font-size:.9rem;color:#4b5666}.privacy-line{background:#eef5ff;border-radius:8px;padding:.6rem .8rem;font-size:.95rem}
footer p{margin:.35rem 0}footer a{color:#3a4a60;display:inline-block;min-height:48px;line-height:48px}
pre{white-space:pre-wrap;word-break:break-all;background:#f1f4f8;border-radius:8px;padding:.7rem;font-size:.95rem}
pre.lic{font-size:.78rem;max-height:22rem;overflow:auto}
button:disabled{opacity:.55;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
input[type=range]{width:100%}
[hidden]{display:none!important}
