.ls-root{--ls-bg:#faf7f1;--ls-card:#fff;--ls-ink:#2b2421;--ls-muted:#6b6e70;--ls-faint:#9a9590;--ls-line:#efe8df;--ls-soft:#f4efe7;--ls-red:#9b2e30;--ls-red-ink:#7d2224;--ls-red-soft:#fbeceb;--ls-red-line:#f3d4d2;--ls-gold:#c99a12;--ls-gold-soft:#fbf3dc;--ls-green:#2f7d4f;--ls-green-soft:#e7f4ec;--ls-amber:#9a5b00;--ls-amber-soft:#fdf1df;--ls-blue:#2e5f9b;--ls-blue-soft:#e8f0fa;--ls-radius:16px;--ls-shadow:0 1px 2px #9b2e300a, 0 4px 14px #1b1c190d;--ls-shadow-lg:0 2px 4px #9b2e300d, 0 12px 32px #1b1c191a;background:var(--ls-bg);min-height:100dvh;color:var(--ls-ink);font-size:15px;line-height:22px}.dark .ls-root{--ls-bg:#161513;--ls-card:#1f1d1b;--ls-ink:#efe6dc;--ls-muted:#a8a29b;--ls-faint:#77716b;--ls-line:#2e2a27;--ls-soft:#27241f;--ls-red:#ffb3af;--ls-red-ink:#ffcfcc;--ls-red-soft:#3a2322;--ls-red-line:#57302f;--ls-gold-soft:#3a3020;--ls-green:#8fd3a8;--ls-green-soft:#1e3326;--ls-amber:#f0c35a;--ls-amber-soft:#3a2f1c;--ls-blue:#a8c8f0;--ls-blue-soft:#1e2a3a}.ls-h1{font-family:var(--font-manrope), sans-serif;letter-spacing:-.01em;margin:0;font-size:24px;font-weight:700;line-height:30px}.ls-h2{font-family:var(--font-manrope), sans-serif;margin:0;font-size:17px;font-weight:700;line-height:22px}.ls-sub{color:var(--ls-muted);font-size:13px;line-height:18px}.ls-zh{font-family:var(--font-noto-sans-sc,"PingFang SC", "Noto Sans SC", sans-serif)}.ls-card{background:var(--ls-card);border-radius:var(--ls-radius);box-shadow:var(--ls-shadow)}.ls-ms{vertical-align:middle;font-size:20px;line-height:1}.ls-btn{background:var(--ls-red);color:#fff;height:44px;font:inherit;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.ls-btn:disabled{opacity:.5;cursor:default}.ls-btn-ghost{border:1px solid var(--ls-line);background:var(--ls-card);height:40px;color:var(--ls-ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.ls-btn-ghost:hover{background:var(--ls-soft)}.ls-btn-quiet{height:36px;color:var(--ls-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;padding:0 10px;font-size:14px;display:inline-flex}.ls-btn-quiet:hover{background:var(--ls-soft);color:var(--ls-ink)}.ls-input{border:1px solid var(--ls-line);background:var(--ls-card);width:100%;height:44px;color:var(--ls-ink);font:inherit;box-sizing:border-box;border-radius:12px;padding:0 14px}.ls-input:focus{outline:2px solid var(--ls-red-line);border-color:var(--ls-red)}textarea.ls-input{resize:vertical;height:auto;min-height:88px;padding:12px 14px}.ls-label{margin:0 0 6px;font-size:13px;font-weight:600;display:block}.ls-chip{background:var(--ls-soft);height:24px;color:var(--ls-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.ls-chip.is-red{background:var(--ls-red-soft);color:var(--ls-red)}.ls-chip.is-green{background:var(--ls-green-soft);color:var(--ls-green)}.ls-chip.is-amber{background:var(--ls-amber-soft);color:var(--ls-amber)}.ls-chip.is-blue{background:var(--ls-blue-soft);color:var(--ls-blue)}.ls-avatar{border-radius:999px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:700;display:inline-flex}.ls-shell{min-height:100dvh;display:flex}.ls-side{box-sizing:border-box;border-right:1px solid var(--ls-line);background:var(--ls-card);flex-direction:column;flex:none;gap:4px;width:236px;height:100dvh;padding:20px 14px;display:flex;position:sticky;top:0}.ls-brand{color:inherit;align-items:center;gap:10px;padding:4px 8px 18px;text-decoration:none;display:flex}.ls-brand-mark{background:var(--ls-red);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;font-weight:700;display:inline-flex}.ls-nav-item{height:42px;color:var(--ls-muted);border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.ls-nav-item:hover{background:var(--ls-soft);color:var(--ls-ink)}.ls-nav-item.is-on{background:var(--ls-red-soft);color:var(--ls-red);font-weight:600}.ls-main{box-sizing:border-box;flex:1;min-width:0;padding:28px clamp(16px,4vw,48px) 120px}.ls-page{max-width:1120px;margin:0 auto}.ls-bottom{display:none}@media (max-width:860px){.ls-side{display:none}.ls-main{padding:18px 16px calc(96px + env(safe-area-inset-bottom))}.ls-bottom{z-index:40;background:var(--ls-card);border-top:1px solid var(--ls-line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.ls-bottom a{min-width:56px;color:var(--ls-muted);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:11px;text-decoration:none;display:flex}.ls-bottom a.is-on{color:var(--ls-red);background:var(--ls-red-soft);font-weight:600}.ls-h1{font-size:22px;line-height:28px}}.ls-empty{text-align:center;color:var(--ls-muted);padding:40px 20px}.ls-skel{background:linear-gradient(90deg, var(--ls-soft), var(--ls-line), var(--ls-soft));background-size:200% 100%;border-radius:12px;animation:1.2s linear infinite ls-shimmer}@keyframes ls-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ls-overlay{z-index:60;background:#1b16135c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.ls-modal{background:var(--ls-card);width:min(560px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--ls-shadow-lg);box-sizing:border-box;border-radius:22px;padding:22px;overflow:auto}@media (max-width:600px){.ls-overlay{align-items:flex-end;padding:0}.ls-modal{width:100%;padding-bottom:calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}}.ls-toast{z-index:80;background:var(--ls-ink);color:var(--ls-bg);box-shadow:var(--ls-shadow-lg);border-radius:12px;padding:10px 16px;font-size:14px;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@media (max-width:860px){.ls-toast{bottom:calc(84px + env(safe-area-inset-bottom))}}.ls-brand-name{font-family:var(--font-manrope), sans-serif;font-size:16px;font-weight:700;line-height:20px;display:block}.ls-nav-item:focus-visible,.ls-me:focus-visible,.ls-bottom a:focus-visible,.ls-btn:focus-visible,.ls-btn-ghost:focus-visible,.ls-btn-quiet:focus-visible{outline:2px solid var(--ls-red-line);outline-offset:2px}.ls-btn:hover:not(:disabled){background:var(--ls-red-ink)}.dark .ls-root .ls-btn{color:#2b1515}.ls-demo-chip{align-self:flex-start;margin:0 8px 10px}.ls-mark{font-family:var(--font-manrope), sans-serif;object-fit:contain;background:var(--ls-soft);border-radius:10px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.ls-me{color:inherit;border:1px solid var(--ls-line);border-radius:14px;align-items:center;gap:10px;padding:8px;text-decoration:none;display:flex}.ls-me:hover{background:var(--ls-soft)}.ls-me.is-on{background:var(--ls-red-soft);border-color:var(--ls-red-line)}.ls-me-text{flex-direction:column;flex:1;min-width:0;display:flex}.ls-me-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.ls-me-sub{color:var(--ls-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ls-me-gear{color:var(--ls-faint);font-size:18px}.ls-topbar{display:none}@media (max-width:860px){.ls-topbar{justify-content:space-between;align-items:center;margin:-4px 0 16px;display:flex}.ls-topbar-brand{color:inherit;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.ls-topbar-brand .ls-brand-mark{border-radius:9px;width:30px;height:30px;font-size:16px}.ls-topbar-me{border-radius:10px;display:inline-flex}.ls-bottom a{flex:1;min-width:0}.ls-bottom button{min-width:0;font:inherit;color:var(--ls-muted);cursor:pointer;background:0 0;border:0;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 4px;font-size:11px;display:flex}.ls-bottom button.is-on{color:var(--ls-red);background:var(--ls-red-soft);font-weight:600}}.ls-more{gap:2px;padding:12px;display:grid}@media (min-width:861px){.ls-more-overlay{display:none}}
