@charset "utf-8";

*{-webkit-tap-highlight-color:transparent;-webkit-appearance:none;padding:0;margin:0;box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;-moz-box-sizing:border-box;}

html{font-family:"Helvetica Neue",Helvetica,STHeiTi,"PingFang SC","Microsoft YaHei",sans-serif;-ms-text-size-adjust:none;-webkit-text-size-adjust:none;}
body{color:#333;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
ul,li,ol{margin:0;padding:0;list-style:none;}
a{color:#333;text-decoration:none;transition:color 0.2s;}
p{margin:0;padding:0;}
a:hover{cursor:pointer;color:#ff6600;text-decoration:none;}
a:active{color:#ff6600;}
input{-webkit-appearance:none;appearance:none;}

.ellipsis{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}
.btn{background:#fff;border:0;color:#333;}
.btn:active,.btn.active{outline:0;}
.clearfix:before,.clearfix:after{display:table;content:" ";}
.clearfix:after{clear:both;}

.pull-right{float:right!important;}
.pull-left{float:left!important;}

button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit;}
button{overflow:visible;}
button,select{text-transform:none;}

::-webkit-scrollbar{background-color:transparent;width:2px;height:2px;border-radius:1px;z-index:999;}
::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:1px;width:2px;height:2px;}
::-ms-scrollbar{background-color:transparent;width:2px;height:2px;border-radius:1px;z-index:999;}
::-ms-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:1px;width:2px;height:2px;}
::-moz-scrollbar{background-color:transparent;width:2px;height:2px;border-radius:1px;z-index:999;}
::-moz-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:1px;width:2px;height:2px;}
::-o-scrollbar{background-color:transparent;width:2px;height:2px;border-radius:1px;z-index:999;}
::-o-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:1px;width:2px;height:2px;}

.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:8px;transition:all 0.2s;}
.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto;-webkit-focus-ring-color;outline-offset:-2px;}
.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none;}
.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}

@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@-webkit-keyframes rotating{from{-webkit-transform:rotate(0deg);}to{-webkit-transform:rotate(360deg);}}
@-moz-keyframes rotating{from{-moz-transform:rotate(0deg);}to{-moz-transform:rotate(360deg);}}
@-ms-keyframes rotating{from{-ms-transform:rotate(0deg);}to{-ms-transform:rotate(360deg);}}
@-o-keyframes rotating{from{-o-transform:rotate(0deg);}to{-o-transform:rotate(360deg);}}

.rotating{-moz-animation:rotating 1s linear infinite;-o-animation:rotating 1s linear infinite;animation:rotating 1s linear infinite;-webkit-animation:rotating 1s linear infinite;-ms-animation:rotating 1s linear infinite;}

/* ===== Global Loading Spinner ===== */
.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid #ddd;border-top-color:#ff6600;border-radius:50%;animation:spin 0.8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== Page Transition ===== */
.page-enter{animation:fadeIn 0.3s ease-out;}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}