:root{--brand: #1ecad3;--brand-dark: #0f9aa3;--brand-soft: #e8fafb;--text: #1a1a1a;--muted: #8a8a8a;--bg: #f5f6f8;--card: #ffffff;--danger: #e11d48;--line: #ececec;--radius: 14px;--font: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:linear-gradient(180deg,#fff7e8,#f3fbff 28%,#f5f6f8)}.app-shell{min-height:100%;max-width:430px;margin:0 auto;background:transparent;position:relative}.page{min-height:100%;padding:16px 16px 96px}.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;height:48px;border-radius:999px;border:none;font-size:16px;font-weight:600;cursor:pointer}.btn-primary{background:var(--brand);color:#fff}.btn-ghost{background:#f3f4f6;color:var(--brand-dark)}.btn:disabled{opacity:.5}.input,.textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px;background:#fff}.textarea{min-height:110px;resize:vertical}.card{background:var(--card);border-radius:var(--radius);padding:12px;box-shadow:0 1px 2px #0000000a}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(430px,100%);height:72px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);align-items:end;padding-bottom:10px;z-index:50}.tabbar a{text-decoration:none;color:#9ca3af;font-size:11px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.tabbar a.active{color:var(--brand)}.tabbar .fab{width:56px;height:56px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;margin-top:-22px;box-shadow:0 8px 20px #1ecad359;font-size:13px;font-weight:700;line-height:1.1;text-align:center}.banner-danger{background:#fff1f2;color:#be123c;border:1px solid #fecdd3;border-radius:12px;padding:12px;margin-bottom:12px;font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px;background:#fff}.chip.on{border-color:var(--brand);color:var(--brand-dark);background:var(--brand-soft)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;z-index:100;padding:20px}.modal{width:min(360px,100%);background:#fff;border-radius:16px;padding:20px}.modal h3{margin:0 0 8px}.modal p{margin:0 0 16px;color:#444;font-size:14px;line-height:1.5}
