:root{--bg: #fbfaf8;--secbg: #f1efea;--card: #fff;--text: #15121c;--hint: #8b8794;--accent: #6c4bf0;--accent-2: #9b86ff;--accent-tint: rgba(108, 75, 240, .1);--border: rgba(20, 16, 30, .08);--shine: rgba(255, 255, 255, .7);--upload-bg: #f4f1fc;--upload-dash: rgba(108, 75, 240, .26)}.dark{--bg: #0e0e12;--secbg: #1a1a22;--card: #16161d;--text: #f5f4f8;--hint: #8e8c99;--accent: #8e76ff;--accent-2: #b6a6ff;--accent-tint: rgba(142, 118, 255, .16);--border: rgba(255, 255, 255, .09);--shine: rgba(255, 255, 255, .07);--upload-bg: #16161d;--upload-dash: rgba(142, 118, 255, .4)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:480px;margin:0 auto}.scroll{flex:1;overflow-y:auto;padding:20px 18px 24px}h1{margin:0 0 7px;font-size:27px;line-height:1.08;font-weight:800;letter-spacing:-.035em}.sub{margin:0 0 18px;font-size:14.5px;line-height:1.45;color:var(--hint)}.label{font-size:13px;font-weight:700;margin:22px 2px 12px}.upload{position:relative;width:100%;border:none;border-radius:24px;padding:34px 16px;display:flex;flex-direction:column;align-items:center;gap:13px;cursor:pointer;background:var(--upload-bg);box-shadow:inset 0 0 0 2px var(--upload-dash);color:var(--text)}.upload .circle{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;background:linear-gradient(160deg,var(--accent-2),var(--accent));box-shadow:0 14px 28px -10px var(--accent)}.upload .t{font-size:16.5px;font-weight:700}.upload .h{font-size:13px;color:var(--hint)}.filecard{width:100%;background:var(--card);border:1px solid var(--border);border-radius:22px;padding:15px;display:flex;align-items:center;gap:14px}.filecard img{width:62px;height:62px;border-radius:16px;object-fit:cover;flex:none}.filecard .ok{font-size:15px;font-weight:700}.filecard .meta{font-size:12px;color:var(--hint);margin-top:2px}.filecard button{border:none;background:var(--secbg);color:var(--accent);font-size:12.5px;font-weight:700;cursor:pointer;padding:8px 13px;border-radius:10px;margin-left:auto;font-family:inherit}.chips{display:flex;gap:9px;overflow-x:auto;padding-bottom:4px}.chip{flex:none;display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:999px;font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap;font-family:inherit;border:1.5px solid var(--border);background:var(--card);color:var(--text)}.chip .dot{width:8px;height:8px;border-radius:50%}.chip.sel{background:var(--accent);color:#fff;border-color:transparent;box-shadow:0 8px 18px -8px var(--accent)}.chip.sel .dot{background:#fff!important}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tile{aspect-ratio:1/1;border-radius:18px;position:relative;overflow:hidden;background:var(--secbg);display:flex;align-items:center;justify-content:center}.tile img{width:100%;height:100%;object-fit:contain}.tile .emoji{font-size:34px;opacity:.5}.tile .wm{position:absolute;right:6px;bottom:6px;font:600 8px ui-monospace,monospace;color:#786e9699}.tile .lock{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;background:#0e0c1647;backdrop-filter:blur(7px);color:#fff}.shimmer{position:absolute;inset:0;background:linear-gradient(100deg,var(--secbg) 30%,var(--shine) 50%,var(--secbg) 70%);background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:46px;height:46px;border-radius:50%;border:3px solid var(--secbg);border-top-color:var(--accent);animation:spin .8s linear infinite}.bar{width:100%;height:8px;border-radius:6px;background:var(--secbg);overflow:hidden}.bar>i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .2s ease}.mainbar{flex:none;padding:11px 16px calc(11px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--border)}.mainsub{text-align:center;font-size:12px;color:var(--hint);margin-bottom:9px}.btn{width:100%;height:54px;border:none;border-radius:16px;font-size:16px;font-weight:700;cursor:pointer;color:#fff;font-family:inherit;background:linear-gradient(180deg,var(--accent-2) -40%,var(--accent) 60%);box-shadow:0 12px 26px -10px var(--accent),inset 0 1px #ffffff47}.btn:disabled{background:var(--secbg);color:var(--hint);box-shadow:none;cursor:default}.btn.ghost{background:var(--accent-tint);color:var(--accent);box-shadow:none}.btn.outline{background:var(--card);color:var(--text);border:1.5px solid var(--border);box-shadow:none}.row{display:flex;gap:10px}.sheet-bg{position:fixed;inset:0;z-index:50;background:#00000085;display:flex;align-items:flex-end}.sheet{width:100%;max-width:480px;margin:0 auto;background:var(--bg);border-radius:28px 28px 0 0;padding:8px 18px 22px}.sheet h2{margin:4px 0 2px;font-size:21px;font-weight:800}.handle{width:38px;height:5px;border-radius:3px;background:var(--border);margin:6px auto 14px}.plan{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:15px 16px;border-radius:18px;cursor:pointer;font-family:inherit;margin-bottom:11px;background:var(--secbg);border:2px solid transparent;color:var(--text)}.plan.sel{background:var(--accent-tint);border-color:var(--accent)}.plan .pt{font-size:15px;font-weight:800}.plan .pd{font-size:12px;color:var(--hint)}.plan .pr{font-size:17px;font-weight:800;white-space:nowrap}.badge{background:linear-gradient(120deg,#f7b500,#ff8a3c);color:#3a2400;font:800 9px/1 sans-serif;padding:3px 7px;border-radius:999px;text-transform:uppercase;margin-left:8px}.toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%);z-index:60;background:#12101af2;color:#fff;padding:11px 18px;border-radius:13px;font-size:13px;font-weight:600}.center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin:18px 0 22px}.hidden-file{display:none}
