*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:#1a1a1a;-webkit-font-smoothing:antialiased;background:#f6f4f0;font-family:PingFang TC,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;line-height:1.6}.page{max-width:480px;margin:0 auto;padding:20px 16px 48px}.hero{text-align:center;margin:8px 0 20px}.hero h1{letter-spacing:.15em;margin:0;font-size:2rem}.dim{color:#8a8a8a;font-size:.85rem}.error{color:#b3261e}.card{background:#fff;border-radius:16px;margin:16px 0;padding:20px;box-shadow:0 2px 12px #0000000f}.card-head{align-items:center;gap:14px;display:flex}.card-avatar{object-fit:cover;border-radius:50%;width:56px;height:56px}.card-name{font-size:1.3rem;font-weight:700}.card-sub{color:#666;margin-top:2px}.card-bio{color:#444;margin:14px 0 0}.card-rows{flex-direction:column;gap:8px;margin-top:14px;display:flex}.card-row{color:#1a1a1a;word-break:break-all;background:#faf8f5;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.row-tag{color:#a4443a;border:1px solid #d9b0aa;border-radius:6px;flex-shrink:0;padding:1px 6px;font-size:.72rem}.qr-block{text-align:center;margin:8px 0}.qr-canvas{background:#fff;border-radius:16px;padding:12px;box-shadow:0 2px 12px #0000000f}.qr-hint{margin-top:8px}.field{margin:14px 0}.field label{color:#555;margin-bottom:6px;font-size:.85rem;display:block}input,textarea{background:#fff;border:1px solid #ddd;border-radius:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:1rem}input:focus,textarea:focus{border-color:#a4443a;outline:2px solid #a4443a33}.list-row{gap:8px;margin-bottom:8px;display:flex}.list-row .link-label{flex:0 0 90px}.btn{color:#1a1a1a;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:12px;padding:12px 18px;font-family:inherit;font-size:1rem}.btn.primary{color:#fff;background:#a4443a;border-color:#a4443a;font-weight:600}.btn.small{padding:8px 12px;font-size:.85rem}.btn.ghost{color:#777;background:0 0;border-style:dashed}.btn:disabled{opacity:.5}.btn-row{gap:10px;margin-top:18px;display:flex}.btn-row .primary{flex:1}.consent{background:#fff;border-radius:16px;margin-bottom:18px;padding:4px 20px 12px;box-shadow:0 2px 12px #0000000f}.consent ul{padding-left:18px}
