:root{--bg:#f6f5f2;--card:#fff;--ink:#1d1c1a;--mute:#76736c;--line:#e6e3dc;--acc:#e8572a;--acc2:#fff1ea;--ok:#2f8f5b;--bad:#c33}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;font:15px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,Arial,sans-serif}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit}.app{max-width:960px;min-height:100vh;margin:0 auto;padding:0 16px 80px}.app.wide{max-width:1280px}.loading,.empty{color:var(--mute);text-align:center;padding:20vh 0}.empty{padding:40px 0}.off{text-align:center;color:var(--mute);padding:30vh 16px}.top{justify-content:space-between;align-items:center;gap:8px;height:56px;display:flex}.logo{letter-spacing:.5px;font-weight:700}.logo b{color:var(--acc)}.btn{background:var(--ink);color:#fff;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:15px;text-decoration:none;display:inline-flex}.btn.acc{background:var(--acc)}.btn.ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn.sm{padding:6px 12px;font-size:13px}.btn.full{width:100%;margin-top:16px}.btn.danger{color:var(--bad);margin-left:auto}.btn.google{width:100%;color:var(--ink);border:1px solid var(--line);background:#fff;margin-top:20px;padding:12px}.link{color:var(--mute);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;max-width:70vw;padding:4px;font-size:13px;text-decoration:none;overflow:hidden}h1{margin:8px 0 4px;font-size:22px;line-height:1.3}.sub{color:var(--mute);font-size:13px}.login{background:var(--card);border:1px solid var(--line);border-radius:16px;flex-direction:column;max-width:380px;margin:12vh auto 0;padding:28px;display:flex}.login .link{align-self:center;margin-top:12px}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:16px;display:grid}.album{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:14px;overflow:hidden}.album .cv{aspect-ratio:4/3;background:#e9e6df 50%/cover}.album .meta{padding:8px 10px}.album .t{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.album .n{color:var(--mute);font-size:12px}.badge{background:var(--acc2);color:var(--acc);border-radius:6px;margin-left:4px;padding:1px 6px;font-size:11px;font-weight:500;display:inline-block}.newalbum{border:2px dashed var(--line);color:var(--mute);background:0 0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:150px;display:flex}.newalbum span{font-size:28px;line-height:1}.bar{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.drop{border:2px dashed var(--line);text-align:center;color:var(--mute);background:var(--card);cursor:pointer;border-radius:14px;padding:22px;display:block}.drop:hover{border-color:var(--acc);color:var(--acc)}.queue{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-top:10px;padding:8px 12px}.qsum{justify-content:space-between;align-items:center;padding:4px 0;font-size:13px;display:flex}.qi{align-items:center;gap:10px;padding:5px 0;font-size:13px;display:flex}.qi .qn{white-space:nowrap;text-overflow:ellipsis;width:120px;overflow:hidden}.qi .pb{background:var(--line);border-radius:3px;flex:1;height:6px;overflow:hidden}.qi .pb i{background:var(--acc);height:100%;transition:width .2s;display:block}.qi .st{text-align:right;width:84px;color:var(--mute);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.qi.error .st{color:var(--bad)}.thumbs{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin-top:14px;display:grid}.th{aspect-ratio:1;background:#e9e6df 50%/cover;border:0;border-radius:8px;padding:0;position:relative}.th .cov{background:var(--acc);color:#fff;border-radius:4px;padding:0 4px;font-size:10px;position:absolute;bottom:4px;left:4px}.sheet{z-index:20;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.panel{background:var(--card);width:100%;max-width:480px;padding:20px 20px calc(20px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.row.last{border:0}.sw{background:var(--line);border:0;border-radius:14px;flex:none;width:46px;height:28px;position:relative}.sw:after{content:"";background:#fff;border-radius:11px;width:22px;height:22px;transition:left .2s;position:absolute;top:3px;left:3px}.sw.on{background:var(--ok)}.sw.on:after{left:21px}.url{gap:8px;margin-top:12px;display:flex}.url input{border:1px solid var(--line);min-width:0;color:var(--mute);border-radius:10px;flex:1;padding:10px;font-size:13px}.qr{width:140px;height:140px;margin:14px auto 0}.qr svg{width:100%;height:100%}.wall-h{text-align:center;padding:28px 0 12px}.wall-h h1{font-size:26px}.masonry{columns:2 160px;column-gap:8px}.masonry img{break-inside:avoid;cursor:zoom-in;background:#e9e6df;border-radius:8px;width:100%;margin-bottom:8px;display:block}.foot{text-align:center;color:var(--mute);margin-top:24px;font-size:13px}.lb{z-index:30;touch-action:pan-y;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lb img{object-fit:contain;max-width:100%;max-height:calc(100% - 120px)}.lb .c{top:calc(12px + env(safe-area-inset-top));color:#fff;background:#ffffff26;border:0;border-radius:16px;padding:6px 12px;position:absolute;right:12px}.lb .nv{color:#fff;background:#ffffff1f;border:0;width:44px;height:64px;font-size:22px;position:absolute;top:50%;transform:translateY(-50%)}.lb .pv{left:0}.lb .nx{right:0}.lbar{padding:12px 16px calc(16px + env(safe-area-inset-bottom));flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.lbar .cnt{color:#aaa;margin-right:8px;font-size:13px}.lbtn{color:#fff;background:#ffffff26;border:0;border-radius:18px;padding:8px 14px;font-size:14px}.lbtn.pri{color:var(--ink);background:#fff}.lbtn:disabled{opacity:.6}.toast{background:var(--ink);color:#fff;opacity:0;z-index:50;pointer-events:none;border-radius:20px;padding:8px 16px;font-size:13px;transition:opacity .2s;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}@media (hover:none){.lb .nv{display:none}}.qual{justify-content:space-between;align-items:center;gap:12px;margin:0 0 10px;display:flex}.seg{background:var(--line);border-radius:10px;padding:3px;display:inline-flex}.seg button{color:var(--mute);background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:13px}.seg button.on{background:var(--card);color:var(--ink,inherit);font-weight:600;box-shadow:0 1px 2px #00000014}.seg button:disabled{opacity:.6}.th .miss{background:var(--bad);color:#fff;border-radius:4px;padding:0 4px;font-size:10px;position:absolute;top:4px;right:4px}
