.app-shell[data-v-aa8eaff5]{display:flex;flex-direction:column;min-height:100dvh}.app-header[data-v-aa8eaff5]{position:sticky;top:0;z-index:20;height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-md);background:#0d0d1ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand[data-v-aa8eaff5]{display:flex;align-items:center;gap:var(--space-sm);font-weight:700}.brand-mark[data-v-aa8eaff5]{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-red));color:#fff;font-size:16px}.brand-text[data-v-aa8eaff5]{font-size:17px;letter-spacing:-.3px}.now-playing[data-v-aa8eaff5]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--accent-blue)}.pulse-dot[data-v-aa8eaff5]{width:8px;height:8px;border-radius:50%;background:var(--accent-blue);animation:pulse-aa8eaff5 1s ease-in-out infinite}@keyframes pulse-aa8eaff5{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.app-main[data-v-aa8eaff5]{flex:1}.tab-bar[data-v-aa8eaff5]{position:fixed;left:0;right:0;bottom:0;z-index:20;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:flex;background:#1a1a2ef2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.tab-item[data-v-aa8eaff5]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-secondary);font-size:11px;transition:color .15s}.tab-item.active[data-v-aa8eaff5]{color:var(--accent-blue)}.tab-icon[data-v-aa8eaff5]{font-size:20px;line-height:1}:root{--bg-primary: #0d0d1a;--bg-card: #1a1a2e;--bg-elevated: #252540;--accent-blue: #4f9cf9;--accent-brown: #c8976e;--accent-red: #f96060;--accent-black: #8888aa;--accent-silver: #c8c8e8;--text-primary: #e8e8f8;--text-secondary: #9090b8;--border: #2a2a4a;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--header-height: 56px;--tabbar-height: 60px;--shadow-card: 0 4px 16px rgba(0, 0, 0, .35);color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;touch-action:manipulation}#app{min-height:100vh;min-height:100dvh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}img,canvas{display:block}ul,ol{list-style:none}input,select{font-family:inherit}button,.touch-target{min-width:44px;min-height:44px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.page{max-width:1024px;margin:0 auto;padding:var(--space-md);padding-bottom:calc(var(--tabbar-height) + var(--space-lg))}.switch-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media (min-width: 768px){.switch-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.switch-grid{grid-template-columns:repeat(3,1fr)}}.no-select{user-select:none;-webkit-user-select:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-elevated) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fade-enter-active,.fade-leave-active{transition:opacity .18s ease}.fade-enter-from,.fade-leave-to{opacity:0}
