:root{--brand: #ff4e6a;--brand-grad: linear-gradient(135deg, #ff4e6a, #ff7a59);--like: #00b67a;--nope: #8e9aaf;--ink: #1b1719;--ink-2: #4a4347;--ink-3: #8a8286;--line: #ece7e8;--ground: #f7f4f4;--surface: #ffffff;--warn: #c77700;--danger: #d93a4a;--radius: 14px;--radius-lg: 20px;--shadow: 0 2px 8px rgba(27, 23, 25, .06), 0 12px 32px -12px rgba(27, 23, 25, .2);--shadow-lg: 0 4px 16px rgba(27, 23, 25, .12), 0 24px 48px -16px rgba(27, 23, 25, .3);--app-max-width: 480px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--ground);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}#app{height:100%}.app-shell{max-width:var(--app-max-width);margin:0 auto;height:100%;background:var(--ground);position:relative;overflow:hidden;display:flex;flex-direction:column}.safe-top{padding-top:env(safe-area-inset-top)}.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;font-size:16px;font-weight:600;padding:14px 24px;cursor:pointer;transition:transform .1s ease,opacity .15s ease;touch-action:manipulation}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-grad);color:#fff}.btn-ghost{background:transparent;color:var(--brand);border:1.5px solid var(--brand)}.btn-block{width:100%}.field{margin-bottom:16px}.field label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:6px;font-weight:500}.input{width:100%;border:1.5px solid var(--line);border-radius:var(--radius);padding:13px 16px;font-size:16px;background:var(--surface);color:var(--ink);outline:none;transition:border-color .15s ease}.input:focus{border-color:var(--brand)}.input::placeholder{color:var(--ink-3)}.text-muted{color:var(--ink-3);font-size:13px}.text-danger{color:var(--danger);font-size:13px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.topbar h1{font-size:17px;font-weight:700;margin:0}.tabbar{display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;text-decoration:none;color:var(--ink-3);font-size:11px}.tabbar a.active{color:var(--brand)}.tabbar .tab-icon{font-size:22px;line-height:1}.tabbar .badge{position:relative}.tabbar .badge:after{content:"";position:absolute;top:-2px;right:-6px;width:8px;height:8px;border-radius:50%;background:var(--brand)}.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in{animation:fadeIn .2s ease}.chip{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#ffffffd9;color:var(--ink-2)}
