*{box-sizing:border-box;}
.row>*{min-width:0;}
.card{border:1px solid #d7d7d7;border-radius:14px;padding:18px;background:#fff;}
h1{margin:0 0 12px}
label{display:block;font-weight:800;margin:12px 0 6px}
input,select,button{width:100%;max-width:100%;display:block;padding:12px;border-radius:11px;border:1px solid #cfcfcf;font-size:16px;}
input[type="file"]{padding:10px;}
button{cursor:pointer;font-weight:900;background:#111;color:#fff;border-color:#111;}
button:disabled{opacity:.6;cursor:not-allowed}
.row{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;}
.bar{width:100%;height:14px;border-radius:999px;background:#ececec;overflow:hidden;margin-top:14px}
.bar>div{height:100%;width:0%;background:#222;transition:width .2s ease}
.meta{margin-top:8px;color:#333;font-size:14px;line-height:1.35}
.err{margin-top:10px;color:#b00020;font-weight:800;display:none;word-break:break-word}
.download{margin-top:16px;display:none}
.download a{display:inline-block;padding:12px 14px;border-radius:11px;border:1px solid #111;text-decoration:none;color:#111;font-weight:900;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hint{color:#666;font-size:13px;margin-top:10px;line-height:1.35}
@media(max-width:720px){.row{grid-template-columns:1fr}.card{padding:14px}}
