:root{--bg-primary:#F2F8F3;--bg-white:#ffffff;--text-primary:#333333;--text-secondary:#666666;--text-light:#999999;--border-color:#e5e5e5;--link-color:#dc2626;--link-hover:#b91c1c;--spacing:15px;--radius:4px;--nav-height:60px;--container-width:1200px;--shadow-sm:0 1px 3px rgba(0,0,0,0.1);--shadow-md:0 2px 6px rgba(0,0,0,0.1)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,pingfang sc,hiragino sans gb,microsoft yahei,sans-serif;line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh}a{color:var(--link-color);text-decoration:none;transition:color .2s}a:hover{color:var(--link-hover)}img{max-width:100%;height:auto;vertical-align:middle;border:0}ul,ol{list-style:none}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}.container{max-width:var(--container-width);margin:0 auto;padding:0 var(--spacing)}.clearfix::after{content:"";display:table;clear:both}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hidden{display:none!important}.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}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@media(max-width:768px){.hide-mobile{display:none!important}}@media(min-width:769px){.hide-desktop{display:none!important}}.mt-15{margin-top:15px!important}.mb-15{margin-bottom:15px!important}.p-15{padding:15px!important}.pt-15{padding-top:15px!important}.pb-15{padding-bottom:15px!important}.px-15{padding-left:15px!important;padding-right:15px!important}.py-15{padding-top:15px!important;padding-bottom:15px!important}.rounded{border-radius:var(--radius)}