.tabbar[data-v-9653a44a]{position:fixed;left:50%;transform:translate(-50%);bottom:0;z-index:40;width:100%;max-width:480px;display:flex;background:#141110f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #2c2318;padding-bottom:env(safe-area-inset-bottom,0)}.tab[data-v-9653a44a]{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 7px;color:var(--text-dim);font-size:11px;text-decoration:none}.tab.on[data-v-9653a44a]{color:var(--primary)}.ico[data-v-9653a44a]{display:inline-flex}.lbl[data-v-9653a44a]{line-height:1}:root{--bg: #0F0D0B;--surface: #1A1714;--surface-2: #221B14;--primary: #E0A82E;--accent: #6B2B4D;--text: #F5EFE6;--text-dim: #A89F92;--text-disabled: #6A635A;--on-primary: #3A2A06;--on-accent: #F3D9E5;--danger: #C6413B;--success: #4FA85A;--warning: #D98A2B;--info: #3E7BB6;--radius: 12px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,PingFang TC,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius);padding:12px 18px;background:var(--primary);color:var(--on-primary);font-weight:700}button.ghost{background:transparent;color:var(--text);border:1px solid var(--surface-2)}button:disabled{opacity:.5;cursor:not-allowed}input{font:inherit;width:100%;padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid #2c2318;color:var(--text)}.app-shell{max-width:480px;margin:0 auto;min-height:100%;background:var(--bg);position:relative}.pad{padding:16px}.muted{color:var(--text-dim)}.badge{display:inline-block;padding:2px 8px;border-radius:8px;font-size:12px;background:var(--accent);color:var(--on-accent)}.badge.rating{background:#3a2f22;color:var(--primary);border:1px solid var(--primary)}.skeleton{background:linear-gradient(90deg,#1d1712,#251d15,#1d1712);border-radius:var(--radius);animation:sk 1.2s infinite}@keyframes sk{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.error-box{padding:16px;border:1px solid var(--danger);border-radius:var(--radius);color:var(--danger)}.empty-box{padding:32px 16px;text-align:center;color:var(--text-dim)}
