:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#172b3b;background:#f1f4f1;font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 90% 0%,#e0e9de 0,transparent 50%)}
.shell{max-width:570px;margin:0 auto;padding:36px 24px 28px}header{display:flex;gap:10px;align-items:center;font-weight:700;font-size:16px}
.brand-mark{display:grid;place-items:center;width:32px;height:32px;background:#172b3b;color:white;border-radius:10px;font-size:25px;font-weight:400}
.badge{margin-left:auto;font-size:11px;border:1px solid #cdd7cd;padding:6px 9px;border-radius:20px;color:#526355;font-weight:500}
.intro{margin:48px 0 28px}.eyebrow{font-size:12px;letter-spacing:3px;color:#61765f;font-weight:600;margin:0 0 16px}h1{font-size:46px;line-height:1.2;letter-spacing:-2px;margin:0;font-weight:750}.description{font-size:14px;line-height:1.8;color:#617075;margin:18px 0 0}
.card{padding:24px;background:#fff;border:1px solid #e0e6df;border-radius:22px;box-shadow:0 15px 45px #23402a07}.card-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}h2{font-size:16px;margin:0}.card-title>span{font-size:11px;color:#718075}
.destination{margin-bottom:20px}.destination>label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.directory-input-row{display:flex;gap:8px}.directory-input-row input{min-width:0;flex:1;width:100%;font:inherit;font-size:16px;line-height:1.5;padding:10px 11px;color:#172b3b;background:#f7f9f5;border:1px solid #d7e0d1;border-radius:10px}.directory-input-row input:focus{outline:2px solid #79946e;outline-offset:1px}#directory-hint{font-size:11px;line-height:1.7;color:#7c8978;margin:7px 0 0}.directory-input-row .browse-button{flex-shrink:0;width:60px;min-height:44px;background:#eaf0e4;color:#435e39;font-size:12px}
.file-picker{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding:30px 15px;background:#f7f9f5;border:1.5px dashed #c7d3c2;border-radius:14px;cursor:pointer;overflow:hidden;transition:background .2s,border-color .2s}.file-picker:hover,.file-picker.dragging{background:#eef4e8;border-color:#79946e}.file-picker:focus-within{outline:3px solid #56724d;outline-offset:3px}.file-picker.busy{opacity:.65;cursor:default}.file-picker strong{font-size:15px;max-width:100%;overflow-wrap:anywhere}.file-picker>span:last-of-type{font-size:11px;color:#7c8978;max-width:100%;overflow-wrap:anywhere}
.upload-symbol{display:grid;place-items:center;width:44px;height:44px;background:#e8efdf;color:#435e39;border-radius:14px;font-size:28px;margin-bottom:4px}input[type=file]{position:absolute;opacity:0;width:1px;height:1px;bottom:0;left:50%}
#progress-section{margin-top:24px}.progress-label,.progress-detail{display:flex;justify-content:space-between;gap:8px;font-size:12px}.progress-label strong{font-variant-numeric:tabular-nums}.progress-detail{color:#7c8978;font-size:11px;margin-top:7px}progress{display:block;appearance:none;-webkit-appearance:none;width:100%;height:7px;margin-top:12px;border:0;border-radius:10px;overflow:hidden;background:#eaf0e6}progress::-webkit-progress-bar{background:#eaf0e6;border-radius:10px}progress::-webkit-progress-value{background:#607d50;border-radius:10px}progress::-moz-progress-bar{background:#607d50;border-radius:10px}
#status{font-size:12px;color:#6b796d;line-height:1.8;margin:16px 0;overflow-wrap:anywhere;min-height:22px}#status.error{color:#a64436}#status.success{color:#426338}
button{font:inherit;cursor:pointer;border:0;border-radius:12px;width:100%;min-height:50px;background:#172b3b;color:#fff;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:16px}button:hover{background:#294456}button:disabled{opacity:.38;cursor:default}button:focus-visible{outline:3px solid #7c9b68;outline-offset:3px}button span{font-size:19px}.secondary{background:#f1f4ef;color:#475a43;margin-top:10px;min-height:42px}.secondary:hover{background:#e7eee1}
#receipt{margin-top:20px;border-top:1px solid #e7ece4;padding-top:18px}.receipt-label{font-size:11px;color:#77816f}code{display:block;font-size:12px;line-height:1.8;overflow-wrap:anywhere;margin-top:6px;color:#3c5133}#receipt p{font-size:12px;line-height:1.8;color:#6b796d;margin-bottom:0}footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:22px;color:#7b8975;font-size:10px;line-height:1.8}.dot{height:5px;width:5px;background:#849b6e;border-radius:50%}.divider{margin:0 3px;color:#bbc6b5}[hidden]{display:none!important}
dialog{width:calc(100% - 32px);max-width:500px;max-height:85dvh;padding:22px;border:1px solid #dde5d8;border-radius:20px;color:#172b3b;background:#fff;box-shadow:0 24px 70px #10201e30}dialog::backdrop{background:#142c3659}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dialog-heading .icon-button{width:36px;min-height:36px;background:#f1f4ef;color:#52624a;font-size:24px;font-weight:400}.directory-toolbar{display:flex;gap:8px}.directory-toolbar button{width:auto;padding:0 14px;min-height:36px;font-size:12px;background:#eef3e9;color:#435e39}#current-directory{background:#f7f9f5;border-radius:8px;padding:10px;margin-top:12px}#directory-status{font-size:12px;color:#6b796d;line-height:1.7;margin:12px 0}#directory-list{max-height:38dvh;overflow-y:auto;overscroll-behavior:contain;margin:0 0 18px;display:flex;flex-direction:column;gap:4px}#directory-list .folder-choice{min-height:44px;flex-shrink:0;justify-content:space-between;gap:10px;padding:10px 12px;background:#f7f9f5;color:#30402d;text-align:left;font-size:13px;font-weight:500;overflow-wrap:anywhere}#directory-list .folder-choice:hover{background:#eaf0e4}#directory-list .folder-choice span{font-size:13px;min-width:0;overflow-wrap:anywhere}#directory-list .folder-choice .folder-arrow{flex-shrink:0}
@media(max-width:380px){.shell{padding:25px 16px}.intro{margin-top:36px}h1{font-size:40px}.card{padding:20px}.badge{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
