:root{--bg:#fff;--canvas:#f0f2f5;--card:#fff;--line:#dbdfe4;--line-soft:#e9ebee;--ink:#050505;--dim:#65676b;--faint:#8a8d91;--blue:#0866ff;--blue-press:#0b5ed7;--green:#31a24c;--red:#f02849;--r-card:16px;--r-btn:10px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:#e4e6eb;justify-content:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;display:flex}.phone{background:var(--bg);flex-direction:column;width:100%;max-width:420px;min-height:100dvh;display:flex;position:relative;overflow-x:hidden}@media (min-width:480px){body{padding:24px 0}.phone{border-radius:32px;min-height:calc(100dvh - 48px);overflow:hidden;box-shadow:0 12px 48px #00000038}}.appbar{padding:calc(env(safe-area-inset-top) + 12px) 16px 10px;background:var(--bg);z-index:10;border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;display:flex;position:sticky;top:0}.wordmark{letter-spacing:-.02em;font-size:24px;font-weight:700}.wordmark i{color:var(--blue);font-style:normal}.appbar .title{text-align:center;flex:1;font-size:16px;font-weight:600}.back{cursor:pointer;width:36px;height:36px;color:var(--ink);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;text-decoration:none;display:flex}.back:active{background:var(--canvas)}.content{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex}.section-h{color:var(--ink);align-items:center;padding:4px 0;font-size:15px;font-weight:700;display:flex}.section-h small{color:var(--dim);margin-left:auto;font-size:13px;font-weight:600}.card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r-card);color:inherit;flex-direction:column;gap:8px;padding:14px 16px;text-decoration:none;display:flex}.card b{font-size:16px;font-weight:600}.card .meta{color:var(--dim);font-size:13px}.row{align-items:center;gap:10px;display:flex}.btn{background:var(--blue);color:#fff;border-radius:var(--r-btn);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:12px 16px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{background:var(--blue-press)}.btn:disabled{background:var(--faint);cursor:not-allowed}.btn.secondary{background:var(--canvas);color:var(--ink)}.btn.ghost{color:var(--blue);background:0 0;min-height:0;padding:8px 4px}.btn.full{width:100%}.input{border:1px solid var(--line);background:var(--bg);border-radius:var(--r-btn);width:100%;color:var(--ink);min-height:44px;padding:12px 14px;font-family:inherit;font-size:16px}.input:focus{border-color:var(--blue);outline:none}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--dim);font-size:13px;font-weight:600}.empty{text-align:center;color:var(--dim);padding:32px 16px;font-size:14px}.copyrow{background:var(--canvas);border-radius:var(--r-btn);color:var(--dim);align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:flex;overflow:hidden}.copyrow code{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.copyrow button{color:var(--blue);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:13px;font-weight:600}.drop{border:2px dashed var(--line);border-radius:var(--r-card);text-align:center;color:var(--dim);cursor:pointer;padding:32px 16px;font-size:14px}.drop b{color:var(--ink);margin-bottom:4px;font-size:16px;display:block}.filelist{flex-direction:column;gap:8px;display:flex}.filerow{border:1px solid var(--line-soft);border-radius:var(--r-btn);background:var(--bg);align-items:center;gap:10px;padding:10px 12px;display:flex}.filerow .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.filerow .status{color:var(--dim);flex-shrink:0;font-size:12px}.filerow.done .status{color:var(--green)}.filerow.error .status{color:var(--red)}.bar{background:var(--line-soft);border-radius:2px;flex:1;max-width:80px;height:3px;overflow:hidden}.bar>div{background:var(--blue);height:100%;transition:width .15s}.note{color:var(--dim);text-align:center;padding:8px 0;font-size:12px}.error{color:var(--red);padding:6px 0;font-size:13px}
