:root{--bg: #f5f7fa;--card: #fff;--line: #e4e8ef;--text: #26324a;--muted: #7a879e;--accent: #2f6bff;--danger: #b45353}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px}.app{max-width:1100px;margin:0 auto;padding:16px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:10px}.brand{display:flex;align-items:center;gap:8px;font-weight:600}.logo{font-size:20px}.profile{display:flex;align-items:center;gap:10px}.profile .avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.profile .avatar.fallback{display:inline-flex;align-items:center;justify-content:center;background:#eef1f6;font-size:16px}.profile .name{font-weight:500}.profile .vip{font-size:12px;color:var(--muted)}.hint{color:var(--muted)}.banner{margin-top:12px;padding:10px 14px;border-radius:8px;background:#eef4ff;color:#34518f;font-size:13px}.banner.error{background:#fdecec;color:var(--danger)}.empty{margin-top:48px;text-align:center;color:var(--muted);padding:32px;background:var(--card);border:1px solid var(--line);border-radius:10px}.empty.small{margin-top:12px;padding:24px}button{cursor:pointer;border:none;background:none;font:inherit}button.ghost{padding:5px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text)}button.ghost:hover:enabled{border-color:#c6cfe0}button.primary{padding:7px 16px;border-radius:6px;background:var(--accent);color:#fff;font-weight:500}button.primary:disabled,button.ghost:disabled,button.tab:disabled{opacity:.5;cursor:not-allowed}.album{margin-top:16px}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:10px;font-size:13px}.toolbar .spacer{flex:1}button.tab{padding:5px 14px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--muted)}button.tab.on{background:var(--accent);border-color:var(--accent);color:#fff}.grid{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.tile{display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:10px}.tile:hover{border-color:#c6cfe0}.tile .thumb{display:flex;align-items:center;justify-content:center;height:150px;background:#eef1f6;overflow:hidden}.tile .thumb img{width:100%;height:100%;object-fit:cover}.tile .spin{color:var(--muted);font-size:12px}.tile .spin.bad{color:var(--danger)}.tile .meta{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-top:1px solid var(--line)}.tile .meta .name{font-size:13px;word-break:break-all;line-height:1.3;max-height:2.6em;overflow:hidden}.tile .meta .sub{font-size:11px;color:var(--muted)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:#141a28e0;cursor:zoom-out}.lightbox img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:6px}.lightbox .caption{color:#e8ecf5;font-size:12px;text-align:center;word-break:break-all}
