Explorar el Código

feat: sip008 sub

M1Screw hace 2 años
padre
commit
7c2206c2f7
Se han modificado 54 ficheros con 104 adiciones y 13419 borrados
  1. 0 1
      .dockerignore
  2. 2 0
      .gitignore
  3. 4 37
      app/routes.php
  4. 0 0
      public/theme/tabler/.gitkeep
  5. 0 428
      public/theme/tabler/css/auth.css
  6. 0 0
      public/theme/tabler/css/auth.min.css
  7. 0 7108
      public/theme/tabler/css/base.css
  8. 0 3
      public/theme/tabler/css/base.min.css
  9. BIN
      public/theme/tabler/css/images/bg/amber.jpg
  10. 0 1493
      public/theme/tabler/css/index.css
  11. 0 0
      public/theme/tabler/css/index.min.css
  12. 0 679
      public/theme/tabler/css/index_base.css
  13. 0 10
      public/theme/tabler/css/index_base.min.css
  14. 0 1635
      public/theme/tabler/css/project.css
  15. 0 0
      public/theme/tabler/css/project.min.css
  16. 0 377
      public/theme/tabler/css/user.css
  17. 0 0
      public/theme/tabler/css/user.min.css
  18. 0 3
      public/theme/tabler/js/base.js
  19. 0 3
      public/theme/tabler/js/base.min.js
  20. 0 2
      public/theme/tabler/js/project.js
  21. 0 0
      public/theme/tabler/js/project.min.js
  22. 0 2
      resources/email/auth/test.tpl
  23. 0 2
      resources/email/auth/verify.tpl
  24. 0 2
      resources/email/ext/back.tpl
  25. 1 1
      resources/email/giftcard.tpl
  26. 0 2
      resources/email/news/daily-traffic-report.tpl
  27. 0 2
      resources/email/news/finance.tpl
  28. 0 2
      resources/email/news/warn.tpl
  29. 1 1
      resources/email/newuser.tpl
  30. 5 1
      resources/views/tabler/admin/detect.tpl
  31. 0 12
      resources/views/tabler/admin/setting/email.tpl
  32. 0 16
      resources/views/tabler/dialog.tpl
  33. 0 15
      resources/views/tabler/footer.tpl
  34. 1 5
      resources/views/tabler/gateway/payjs_success.tpl
  35. 0 24
      resources/views/tabler/header.tpl
  36. 0 11
      resources/views/tabler/table/checkbox.tpl
  37. 0 12
      resources/views/tabler/table/js_1.tpl
  38. 0 41
      resources/views/tabler/table/js_2.tpl
  39. 0 4
      resources/views/tabler/table/js_delete.tpl
  40. 0 24
      resources/views/tabler/table/lang_chinese.tpl
  41. 0 16
      resources/views/tabler/table/table.tpl
  42. 0 128
      resources/views/tabler/user/bought.tpl
  43. 0 177
      resources/views/tabler/user/code.tpl
  44. 0 15
      resources/views/tabler/user/footer.tpl
  45. 0 194
      resources/views/tabler/user/header_info.tpl
  46. 7 0
      resources/views/tabler/user/index.tpl
  47. 0 107
      resources/views/tabler/user/main.tpl
  48. 0 425
      resources/views/tabler/user/shop.tpl
  49. 0 11
      src/Controllers/HomeController.php
  50. 6 0
      src/Controllers/LinkController.php
  51. 72 27
      src/Controllers/SubController.php
  52. 0 211
      src/Controllers/User/ShopController.php
  53. 0 150
      src/Controllers/UserController.php
  54. 5 0
      src/Utils/Telegram/Callbacks/Callback.php

+ 0 - 1
.dockerignore

@@ -1 +0,0 @@
-.git

+ 2 - 0
.gitignore

@@ -48,3 +48,5 @@ flake.nix
 node_modules
 package.json
 package-lock.json
+
+.php-cs-fixer.cache

+ 4 - 37
app/routes.php

@@ -16,54 +16,36 @@ return static function (Slim\App $app): void {
     $app->get('/500', App\Controllers\HomeController::class . ':page500');
     $app->get('/tos', App\Controllers\HomeController::class . ':tos');
     $app->get('/staff', App\Controllers\HomeController::class . ':staff');
-
-    // other
-    $app->post('/notify', App\Controllers\HomeController::class . ':notify');
-
     // Telegram
     $app->post('/telegram_callback', App\Controllers\HomeController::class . ':telegram');
-
     // User Center
     $app->group('/user', static function (RouteCollectorProxy $group): void {
         $group->get('', App\Controllers\UserController::class . ':index');
         $group->get('/', App\Controllers\UserController::class . ':index');
-
         // 签到
         $group->post('/checkin', App\Controllers\UserController::class . ':doCheckin');
-
         // 公告
         $group->get('/announcement', App\Controllers\UserController::class . ':announcement');
-
         // 文档
         $group->get('/docs', App\Controllers\UserController::class . ':docs');
-
-        //流媒体解锁
+        // 流媒体解锁
         $group->get('/media', App\Controllers\UserController::class . ':media');
-
+        // 个人资料
         $group->get('/profile', App\Controllers\UserController::class . ':profile');
         $group->get('/invite', App\Controllers\UserController::class . ':invite');
-
         // 封禁
         $group->get('/banned', App\Controllers\UserController::class . ':banned');
-
         // 节点
         $group->get('/server', App\Controllers\User\ServerController::class . ':userServerPage');
-
         // 审计
         $group->get('/detect', App\Controllers\User\DetectController::class . ':index');
-
-        $group->get('/shop', App\Controllers\User\ShopController::class . ':shop');
-        $group->post('/coupon_check', App\Controllers\User\ShopController::class . ':couponCheck');
-        $group->post('/buy', App\Controllers\User\ShopController::class . ':buy');
-        $group->post('/buy_traffic_package', App\Controllers\User\ShopController::class . ':buyTrafficPackage');
-
         // 工单
         $group->get('/ticket', App\Controllers\User\TicketController::class . ':ticket');
         $group->get('/ticket/create', App\Controllers\User\TicketController::class . ':ticketCreate');
         $group->post('/ticket', App\Controllers\User\TicketController::class . ':ticketAdd');
         $group->get('/ticket/{id}/view', App\Controllers\User\TicketController::class . ':ticketView');
         $group->put('/ticket/{id}', App\Controllers\User\TicketController::class . ':ticketUpdate');
-
+        // 资料编辑
         $group->get('/edit', App\Controllers\UserController::class . ':edit');
         $group->post('/email', App\Controllers\UserController::class . ':updateEmail');
         $group->post('/username', App\Controllers\UserController::class . ':updateUsername');
@@ -78,50 +60,35 @@ return static function (Slim\App $app): void {
         $group->post('/kill', App\Controllers\UserController::class . ':handleKill');
         $group->get('/logout', App\Controllers\UserController::class . ':logout');
         $group->get('/backtoadmin', App\Controllers\UserController::class . ':backtoadmin');
-        $group->get('/code', App\Controllers\UserController::class . ':code');
-
-        $group->get('/code_check', App\Controllers\UserController::class . ':codeCheck');
-        $group->post('/code', App\Controllers\UserController::class . ':codePost');
-
         // MFA
         $group->post('/ga_check', App\Controllers\User\MFAController::class . ':checkGa');
         $group->post('/ga_set', App\Controllers\User\MFAController::class . ':setGa');
         $group->post('/ga_reset', App\Controllers\User\MFAController::class . ':resetGa');
-
         // Telegram
         $group->post('/telegram_reset', App\Controllers\UserController::class . ':resetTelegram');
-
-        $group->get('/bought', App\Controllers\UserController::class . ':bought');
-        $group->delete('/bought', App\Controllers\UserController::class . ':deleteBoughtGet');
+        // URL
         $group->post('/url_reset', App\Controllers\UserController::class . ':resetURL');
         $group->put('/invite', App\Controllers\UserController::class . ':resetInviteURL');
-
         // 深色模式切换
         $group->post('/switch_theme_mode', App\Controllers\UserController::class . ':switchThemeMode');
-
         // 记录
         $group->get('/subscribe/log', App\Controllers\User\LogController::class . ':subscribe');
         $group->get('/detect/log', App\Controllers\User\LogController::class . ':detect');
-
         // 产品页面
         $group->get('/product', App\Controllers\User\ProductController::class . ':product');
-
         // 订单页面
         $group->get('/order', App\Controllers\User\OrderController::class . ':order');
         $group->get('/order/create', App\Controllers\User\OrderController::class . ':create');
         $group->post('/order/create', App\Controllers\User\OrderController::class . ':process');
         $group->get('/order/{id}/view', App\Controllers\User\OrderController::class . ':detail');
         $group->post('/order/ajax', App\Controllers\User\OrderController::class . ':ajax');
-
         // 账单页面
         $group->get('/invoice', App\Controllers\User\InvoiceController::class . ':invoice');
         $group->get('/invoice/{id}/view', App\Controllers\User\InvoiceController::class . ':detail');
         $group->post('/invoice/pay_balance', App\Controllers\User\InvoiceController::class . ':payBalance');
         $group->post('/invoice/ajax', App\Controllers\User\InvoiceController::class . ':ajax');
-
         // 新优惠码系统
         $group->post('/coupon', App\Controllers\User\CouponController::class . ':check');
-
         // 支付
         $group->post('/payment/purchase/{type}', App\Services\Payment::class . ':purchase');
         $group->get('/payment/purchase/{type}', App\Services\Payment::class . ':purchase');

+ 0 - 0
public/theme/tabler/.gitkeep


+ 0 - 428
public/theme/tabler/css/auth.css

@@ -1,428 +0,0 @@
-.authpage {
-  margin: 60px 0;
-  position: relative;
-}
-
-.authpage .tab-nav li {
-  width: 50%;
-}
-
-.authpage a {
-  text-decoration: none;
-}
-
-.rowtocol,
-.auth-main .form-group-label,
-.auth-top,
-.auth-bottom,
-.auth-row,
-.authpage .tab-nav {
-  flex-basis: 100%;
-}
-
-.auth-row,
-.authpage .card-main {
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: center;
-}
-
-.auth-main {
-  background: white;
-  border-radius: 15px;
-  box-shadow: 0 0 7px 1px #c5c5c5;
-}
-
-.auth-main .form-group-label,
-.auth-top,
-.auth-bottom {
-  margin-bottom: 0;
-}
-
-.auth-main .form-group-label {
-  margin-left: 2em;
-  margin-right: 2em;
-}
-
-.auth-tg {
-  position: fixed;
-  z-index: 10;
-  max-width: 94%;
-}
-
-.auth-tg.cust-modelin {
-  transform: translate3d(0, 10rem, 0);
-}
-
-.auth-tg,
-.tip-fade {
-  transition-property: all;
-  transition-duration: 0.5s;
-}
-
-.tg-down {
-  top: 2em;
-}
-
-.tip-fade {
-  opacity: 0;
-}
-
-.tiphidden {
-  top: 0;
-  left: 0;
-}
-
-.auth-bottom {
-  margin-top: 20px;
-  background: #7ea8bd;
-  border-radius: 50% 50% 15px 15px;
-}
-
-.tgauth {
-  margin: 7px auto 8px;
-  display: flex;
-  position: relative;
-  justify-content: center;
-}
-
-.tgauth span {
-  position: relative;
-  color: white;
-  top: 15px;
-  margin-right: 6px;
-  text-shadow: 1px 1px 1px #333;
-  font-size: 13px;
-}
-
-.tgauth span:last-of-type {
-  margin-right: 0;
-  margin-left: 6px;
-}
-
-.tgauth p {
-  margin: 6px 0 12px;
-}
-
-.auth-bottom .btn {
-  border-radius: 50%;
-  padding: 10px;
-  color: white;
-  background: #54aff9;
-}
-
-.auth-bottom .btn i {
-  position: relative;
-  right: 1px;
-  top: 2px;
-}
-
-.auth-top {
-  justify-content: space-between;
-  align-items: flex-end;
-  background: #bbdefb;
-  border-radius: 15px 15px 0 0;
-}
-
-a.boardtop-right {
-  color: white;
-  background: #54aff9;
-  padding: 3px 1.5em 2px;
-  border-radius: 10px 0 0;
-  box-shadow: 0 0 5px 0 #969696;
-  position: relative;
-  text-align: center;
-}
-
-a.boardtop-right:hover {
-  transition: 0.4s all;
-  text-decoration: none;
-}
-
-a.boardtop-left {
-  color: white;
-  background: #54aff9;
-  padding: 3px 1.5em 2px;
-  border-radius: 0 10px 0 0;
-  box-shadow: 0 0 5px 0 #969696;
-  position: relative;
-}
-
-a.boardtop-left:hover {
-  text-decoration: none;
-}
-
-.backtohome div {
-  display: inline-block;
-}
-
-.backtohome i {
-  font-size: 40px;
-  position: relative;
-}
-
-.auth-top a div:last-of-type {
-  font-size: 13px;
-}
-
-.auth-help,
-.auth-help-table,
-.btn-auth,
-.tgauth,
-div#embed-captcha {
-  flex-basis: 100%;
-}
-
-.auth-help {
-  justify-content: center;
-  margin-top: 10px;
-}
-
-.auth-help-table {
-  justify-content: space-around;
-}
-
-.auth-help-table.auth-reset {
-  justify-content: center;
-}
-
-.btn-auth {
-  margin-left: 2em;
-  margin-right: 2em;
-  margin-top: 36px;
-  justify-content: center;
-}
-
-.btn-auth button {
-  background: #54aff9;
-}
-
-.auth-logo {
-  background: #bbdefb;
-  border-radius: 10px 10px 0 0;
-}
-
-.auth-logo img {
-  max-width: 100px;
-  border-radius: 50%;
-  margin: 1em 0;
-  box-shadow: 0 0 5px 0 #afafaf;
-  user-select: none;
-}
-
-.auth-help-reg {
-  position: absolute;
-}
-
-.auth-bottom p {
-  color: white;
-  font-size: 13px;
-  padding: 0 50px;
-  text-align: center;
-  position: relative;
-  top: 7px;
-}
-
-.auth-bottom .btn:hover {
-  border-radius: 5px;
-  transition: 0.4s all;
-}
-
-.auth-i-rotate {
-  transition: 1s all;
-  transform: rotate(1080deg);
-  transform-origin: 50% 50%;
-}
-
-.auth-reg.auth-bottom {
-  margin-top: 36px;
-}
-
-#telegram-qr img {
-  max-width: 200px;
-}
-
-@media screen and (min-width: 321px) {
-  .auth-main {
-    width: 300px;
-    margin-left: auto;
-    margin-right: auto;
-  }
-
-  .auth-tg {
-    max-width: 390px;
-    width: 90%;
-  }
-}
-
-@media screen and (min-width: 480px) {
-  .auth-main {
-    width: 390px;
-  }
-
-  .backtohome {
-    margin-right: 22%;
-  }
-
-  .auth-main .form-group-label {
-    margin-top: 40px;
-  }
-
-  #login {
-    margin-top: 5px;
-  }
-
-  .auth-tg.cust-modelin {
-    transform: translate3d(0, 15rem, 0);
-  }
-}
-
-@media screen and (min-width: 768px) {
-  .authpage {
-    margin-top: 120px;
-  }
-
-  .auth-reg.authpage {
-    margin-top: 80px;
-  }
-}
-
-@media screen and (min-width: 992px) {
-  .auth-main {
-    width: 85%;
-  }
-
-  .auth-col-one.auth-main {
-    width: 56%;
-  }
-
-  .auth-reg.auth-bottom {
-    margin-top: 60px;
-  }
-
-  .rowtocol {
-    flex-basis: 48%;
-    flex-wrap: wrap;
-    display: flex;
-  }
-
-  .rowtocol .rowtocol {
-    flex-basis: 50%;
-  }
-
-  .auth-help-table {
-    flex-basis: 56%;
-    justify-content: space-between;
-    margin-bottom: 20px;
-  }
-
-  a.boardtop-right,
-  a.boardtop-left,
-  .backtohome a div:first-of-type {
-    font-size: 20px;
-  }
-
-  a.boardtop-right {
-    padding: 5px 2em 3px;
-  }
-
-  a.boardtop-left {
-    padding: 5px 2em 3px;
-  }
-
-  .auth-top a div:last-of-type {
-    font-size: 16px;
-  }
-
-  #login,
-  #reset {
-    flex-basis: 74%;
-  }
-
-  .auth-col-one.auth-main div#embed-captcha {
-    flex-basis: 74%;
-  }
-
-  .auth-bottom .btn {
-    padding: 10px;
-  }
-
-  .auth-bottom .btn i {
-    font-size: 30px;
-    left: 0.5px;
-  }
-
-  .tgauth span {
-    font-size: 15px;
-    top: 24px;
-  }
-
-  .auth-help {
-    margin-top: 20px;
-  }
-
-  .auth-help-reg {
-    left: 18px;
-    width: 200px;
-  }
-
-  #login,
-  #reset,
-  .btn-reg {
-    font-size: 16px;
-    padding: 10px;
-    margin-top: 10px;
-  }
-
-  #tos {
-    height: 40px;
-    margin-top: 13px;
-  }
-
-  .btn-reg {
-    margin-top: 0;
-  }
-
-  .auth-row.row-login {
-    flex-basis: 40%;
-  }
-
-  .auth-col-one.auth-main .auth-row.row-login {
-    flex-basis: 66%;
-  }
-
-  .auth-main .form-group-label .form-control {
-    height: 40px;
-  }
-
-  .auth-main .floating-label {
-    font-size: 15px;
-    top: 13px;
-  }
-
-  .auth-main .form-group-label {
-    margin-top: 46px;
-  }
-
-  .auth-top {
-    margin-bottom: 10px;
-  }
-
-  .auth-logo img {
-    max-width: 130px;
-  }
-}
-
-@media screen and (min-width: 1440px) {
-  .auth-main {
-    width: 65%;
-  }
-
-  .auth-col-one.auth-main {
-    width: 38%;
-  }
-
-  .auth-help-reg {
-    left: 30px;
-  }
-}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
public/theme/tabler/css/auth.min.css


+ 0 - 7108
public/theme/tabler/css/base.css

@@ -1,7108 +0,0 @@
-/*!
- * normalize.css v3.0.3
- * github.com/necolas/normalize.css
- */body,
-legend {
-  color: #515a6e;
-  padding: 0;
-}
-
-.float-clear::after,
-.float-clear::before {
-  content: "";
-  clear: both;
-  display: block;
-}
-
-body,
-fieldset,
-legend,
-td,
-th {
-  padding: 0;
-}
-
-audio,
-canvas,
-label,
-progress,
-video {
-  display: inline-block;
-  max-width: 100%;
-}
-
-.waves-effect,
-html {
-  position: relative;
-  -webkit-tap-highlight-color: transparent;
-}
-
-.btn,
-.waves-wrap {
-  user-select: none;
-  user-select: none;
-}
-
-.col-xx-1,
-.col-xx-10,
-.col-xx-11,
-.col-xx-12,
-.col-xx-2,
-.col-xx-3,
-.col-xx-4,
-.col-xx-5,
-.col-xx-6,
-.col-xx-7,
-.col-xx-8,
-.col-xx-9,
-.pull-left {
-  float: left;
-}
-
-.text-break,
-pre {
-  word-break: break-all;
-}
-
-a,
-body {
-  background-image: none;
-}
-
-.btn,
-.card-action-btn,
-.fbtn-text,
-.text-nowrap,
-.text-overflow {
-  white-space: nowrap;
-}
-
-.breadcrumb,
-.dropdown-menu,
-.nav {
-  list-style: none;
-}
-
-.picker__table,
-table {
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-.picker__wrap,
-.tile-collapse {
-  -webkit-box-direction: normal;
-}
-
-.breadcrumb::after,
-.card-action::after,
-.clearfix::after,
-.container::after,
-.nav::after,
-.row::after,
-.snackbar-inner::after,
-.tile-footer::after,
-.tile-sub::after {
-  clear: both;
-}
-
-*,
-::after,
-::before {
-  box-sizing: border-box;
-}
-
-@viewport {
-  width: device-width;
-}
-
-body {
-  background-color: #f8f9fe;
-  background-attachment: fixed;
-  width: 100%;
-  background-repeat: no-repeat;
-  background-position: center;
-  background-size: cover;
-  font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
-  font-size: 15px;
-  font-weight: 400;
-  line-height: 20px;
-  margin: 0;
-  text-rendering: optimizelegibility;
-  -webkit-font-smoothing: subpixel-antialiased;
-}
-
-html {
-  font-family: sans-serif;
-  font-size: 100%;
-  min-height: 100%;
-  text-size-adjust: 100%;
-  text-size-adjust: 100%;
-}
-
-button,
-input,
-optgroup,
-select,
-textarea {
-  color: inherit;
-  font: inherit;
-  margin: 0;
-}
-
-button,
-input[type="button"],
-input[type="reset"],
-input[type="submit"] {
-  cursor: pointer;
-  appearance: button;
-}
-
-button,
-select {
-  text-transform: none;
-}
-
-button {
-  overflow: visible;
-}
-
-button[disabled],
-input[disabled] {
-  cursor: default;
-}
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
-  border: 0;
-  padding: 0;
-}
-
-fieldset {
-  border: 0;
-  margin: 0;
-  min-width: 0;
-}
-
-fieldset ~ fieldset {
-  margin-top: 24px;
-}
-
-dd,
-label {
-  margin: 0;
-}
-
-dl,
-ol,
-ul {
-  margin: 12px 0;
-}
-
-input {
-  line-height: normal;
-}
-
-input[type="checkbox"],
-input[type="radio"] {
-  line-height: normal;
-  margin: 4px 0 0;
-  padding: 0;
-}
-
-input[type="color"] {
-  min-width: 20px;
-  width: auto;
-}
-
-input[type="time"],
-input[type="date"],
-input[type="datetime-local"],
-input[type="month"] {
-  line-height: 20px;
-  line-height: 1\9;
-}
-
-input[type="file"] {
-  display: block;
-  height: auto;
-  line-height: 1;
-  min-height: 36px;
-  padding-top: 8px;
-  padding-bottom: 8px;
-}
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-
-input[type="range"] {
-  display: block;
-  height: 36px;
-  width: 100%;
-}
-
-input[type="search"] {
-  box-sizing: border-box;
-  appearance: none;
-}
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
-  appearance: none;
-}
-
-label {
-  font-weight: 500;
-}
-
-legend {
-  border: 0;
-  display: block;
-  font-size: 24px;
-  font-weight: 400;
-  line-height: 32px;
-  margin: 0 0 12px;
-  width: 100%;
-}
-
-.btn,
-.fbtn,
-dt,
-kbd kbd,
-optgroup {
-  font-weight: 500;
-}
-
-select[multiple],
-select[size] {
-  height: auto;
-}
-
-textarea {
-  overflow: auto;
-}
-
-.access-hide,
-.waves-wrap,
-svg:not(:root) {
-  overflow: hidden;
-}
-
-dd,
-dt,
-li {
-  line-height: 20px;
-}
-
-ol,
-ul {
-  padding: 0 0 0 32px;
-}
-
-ol ol,
-ol ul,
-ul ol,
-ul ul {
-  margin-top: 0;
-  margin-bottom: 0;
-}
-
-th {
-  text-align: left;
-}
-
-a {
-  background-color: transparent;
-  color: #399af2;
-  text-decoration: none;
-}
-
-a:focus,
-a:hover {
-  color: #13c2c2;
-  outline: 0;
-  text-decoration: underline;
-}
-
-abbr[title] {
-  border-bottom: 1px dashed rgb(0 0 0 / 12%);
-  cursor: help;
-}
-
-dfn {
-  font-style: italic;
-}
-
-.h1,
-.h2,
-.h3,
-.h4,
-.h5,
-.h6,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-  color: inherit;
-  font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
-  font-weight: 400;
-  margin-top: 48px;
-  margin-bottom: 12px;
-}
-
-address,
-p {
-  margin: 12px 0;
-}
-
-.h1,
-h1 {
-  font-size: 44px;
-  line-height: 48px;
-}
-
-.h2,
-h2 {
-  font-size: 34px;
-  line-height: 40px;
-}
-
-.h3,
-h3 {
-  font-size: 24px;
-  line-height: 32px;
-}
-
-.h4,
-h4 {
-  font-size: 20px;
-  line-height: 28px;
-}
-
-.h5,
-h5 {
-  font-size: 16px;
-  line-height: 24px;
-}
-
-.h6,
-address,
-h6 {
-  line-height: 20px;
-}
-
-.h6,
-h6 {
-  font-size: 12px;
-}
-
-.h1 small,
-.h2 small,
-.h3 small,
-.h4 small,
-h1 small,
-h2 small,
-h3 small,
-h4 small {
-  font-size: 14px;
-}
-
-small {
-  font-size: 75%;
-  line-height: 1;
-}
-
-sub,
-sup {
-  font-size: 80%;
-  line-height: 0;
-  position: relative;
-  vertical-align: baseline;
-}
-
-sub {
-  bottom: -0.25em;
-}
-
-sup {
-  top: -0.5em;
-}
-
-address {
-  font-size: 14px;
-  font-style: normal;
-  font-weight: 400;
-}
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
-  display: block;
-}
-
-audio,
-canvas,
-progress,
-video {
-  vertical-align: baseline;
-}
-
-audio:not([controls]) {
-  display: none;
-  height: 0;
-}
-
-blockquote,
-q {
-  font-size: 20px;
-  font-style: italic;
-  font-weight: 300;
-  line-height: 28px;
-  margin: 24px 0;
-  padding-right: 32px;
-  padding-left: 32px;
-  position: relative;
-}
-
-figure {
-  margin: 1em 40px;
-}
-
-.hr,
-hr {
-  border: 0;
-  border-top: 1px solid rgb(0 0 0 / 12%);
-  box-sizing: content-box;
-  display: block;
-  height: 0;
-  margin-top: 24px;
-  margin-bottom: 24px;
-}
-
-img {
-  border: 0;
-  vertical-align: middle;
-}
-
-[hidden],
-template {
-  display: none;
-}
-
-.container::after,
-.container::before,
-.row::after,
-.row::before {
-  content: "";
-  display: table;
-  line-height: 0;
-}
-/*!
- * bootstrap v3.3.5 (http://getbootstrap.com)
- * based on bootstrap's grid system
-*/.col-lg-1,
-.col-lg-10,
-.col-lg-11,
-.col-lg-12,
-.col-lg-2,
-.col-lg-3,
-.col-lg-4,
-.col-lg-5,
-.col-lg-6,
-.col-lg-7,
-.col-lg-8,
-.col-lg-9,
-.col-md-1,
-.col-md-10,
-.col-md-11,
-.col-md-12,
-.col-md-2,
-.col-md-3,
-.col-md-4,
-.col-md-5,
-.col-md-6,
-.col-md-7,
-.col-md-8,
-.col-md-9,
-.col-sm-1,
-.col-sm-10,
-.col-sm-11,
-.col-sm-12,
-.col-sm-2,
-.col-sm-3,
-.col-sm-4,
-.col-sm-5,
-.col-sm-6,
-.col-sm-7,
-.col-sm-8,
-.col-sm-9,
-.col-xs-1,
-.col-xs-10,
-.col-xs-11,
-.col-xs-12,
-.col-xs-2,
-.col-xs-3,
-.col-xs-4,
-.col-xs-5,
-.col-xs-6,
-.col-xs-7,
-.col-xs-8,
-.col-xs-9,
-.col-xx-1,
-.col-xx-10,
-.col-xx-11,
-.col-xx-12,
-.col-xx-2,
-.col-xx-3,
-.col-xx-4,
-.col-xx-5,
-.col-xx-6,
-.col-xx-7,
-.col-xx-8,
-.col-xx-9 {
-  min-height: 1px;
-  position: relative;
-  padding-left: 16px;
-  padding-right: 16px;
-}
-
-.col-xx-1 {
-  width: 8.33333%;
-}
-
-.col-xx-2 {
-  width: 16.66667%;
-}
-
-.col-xx-3 {
-  width: 25%;
-}
-
-.col-xx-4 {
-  width: 33.33333%;
-}
-
-.col-xx-5 {
-  width: 41.66667%;
-}
-
-.col-xx-6 {
-  width: 50%;
-}
-
-.col-xx-7 {
-  width: 58.33333%;
-}
-
-.col-xx-8 {
-  width: 66.66667%;
-}
-
-.col-xx-9 {
-  width: 75%;
-}
-
-.col-xx-10 {
-  width: 83.33333%;
-}
-
-.col-xx-11 {
-  width: 91.66667%;
-}
-
-.col-xx-12 {
-  width: 100%;
-}
-
-.col-xx-offset-0 {
-  margin-left: 0;
-}
-
-.col-xx-offset-1 {
-  margin-left: 8.33333%;
-}
-
-.col-xx-offset-2 {
-  margin-left: 16.66667%;
-}
-
-.col-xx-offset-3 {
-  margin-left: 25%;
-}
-
-.col-xx-offset-4 {
-  margin-left: 33.33333%;
-}
-
-.col-xx-offset-5 {
-  margin-left: 41.66667%;
-}
-
-.col-xx-offset-6 {
-  margin-left: 50%;
-}
-
-.col-xx-offset-7 {
-  margin-left: 58.33333%;
-}
-
-.col-xx-offset-8 {
-  margin-left: 66.66667%;
-}
-
-.col-xx-offset-9 {
-  margin-left: 75%;
-}
-
-.col-xx-offset-10 {
-  margin-left: 83.33333%;
-}
-
-.col-xx-offset-11 {
-  margin-left: 91.66667%;
-}
-
-.col-xx-offset-12 {
-  margin-left: 100%;
-}
-
-.col-xx-pull-0 {
-  right: 0;
-}
-
-.col-xx-pull-1 {
-  right: 8.33333%;
-}
-
-.col-xx-pull-2 {
-  right: 16.66667%;
-}
-
-.col-xx-pull-3 {
-  right: 25%;
-}
-
-.col-xx-pull-4 {
-  right: 33.33333%;
-}
-
-.col-xx-pull-5 {
-  right: 41.66667%;
-}
-
-.col-xx-pull-6 {
-  right: 50%;
-}
-
-.col-xx-pull-7 {
-  right: 58.33333%;
-}
-
-.col-xx-pull-8 {
-  right: 66.66667%;
-}
-
-.col-xx-pull-9 {
-  right: 75%;
-}
-
-.col-xx-pull-10 {
-  right: 83.33333%;
-}
-
-.col-xx-pull-11 {
-  right: 91.66667%;
-}
-
-.col-xx-pull-12 {
-  right: 100%;
-}
-
-.col-xx-push-0 {
-  left: 0;
-}
-
-.col-xx-push-1 {
-  left: 8.33333%;
-}
-
-.col-xx-push-2 {
-  left: 16.66667%;
-}
-
-.col-xx-push-3 {
-  left: 25%;
-}
-
-.col-xx-push-4 {
-  left: 33.33333%;
-}
-
-.col-xx-push-5 {
-  left: 41.66667%;
-}
-
-.col-xx-push-6 {
-  left: 50%;
-}
-
-.col-xx-push-7 {
-  left: 58.33333%;
-}
-
-.col-xx-push-8 {
-  left: 66.66667%;
-}
-
-.col-xx-push-9 {
-  left: 75%;
-}
-
-.col-xx-push-10 {
-  left: 83.33333%;
-}
-
-.col-xx-push-11 {
-  left: 91.66667%;
-}
-
-.col-xx-push-12 {
-  left: 100%;
-}
-
-@media only screen and (min-width: 480px) {
-  .col-xs-1,
-  .col-xs-10,
-  .col-xs-11,
-  .col-xs-12,
-  .col-xs-2,
-  .col-xs-3,
-  .col-xs-4,
-  .col-xs-5,
-  .col-xs-6,
-  .col-xs-7,
-  .col-xs-8,
-  .col-xs-9 {
-    float: left;
-  }
-
-  .col-xs-1 {
-    width: 8.33333%;
-  }
-
-  .col-xs-2 {
-    width: 16.66667%;
-  }
-
-  .col-xs-3 {
-    width: 25%;
-  }
-
-  .col-xs-4 {
-    width: 33.33333%;
-  }
-
-  .col-xs-5 {
-    width: 41.66667%;
-  }
-
-  .col-xs-6 {
-    width: 50%;
-  }
-
-  .col-xs-7 {
-    width: 58.33333%;
-  }
-
-  .col-xs-8 {
-    width: 66.66667%;
-  }
-
-  .col-xs-9 {
-    width: 75%;
-  }
-
-  .col-xs-10 {
-    width: 83.33333%;
-  }
-
-  .col-xs-11 {
-    width: 91.66667%;
-  }
-
-  .col-xs-12 {
-    width: 100%;
-  }
-
-  .col-xs-offset-0 {
-    margin-left: 0;
-  }
-
-  .col-xs-offset-1 {
-    margin-left: 8.33333%;
-  }
-
-  .col-xs-offset-2 {
-    margin-left: 16.66667%;
-  }
-
-  .col-xs-offset-3 {
-    margin-left: 25%;
-  }
-
-  .col-xs-offset-4 {
-    margin-left: 33.33333%;
-  }
-
-  .col-xs-offset-5 {
-    margin-left: 41.66667%;
-  }
-
-  .col-xs-offset-6 {
-    margin-left: 50%;
-  }
-
-  .col-xs-offset-7 {
-    margin-left: 58.33333%;
-  }
-
-  .col-xs-offset-8 {
-    margin-left: 66.66667%;
-  }
-
-  .col-xs-offset-9 {
-    margin-left: 75%;
-  }
-
-  .col-xs-offset-10 {
-    margin-left: 83.33333%;
-  }
-
-  .col-xs-offset-11 {
-    margin-left: 91.66667%;
-  }
-
-  .col-xs-offset-12 {
-    margin-left: 100%;
-  }
-
-  .col-xs-pull-0 {
-    right: 0;
-  }
-
-  .col-xs-pull-1 {
-    right: 8.33333%;
-  }
-
-  .col-xs-pull-2 {
-    right: 16.66667%;
-  }
-
-  .col-xs-pull-3 {
-    right: 25%;
-  }
-
-  .col-xs-pull-4 {
-    right: 33.33333%;
-  }
-
-  .col-xs-pull-5 {
-    right: 41.66667%;
-  }
-
-  .col-xs-pull-6 {
-    right: 50%;
-  }
-
-  .col-xs-pull-7 {
-    right: 58.33333%;
-  }
-
-  .col-xs-pull-8 {
-    right: 66.66667%;
-  }
-
-  .col-xs-pull-9 {
-    right: 75%;
-  }
-
-  .col-xs-pull-10 {
-    right: 83.33333%;
-  }
-
-  .col-xs-pull-11 {
-    right: 91.66667%;
-  }
-
-  .col-xs-pull-12 {
-    right: 100%;
-  }
-
-  .col-xs-push-0 {
-    left: 0;
-  }
-
-  .col-xs-push-1 {
-    left: 8.33333%;
-  }
-
-  .col-xs-push-2 {
-    left: 16.66667%;
-  }
-
-  .col-xs-push-3 {
-    left: 25%;
-  }
-
-  .col-xs-push-4 {
-    left: 33.33333%;
-  }
-
-  .col-xs-push-5 {
-    left: 41.66667%;
-  }
-
-  .col-xs-push-6 {
-    left: 50%;
-  }
-
-  .col-xs-push-7 {
-    left: 58.33333%;
-  }
-
-  .col-xs-push-8 {
-    left: 66.66667%;
-  }
-
-  .col-xs-push-9 {
-    left: 75%;
-  }
-
-  .col-xs-push-10 {
-    left: 83.33333%;
-  }
-
-  .col-xs-push-11 {
-    left: 91.66667%;
-  }
-
-  .col-xs-push-12 {
-    left: 100%;
-  }
-}
-
-@media only screen and (min-width: 768px) {
-  .col-sm-1,
-  .col-sm-10,
-  .col-sm-11,
-  .col-sm-12,
-  .col-sm-2,
-  .col-sm-3,
-  .col-sm-4,
-  .col-sm-5,
-  .col-sm-6,
-  .col-sm-7,
-  .col-sm-8,
-  .col-sm-9 {
-    float: left;
-  }
-
-  .col-sm-1 {
-    width: 8.33333%;
-  }
-
-  .col-sm-2 {
-    width: 16.66667%;
-  }
-
-  .col-sm-3 {
-    width: 25%;
-  }
-
-  .col-sm-4 {
-    width: 33.33333%;
-  }
-
-  .col-sm-5 {
-    width: 41.66667%;
-  }
-
-  .col-sm-6 {
-    width: 50%;
-  }
-
-  .col-sm-7 {
-    width: 58.33333%;
-  }
-
-  .col-sm-8 {
-    width: 66.66667%;
-  }
-
-  .col-sm-9 {
-    width: 75%;
-  }
-
-  .col-sm-10 {
-    width: 83.33333%;
-  }
-
-  .col-sm-11 {
-    width: 91.66667%;
-  }
-
-  .col-sm-12 {
-    width: 100%;
-  }
-
-  .col-sm-offset-0 {
-    margin-left: 0;
-  }
-
-  .col-sm-offset-1 {
-    margin-left: 8.33333%;
-  }
-
-  .col-sm-offset-2 {
-    margin-left: 16.66667%;
-  }
-
-  .col-sm-offset-3 {
-    margin-left: 25%;
-  }
-
-  .col-sm-offset-4 {
-    margin-left: 33.33333%;
-  }
-
-  .col-sm-offset-5 {
-    margin-left: 41.66667%;
-  }
-
-  .col-sm-offset-6 {
-    margin-left: 50%;
-  }
-
-  .col-sm-offset-7 {
-    margin-left: 58.33333%;
-  }
-
-  .col-sm-offset-8 {
-    margin-left: 66.66667%;
-  }
-
-  .col-sm-offset-9 {
-    margin-left: 75%;
-  }
-
-  .col-sm-offset-10 {
-    margin-left: 83.33333%;
-  }
-
-  .col-sm-offset-11 {
-    margin-left: 91.66667%;
-  }
-
-  .col-sm-offset-12 {
-    margin-left: 100%;
-  }
-
-  .col-sm-pull-0 {
-    right: 0;
-  }
-
-  .col-sm-pull-1 {
-    right: 8.33333%;
-  }
-
-  .col-sm-pull-2 {
-    right: 16.66667%;
-  }
-
-  .col-sm-pull-3 {
-    right: 25%;
-  }
-
-  .col-sm-pull-4 {
-    right: 33.33333%;
-  }
-
-  .col-sm-pull-5 {
-    right: 41.66667%;
-  }
-
-  .col-sm-pull-6 {
-    right: 50%;
-  }
-
-  .col-sm-pull-7 {
-    right: 58.33333%;
-  }
-
-  .col-sm-pull-8 {
-    right: 66.66667%;
-  }
-
-  .col-sm-pull-9 {
-    right: 75%;
-  }
-
-  .col-sm-pull-10 {
-    right: 83.33333%;
-  }
-
-  .col-sm-pull-11 {
-    right: 91.66667%;
-  }
-
-  .col-sm-pull-12 {
-    right: 100%;
-  }
-
-  .col-sm-push-0 {
-    left: 0;
-  }
-
-  .col-sm-push-1 {
-    left: 8.33333%;
-  }
-
-  .col-sm-push-2 {
-    left: 16.66667%;
-  }
-
-  .col-sm-push-3 {
-    left: 25%;
-  }
-
-  .col-sm-push-4 {
-    left: 33.33333%;
-  }
-
-  .col-sm-push-5 {
-    left: 41.66667%;
-  }
-
-  .col-sm-push-6 {
-    left: 50%;
-  }
-
-  .col-sm-push-7 {
-    left: 58.33333%;
-  }
-
-  .col-sm-push-8 {
-    left: 66.66667%;
-  }
-
-  .col-sm-push-9 {
-    left: 75%;
-  }
-
-  .col-sm-push-10 {
-    left: 83.33333%;
-  }
-
-  .col-sm-push-11 {
-    left: 91.66667%;
-  }
-
-  .col-sm-push-12 {
-    left: 100%;
-  }
-}
-
-@media only screen and (min-width: 992px) {
-  .col-md-1,
-  .col-md-10,
-  .col-md-11,
-  .col-md-12,
-  .col-md-2,
-  .col-md-3,
-  .col-md-4,
-  .col-md-5,
-  .col-md-6,
-  .col-md-7,
-  .col-md-8,
-  .col-md-9 {
-    float: left;
-  }
-
-  .col-md-1 {
-    width: 8.33333%;
-  }
-
-  .col-md-2 {
-    width: 16.66667%;
-  }
-
-  .col-md-3 {
-    width: 25%;
-  }
-
-  .col-md-4 {
-    width: 33.33333%;
-  }
-
-  .col-md-5 {
-    width: 41.66667%;
-  }
-
-  .col-md-6 {
-    width: 50%;
-  }
-
-  .col-md-7 {
-    width: 58.33333%;
-  }
-
-  .col-md-8 {
-    width: 66.66667%;
-  }
-
-  .col-md-9 {
-    width: 75%;
-  }
-
-  .col-md-10 {
-    width: 83.33333%;
-  }
-
-  .col-md-11 {
-    width: 91.66667%;
-  }
-
-  .col-md-12 {
-    width: 100%;
-  }
-
-  .col-md-offset-0 {
-    margin-left: 0;
-  }
-
-  .col-md-offset-1 {
-    margin-left: 8.33333%;
-  }
-
-  .col-md-offset-2 {
-    margin-left: 16.66667%;
-  }
-
-  .col-md-offset-3 {
-    margin-left: 25%;
-  }
-
-  .col-md-offset-4 {
-    margin-left: 33.33333%;
-  }
-
-  .col-md-offset-5 {
-    margin-left: 41.66667%;
-  }
-
-  .col-md-offset-6 {
-    margin-left: 50%;
-  }
-
-  .col-md-offset-7 {
-    margin-left: 58.33333%;
-  }
-
-  .col-md-offset-8 {
-    margin-left: 66.66667%;
-  }
-
-  .col-md-offset-9 {
-    margin-left: 75%;
-  }
-
-  .col-md-offset-10 {
-    margin-left: 83.33333%;
-  }
-
-  .col-md-offset-11 {
-    margin-left: 91.66667%;
-  }
-
-  .col-md-offset-12 {
-    margin-left: 100%;
-  }
-
-  .col-md-pull-0 {
-    right: 0;
-  }
-
-  .col-md-pull-1 {
-    right: 8.33333%;
-  }
-
-  .col-md-pull-2 {
-    right: 16.66667%;
-  }
-
-  .col-md-pull-3 {
-    right: 25%;
-  }
-
-  .col-md-pull-4 {
-    right: 33.33333%;
-  }
-
-  .col-md-pull-5 {
-    right: 41.66667%;
-  }
-
-  .col-md-pull-6 {
-    right: 50%;
-  }
-
-  .col-md-pull-7 {
-    right: 58.33333%;
-  }
-
-  .col-md-pull-8 {
-    right: 66.66667%;
-  }
-
-  .col-md-pull-9 {
-    right: 75%;
-  }
-
-  .col-md-pull-10 {
-    right: 83.33333%;
-  }
-
-  .col-md-pull-11 {
-    right: 91.66667%;
-  }
-
-  .col-md-pull-12 {
-    right: 100%;
-  }
-
-  .col-md-push-0 {
-    left: 0;
-  }
-
-  .col-md-push-1 {
-    left: 8.33333%;
-  }
-
-  .col-md-push-2 {
-    left: 16.66667%;
-  }
-
-  .col-md-push-3 {
-    left: 25%;
-  }
-
-  .col-md-push-4 {
-    left: 33.33333%;
-  }
-
-  .col-md-push-5 {
-    left: 41.66667%;
-  }
-
-  .col-md-push-6 {
-    left: 50%;
-  }
-
-  .col-md-push-7 {
-    left: 58.33333%;
-  }
-
-  .col-md-push-8 {
-    left: 66.66667%;
-  }
-
-  .col-md-push-9 {
-    left: 75%;
-  }
-
-  .col-md-push-10 {
-    left: 83.33333%;
-  }
-
-  .col-md-push-11 {
-    left: 91.66667%;
-  }
-
-  .col-md-push-12 {
-    left: 100%;
-  }
-
-  .container {
-    max-width: 960px;
-  }
-}
-
-@media only screen and (min-width: 1440px) {
-  .col-lg-1,
-  .col-lg-10,
-  .col-lg-11,
-  .col-lg-12,
-  .col-lg-2,
-  .col-lg-3,
-  .col-lg-4,
-  .col-lg-5,
-  .col-lg-6,
-  .col-lg-7,
-  .col-lg-8,
-  .col-lg-9 {
-    float: left;
-  }
-
-  .col-lg-1 {
-    width: 8.33333%;
-  }
-
-  .col-lg-2 {
-    width: 16.66667%;
-  }
-
-  .col-lg-3 {
-    width: 25%;
-  }
-
-  .col-lg-4 {
-    width: 33.33333%;
-  }
-
-  .col-lg-5 {
-    width: 41.66667%;
-  }
-
-  .col-lg-6 {
-    width: 50%;
-  }
-
-  .col-lg-7 {
-    width: 58.33333%;
-  }
-
-  .col-lg-8 {
-    width: 66.66667%;
-  }
-
-  .col-lg-9 {
-    width: 75%;
-  }
-
-  .col-lg-10 {
-    width: 83.33333%;
-  }
-
-  .col-lg-11 {
-    width: 91.66667%;
-  }
-
-  .col-lg-12 {
-    width: 100%;
-  }
-
-  .col-lg-offset-0 {
-    margin-left: 0;
-  }
-
-  .col-lg-offset-1 {
-    margin-left: 8.33333%;
-  }
-
-  .col-lg-offset-2 {
-    margin-left: 16.66667%;
-  }
-
-  .col-lg-offset-3 {
-    margin-left: 25%;
-  }
-
-  .col-lg-offset-4 {
-    margin-left: 33.33333%;
-  }
-
-  .col-lg-offset-5 {
-    margin-left: 41.66667%;
-  }
-
-  .col-lg-offset-6 {
-    margin-left: 50%;
-  }
-
-  .col-lg-offset-7 {
-    margin-left: 58.33333%;
-  }
-
-  .col-lg-offset-8 {
-    margin-left: 66.66667%;
-  }
-
-  .col-lg-offset-9 {
-    margin-left: 75%;
-  }
-
-  .col-lg-offset-10 {
-    margin-left: 83.33333%;
-  }
-
-  .col-lg-offset-11 {
-    margin-left: 91.66667%;
-  }
-
-  .col-lg-offset-12 {
-    margin-left: 100%;
-  }
-
-  .col-lg-pull-0 {
-    right: 0;
-  }
-
-  .col-lg-pull-1 {
-    right: 8.33333%;
-  }
-
-  .col-lg-pull-2 {
-    right: 16.66667%;
-  }
-
-  .col-lg-pull-3 {
-    right: 25%;
-  }
-
-  .col-lg-pull-4 {
-    right: 33.33333%;
-  }
-
-  .col-lg-pull-5 {
-    right: 41.66667%;
-  }
-
-  .col-lg-pull-6 {
-    right: 50%;
-  }
-
-  .col-lg-pull-7 {
-    right: 58.33333%;
-  }
-
-  .col-lg-pull-8 {
-    right: 66.66667%;
-  }
-
-  .col-lg-pull-9 {
-    right: 75%;
-  }
-
-  .col-lg-pull-10 {
-    right: 83.33333%;
-  }
-
-  .col-lg-pull-11 {
-    right: 91.66667%;
-  }
-
-  .col-lg-pull-12 {
-    right: 100%;
-  }
-
-  .col-lg-push-0 {
-    left: 0;
-  }
-
-  .col-lg-push-1 {
-    left: 8.33333%;
-  }
-
-  .col-lg-push-2 {
-    left: 16.66667%;
-  }
-
-  .col-lg-push-3 {
-    left: 25%;
-  }
-
-  .col-lg-push-4 {
-    left: 33.33333%;
-  }
-
-  .col-lg-push-5 {
-    left: 41.66667%;
-  }
-
-  .col-lg-push-6 {
-    left: 50%;
-  }
-
-  .col-lg-push-7 {
-    left: 58.33333%;
-  }
-
-  .col-lg-push-8 {
-    left: 66.66667%;
-  }
-
-  .col-lg-push-9 {
-    left: 75%;
-  }
-
-  .col-lg-push-10 {
-    left: 83.33333%;
-  }
-
-  .col-lg-push-11 {
-    left: 91.66667%;
-  }
-
-  .col-lg-push-12 {
-    left: 100%;
-  }
-}
-
-.container {
-  margin-right: auto;
-  margin-left: auto;
-  padding-right: 10px;
-  padding-left: 10px;
-}
-
-@media only screen and (min-width: 1440px) {
-  .container {
-    max-width: 1408px;
-  }
-}
-
-.container-full {
-  max-width: none;
-}
-
-.row {
-  margin-right: -10px;
-  margin-left: -10px;
-}
-
-/*!
- * material icons v2.2.0
- * http://google.github.io/material-design-icons/#icon-font-for-the-web
- */
-
-.breadcrumb > li + li::before,
-.icon {
-  display: inline-block;
-  font-family: "Material Icons";
-  font-feature-settings: "liga";
-  font-feature-settings: "liga";
-  font-size: inherit;
-  font-style: normal;
-  font-weight: 400;
-  height: 1em;
-  letter-spacing: normal;
-  line-height: 1;
-  overflow: hidden;
-  text-rendering: optimizelegibility;
-  text-transform: none;
-  vertical-align: -16%;
-  white-space: nowrap;
-  width: 1em;
-  word-wrap: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.icon-2x {
-  font-size: 2em;
-}
-
-.icon-3x {
-  font-size: 3em;
-}
-
-.icon-4x {
-  font-size: 4em;
-}
-
-.icon-5x {
-  font-size: 5em;
-}
-
-/* ICON图标大小 */
-.icon-lg {
-  font-size: 1.4em;
-}
-
-/* ICON菜单图标大小 */
-.icon-cd {
-  font-size: 2.2em;
-}
-
-/*!
- * waves v0.7.4
- * http://fian.my.id/Waves
- */.waves-effect .waves-ripple {
-  background-clip: content-box;
-  background-color: rgb(0 0 0 / 30%);
-  border-radius: 50%;
-  height: 60px;
-  margin-top: -30px;
-  margin-left: -30px;
-  opacity: 0;
-  position: absolute;
-  transform: scale(0) translate(0, 0);
-  transform: scale(0) translate(0, 0);
-  transition-duration: 0.6s;
-  transition-duration: 0.6s;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  width: 60px;
-}
-
-.waves-effect.waves-light .waves-ripple {
-  background-color: rgb(255 255 255 / 30%);
-}
-
-.waves-wrap {
-  pointer-events: none;
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  user-select: none;
-  user-select: none;
-}
-
-.waves-circle > .waves-wrap {
-  border-radius: 50%;
-  mask: url();
-  mask: url();
-  transform: translateZ(0);
-  transform: translateZ(0);
-  mask-image: radial-gradient(circle, #fff 100%, #000 100%);
-}
-
-@media print {
-  blockquote,
-  img,
-  pre,
-  tr {
-    page-break-inside: avoid;
-  }
-
-  *,
-  ::after,
-  ::before {
-    background: 0 0 !important;
-    box-shadow: none !important;
-    text-shadow: none !important;
-  }
-
-  a,
-  a:visited {
-    text-decoration: underline;
-  }
-
-  a[href]::after {
-    content: " (" attr(href) ")";
-  }
-
-  a[href^="#"]::after,
-  a[href^="javascript:"]::after {
-    content: "";
-  }
-
-  abbr[title]::after {
-    content: " (" attr(title) ")";
-  }
-
-  blockquote,
-  pre {
-    border: 1px solid #dadada;
-  }
-
-  img {
-    max-width: 100% !important;
-  }
-
-  h2,
-  h3,
-  p {
-    orphans: 3;
-    widows: 3;
-  }
-
-  h2,
-  h3 {
-    page-break-after: avoid;
-  }
-
-  thead {
-    display: table-header-group;
-  }
-
-  .hidden-print {
-    display: none !important;
-  }
-
-  .card,
-  .card-img,
-  .card-side {
-    border-radius: 0 !important;
-  }
-
-  .card,
-  .tile {
-    border: 1px solid #dadada;
-  }
-}
-
-.visible-print-block {
-  display: none !important;
-}
-
-@media print {
-  .visible-print-block {
-    display: block !important;
-  }
-}
-
-.visible-print-inline {
-  display: none !important;
-}
-
-@media print {
-  .visible-print-inline {
-    display: inline !important;
-  }
-}
-
-.visible-print-inline-block {
-  display: none !important;
-}
-
-@media print {
-  .visible-print-inline-block {
-    display: inline-block !important;
-  }
-}
-
-.access-hide {
-  border: 0;
-  clip: rect(0, 0, 0, 0);
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  position: absolute;
-  width: 1px;
-}
-
-.access-hide.focusable:active,
-.access-hide.focusable:focus {
-  clip: auto;
-  height: auto;
-  margin: 0;
-  overflow: visible;
-  position: static;
-  width: auto;
-}
-
-.collapsible-region,
-.collapsing,
-.media,
-.media-inner {
-  overflow: hidden;
-}
-
-.btn,
-.collapsing,
-.el-loading {
-  position: relative;
-}
-
-.clearfix::after,
-.clearfix::before {
-  content: "";
-  display: table;
-  line-height: 0;
-}
-
-.collapse {
-  display: none;
-}
-
-.collapse.in {
-  display: block;
-}
-
-.collapsed > .collapsed-hide,
-:not(.collapsed) > .collapsed-show {
-  display: none;
-}
-
-.collapsing {
-  height: 0;
-  transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.el-loading-indicator {
-  background-color: #fff;
-  font-family: sans-serif !important;
-  height: 100%;
-  min-height: 4px;
-  overflow: hidden;
-  padding: 24px 16px;
-  position: absolute;
-  top: 0;
-  left: 0;
-  text-align: center;
-  width: 100%;
-  z-index: 2;
-}
-
-.el-loading-done > .el-loading-indicator {
-  opacity: 0;
-  transform: scale(0, 0);
-  transform: scale(0, 0);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0s 0.3s;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0s 0.3s;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0s 0.3s;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0s 0.3s, -webkit-transform 0s 0.3s;
-}
-
-.btn::after,
-.fade {
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.el-loading-indicator-fixed {
-  position: fixed;
-  z-index: 41;
-}
-
-.el-loading-indicator-linear {
-  padding: 0 !important;
-}
-
-.fade {
-  opacity: 0;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.fade.in {
-  opacity: 1;
-}
-
-.iframe-seamless {
-  border: 0;
-  display: block;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-  width: 100%;
-}
-
-.img-responsive {
-  display: block;
-  height: auto;
-  max-width: 100%;
-  width: 100%\9;
-}
-
-.list-clear,
-.list-inline {
-  list-style: none;
-  padding-left: 0;
-}
-
-.list-inline {
-  margin-left: -8px;
-}
-
-.list-inline > li {
-  display: inline-block;
-  padding-right: 8px;
-  padding-left: 8px;
-}
-
-.margin-bottom {
-  margin-bottom: 24px !important;
-}
-
-.margin-bottom-lg {
-  margin-bottom: 48px !important;
-}
-
-.margin-bottom-no {
-  margin-bottom: 0 !important;
-}
-
-.margin-bottom-sm {
-  margin-bottom: 12px !important;
-}
-
-.margin-bottom-xs {
-  margin-bottom: 8px !important;
-}
-
-.margin-left {
-  margin-left: 16px !important;
-}
-
-.margin-left-lg {
-  margin-left: 32px !important;
-}
-
-.margin-left-no {
-  margin-left: 0 !important;
-}
-
-.margin-left-sm {
-  margin-left: 8px !important;
-}
-
-.margin-left-xs {
-  margin-left: 4px !important;
-}
-
-.margin-no {
-  margin: 0 !important;
-}
-
-.margin-right {
-  margin-right: 16px !important;
-}
-
-.margin-right-lg {
-  margin-right: 32px !important;
-}
-
-.margin-right-no {
-  margin-right: 0 !important;
-}
-
-.margin-right-sm {
-  margin-right: 8px !important;
-}
-
-.margin-right-xs {
-  margin-right: 4px !important;
-}
-
-.margin-top {
-  margin-top: 24px !important;
-}
-
-.margin-top-lg {
-  margin-top: 48px !important;
-}
-
-.margin-top-no {
-  margin-top: 0 !important;
-}
-
-.margin-top-sm {
-  margin-top: 12px !important;
-}
-
-.margin-top-xs {
-  margin-top: 8px !important;
-}
-
-.media-object.pull-left {
-  margin-right: 16px;
-}
-
-.media-object.pull-right {
-  margin-left: 16px;
-}
-
-.modal-scrollbar-measure {
-  height: 50px;
-  overflow: scroll;
-  position: absolute;
-  top: -99999px;
-  width: 50px;
-}
-
-.card-img,
-.card-side.card-side-img,
-.modal,
-.no-overflow,
-.text-overflow {
-  overflow: hidden;
-}
-
-.padding-bottom {
-  padding-bottom: 24px !important;
-}
-
-.padding-bottom-lg {
-  padding-bottom: 48px !important;
-}
-
-.padding-bottom-no {
-  padding-bottom: 0 !important;
-}
-
-.padding-bottom-sm {
-  padding-bottom: 12px !important;
-}
-
-.padding-bottom-xs {
-  padding-bottom: 8px !important;
-}
-
-.padding-left {
-  padding-left: 16px !important;
-}
-
-.padding-left-lg {
-  padding-left: 32px !important;
-}
-
-.padding-left-no {
-  padding-left: 0 !important;
-}
-
-.padding-left-sm {
-  padding-left: 8px !important;
-}
-
-.padding-left-xs {
-  padding-left: 4px !important;
-}
-
-.padding-no {
-  padding: 0 !important;
-}
-
-.padding-right {
-  padding-right: 16px !important;
-}
-
-.padding-right-lg {
-  padding-right: 32px !important;
-}
-
-.padding-right-no {
-  padding-right: 0 !important;
-}
-
-.padding-right-sm {
-  padding-right: 8px !important;
-}
-
-.padding-right-xs {
-  padding-right: 4px !important;
-}
-
-.padding-top {
-  padding-top: 24px !important;
-}
-
-.padding-top-lg {
-  padding-top: 48px !important;
-}
-
-.padding-top-no {
-  padding-top: 0 !important;
-}
-
-.padding-top-sm {
-  padding-top: 12px !important;
-}
-
-.padding-top-xs {
-  padding-top: 8px !important;
-}
-
-.pull-right {
-  float: right;
-}
-
-.text-break {
-  hyphens: auto;
-  hyphens: auto;
-  hyphens: auto;
-  hyphens: auto;
-}
-
-.text-overflow {
-  display: block;
-  line-height: inherit;
-  text-overflow: ellipsis;
-}
-
-.text-center {
-  text-align: center;
-}
-
-.text-left {
-  text-align: left;
-}
-
-.text-right {
-  text-align: right;
-}
-
-.text-black {
-  color: #212121;
-}
-
-.text-black-divider {
-  color: #dadada;
-}
-
-.text-black-hint {
-  color: #9a9a9a;
-}
-
-.text-black-sec {
-  color: #727272;
-}
-
-/* 菜单键的颜色 */
-.text-white {
-  color: rgb(0 0 0);
-}
-
-.text-white-divider {
-  color: #3c3c3c;
-}
-
-.text-white-hint {
-  color: #646464;
-}
-
-.text-white-sec {
-  color: #bcbcbc;
-}
-
-.text-brand {
-  color: #3f51b5;
-}
-
-.text-brand-accent {
-  color: #f02;
-}
-
-.text-green {
-  color: #4caf50;
-}
-
-.text-orange {
-  color: #24292e;
-}
-
-.text-red {
-  color: #f44336;
-}
-
-.visible-lg-block,
-.visible-lg-inline,
-.visible-lg-inline-block,
-.visible-md-block,
-.visible-md-inline,
-.visible-md-inline-block,
-.visible-sm-block,
-.visible-sm-inline,
-.visible-sm-inline-block,
-.visible-xs-block,
-.visible-xs-inline,
-.visible-xs-inline-block,
-.visible-xx-block,
-.visible-xx-inline,
-.visible-xx-inline-block {
-  display: none !important;
-}
-
-.avatar {
-  background-color: rgb(154 154 154 / 18%);
-  border-radius: 50%;
-  color: inherit;
-  display: block;
-  height: 40px;
-  line-height: 40px;
-  text-align: center;
-  width: 40px;
-}
-
-.avatar[href]:focus,
-.avatar[href]:hover {
-  color: inherit;
-  text-decoration: none;
-}
-
-.avatar-brand,
-.avatar-brand-accent:focus,
-.avatar-brand-accent:hover,
-.avatar-brand:focus,
-.avatar-brand:hover {
-  color: #fff;
-}
-
-.avatar img {
-  border-radius: 50%;
-  height: 100%;
-  vertical-align: top;
-  width: 100%;
-}
-
-.btn,
-.switch-toggle {
-  vertical-align: middle;
-}
-
-.avatar-brand {
-  background-color: #3f51b5;
-}
-
-.avatar-brand-accent {
-  background-color: #f02;
-  color: #fff;
-}
-
-.avatar-green,
-.avatar-green:focus,
-.avatar-green:hover,
-.avatar-orange,
-.avatar-orange:focus,
-.avatar-orange:hover {
-  color: rgb(0 0 0 / 87%);
-}
-
-.avatar-green {
-  background-color: #4caf50;
-}
-
-.avatar-orange {
-  background-color: #24292e;
-}
-
-.avatar-red {
-  background-color: #f44336;
-  color: #fff;
-}
-
-.btn,
-.btn::after {
-  background-color: rgb(154 154 154 / 18%);
-}
-
-.avatar-red:focus,
-.avatar-red:hover {
-  color: #fff;
-}
-
-.avatar-lg {
-  height: 80px;
-  line-height: 80px;
-  width: 80px;
-}
-
-.avatar-sm {
-  height: 32px;
-  line-height: 32px;
-  width: 32px;
-}
-
-.avatar-xs {
-  font-size: 12px;
-  height: 20px;
-  line-height: 20px;
-  width: 20px;
-}
-
-.avatar-inline {
-  display: inline-block;
-}
-
-.breadcrumb {
-  margin: 24px 0;
-  padding: 0;
-}
-
-.breadcrumb::after,
-.breadcrumb::before {
-  content: "";
-  display: table;
-  line-height: 0;
-}
-
-.btn,
-.fbtn {
-  font-size: 14px;
-  line-height: 20px;
-  text-align: center;
-  user-select: none;
-}
-
-.breadcrumb > li {
-  display: block;
-  float: left;
-}
-
-.breadcrumb > li + li::before {
-  color: rgb(0 0 0 / 54%);
-  content: "chevron_right";
-  display: inline-block;
-  margin-left: 0.4em;
-}
-
-.btn::after,
-.card-action::after,
-.card-action::before,
-.card-img-heading::before,
-.fbtn::after,
-.nav::after,
-.nav::before,
-.picker__holder::before,
-.switch-toggle::after,
-.switch-toggle::before {
-  content: "";
-}
-
-.breadcrumb > .active {
-  color: rgb(0 0 0 / 87%);
-}
-
-.breadcrumb > .active > .a,
-.breadcrumb > .active > a {
-  color: rgb(0 0 0 / 87%);
-  cursor: text;
-  text-decoration: none;
-}
-
-.btn {
-  background-image: none;
-  background-position: 50% 50%;
-  background-size: 100% 100%;
-  border: 0;
-  border-radius: 20px;
-  box-shadow: 0 1px 3px rgb(0 0 0 / 15%), 0 1px 3px 1px rgb(0 0 0 / 15%);
-  color: inherit;
-  cursor: pointer;
-  display: inline-block;
-  margin-bottom: 0;
-  max-width: 100%;
-  padding: 8px 15px;
-  text-transform: uppercase;
-  user-select: none;
-  transition: 0.3s all;
-}
-
-.btn:hover {
-  border-radius: 5px;
-  transition-duration: 0.4s;
-}
-
-.btn::after,
-.card,
-.fbtn-text {
-  border-radius: 10px;
-}
-
-.fbtn,
-.picker {
-  user-select: none;
-  user-select: none;
-}
-
-.btn:active,
-.btn:focus,
-.btn:hover {
-  color: inherit;
-  outline: 0;
-  text-decoration: none;
-}
-
-.fbtn {
-  border-radius: 50%;
-}
-
-.btn:active::after,
-.btn:focus::after {
-  opacity: 1;
-}
-
-.btn.waves-attach:active::after {
-  background-color: transparent;
-}
-
-.btn.disabled,
-.btn[disabled],
-fieldset[disabled] .btn {
-  box-shadow: none;
-  cursor: not-allowed;
-  opacity: 0.54;
-}
-
-.dropdown [data-toggle="dropdown"],
-.fbtn {
-  cursor: pointer;
-}
-
-.btn.disabled .waves-ripple,
-.btn.disabled::after,
-.btn[disabled] .waves-ripple,
-.btn[disabled]::after,
-fieldset[disabled] .btn .waves-ripple,
-fieldset[disabled] .btn::after {
-  display: none;
-}
-
-/* 示例颜色:工单处添加按钮 */
-.btn-brand {
-  background-color: #5e72e4;
-  color: #fff !important;
-}
-
-/* 示例颜色:工单处添加并关闭按钮 */
-.btn-brand-accent {
-  background-color: #666;
-  color: #fff !important;
-}
-
-/* 示例颜色:訂閱按鈕顏色 */
-.btn-subscription {
-  background-color: #54aff9;
-  color: #fff;
-  margin: 1em 0;
-}
-
-@media screen and (min-width: 768px) {
-  .btn-subscription {
-    margin: 0;
-  }
-}
-
-.copy-text.btn-subscription:hover,
-.reset-invitelink:hover {
-  color: white;
-}
-
-.kaobei {
-  transition-duration: 0.4s; /* Safari */
-  transition-duration: 0.4s;
-  margin-left: 1em;
-}
-
-.kaobei:hover {
-  background-color: #13c2c2; /* prink */
-  color: white;
-}
-
-.btn-green,
-.btn-orange {
-  color: rgb(0 0 0 / 87%) !important;
-}
-
-.btn-green {
-  background-color: #4caf50;
-}
-
-.btn-orange {
-  background-color: #24292e;
-}
-
-.btn-red {
-  background-color: #f44336;
-  color: #fff !important;
-}
-
-.btn-block {
-  display: block;
-  white-space: normal;
-  width: 100%;
-}
-
-.btn-flat {
-  background-color: transparent;
-  box-shadow: none;
-}
-
-.btn-flat::after {
-  background-color: rgb(154 154 154 / 36%);
-  box-shadow: none;
-}
-
-.btn-flat.disabled,
-.btn-flat[disabled],
-fieldset[disabled] .btn-flat {
-  background-color: transparent;
-}
-
-.btn-flat.btn-brand {
-  color: #525252 !important;
-}
-
-.btn-flat.btn-brand-accent {
-  color: #525252 !important;
-}
-
-.btn-flat.btn-green {
-  color: #4caf50 !important;
-}
-
-.btn-flat.btn-orange {
-  color: #525252 !important;
-}
-
-.btn-flat.btn-red {
-  color: #f44336 !important;
-}
-
-.fbtn {
-  background-color: #f5f5f5;
-  box-shadow: 0 1px 3px rgb(0 0 0 / 15%), 0 1px 3px 1px rgb(0 0 0 / 30%);
-  clear: both;
-  color: #212121;
-  display: block;
-  height: 40px;
-  margin: 12px auto;
-  padding: 10px 0;
-  position: relative;
-  transition-duration: 0.3s;
-  transition-duration: 0.3s;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, transform;
-  transition-property: opacity, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  user-select: none;
-  width: 40px;
-}
-
-.fbtn:active,
-.fbtn:focus,
-.fbtn:hover {
-  color: #212121;
-  outline: 0;
-  text-decoration: none;
-  transition-duration: 0.4s;
-  border-radius: 10px;
-  transition-property: all;
-}
-
-.fbtn::after {
-  box-shadow: 0 6px 9px rgb(0 0 0 / 15%);
-  display: block;
-  height: 100%;
-  opacity: 0;
-  position: absolute;
-  top: 0;
-  left: 0;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 100%;
-}
-
-.fbtn:active::after,
-.fbtn:focus::after {
-  opacity: 1;
-}
-
-.fbtn-brand {
-  background-color: #3f51b5;
-  color: #fff !important;
-}
-
-.fbtn-brand-accent {
-  background-color: #f02;
-  color: #fff !important;
-}
-
-.fbtn-green,
-.fbtn-orange {
-  color: rgb(0 0 0 / 87%) !important;
-}
-
-.fbtn-green {
-  background-color: #4caf50;
-}
-
-.fbtn-orange {
-  background-color: #24292e;
-}
-
-.fbtn-red {
-  background-color: #f44336;
-  color: #fff !important;
-}
-
-.fbtn-lg {
-  font-size: 20px;
-  height: 56px;
-  line-height: 28px;
-  padding-top: 14px;
-  padding-bottom: 14px;
-  width: 56px;
-}
-
-.fbtn-container {
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-  position: fixed;
-  right: 100px;
-  bottom: 12px;
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  z-index: 21;
-}
-
-@media screen and (min-width: 992px) {
-  .fbtn-container {
-    transform: translateY(0) !important;
-    transform: translateY(0) !important;
-  }
-}
-
-.fbtn-dropdown,
-.fbtn-dropup {
-  position: absolute;
-  left: 0;
-  transform: scale(0, 0);
-  transform: scale(0, 0);
-  transition: -webkit-transform 0s 0.3s;
-  transition: -webkit-transform 0s 0.3s;
-  transition: transform 0s 0.3s;
-  transition: transform 0s 0.3s, -webkit-transform 0s 0.3s;
-  width: 100%;
-}
-
-.fbtn-inner.open .fbtn-dropdown,
-.fbtn-inner.open .fbtn-dropup {
-  transform: scale(1, 1);
-  transform: scale(1, 1);
-  transition: none;
-  transition: none;
-}
-
-.fbtn-dropdown .fbtn,
-.fbtn-dropup .fbtn {
-  opacity: 0;
-  transform: scale(0, 0);
-  transform: scale(0, 0);
-}
-
-.fbtn-inner.open .fbtn-dropdown .fbtn,
-.fbtn-inner.open .fbtn-dropup .fbtn {
-  opacity: 1;
-  transform: scale(1, 1);
-  transform: scale(1, 1);
-}
-
-.fbtn-dropdown {
-  top: 100%;
-}
-
-.fbtn-dropup {
-  bottom: 100%;
-}
-
-.fbtn-inner {
-  position: relative;
-}
-
-.fbtn-ori,
-.fbtn-sub {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  height: 100%;
-  margin-left: -0.5em;
-  position: absolute;
-  top: 0;
-  left: 50%;
-  transition-duration: 0.3s;
-  transition-duration: 0.3s;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, transform;
-  transition-property: opacity, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.fbtn-inner.open .fbtn-ori {
-  opacity: 0;
-  transform: rotate(225deg);
-  transform: rotate(225deg);
-}
-
-.fbtn-sub {
-  opacity: 0;
-  transform: rotate(-225deg);
-  transform: rotate(-225deg);
-}
-
-.fbtn-inner.open .fbtn-sub {
-  opacity: 1;
-  transform: rotate(0);
-  transform: rotate(0);
-}
-
-.fbtn-text {
-  background-color: rgb(0 0 0 / 87%);
-  color: #fff;
-  display: none;
-  font-size: 12px;
-  line-height: 20px;
-  margin-top: -11px;
-  margin-left: 16px;
-  padding: 2px 8px;
-  position: absolute;
-  top: 50%;
-  left: 100%;
-}
-
-.fbtn-inner.open .fbtn-text {
-  display: block;
-}
-
-html.no-touchevents .fbtn-text {
-  display: block;
-  opacity: 0;
-  transform: scale(0, 0);
-  transform: scale(0, 0);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0s 0.3s;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0s 0.3s;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0s 0.3s;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0s 0.3s, -webkit-transform 0s 0.3s;
-}
-
-html.no-touchevents .fbtn:hover > .fbtn-text {
-  opacity: 1;
-  transform: scale(1, 1);
-  transform: scale(1, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.checkbox-circle-icon,
-.dropdown-menu {
-  transition-duration: 0.3s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.fbtn-text-left {
-  margin-right: 16px;
-  margin-left: 0;
-  right: 100%;
-  left: auto;
-}
-
-.card {
-  background-color: #fff;
-  box-shadow: 0 0 0 #e5e5e5, 0 0 15px rgb(0 0 0 / 12%), 0 2px 4px rgb(0 0 0 / 5%);
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  margin-top: 24px;
-  margin-bottom: 24px;
-}
-
-.card[href]:focus,
-.card[href]:hover {
-  outline: 0;
-  text-decoration: none;
-}
-
-.card-brand a,
-.card-brand a:focus,
-.card-brand a:hover {
-  color: inherit;
-}
-
-.card-brand-accent {
-  background-color: #f02;
-  color: #fff;
-}
-
-.card-brand-accent a,
-.card-brand-accent a:focus,
-.card-brand-accent a:hover {
-  color: inherit;
-}
-
-.card-green {
-  background-color: #4caf50;
-  color: rgb(0 0 0 / 87%);
-}
-
-.card-green a,
-.card-green a:focus,
-.card-green a:hover {
-  color: inherit;
-}
-
-.card-orange {
-  background-color: #24292e;
-  color: rgb(0 0 0 / 87%);
-}
-
-.card-orange a,
-.card-orange a:focus,
-.card-orange a:hover {
-  color: inherit;
-}
-
-.card-red {
-  background-color: #f44336;
-  color: #fff;
-}
-
-.card-red a,
-.card-red a:focus,
-.card-red a:hover {
-  color: inherit;
-}
-
-.card-action {
-  border-top: 1px solid rgb(0 0 0 / 12%);
-  min-height: 48px;
-}
-
-.card-action::after,
-.card-action::before {
-  display: table;
-  line-height: 0;
-}
-
-.card-main > .card-action:first-child {
-  border-top: 0;
-}
-
-.card-action-btn {
-  margin: 6px 8px;
-}
-
-.card-action-btn .btn + .btn {
-  margin-left: 8px;
-}
-
-.card-header {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  border-bottom: 1px solid rgb(0 0 0 / 12%);
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  min-height: 56px;
-}
-
-.card-main > .card-header:last-child {
-  border-bottom: 0;
-}
-
-.card-header-side {
-  margin-top: 12px;
-  margin-bottom: 12px;
-}
-
-.card-header-side.pull-left {
-  -webkit-box-ordinal-group: 0;
-  order: -1;
-  -ms-flex-order: -1;
-  order: -1;
-  padding-left: 16px;
-}
-
-.card-header-side.pull-right {
-  -webkit-box-ordinal-group: 2;
-  order: 1;
-  -ms-flex-order: 1;
-  order: 1;
-  padding-right: 16px;
-}
-
-.card-heading {
-  display: block;
-  font-size: 20px;
-  line-height: 28px;
-  margin-top: 24px;
-  margin-bottom: 24px;
-  color: #314e7d;
-}
-
-.card-header .card-heading {
-  margin-top: 0;
-  margin-bottom: 0;
-}
-
-.card-img {
-  display: block;
-  position: relative;
-}
-
-.card-img-heading,
-.card-img-heading::before {
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  width: 100%;
-}
-
-.card-main > .card-img:first-child {
-  border-radius: 2px 2px 0 0;
-}
-
-.card-main > .card-img:last-child {
-  border-radius: 0 0 2px 2px;
-}
-
-.card-img img {
-  display: block;
-  height: auto;
-  margin-right: auto;
-  margin-left: auto;
-}
-
-.card-img-heading {
-  color: #fff;
-  margin: 0;
-  padding: 12px 16px;
-  z-index: 1;
-}
-
-.card-img-heading::before {
-  background-image: linear-gradient(top, transparent, rgb(0 0 0 / 10%) 70%, rgb(0 0 0 / 20%));
-  background-image: linear-gradient(to bottom, transparent, rgb(0 0 0 / 10%) 70%, rgb(0 0 0 / 20%));
-  display: block;
-  height: 300%;
-  z-index: -1;
-}
-
-.card-inner {
-  margin: 24px 16px;
-}
-
-.card-doubleinner {
-  margin: 24px 16px 0;
-}
-
-.card-relayinner {
-  margin: 24px 0 0;
-}
-
-.card-relayinner > .tab-nav {
-  margin-bottom: 0;
-}
-
-.card-header .card-inner {
-  -webkit-box-flex: 1;
-  flex: 1;
-  flex: 1;
-  flex: 1;
-  margin-top: 12px;
-  margin-bottom: 12px;
-}
-
-.card-main {
-  -webkit-box-flex: 1;
-  flex: 1;
-  flex: 1;
-  flex: 1;
-  min-width: 0;
-  position: relative;
-}
-
-.card-side {
-  background-color: #f5f5f5;
-  border-radius: 2px 0 0 2px;
-  max-width: 33.33333%;
-  padding-right: 16px;
-  padding-left: 16px;
-}
-
-.card-side[href] {
-  color: inherit;
-}
-
-.card-side[href]:focus,
-.card-side[href]:hover {
-  outline: 0;
-  text-decoration: none;
-}
-
-.card-side.card-side-img {
-  padding-right: 0;
-  padding-left: 0;
-}
-
-.card-side.pull-right {
-  border-radius: 0 2px 2px 0;
-  -webkit-box-ordinal-group: 2;
-  order: 1;
-  -ms-flex-order: 1;
-  order: 1;
-}
-
-.card-brand .card-side {
-  background-color: #303f9f;
-  color: #fff;
-}
-
-.card-brand-accent .card-side {
-  background-color: #f50057;
-  color: #fff;
-}
-
-.card-green .card-side {
-  background-color: #388e3c;
-  color: #fff;
-}
-
-.card-orange .card-side {
-  background-color: #f57c00;
-  color: rgb(0 0 0 / 87%);
-}
-
-.card-red .card-side {
-  background-color: #d32f2f;
-  color: #fff;
-}
-
-code,
-pre {
-  background-color: #f5f5f5;
-}
-
-code,
-kbd,
-pre,
-samp {
-  font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
-  font-size: 1em;
-}
-
-code,
-kbd {
-  font-size: 80%;
-  padding: 2px 10px;
-}
-
-code {
-  border: 0 solid #dadada;
-  border-radius: 4px;
-  color: #399af2;
-  line-height: 1;
-}
-
-kbd {
-  background-color: #212121;
-  border-radius: 4px;
-  color: #fff;
-}
-
-kbd kbd {
-  font-size: 100%;
-  padding: 0;
-}
-
-pre {
-  border: 1px solid #dadada;
-  border-radius: 15px;
-  color: #212121;
-  display: block;
-  font-size: 12px;
-  line-height: 20px;
-  margin: 24px 0;
-  overflow: auto;
-  padding: 12px 8px;
-  word-wrap: break-word;
-}
-
-pre code {
-  background-color: transparent;
-  border-radius: 0;
-  color: inherit;
-  font-size: inherit;
-  padding: 0;
-  white-space: pre-wrap;
-}
-
-.dropdown {
-  position: relative;
-  z-index: 1;
-}
-
-.dropdown-inline {
-  display: inline-block;
-}
-
-.dropdown-menu {
-  background-color: #fff;
-  border: 1px solid rgb(0 0 0 / 12%);
-  border-radius: 0 2px 2px;
-  box-shadow: 0 1px 0 rgb(0 0 0 / 6%), 0 0 3px rgb(0 0 0 / 18%), 0 1px 3px rgb(0 0 0 / 18%);
-  margin: 0 !important;
-  min-width: 100%;
-  opacity: 0;
-  padding-top: 8px !important;
-  padding-right: 0;
-  padding-bottom: 8px !important;
-  padding-left: 0;
-  position: absolute !important;
-  top: 100%;
-  left: 0;
-  transform: scale(0.3, 0);
-  transform: scale(0.3, 0);
-  transform-origin: 0 0;
-  transform-origin: 0 0;
-  transition-duration: 0.3s;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, transform;
-  transition-property: opacity, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.dropdown.open .dropdown-menu {
-  opacity: 1;
-  transform: scale(1, 1);
-  transform: scale(1, 1);
-}
-
-.dropdown-menu.dropdown-menu-right,
-.dropdown.pull-right .dropdown-menu {
-  border-radius: 2px 0 2px 2px;
-  right: 0;
-  left: auto;
-  transform-origin: 100% 0;
-  transform-origin: 100% 0;
-}
-
-.dropdown-menu .a,
-.dropdown-menu a {
-  color: #515a6e;
-  display: block;
-  line-height: inherit;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.dropdown-menu .a:focus,
-.dropdown-menu .a:hover,
-.dropdown-menu .active > .a,
-.dropdown-menu .active > a,
-.dropdown-menu a:focus,
-.dropdown-menu a:hover {
-  background-color: #f5f5f5;
-}
-
-.dropdown-toggle {
-  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.dropdown.open .dropdown-toggle {
-  background-color: rgb(154 154 154 / 18%);
-  border-radius: 2px 2px 0 0;
-}
-
-.dropdown-toggle-btn {
-  margin-right: 1px;
-  margin-left: 1px;
-  padding-right: 16px;
-  padding-left: 16px;
-  position: relative;
-  z-index: 1;
-}
-
-.dropdown.open .dropdown-toggle-btn {
-  background-color: #fff;
-  box-shadow: none;
-  color: #212121;
-}
-
-.dropdown-toggle-btn ~ .dropdown-menu {
-  min-width: 100%;
-  padding-top: 56px !important;
-  top: -14px;
-  left: 0;
-  transform: scale(1, 0);
-  transform: scale(1, 0);
-}
-
-.dropdown-toggle-btn ~ .dropdown-menu.dropdown-menu-right,
-.dropdown.pull-right .dropdown-toggle-btn ~ .dropdown-menu {
-  right: 0;
-  left: auto;
-}
-
-.checkbox,
-.radiobtn {
-  display: block;
-  position: relative;
-}
-
-.form-group .checkbox,
-.form-group .radiobtn {
-  margin-top: 8px;
-  padding-bottom: 8px;
-}
-
-.checkbox label,
-.radiobtn label {
-  cursor: pointer;
-  margin: 0;
-  min-height: 14px;
-  padding-left: 20px;
-}
-
-.checkbox.disabled label,
-.radiobtn.disabled label,
-fieldset[disabled] .checkbox label,
-fieldset[disabled] .radiobtn label {
-  color: rgb(0 0 0 / 38%);
-  cursor: not-allowed;
-}
-
-.checkbox input[type="checkbox"],
-.radiobtn input[type="radio"] {
-  margin-left: -20px;
-  position: absolute;
-}
-
-.checkbox-inline,
-.radiobtn-inline {
-  display: inline-block;
-  margin-right: 16px;
-}
-
-.form {
-  margin-top: 24px;
-  margin-bottom: 24px;
-}
-
-.form-control,
-.picker__select--month,
-.picker__select--year {
-  background-color: #ebebeb;
-  background-image: none;
-  border: 1px solid rgb(148 148 148);
-  border-radius: 20px;
-  color: inherit;
-  display: block;
-  font-size: 14px;
-  height: 36px;
-  line-height: 20px;
-  padding: 7px 0 8px 1em;
-  opacity: 0.5;
-}
-
-.maxwidth-edit,
-.maxwidth-auth {
-  width: 100%;
-}
-
-.form-control:focus,
-.picker__select--month:focus,
-.picker__select--year:focus {
-  border-color: #399af2;
-  border-radius: 5px;
-  transition-duration: 0.4s;
-  outline: 0;
-  opacity: 1;
-  padding-bottom: 7px;
-}
-
-.form-control::input-placeholder,
-.picker__select--month::input-placeholder,
-.picker__select--year::-webkit-input-placeholder {
-  color: rgb(0 0 0 / 38%);
-}
-
-.form-control::placeholder,
-.picker__select--month::placeholder,
-.picker__select--year::-moz-placeholder {
-  color: rgb(0 0 0 / 38%);
-}
-
-.form-control:input-placeholder,
-.picker__select--month:input-placeholder,
-.picker__select--year:-ms-input-placeholder {
-  color: rgb(0 0 0 / 38%);
-}
-
-.form-control::placeholder,
-.picker__select--month::placeholder,
-.picker__select--year::placeholder {
-  color: rgb(0 0 0 / 38%);
-}
-
-.form-control[disabled],
-.form-control[readonly],
-[disabled].picker__select--month,
-[disabled].picker__select--year,
-[readonly].picker__select--month,
-[readonly].picker__select--year,
-fieldset[disabled] .form-control,
-fieldset[disabled] .picker__select--month,
-fieldset[disabled] .picker__select--year {
-  border-style: dashed;
-  color: rgb(0 0 0 / 38%);
-  cursor: not-allowed;
-  opacity: 1;
-}
-
-.form-control-inline.picker__select--month,
-.form-control-inline.picker__select--year,
-.form-control.form-control-inline {
-  display: inline-block;
-  vertical-align: middle;
-  width: auto;
-}
-
-.form-control-default.picker__select--month,
-.form-control-default.picker__select--year,
-.form-control.form-control-default {
-  border: 1px solid rgb(0 0 0 / 12%);
-  padding: 7px 8px;
-}
-
-/*
-邀請鏈接框input樣式
-*/
-.form-control[readonly],
-.form-control.readonly,
-.form-control[disabled],
-.form-control.disabled {
-  font-size: 18px;
-  color: #999;
-  border-color: #d0d0d0;
-  box-shadow: none;
-  cursor: not-allowed;
-  padding-bottom: 7px;
-}
-
-.form-control-default.picker__select--month:focus,
-.form-control-default.picker__select--year:focus,
-.form-control.form-control-default:focus {
-  border: 1px solid #f02;
-  padding: 7px 8px;
-}
-
-.form-control-default[disabled].picker__select--month,
-.form-control-default[disabled].picker__select--year,
-.form-control-default[readonly].picker__select--month,
-.form-control-default[readonly].picker__select--year,
-.form-control.form-control-default[disabled],
-.form-control.form-control-default[readonly],
-fieldset[disabled] .form-control-default.picker__select--month,
-fieldset[disabled] .form-control-default.picker__select--year,
-fieldset[disabled] .form-control.form-control-default {
-  background-color: rgb(154 154 154 / 18%);
-}
-
-.form-group-brand .form-control,
-.form-group-brand .form-control:focus,
-.form-group-brand .picker__select--month,
-.form-group-brand .picker__select--month:focus,
-.form-group-brand .picker__select--year,
-.form-group-brand .picker__select--year:focus {
-  border-color: #3f51b5;
-}
-
-.form-group-brand-accent .form-control,
-.form-group-brand-accent .form-control:focus,
-.form-group-brand-accent .picker__select--month,
-.form-group-brand-accent .picker__select--month:focus,
-.form-group-brand-accent .picker__select--year,
-.form-group-brand-accent .picker__select--year:focus {
-  border-color: #f02;
-}
-
-.form-group-green .form-control,
-.form-group-green .form-control:focus,
-.form-group-green .picker__select--month,
-.form-group-green .picker__select--month:focus,
-.form-group-green .picker__select--year,
-.form-group-green .picker__select--year:focus {
-  border-color: #4caf50;
-}
-
-.form-group-orange .form-control,
-.form-group-orange .form-control:focus,
-.form-group-orange .picker__select--month,
-.form-group-orange .picker__select--month:focus,
-.form-group-orange .picker__select--year,
-.form-group-orange .picker__select--year:focus {
-  border-color: #24292e;
-}
-
-.form-group-red .form-control,
-.form-group-red .form-control:focus,
-.form-group-red .picker__select--month,
-.form-group-red .picker__select--month:focus,
-.form-group-red .picker__select--year,
-.form-group-red .picker__select--year:focus {
-  border-color: #f44336;
-}
-
-input[type="color"].form-control-default {
-  min-width: 38px;
-}
-
-.snackbar-text,
-.tile-inner {
-  min-width: 0;
-}
-
-select.form-control,
-select.picker__select--month,
-select.picker__select--year {
-  appearance: none;
-  appearance: none;
-}
-
-select.form-control[multiple],
-select.form-control[size],
-select[multiple].picker__select--month,
-select[multiple].picker__select--year,
-select[size].picker__select--month,
-select[size].picker__select--year {
-  background-image: none;
-  padding-right: 0;
-}
-
-select.form-control-default {
-  background-position: calc(100% - 8px) 11px;
-  padding-right: 28px !important;
-}
-
-select.form-control-default[multiple],
-select.form-control-default[size] {
-  padding-right: 8px !important;
-}
-
-textarea.form-control,
-textarea.picker__select--month,
-textarea.picker__select--year {
-  height: auto;
-}
-
-.form-control-static {
-  border-bottom: 1px solid rgb(0 0 0 / 12%);
-  display: block;
-  font-size: 14px;
-  font-weight: 400;
-  line-height: 20px;
-  margin-top: 0;
-  margin-bottom: 0;
-  padding-top: 8px;
-  padding-bottom: 7px;
-}
-
-.form-control-static.form-control-default {
-  padding-top: 7px;
-}
-
-.form-group {
-  margin-top: 24px;
-  margin-bottom: 24px;
-}
-
-legend + .form-group {
-  margin-top: 0;
-}
-
-.form-help {
-  display: block;
-  font-size: 12px;
-  font-weight: 400;
-  line-height: 20px;
-  margin-top: 8px;
-  margin-bottom: 12px;
-  position: relative;
-}
-
-.form-help-icon {
-  position: absolute;
-  top: 4px;
-  right: 0;
-}
-
-.form-help-msg {
-  padding-right: 1.28571em;
-}
-
-.form-label {
-  display: block;
-}
-
-[	class*="col-lg"] > .form-label {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  text-align: right;
-}
-
-@media screen and (min-width: 768px) {
-  [	class*="col-md"] > .form-label {
-    padding-top: 8px;
-    padding-bottom: 8px;
-    text-align: right;
-  }
-}
-
-@media screen and (min-width: 992px) {
-  [	class*="col-sm"] > .form-label {
-    padding-top: 8px;
-    padding-bottom: 8px;
-    text-align: right;
-  }
-}
-
-@media screen and (min-width: 1440px) {
-  [	class*="col-xs"] > .form-label {
-    padding-top: 8px;
-    padding-bottom: 8px;
-    text-align: right;
-  }
-}
-
-.form-group-brand .form-label {
-  color: #3f51b5;
-}
-
-.form-group-brand-accent .form-label {
-  color: #f02;
-}
-
-.form-group-green .form-label {
-  color: #4caf50;
-}
-
-.form-group-orange .form-label {
-  color: #24292e;
-}
-
-.form-group-red .form-label {
-  color: #f44336;
-}
-
-.checkbox-adv,
-.radiobtn-adv {
-  font-size: 14px;
-  line-height: 20px;
-}
-
-[class*="checkbox-circle"],
-[class*="radiobtn-circle"] {
-  display: block;
-  height: 14px;
-  position: absolute;
-  top: 2px;
-  left: 0;
-  width: 14px;
-}
-
-[class*="radiobtn-circle"] {
-  border-radius: 50%;
-}
-
-.checkbox-circle,
-.radiobtn-circle {
-  border: 2px solid rgb(0 0 0 / 54%);
-  transition: border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-input[type="checkbox"]:focus ~ .checkbox-circle {
-  border-color: rgb(0 0 0 / 87%);
-}
-
-.checkbox-adv.disabled input[type="checkbox"] ~ .checkbox-circle,
-fieldset[disabled] input[type="checkbox"] ~ .checkbox-circle,
-input[type="checkbox"][disabled] ~ .checkbox-circle {
-  border-color: rgb(0 0 0 / 38%);
-}
-
-input[type="radio"]:focus ~ .radiobtn-circle {
-  border-color: rgb(0 0 0 / 87%);
-}
-
-input[type="radio"]:checked ~ .radiobtn-circle {
-  border-color: #f02;
-}
-
-.radiobtn-adv.disabled input[type="radio"] ~ .radiobtn-circle,
-fieldset[disabled] input[type="radio"] ~ .radiobtn-circle,
-input[type="radio"][disabled] ~ .radiobtn-circle {
-  border-color: rgb(0 0 0 / 38%);
-}
-
-.radiobtn-adv.disabled input[type="radio"]:checked ~ .radiobtn-circle,
-fieldset[disabled] input[type="radio"]:checked ~ .radiobtn-circle,
-input[type="radio"]:checked[disabled] ~ .radiobtn-circle {
-  border-color: #ff80ab;
-}
-
-.checkbox-circle-check,
-.radiobtn-circle-check {
-  background-color: transparent;
-  transform: scale(0, 0);
-  transform: scale(0, 0);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.checkbox-circle-check::after,
-.checkbox-circle-check::before,
-.radiobtn-circle-check::after,
-.radiobtn-circle-check::before {
-  background-color: #f02;
-  border-radius: 50%;
-  content: "";
-  display: block;
-  opacity: 0;
-  position: absolute;
-}
-
-.checkbox-adv.disabled .checkbox-circle-check,
-.radiobtn-adv.disabled .radiobtn-circle-check::after,
-.radiobtn-adv.disabled .radiobtn-circle-check::before,
-fieldset[disabled] .checkbox-circle-check,
-fieldset[disabled] .radiobtn-circle-check::after,
-fieldset[disabled] .radiobtn-circle-check::before,
-input[type="checkbox"][disabled] ~ .checkbox-circle-check,
-input[type="radio"][disabled] ~ .radiobtn-circle-check::after,
-input[type="radio"][disabled] ~ .radiobtn-circle-check::before {
-  display: none;
-}
-
-.checkbox-circle-check::after,
-.radiobtn-circle-check::after {
-  height: 70px;
-  top: -28px;
-  left: -28px;
-  width: 70px;
-}
-
-.checkbox-circle-check::before,
-.radiobtn-circle-check::before {
-  height: 100%;
-  top: 0;
-  left: 0;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 100%;
-}
-
-input[type="checkbox"]:checked ~ .checkbox-circle-check {
-  transform: scale(0.5, 0.5);
-  transform: scale(0.5, 0.5);
-}
-
-input[type="checkbox"]:checked ~ .checkbox-circle-check::after {
-  animation: circle-check 0.6s;
-  animation: circle-check 0.6s;
-}
-
-input[type="radio"]:checked ~ .radiobtn-circle-check {
-  transform: scale(0.5, 0.5);
-  transform: scale(0.5, 0.5);
-}
-
-input[type="radio"]:checked ~ .radiobtn-circle-check::after {
-  animation: circle-check 0.6s;
-  animation: circle-check 0.6s;
-}
-
-input[type="radio"]:checked ~ .radiobtn-circle-check::before {
-  opacity: 1;
-}
-
-.radiobtn-adv.disabled input[type="radio"]:checked ~ .radiobtn-circle-check,
-fieldset[disabled] input[type="radio"]:checked ~ .radiobtn-circle-check,
-input[type="radio"]:checked[disabled] ~ .radiobtn-circle-check {
-  background-color: #ff80ab;
-}
-
-.checkbox-circle-icon {
-  background-color: #f02;
-  color: #fff;
-  opacity: 0;
-  transform: scale(0.5, 0.5);
-  transform: scale(0.5, 0.5);
-  transition-duration: 0.3s;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, transform;
-  transition-property: opacity, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.floating-label,
-.switch-toggle::after {
-  transition-duration: 0.3s;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.checkbox-circle-icon::before {
-  top: auto;
-}
-
-input[type="checkbox"]:checked ~ .checkbox-circle-icon {
-  opacity: 1;
-  transform: scale(1, 1);
-  transform: scale(1, 1);
-}
-
-.checkbox-adv.disabled input[type="checkbox"]:checked ~ .checkbox-circle-icon,
-fieldset[disabled] input[type="checkbox"]:checked ~ .checkbox-circle-icon,
-input[type="checkbox"]:checked[disabled] ~ .checkbox-circle-icon {
-  background-color: #ff80ab;
-}
-
-@keyframes circle-check {
-  0%,
-  100% {
-    opacity: 0;
-  }
-
-  25% {
-    opacity: 0.25;
-  }
-}
-
-@keyframes circle-check {
-  0%,
-  100% {
-    opacity: 0;
-  }
-
-  25% {
-    opacity: 0.25;
-  }
-}
-
-.floating-label {
-  color: rgb(130 130 130 / 100%);
-  cursor: text;
-  font-size: 14px;
-  line-height: 1;
-  margin: 0;
-  padding: 0;
-  position: absolute;
-  top: 11px;
-  left: 1em;
-  transform-origin: 0 0;
-  transform-origin: 0 0;
-  transition-duration: 0.3s;
-  transition-property: color, -webkit-transform;
-  transition-property: color, -webkit-transform;
-  transition-property: color, transform;
-  transition-property: color, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.form-group-label,
-.switch,
-.switch-toggle {
-  position: relative;
-}
-
-.form-group-label [class*="col-"] .floating-label {
-  left: 2em;
-}
-
-.form-group-label.control-focus .floating-label,
-.form-group-label.control-highlight .floating-label {
-  transform: scale(0.85714, 0.85714) translateY(-30px);
-  transform: scale(0.85714, 0.85714) translateY(-30px);
-}
-
-.form-group-label.control-focus .floating-label {
-  color: #399af2;
-}
-
-.form-group-label {
-  margin-top: 36px;
-  margin-bottom: 36px;
-}
-
-.form-group-label .form-control,
-.form-group-label .picker__select--month,
-.form-group-label .picker__select--year {
-  position: relative;
-  z-index: 1;
-  padding-bottom: 8px;
-}
-
-.formlabel .form-control::input-placeholder,
-.form-group-label .picker__select--month::-webkit-input-placeholder,
-.form-group-label .picker__select--year::-webkit-input-placeholder {
-  color: transparent;
-}
-
-.formlabel .form-control::placeholder,
-.form-group-label .picker__select--month::-moz-placeholder,
-.form-group-label .picker__select--year::-moz-placeholder {
-  color: transparent;
-}
-
-.formlabel .form-control:input-placeholder,
-.form-group-label .picker__select--month:-ms-input-placeholder,
-.form-group-label .picker__select--year:-ms-input-placeholder {
-  color: transparent;
-}
-
-.form-group-label .form-control::placeholder,
-.form-group-label .picker__select--month::placeholder,
-.form-group-label .picker__select--year::placeholder {
-  color: transparent;
-}
-
-legend + .form-group-label {
-  margin-top: 12px;
-}
-
-.form-group-label.form-group-brand .floating-label {
-  color: #3f51b5;
-}
-
-.form-group-label.form-group-brand-accent .floating-label {
-  color: #f02;
-}
-
-.form-group-label.form-group-green .floating-label {
-  color: #4caf50;
-}
-
-.form-group-label.form-group-orange .floating-label {
-  color: #24292e;
-}
-
-.form-group-label.form-group-red .floating-label {
-  color: #f44336;
-}
-
-.form-icon-label {
-  cursor: pointer;
-  display: block;
-  font-size: 20px;
-  line-height: 28px;
-  padding: 4px 0;
-  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.switch.checkbox label,
-.switch.radiobtn label {
-  padding-left: 40.5px;
-}
-
-.switch-toggle {
-  background-color: rgb(0 0 0 / 38%);
-  border-radius: 6px;
-  cursor: pointer;
-  display: inline-block;
-  height: 12px;
-  margin-right: 8px;
-  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 32.5px;
-}
-
-.switch-toggle::after,
-.switch-toggle::before {
-  border-radius: 50%;
-  display: block;
-  height: 20px;
-  position: absolute;
-  top: -4px;
-  left: 0;
-  width: 20px;
-}
-
-.switch-toggle::after {
-  box-shadow: 0 0 0 12.5px rgb(0 0 0 / 10%);
-  opacity: 0;
-  transition-duration: 0.3s;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, transform;
-  transition-property: opacity, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.switch-toggle:active::after {
-  opacity: 1;
-}
-
-.switch-toggle::before {
-  background-color: #fff;
-  box-shadow: 0 1px 3px 1px rgb(0 0 0 / 25%);
-  transition-duration: 0.3s;
-  transition-duration: 0.3s;
-  transition-property: background-color, -webkit-transform;
-  transition-property: background-color, -webkit-transform;
-  transition-property: background-color, transform;
-  transition-property: background-color, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-input[type="checkbox"]:checked + .switch-toggle,
-input[type="radio"]:checked + .switch-toggle {
-  background-color: rgb(255 64 129 / 50%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle::after,
-input[type="checkbox"]:checked + .switch-toggle::before,
-input[type="radio"]:checked + .switch-toggle::after,
-input[type="radio"]:checked + .switch-toggle::before {
-  transform: translateX(12.5px);
-  transform: translateX(12.5px);
-}
-
-input[type="checkbox"]:checked + .switch-toggle::before,
-input[type="radio"]:checked + .switch-toggle::before {
-  background-color: #f02;
-}
-
-input[type="checkbox"]:checked + .switch-toggle:active::after,
-input[type="radio"]:checked + .switch-toggle:active::after {
-  box-shadow: 0 0 0 12.5px rgb(255 64 129 / 25%);
-}
-
-.checkbox.switch .switch-toggle,
-.radiobtn.switch .switch-toggle {
-  position: absolute;
-  top: 4px;
-  left: 0;
-}
-
-input[type="checkbox"]:checked + .switch-toggle-brand,
-input[type="radio"]:checked + .switch-toggle-brand {
-  background-color: rgb(63 81 181 / 50%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle-brand::before,
-input[type="radio"]:checked + .switch-toggle-brand::before {
-  background-color: #3f51b5;
-}
-
-input[type="checkbox"]:checked + .switch-toggle-brand:active::after,
-input[type="radio"]:checked + .switch-toggle-brand:active::after {
-  box-shadow: 0 0 0 12.5px rgb(63 81 181 / 25%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle-green,
-input[type="radio"]:checked + .switch-toggle-green {
-  background-color: rgb(76 175 80 / 50%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle-green::before,
-input[type="radio"]:checked + .switch-toggle-green::before {
-  background-color: #4caf50;
-}
-
-input[type="checkbox"]:checked + .switch-toggle-green:active::after,
-input[type="radio"]:checked + .switch-toggle-green:active::after {
-  box-shadow: 0 0 0 12.5px rgb(76 175 80 / 25%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle-orange,
-input[type="radio"]:checked + .switch-toggle-orange {
-  background-color: rgb(255 152 0 / 50%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle-orange::before,
-input[type="radio"]:checked + .switch-toggle-orange::before {
-  background-color: #ffb200;
-}
-
-input[type="checkbox"]:checked + .switch-toggle-orange:active::after,
-input[type="radio"]:checked + .switch-toggle-orange:active::after {
-  box-shadow: 0 0 0 12.5px rgb(255 152 0 / 25%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle-red,
-input[type="radio"]:checked + .switch-toggle-red {
-  background-color: rgb(244 67 54 / 50%);
-}
-
-input[type="checkbox"]:checked + .switch-toggle-red::before,
-input[type="radio"]:checked + .switch-toggle-red::before {
-  background-color: #f44336;
-}
-
-input[type="checkbox"]:checked + .switch-toggle-red:active::after,
-input[type="radio"]:checked + .switch-toggle-red:active::after {
-  box-shadow: 0 0 0 12.5px rgb(244 67 54 / 25%);
-}
-
-/* 弹出框颜色 */
-.modal-content,
-.picker__wrap {
-  box-shadow: 0 1px 50px #a2beff;
-  outline: 0;
-}
-
-.textarea-autosize {
-  min-height: 36px;
-  overflow-x: hidden;
-}
-
-.label {
-  background-color: rgb(0 0 0 / 38%);
-  border-radius: 2px;
-  color: #fff;
-  display: inline;
-  font-size: 75%;
-  font-style: normal;
-  font-weight: 400;
-  line-height: 1;
-  padding: 0.2em 0.6em;
-  vertical-align: baseline;
-  white-space: nowrap;
-}
-
-.modal-close,
-.modal-title {
-  font-size: 20px;
-  line-height: 28px;
-}
-
-.label-brand {
-  background-color: #3f51b5;
-  color: #fff;
-}
-
-.label-brand-accent {
-  background-color: #f02;
-  color: #fff;
-}
-
-.label-green {
-  background-color: #4caf50;
-  color: rgb(0 0 0 / 87%);
-}
-
-.label-orange {
-  background-color: #24292e;
-  color: rgb(0 0 0 / 87%);
-}
-
-.label-red {
-  background-color: #f44336;
-  color: #fff;
-}
-
-.modal {
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-  display: none;
-  outline: 0;
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 40;
-  -webkit-overflow-scrolling: touch;
-  -ms-overflow-style: -ms-autohiding-scrollbar;
-}
-
-.modal-backdrop,
-.picker__holder {
-  backface-visibility: hidden;
-  right: 0;
-  top: 0;
-  left: 0;
-  bottom: 0;
-}
-
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto;
-}
-
-.modal-backdrop {
-  backface-visibility: hidden;
-  background-color: #000;
-  opacity: 0;
-  position: fixed;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  z-index: 39;
-}
-
-.menu ~ .modal-backdrop.in,
-.modal-backdrop.fade.in {
-  opacity: 0.54;
-}
-
-.modal-content,
-.modal-dialog,
-.modal-heading,
-.nav,
-.nav .a,
-.nav a,
-.nav li {
-  position: relative;
-}
-
-.menu ~ .modal-backdrop {
-  z-index: 30;
-}
-
-.modal-close {
-  color: #727272;
-  cursor: pointer;
-  display: block;
-  float: right;
-  margin-right: -8px;
-  padding-right: 8px;
-  padding-left: 8px;
-}
-
-.modal-close:focus,
-.modal-close:hover {
-  color: #f02;
-  text-decoration: none;
-}
-
-.modal-content {
-  background-clip: padding-box;
-  background-color: #fff;
-  border: 1px solid transparent;
-  border-radius: 4px;
-}
-
-.modal-dialog {
-  margin: 48px 16px;
-}
-
-.modal-heading,
-.modal-inner {
-  margin-top: 24px;
-  padding-right: 24px;
-  padding-left: 24px;
-}
-
-.modal-dialog.modal-full {
-  height: 100%;
-  height: calc(100% - 96px);
-}
-
-.modal-dialog.modal-full .modal-content {
-  height: 100%;
-}
-
-.modal.fade .modal-dialog {
-  transform: scale(0, 0);
-  transform: scale(0, 0);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.modal.fade.in .modal-dialog {
-  transform: scale(1, 1);
-  transform: scale(1, 1);
-}
-
-@media screen and (min-width: 480px) {
-  .modal-dialog.modal-xs {
-    margin-right: auto;
-    margin-left: auto;
-    width: 448px;
-  }
-}
-
-@media screen and (min-width: 992px) {
-  .modal-dialog {
-    margin-right: auto;
-    margin-left: auto;
-    width: 960px;
-  }
-}
-
-@media screen and (min-width: 1440px) {
-  .modal-dialog {
-    width: 1408px;
-  }
-}
-
-.modal-dialog {
-  width: 1408px;
-}
-
-.modal-footer {
-  padding-right: 24px;
-  padding-left: 24px;
-}
-
-.modal-footer .btn + .btn {
-  margin-right: 16px;
-}
-
-.modal-footer .text-right .btn + .btn {
-  margin-right: auto;
-  margin-left: 16px;
-}
-
-.modal-heading,
-.modal-inner {
-  margin-bottom: 24px;
-}
-
-.modal-open {
-  overflow: hidden;
-}
-
-.modal-title {
-  margin-top: 0;
-  margin-right: 28px;
-  margin-bottom: 24px;
-}
-
-.modal-va-middle {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  grid-row-align: center;
-  align-items: center;
-}
-
-.modal-va-middle .modal-dialog {
-  -webkit-box-flex: 1;
-  flex-grow: 1;
-  -ms-flex-positive: 1;
-  flex-grow: 1;
-}
-
-@media screen and (min-width: 480px) {
-  .modal-va-middle .modal-dialog.modal-xs {
-    -webkit-box-flex: 0;
-    flex-grow: 0;
-    -ms-flex-positive: 0;
-    flex-grow: 0;
-  }
-}
-
-@media screen and (min-width: 992px) {
-  .modal-va-middle .modal-dialog {
-    -webkit-box-flex: 0;
-    flex-grow: 0;
-    -ms-flex-positive: 0;
-    flex-grow: 0;
-  }
-}
-
-.modal-va-middle-show {
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-}
-
-.nav {
-  margin: 24px 0;
-  padding: 0;
-}
-
-.nav::after,
-.nav::before {
-  display: table;
-  line-height: 0;
-}
-
-.nav .a,
-.nav a {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  min-height: 48px;
-  padding: 0 16px;
-}
-
-.nav .a:focus,
-.nav .a:hover,
-.nav a:focus,
-.nav a:hover {
-  text-decoration: none;
-}
-
-.nav li {
-  display: block;
-}
-
-.nav ul {
-  margin: 0;
-  padding: 0;
-}
-
-.nav-justified,
-.nav-list {
-  -webkit-box-align: start;
-  align-items: flex-start;
-  -ms-flex-align: start;
-  align-items: flex-start;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  -webkit-box-pack: start;
-  justify-content: flex-start;
-  -ms-flex-pack: start;
-  justify-content: flex-start;
-}
-
-.nav-justified {
-  flex-wrap: nowrap;
-  flex-wrap: nowrap;
-  flex-wrap: nowrap;
-}
-
-.nav-justified > li {
-  -webkit-box-flex: 1;
-  flex-grow: 1;
-  -ms-flex-positive: 1;
-  flex-grow: 1;
-}
-
-.nav-justified > li > .a,
-.nav-justified > li > a {
-  -webkit-box-pack: center;
-  justify-content: center;
-  -ms-flex-pack: center;
-  justify-content: center;
-  text-align: center;
-}
-
-.nav-list {
-  flex-wrap: wrap;
-  flex-wrap: wrap;
-  flex-wrap: wrap;
-}
-
-.nav-list > li {
-  float: left;
-}
-
-.picker {
-  position: absolute;
-  z-index: 40;
-  user-select: none;
-  user-select: none;
-}
-
-.picker__box {
-  background-color: #fff;
-  border-radius: 0 0 4px 4px;
-  -webkit-box-flex: 1;
-  flex: 1;
-  flex: 1;
-  flex: 1;
-}
-
-@media screen and (min-width: 992px) {
-  .picker__box {
-    border-radius: 0 4px 4px 0;
-  }
-}
-
-.picker__date-display {
-  background-color: #3f51b5;
-  border-radius: 4px 4px 0 0;
-  color: #fff;
-  padding: 12px 16px;
-  text-align: left;
-}
-
-@media screen and (min-width: 992px) {
-  .picker__date-display {
-    border-radius: 4px 0 0 4px;
-    width: 176px;
-  }
-}
-
-.picker__date-display-bottom {
-  font-size: 34px;
-  line-height: 40px;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-
-.picker__date-display-top {
-  color: #7986cb;
-  margin-bottom: 8px;
-}
-
-.picker__day {
-  border-radius: 50%;
-  display: inline-block;
-  height: 36px;
-  padding: 8px 0;
-  width: 36px;
-}
-
-.picker__day:focus,
-.picker__day:hover {
-  color: #3f51b5;
-  cursor: pointer;
-}
-
-.picker__day.picker__day--disabled {
-  color: inherit;
-  cursor: not-allowed;
-  opacity: 0.5;
-}
-
-.picker__day.picker__day--highlighted {
-  color: #3f51b5;
-}
-
-.picker__day.picker__day--selected {
-  background-color: #3f51b5;
-  color: #fff !important;
-}
-
-.picker__day-display {
-  margin-right: 8px;
-}
-
-.picker__day--outfocus {
-  display: none;
-}
-
-.picker__footer {
-  padding: 8px 16px;
-  text-align: right;
-}
-
-.picker__footer button {
-  margin-left: 8px;
-}
-
-.picker__footer button:first-child {
-  margin-left: 0;
-}
-
-.picker__frame {
-  margin: 48px auto;
-  max-width: 268px;
-  position: relative;
-  transform: scale(0, 0);
-  transform: scale(0, 0);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.picker--opened .picker__frame {
-  transform: scale(1, 1);
-  transform: scale(1, 1);
-}
-
-.picker__header {
-  margin-top: 12px;
-  margin-bottom: 8px;
-  position: relative;
-}
-
-.picker__holder {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  backface-visibility: hidden;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  overflow-x: hidden;
-  overflow-y: auto;
-  position: fixed;
-  text-align: center;
-  transform: translateY(100%);
-  transform: translateY(100%);
-  transition: -webkit-transform 0s 0.3s;
-  transition: -webkit-transform 0s 0.3s;
-  transition: transform 0s 0.3s;
-  transition: transform 0s 0.3s, -webkit-transform 0s 0.3s;
-  width: 100%;
-  -webkit-overflow-scrolling: touch;
-  -ms-overflow-style: -ms-autohiding-scrollbar;
-}
-
-.header,
-.snackbar-inner {
-  backface-visibility: hidden;
-}
-
-.picker__holder::before {
-  background-color: #000;
-  display: block;
-  height: 100%;
-  opacity: 0;
-  position: absolute;
-  top: 0;
-  left: 0;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 100%;
-}
-
-.picker--opened .picker__holder {
-  transform: translateZ(0);
-  transform: translateZ(0);
-  transition: none;
-  transition: none;
-}
-
-.picker--opened .picker__holder::before {
-  opacity: 0.5;
-}
-
-.picker__input {
-  background-color: transparent !important;
-  border-bottom-style: solid !important;
-  color: inherit !important;
-  cursor: text !important;
-}
-
-.picker__input.picker__input--active {
-  border-color: #f02;
-  border-bottom-width: 2px;
-}
-
-.picker__input.picker__input--active.form-control-default {
-  border-bottom-width: 1px;
-}
-
-.picker__month,
-.picker__year {
-  display: inline;
-  margin-left: 16px;
-}
-
-.picker__month:first-child,
-.picker__year:first-child {
-  margin-left: 0;
-}
-
-.picker__nav--next,
-.picker__nav--prev {
-  cursor: pointer;
-  height: 36px;
-  line-height: 20px;
-  margin-top: -18px;
-  padding-top: 8px;
-  padding-bottom: 8px;
-  position: absolute;
-  top: 50%;
-  text-align: center;
-  width: 36px;
-}
-
-.picker__nav--next:focus,
-.picker__nav--next:hover,
-.picker__nav--prev:focus,
-.picker__nav--prev:hover {
-  color: #3f51b5;
-}
-
-@media screen and (min-width: 992px) {
-  .picker__footer {
-    padding-right: 24px;
-    padding-left: 24px;
-  }
-
-  .picker__frame {
-    max-width: 528px;
-  }
-
-  .picker__nav--next,
-  .picker__nav--prev {
-    width: 48px;
-  }
-}
-
-.picker__nav--next {
-  right: 8px;
-}
-
-.picker__nav--next::before {
-  content: "keyboard_arrow_right";
-}
-
-.picker__nav--prev {
-  left: 8px;
-}
-
-.picker__nav--prev::before {
-  content: "keyboard_arrow_left";
-}
-
-.picker__select--month,
-.picker__select--year {
-  background-position: 100% 4px !important;
-  border-bottom: 0;
-  display: inline-block;
-  height: 20px;
-  margin-left: 16px;
-  padding: 0;
-  width: auto;
-}
-
-.picker__select--month:first-child,
-.picker__select--year:first-child {
-  margin-left: 0;
-}
-
-.picker__select--month:focus,
-.picker__select--year:focus {
-  border-bottom: 0;
-  padding-bottom: 0;
-}
-
-.picker__table {
-  margin: 0 8px;
-  table-layout: fixed;
-}
-
-table.table-fixed {
-  table-layout: fixed;
-}
-
-.picker__table td,
-.picker__table th {
-  border: 0;
-  font-size: 12px;
-  line-height: 20px;
-  margin: 0;
-  padding: 0;
-  text-align: center;
-  vertical-align: middle;
-  width: 36px;
-}
-
-@media screen and (min-width: 992px) {
-  .picker__table {
-    margin: 0;
-  }
-
-  .picker__table td,
-  .picker__table th {
-    width: 48px;
-  }
-
-  .picker__table td:first-child,
-  .picker__table th:first-child {
-    padding-left: 8px;
-    width: 56px;
-  }
-
-  .picker__table td:last-child,
-  .picker__table th:last-child {
-    padding-right: 8px;
-    width: 56px;
-  }
-
-  .picker__weekday-display {
-    display: block;
-    overflow: hidden;
-    text-overflow: ellipsis;
-  }
-}
-
-.picker__weekday {
-  color: #9a9a9a;
-  padding-top: 8px !important;
-  padding-bottom: 8px !important;
-}
-
-.picker__weekday-display {
-  margin-right: 8px;
-}
-
-.picker__weekday-display::after {
-  content: ",";
-}
-
-.picker__wrap {
-  border-radius: 4px;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  -webkit-box-orient: vertical;
-  flex-direction: column;
-  flex-direction: column;
-  flex-direction: column;
-  position: relative;
-  vertical-align: middle;
-  z-index: 1;
-}
-
-@media screen and (min-width: 992px) {
-  .picker__wrap {
-    -webkit-box-orient: horizontal;
-    -webkit-box-direction: normal;
-    flex-direction: row;
-    flex-direction: row;
-    flex-direction: row;
-  }
-}
-
-.progress {
-  background-color: #ff80ab;
-  height: 4px;
-  margin-top: 24px;
-  margin-bottom: 24px;
-  overflow: hidden;
-  position: relative;
-}
-
-.progress-bar,
-.progress-position-absolute-bottom,
-.progress-position-absolute-top {
-  position: absolute;
-}
-
-.progress-bar {
-  background-color: #f02;
-  border-radius: 0 1px 1px 0;
-  height: 100%;
-  top: 0;
-  left: 0;
-  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.progress-brand {
-  background-color: #7986cb;
-}
-
-.progress-brand .progress-bar {
-  background-color: #3f51b5;
-}
-
-.progress-green {
-  background-color: #81c784;
-}
-
-.progress-green .progress-bar {
-  background-color: #4caf50;
-}
-
-.progress-orange {
-  background-color: #ffb74d;
-}
-
-.progress-orange .progress-bar {
-  background-color: #24292e;
-}
-
-.progress-red {
-  background-color: #e57373;
-}
-
-.progress-red .progress-bar {
-  background-color: #f44336;
-}
-
-.progress-bar-indeterminate {
-  background-color: #f02;
-}
-
-.progress-bar-indeterminate::after,
-.progress-bar-indeterminate::before {
-  animation-duration: 2.1s;
-  animation-duration: 2.1s;
-  animation-iteration-count: infinite;
-  animation-iteration-count: infinite;
-  animation-timing-function: linear;
-  animation-timing-function: linear;
-  background-color: inherit;
-  border-radius: 1px;
-  content: "";
-  display: block;
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  left: 0;
-  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  will-change: left, width;
-}
-
-.progress-bar-indeterminate::after {
-  animation-name: pbar-indeterminate-one;
-  animation-name: pbar-indeterminate-one;
-  left: 0;
-}
-
-.progress-bar-indeterminate::before {
-  animation-name: pbar-indeterminate-two;
-  animation-name: pbar-indeterminate-two;
-  right: 0;
-}
-
-@keyframes pbar-indeterminate-one {
-  0% {
-    left: 0;
-    width: 0;
-  }
-
-  50% {
-    left: 25%;
-    width: 75%;
-  }
-
-  75% {
-    left: 100%;
-    width: 0;
-  }
-}
-
-@keyframes pbar-indeterminate-one {
-  0% {
-    left: 0;
-    width: 0;
-  }
-
-  50% {
-    left: 25%;
-    width: 75%;
-  }
-
-  75% {
-    left: 100%;
-    width: 0;
-  }
-}
-
-@keyframes pbar-indeterminate-two {
-  0%,
-  50% {
-    left: 0;
-    width: 0;
-  }
-
-  75% {
-    left: 0;
-    width: 25%;
-  }
-
-  100% {
-    left: 100%;
-    width: 0;
-  }
-}
-
-@keyframes pbar-indeterminate-two {
-  0%,
-  50% {
-    left: 0;
-    width: 0;
-  }
-
-  75% {
-    left: 0;
-    width: 25%;
-  }
-
-  100% {
-    left: 100%;
-    width: 0;
-  }
-}
-
-.progress-position-absolute-bottom,
-.progress-position-absolute-top,
-.progress-position-fixed-bottom,
-.progress-position-fixed-top {
-  margin: 0;
-  left: 0;
-  width: 100%;
-}
-
-.progress-circular,
-.tab-nav {
-  margin-top: 24px;
-  margin-bottom: 24px;
-}
-
-.progress-position-absolute-bottom,
-.progress-position-fixed-bottom {
-  bottom: 0;
-}
-
-.progress-position-absolute-top,
-.progress-position-fixed-top {
-  top: 0;
-}
-
-.progress-position-fixed-bottom,
-.progress-position-fixed-top {
-  position: fixed;
-}
-
-.progress-circular {
-  height: 40px;
-  overflow: hidden;
-  position: relative;
-  width: 40px;
-}
-
-.progress-circular-center {
-  margin-right: auto;
-  margin-left: auto;
-}
-
-.progress-circular-gap {
-  border-top: 2px solid #f02;
-  position: absolute;
-  top: 0;
-  right: 19px;
-  bottom: 0;
-  left: 19px;
-}
-
-.progress-circular-brand .progress-circular-gap {
-  border-top-color: #3f51b5;
-}
-
-.progress-circular-green .progress-circular-gap {
-  border-top-color: #4caf50;
-}
-
-.progress-circular-orange .progress-circular-gap {
-  border-top-color: #24292e;
-}
-
-.progress-circular-red .progress-circular-gap {
-  border-top-color: #f44336;
-}
-
-.progress-circular-inline {
-  display: inline-block;
-  margin-right: 16px;
-  margin-left: 16px;
-}
-
-.progress-circular-inner {
-  animation: pcircular-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite;
-  animation: pcircular-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite;
-  height: 40px;
-  position: relative;
-  width: 40px;
-  will-change: transform;
-}
-
-.progress-circular-left,
-.progress-circular-right {
-  height: 40px;
-  overflow: hidden;
-  position: absolute;
-  top: 0;
-  width: 20px;
-}
-
-.progress-circular-left {
-  left: 0;
-}
-
-.progress-circular-right {
-  right: 0;
-}
-
-.progress-circular-spinner {
-  border: 4px solid #f02;
-  border-bottom-color: transparent;
-  border-radius: 50%;
-  height: 40px;
-  position: absolute;
-  top: 0;
-  width: 40px;
-  will-change: transform;
-}
-
-.progress-circular-left .progress-circular-spinner {
-  animation: pcircular-spinner-left 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
-  animation: pcircular-spinner-left 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
-  border-right-color: transparent;
-  left: 0;
-}
-
-.progress-circular-right .progress-circular-spinner {
-  animation: pcircular-spinner-right 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
-  animation: pcircular-spinner-right 1.3125s cubic-bezier(0.35, 0, 0.25, 1) infinite;
-  border-left-color: transparent;
-  right: 0;
-}
-
-.progress-circular-brand .progress-circular-spinner {
-  border-top-color: #3f51b5;
-}
-
-.progress-circular-brand .progress-circular-left .progress-circular-spinner {
-  border-left-color: #3f51b5;
-}
-
-.progress-circular-brand .progress-circular-right .progress-circular-spinner {
-  border-right-color: #3f51b5;
-}
-
-.progress-circular-green .progress-circular-spinner {
-  border-top-color: #4caf50;
-}
-
-.progress-circular-green .progress-circular-left .progress-circular-spinner {
-  border-left-color: #4caf50;
-}
-
-.progress-circular-green .progress-circular-right .progress-circular-spinner {
-  border-right-color: #4caf50;
-}
-
-.progress-circular-orange .progress-circular-spinner {
-  border-top-color: #24292e;
-}
-
-.progress-circular-orange .progress-circular-left .progress-circular-spinner {
-  border-left-color: #24292e;
-}
-
-.progress-circular-orange .progress-circular-right .progress-circular-spinner {
-  border-right-color: #24292e;
-}
-
-.progress-circular-red .progress-circular-spinner {
-  border-top-color: #f44336;
-}
-
-.progress-circular-red .progress-circular-left .progress-circular-spinner {
-  border-left-color: #f44336;
-}
-
-.progress-circular-red .progress-circular-right .progress-circular-spinner {
-  border-right-color: #f44336;
-}
-
-.progress-circular-wrapper {
-  animation: pcircular-wrapper-rotate 2.91667s linear infinite;
-  animation: pcircular-wrapper-rotate 2.91667s linear infinite;
-  will-change: transform;
-}
-
-@keyframes pcircular-inner-rotate {
-  12.5% {
-    transform: rotate(135deg);
-    transform: rotate(135deg);
-  }
-
-  25% {
-    transform: rotate(270deg);
-    transform: rotate(270deg);
-  }
-
-  37.5% {
-    transform: rotate(405deg);
-    transform: rotate(405deg);
-  }
-
-  50% {
-    transform: rotate(540deg);
-    transform: rotate(540deg);
-  }
-
-  62.5% {
-    transform: rotate(675deg);
-    transform: rotate(675deg);
-  }
-
-  75% {
-    transform: rotate(810deg);
-    transform: rotate(810deg);
-  }
-
-  87.5% {
-    transform: rotate(945deg);
-    transform: rotate(945deg);
-  }
-
-  100% {
-    transform: rotate(1080deg);
-    transform: rotate(1080deg);
-  }
-}
-
-@keyframes pcircular-inner-rotate {
-  12.5% {
-    transform: rotate(135deg);
-    transform: rotate(135deg);
-  }
-
-  25% {
-    transform: rotate(270deg);
-    transform: rotate(270deg);
-  }
-
-  37.5% {
-    transform: rotate(405deg);
-    transform: rotate(405deg);
-  }
-
-  50% {
-    transform: rotate(540deg);
-    transform: rotate(540deg);
-  }
-
-  62.5% {
-    transform: rotate(675deg);
-    transform: rotate(675deg);
-  }
-
-  75% {
-    transform: rotate(810deg);
-    transform: rotate(810deg);
-  }
-
-  87.5% {
-    transform: rotate(945deg);
-    transform: rotate(945deg);
-  }
-
-  100% {
-    transform: rotate(1080deg);
-    transform: rotate(1080deg);
-  }
-}
-
-@keyframes pcircular-spinner-left {
-  0%,
-  100% {
-    transform: rotate(130deg);
-    transform: rotate(130deg);
-  }
-
-  50% {
-    transform: rotate(-5deg);
-    transform: rotate(-5deg);
-  }
-}
-
-@keyframes pcircular-spinner-left {
-  0%,
-  100% {
-    transform: rotate(130deg);
-    transform: rotate(130deg);
-  }
-
-  50% {
-    transform: rotate(-5deg);
-    transform: rotate(-5deg);
-  }
-}
-
-@keyframes pcircular-spinner-right {
-  0%,
-  100% {
-    transform: rotate(-130deg);
-    transform: rotate(-130deg);
-  }
-
-  50% {
-    transform: rotate(5deg);
-    transform: rotate(5deg);
-  }
-}
-
-@keyframes pcircular-spinner-right {
-  0%,
-  100% {
-    transform: rotate(-130deg);
-    transform: rotate(-130deg);
-  }
-
-  50% {
-    transform: rotate(5deg);
-    transform: rotate(5deg);
-  }
-}
-
-@keyframes pcircular-wrapper-rotate {
-  100% {
-    transform: rotate(360deg);
-    transform: rotate(360deg);
-  }
-}
-
-@keyframes pcircular-wrapper-rotate {
-  100% {
-    transform: rotate(360deg);
-    transform: rotate(360deg);
-  }
-}
-
-.load-bar {
-  float: right;
-  height: 100%;
-  overflow: hidden;
-  width: 50%;
-}
-
-.load-bar:first-child {
-  float: left;
-}
-
-.load-bar-base {
-  animation: load-bar-right-in 0.9s cubic-bezier(0.4, 0, 0.2, 1) 1 forwards;
-  animation: load-bar-right-in 0.9s cubic-bezier(0.4, 0, 0.2, 1) 1 forwards;
-  background-color: #f02;
-  float: left;
-  height: 100%;
-  overflow: hidden;
-  transform: translate(-100%, 0);
-  transform: translate(-100%, 0);
-  transform-origin: top right;
-  transform-origin: top right;
-  width: 100%;
-  will-change: transform;
-}
-
-.load-bar:first-child .load-bar-base {
-  animation: load-bar-left-in 0.9s cubic-bezier(0.4, 0, 0.2, 1) 1 forwards;
-  animation: load-bar-left-in 0.9s cubic-bezier(0.4, 0, 0.2, 1) 1 forwards;
-  transform: translate(100%, 0);
-  transform: translate(100%, 0);
-  transform-origin: top left;
-  transform-origin: top left;
-}
-
-@keyframes load-bar-left-in {
-  0% {
-    transform: translate(100%, 0);
-    transform: translate(100%, 0);
-  }
-
-  100% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-}
-
-@keyframes load-bar-left-in {
-  0% {
-    transform: translate(100%, 0);
-    transform: translate(100%, 0);
-  }
-
-  100% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-}
-
-@keyframes load-bar-right-in {
-  0% {
-    transform: translate(-100%, 0);
-    transform: translate(-100%, 0);
-  }
-
-  100% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-}
-
-@keyframes load-bar-right-in {
-  0% {
-    transform: translate(-100%, 0);
-    transform: translate(-100%, 0);
-  }
-
-  100% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-}
-
-.load-bar-content {
-  animation: load-bar-right 3.6s linear infinite forwards;
-  animation: load-bar-right 3.6s linear infinite forwards;
-  animation-delay: 0.9s;
-  animation-delay: 0.9s;
-  float: left;
-  height: 100%;
-  position: relative;
-  transform-origin: top center;
-  transform-origin: top center;
-  width: 400%;
-  will-change: transform;
-}
-
-.load-bar:first-child .load-bar-content {
-  animation: load-bar-left 3.6s linear infinite forwards;
-  animation: load-bar-left 3.6s linear infinite forwards;
-  animation-delay: 0.9s;
-  animation-delay: 0.9s;
-}
-
-@keyframes load-bar-left {
-  0% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-
-  100% {
-    transform: translate(-100%, 0);
-    transform: translate(-100%, 0);
-  }
-}
-
-@keyframes load-bar-left {
-  0% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-
-  100% {
-    transform: translate(-100%, 0);
-    transform: translate(-100%, 0);
-  }
-}
-
-@keyframes load-bar-right {
-  0% {
-    transform: translate(-100%, 0);
-    transform: translate(-100%, 0);
-  }
-
-  100% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-}
-
-@keyframes load-bar-right {
-  0% {
-    transform: translate(-100%, 0);
-    transform: translate(-100%, 0);
-  }
-
-  100% {
-    transform: translate(0, 0);
-    transform: translate(0, 0);
-  }
-}
-
-.load-bar-progress {
-  background-color: transparent;
-  float: left;
-  height: 100%;
-  width: 25%;
-}
-
-.load-bar-progress-brand {
-  background-color: #3f51b5;
-}
-
-.load-bar-progress-green {
-  background-color: #4caf50;
-}
-
-.load-bar-progress-orange {
-  background-color: #24292e;
-}
-
-.load-bar-progress-red {
-  background-color: #f44336;
-}
-
-.snackbar {
-  position: fixed;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 41;
-}
-
-.snackbar a {
-  cursor: pointer;
-}
-
-.snackbar a:focus,
-.snackbar a:hover {
-  text-decoration: none;
-}
-
-@media screen and (min-width: 768px) {
-  .snackbar {
-    padding-right: 16px;
-    padding-left: 16px;
-    bottom: 24px;
-  }
-
-  .fbtn-container ~ .snackbar {
-    right: 72px;
-  }
-
-  .snackbar-inner {
-    border-radius: 2px;
-    float: left;
-  }
-}
-
-.snackbar-inner {
-  backface-visibility: hidden;
-  background-color: rgb(0 0 0 / 87%);
-  box-shadow: 0 1px 10px rgb(0 0 0 / 50%);
-  color: #fff;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  max-width: 100%;
-  padding: 12px 16px;
-  transform: translate(0, 200%);
-  transform: translate(0, 200%);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.snackbar-inner::after,
-.snackbar-inner::before {
-  content: "";
-  display: table;
-  line-height: 0;
-}
-
-.snackbar-inner.in {
-  transform: translate(0, 0);
-  transform: translate(0, 0);
-}
-
-[data-dismiss="snackbar"] {
-  cursor: pointer;
-  font-weight: 500;
-  margin-left: 16px;
-  -webkit-box-ordinal-group: 2;
-  order: 1;
-  -ms-flex-order: 1;
-  order: 1;
-  text-transform: uppercase;
-  white-space: nowrap;
-}
-
-.tab-nav {
-  box-shadow: 0 1px 0 rgb(0 0 0 / 12%);
-  position: relative;
-}
-
-.tab-nav .nav {
-  margin-top: 0 !important;
-  margin-bottom: 0 !important;
-}
-
-.tab-nav .nav > li > .a,
-.tab-nav .nav > li > a {
-  color: inherit;
-  text-transform: uppercase;
-}
-
-/* 按钮下面颜色 */
-.tab-nav .nav > li > .a::after,
-.tab-nav .nav > li > a::after {
-  border-bottom: 2px solid #399af2;
-  content: "";
-  display: block;
-  opacity: 0;
-  position: absolute;
-  bottom: 0;
-  left: 0;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 100%;
-}
-
-.tab-nav .nav > li > .a:focus::after,
-.tab-nav .nav > li > .a:hover::after,
-.tab-nav .nav > li > a:focus::after,
-.tab-nav .nav > li > a:hover::after {
-  opacity: 0.3;
-}
-
-.tab-nav .nav > li.active > .a::after,
-.tab-nav .nav > li.active > a::after {
-  opacity: 1;
-  transition: opacity 0s 0.45s;
-  transition: opacity 0s 0.45s;
-}
-
-.tab-nav-indicator {
-  background-color: transparent;
-  height: 2px;
-  position: absolute;
-  bottom: 0;
-}
-
-.tab-nav-indicator.animate {
-  background-color: #399af2;
-  transition: left 225ms cubic-bezier(0.4, 0, 0.2, 1) 225ms, right 0.45s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: left 225ms cubic-bezier(0.4, 0, 0.2, 1) 225ms, right 0.45s cubic-bezier(0.4, 0, 0.2, 1);
-  will-change: left, right;
-}
-
-.tab-nav-indicator.animate.reverse {
-  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1), right 225ms cubic-bezier(0.4, 0, 0.2, 1) 225ms;
-  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1), right 225ms cubic-bezier(0.4, 0, 0.2, 1) 225ms;
-}
-
-.tab-nav-brand .nav > li > .a::after,
-.tab-nav-brand .nav > li > a::after {
-  border-bottom-color: #3f51b5;
-}
-
-.tab-nav-brand .tab-nav-indicator.animate {
-  background-color: #3f51b5;
-}
-
-.tab-nav-green .nav > li > .a::after,
-.tab-nav-green .nav > li > a::after {
-  border-bottom-color: #4caf50;
-}
-
-.tab-nav-green .tab-nav-indicator.animate {
-  background-color: #4caf50;
-}
-
-.tab-nav-orange .nav > li > .a::after,
-.tab-nav-orange .nav > li > a::after {
-  border-bottom-color: #24292e;
-}
-
-.tab-nav-orange .tab-nav-indicator.animate {
-  background-color: #24292e;
-}
-
-.tab-nav-red .nav > li > .a::after,
-.tab-nav-red .nav > li > a::after {
-  border-bottom-color: #f44336;
-}
-
-.tab-nav-red .tab-nav-indicator.animate {
-  background-color: #f44336;
-}
-
-.tab-pane {
-  display: none;
-  visibility: hidden;
-}
-
-.tab-pane.active {
-  display: block;
-  visibility: visible;
-}
-
-.table {
-  background-color: #fff;
-  border: 0;
-  box-shadow: 0 -1px 0 rgb(0 0 0 / 6%), 0 0 3px rgb(0 0 0 / 18%), 0 1px 3px rgb(0 0 0 / 18%);
-  margin-top: 24px;
-  margin-bottom: 24px;
-  width: 100%;
-}
-
-.table-responsive.table-user {
-  border-radius: 0;
-  box-shadow: none;
-  margin-top: 0;
-}
-
-.table-user .table tr:last-of-type td {
-  border-bottom: 1px solid #dadada;
-}
-
-.table-user .table > tbody:first-child > tr:first-child th,
-.table-user .table > thead:first-child > tr:first-child th {
-  border-top: 1px solid #dadada;
-  border-bottom: 1px solid #dadada;
-}
-
-.table-responsive.table-user th,
-.table.table-user th {
-  background: #f0faff;
-  border-radius: 0;
-}
-
-.table-responsive.table-user th,
-.table-responsive.table-user td,
-.table.table-user th,
-.table.table-user td {
-  padding: 13px 16px 14px 32px;
-}
-
-.card-table > .table {
-  box-shadow: none;
-  margin-right: -16px;
-  margin-left: -16px;
-}
-
-.card-table > .table:first-child {
-  margin-top: 0;
-}
-
-.card-table > .table:last-child {
-  margin-bottom: 0;
-}
-
-.table > tbody:first-child > tr:first-child td,
-.table > tbody:first-child > tr:first-child th {
-  border-top: 0;
-}
-
-.table > tbody > tr:hover {
-  background-color: #f5f5f5;
-}
-
-.table td,
-.table th {
-  border-top: 1px solid #dadada;
-  font-size: 14px;
-  line-height: 20px;
-  padding: 13px 16px 14px;
-  vertical-align: middle;
-  white-space: nowrap;
-}
-
-.table td.nowrap,
-.table th.nowrap {
-  white-space: nowrap;
-  width: 1%;
-}
-
-.table > thead:first-child > tr:first-child td,
-.table > thead:first-child > tr:first-child th {
-  border-top: 0;
-}
-
-.table > thead td,
-.table > thead th {
-  color: #9a9a9a;
-  font-size: 12px;
-  vertical-align: bottom;
-}
-
-.table-responsive {
-  box-shadow: 0 0 0 rgb(0 0 0 / 5%), 0 0 15px rgb(0 0 0 / 18%), 0 1px 3px rgb(0 0 0 / 5%);
-  margin-top: 24px;
-  margin-bottom: 24px;
-  min-height: 0.01%;
-  overflow-x: auto;
-  overflow-y: hidden;
-  -webkit-overflow-scrolling: touch;
-  -ms-overflow-style: -ms-autohiding-scrollbar;
-  border-radius: 20px;
-}
-
-.tile,
-.tile-action,
-.tile-footer {
-  min-height: 48px;
-}
-
-.card-table > .table-responsive {
-  box-shadow: none;
-  margin-right: -16px;
-  margin-left: -16px;
-}
-
-.card-table > .table-responsive:first-child {
-  margin-top: 0;
-}
-
-.card-table > .table-responsive:last-child {
-  margin-bottom: 0;
-}
-
-.table-responsive > .table {
-  box-shadow: none;
-  margin: 0;
-}
-
-.tile {
-  background-color: #fff;
-  box-shadow: 0 0 15px 2px #e5e5e5, 0 0 2px rgb(0 0 0 / 20%), 0 0 1px rgb(0 0 0 / 12%);
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-}
-
-.menu,
-html.no-touchevents .tile-action {
-  display: none;
-}
-
-.tile[href]:focus,
-.tile[href]:hover {
-  outline: 0;
-  text-decoration: none;
-}
-
-.tile.active {
-  margin-top: 24px;
-  margin-bottom: 24px;
-}
-
-.tile-brand {
-  background-color: #3f51b5;
-  color: #fff;
-}
-
-.tile-brand a,
-.tile-brand a:focus,
-.tile-brand a:hover {
-  color: inherit;
-}
-
-.tile-brand-accent {
-  background-color: #f02;
-  color: #fff;
-}
-
-.tile-brand-accent a,
-.tile-brand-accent a:focus,
-.tile-brand-accent a:hover {
-  color: inherit;
-}
-
-.tile-green {
-  background-color: #4caf50;
-  color: rgb(0 0 0 / 87%);
-}
-
-.tile-green a,
-.tile-green a:focus,
-.tile-green a:hover {
-  color: inherit;
-}
-
-.tile-orange {
-  background-color: #24292e;
-  color: rgb(0 0 0 / 87%);
-}
-
-.tile-orange a,
-.tile-orange a:focus,
-.tile-orange a:hover {
-  color: inherit;
-}
-
-.tile-red {
-  background-color: #f44336;
-  color: #fff;
-}
-
-.tile-red a,
-.tile-red a:focus,
-.tile-red a:hover {
-  color: inherit;
-}
-
-.tile-action {
-  -webkit-box-ordinal-group: 2;
-  order: 1;
-  -ms-flex-order: 1;
-  order: 1;
-  user-select: none;
-  user-select: none;
-  user-select: none;
-  user-select: none;
-}
-
-html.no-touchevents .tile-action-show,
-html.no-touchevents .tile:hover .tile-action {
-  display: block;
-}
-
-.tile-active-show.collapsing {
-  transition: height 0.15s linear;
-  transition: height 0.15s linear;
-}
-
-.tile-collapse {
-  -webkit-box-orient: vertical;
-  flex-direction: column;
-  flex-direction: column;
-  flex-direction: column;
-  transition: margin 0.15s linear;
-  transition: margin 0.15s linear;
-}
-
-.header-transparent::before,
-.header::after {
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  left: 0;
-  top: 0;
-}
-
-.tile-collapse > [data-toggle="tile"] {
-  cursor: pointer;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  -webkit-box-flex: 1;
-  flex: 1;
-  flex: 1;
-  flex: 1;
-}
-
-.tile-footer::after,
-.tile-footer::before,
-.tile-sub::after,
-.tile-sub::before {
-  display: table;
-  line-height: 0;
-  content: "";
-}
-
-.tile-collapse > [data-toggle="tile"] [data-ignore="tile"] {
-  cursor: default;
-  cursor: initial;
-}
-
-.tile-collapse-full.active {
-  margin-right: calc(-50vw + 50% + 2px);
-  margin-left: calc(-50vw + 50% + 2px);
-}
-
-@media screen and (min-width: 992px) {
-  .tile-collapse-full.active {
-    margin-right: calc(-50vw + 50% + 16px);
-    margin-left: calc(-50vw + 50% + 16px);
-  }
-}
-
-.tile-footer {
-  background-color: #f5f5f5;
-  border-top: 1px solid rgb(0 0 0 / 12%);
-}
-
-.tile-active-show > .tile-footer:first-child,
-.tile > .tile-footer:first-child {
-  border-top: 0;
-}
-
-.tile-brand .tile-footer {
-  background-color: #303f9f;
-  color: #fff;
-}
-
-.tile-brand-accent .tile-footer {
-  background-color: #f50057;
-  color: #fff;
-}
-
-.tile-green .tile-footer {
-  background-color: #388e3c;
-  color: #fff;
-}
-
-.tile-orange .tile-footer {
-  background-color: #f57c00;
-  color: rgb(0 0 0 / 87%);
-}
-
-.tile-red .tile-footer {
-  background-color: #d32f2f;
-  color: #fff;
-}
-
-.tile-footer-btn {
-  margin: 6px 8px;
-  white-space: nowrap;
-}
-
-.tile-footer-btn .btn + .btn {
-  margin-left: 8px;
-}
-
-.tile-inner {
-  -webkit-box-flex: 1;
-  flex: 1;
-  flex: 1;
-  flex: 1;
-  margin: 14px 16px;
-}
-
-.tile-side {
-  align-self: center;
-  -ms-flex-item-align: center;
-  align-self: center;
-}
-
-.tile-side.pull-left {
-  -webkit-box-ordinal-group: 0;
-  order: -1;
-  -ms-flex-order: -1;
-  order: -1;
-  margin-left: 16px;
-}
-
-.tile-side.pull-right {
-  -webkit-box-ordinal-group: 2;
-  order: 1;
-  -ms-flex-order: 1;
-  order: 1;
-  margin-right: 16px;
-}
-
-.tile-sub {
-  border-top: 1px solid rgb(0 0 0 / 12%);
-  padding-right: 16px;
-  padding-left: 16px;
-}
-
-.tile-brand .tile-sub {
-  border-top-color: #303f9f;
-}
-
-.tile-brand-accent .tile-sub {
-  border-top-color: #f50057;
-}
-
-.tile-green .tile-sub {
-  border-top-color: #388e3c;
-}
-
-.tile-orange .tile-sub {
-  border-top-color: #f57c00;
-}
-
-.tile-red .tile-sub {
-  border-top-color: #d32f2f;
-}
-
-.tile-wrap {
-  margin-top: 24px;
-  margin-bottom: 24px;
-}
-
-.content-header {
-  background-color: #f5f5f5;
-  color: #212121;
-  overflow: hidden;
-  padding-top: 12px;
-  padding-bottom: 12px;
-}
-
-.content-header-brand,
-.page-brand .content-header {
-  background-color: #24292e;
-  color: #fff;
-}
-
-.content-header-brand-accent,
-.page-brand-accent .content-header {
-  background-color: #f02;
-  color: #fff;
-}
-
-.content-header-green,
-.page-green .content-header {
-  background-color: #4caf50;
-  color: rgb(0 0 0 / 87%);
-}
-
-/* top图片预刷新的颜色 */
-.content-header-orange,
-.page-orange .content-header {
-  background-color: rgb(0 0 0 / 12%);
-  color: #4caf50;
-  box-shadow: 0 0 0 rgb(67 47 40), 0 0 15px #412f1c, 0 1px 3px rgb(0 0 0 / 5%);
-}
-
-.content-header-red,
-.page-red .content-header {
-  background-color: #f44336;
-  color: #fff;
-}
-
-.content-heading {
-  font-weight: 300;
-}
-
-.content-inner {
-  margin-top: 48px;
-  margin-bottom: 48px;
-}
-
-.header .nav,
-.header .tab-nav {
-  margin-bottom: 0;
-  margin-top: 0;
-}
-
-.content-sub-heading {
-  font-size: 20px;
-  font-weight: 500;
-  line-height: 28px;
-}
-
-.page-brand .content-sub-heading {
-  color: #3f51b5;
-}
-
-.page-brand-accent .content-sub-heading {
-  color: #f02;
-}
-
-.page-green .content-sub-heading {
-  color: #4caf50;
-}
-
-.page-orange .content-sub-heading {
-  color: #24292e;
-}
-
-.page-red .content-sub-heading {
-  color: #f44336;
-}
-
-.header {
-  backface-visibility: hidden;
-  background-color: #f5f5f5;
-  color: #212121;
-  min-height: 56px;
-  z-index: 30;
-}
-
-.header::after {
-  box-shadow: 0 1px 10px rgb(0 0 0 / 50%);
-  content: "";
-  display: block;
-  height: 100%;
-  opacity: 0;
-  position: absolute;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 100%;
-  z-index: -1;
-}
-
-.header-standard::after,
-.header.affix::after {
-  opacity: 1;
-}
-
-.header a {
-  color: inherit;
-  z-index: 1;
-}
-
-.header .nav > li > .a,
-.header .nav > li > a {
-  height: 56px;
-}
-
-.header .tab-nav {
-  box-shadow: none;
-}
-
-.header-brand {
-  background-color: #3f51b5;
-  color: #fff;
-}
-
-.header-brand-accent {
-  background-color: #f02;
-  color: #fff;
-}
-
-.header-green {
-  background-color: #4caf50;
-  color: rgb(0 0 0 / 87%);
-}
-
-.header-orange {
-  background-color: #24292e;
-  color: rgb(0 0 0 / 87%);
-}
-
-/* icon颜色 */
-.page-brand .header-transparent,
-.page-brand-accent .header-transparent {
-  color: #f57c00;
-}
-
-.header-red {
-  background-color: #f44336;
-  color: #fff;
-}
-
-.header-affix {
-  max-height: 56px;
-  overflow: hidden;
-  width: 0;
-}
-
-.header-affix.affix {
-  width: auto;
-}
-
-.header-affix-hide {
-  max-height: 56px;
-  overflow: hidden;
-  width: auto;
-}
-
-.header-affix-hide.affix {
-  width: 0;
-}
-
-.header-logo,
-.header-text {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  float: left;
-  font-weight: 300;
-  height: 56px;
-  line-height: 28px;
-  margin: 0 16px;
-  white-space: nowrap;
-}
-
-.header-logo:focus,
-.header-logo:hover,
-.header-text:focus,
-.header-text:hover {
-  outline: 0;
-  text-decoration: none;
-}
-
-.header-logo {
-  font-size: 20px;
-}
-
-.header-logo img {
-  display: block;
-  max-height: 42px;
-  width: auto;
-}
-
-.header-seamed,
-.header-standard,
-.header-waterfall {
-  position: fixed;
-  top: 0;
-  right: 0;
-  left: 0;
-}
-
-.header-transparent {
-  background-color: transparent;
-}
-
-.header-transparent::before {
-  background-color: #f5f5f5;
-  content: "";
-  display: block;
-  height: 100%;
-  opacity: 0;
-  position: absolute;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 100%;
-  z-index: -1;
-}
-
-.header-transparent.affix::before {
-  opacity: 1;
-}
-
-/*
-*.page-orange .header-transparent:before top的color
-*/
-.page-brand .header-transparent::before {
-  background-color: rgb(0 0 0 / 10%);
-}
-
-.page-green .header-transparent,
-.page-orange .header-transparent {
-  color: rgb(0 0 0 / 87%);
-}
-
-.page-brand-accent .header-transparent::before {
-  background-color: #f02;
-}
-
-.page-green .header-transparent::before {
-  background-color: #4caf50;
-}
-
-/*
-*.page-orange .header-transparent:before top的color
-*/
-.page-orange .header-transparent::before {
-  background-color: rgb(0 0 0 / 10%);
-}
-
-.page-red .header-transparent {
-  color: #fff;
-}
-
-.page-red .header-transparent::before {
-  background-color: #f44336;
-}
-
-.menu {
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-  overflow: hidden;
-  outline: 0;
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 31;
-}
-
-.menu-collapse-toggle,
-.menu-collapse-toggle-close {
-  -webkit-box-align: center;
-  display: box;
-  display: flex;
-  display: flexbox;
-  position: absolute;
-  height: 100%;
-}
-
-.menu-collapse-toggle {
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  cursor: pointer;
-  display: flex;
-  padding: 0 16px;
-  top: 0;
-  right: 0;
-  z-index: 1;
-}
-
-.menu-collapse-toggle:focus,
-.menu-collapse-toggle:hover {
-  outline: 0;
-  text-decoration: none;
-}
-
-.menu-collapse-toggle-close,
-.menu-collapse-toggle-default {
-  transition-duration: 0.3s;
-  transition-duration: 0.3s;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, -webkit-transform;
-  transition-property: opacity, transform;
-  transition-property: opacity, transform, -webkit-transform;
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.menu-collapse-toggle-close {
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  display: flex;
-  -webkit-box-pack: center;
-  justify-content: center;
-  -ms-flex-pack: center;
-  justify-content: center;
-  opacity: 1;
-  top: 0;
-  left: 0;
-  transform: rotate(0);
-  transform: rotate(0);
-  width: 100%;
-}
-
-.menu-logo,
-.menu-top-img {
-  -webkit-box-align: center;
-  display: box;
-  display: flex;
-  display: flexbox;
-}
-
-.menu-backdrop,
-.menu-scroll {
-  position: fixed;
-  left: 0;
-  top: 0;
-}
-
-.menu-collapse-toggle.collapsed .menu-collapse-toggle-close {
-  opacity: 0;
-  transform: rotate(-225deg);
-  transform: rotate(-225deg);
-}
-
-.menu-collapse-toggle-default {
-  opacity: 0;
-  transform: rotate(225deg);
-  transform: rotate(225deg);
-}
-
-.menu-collapse-toggle.collapsed .menu-collapse-toggle-default {
-  opacity: 1;
-  transform: rotate(0);
-  transform: rotate(0);
-}
-
-.menu-content {
-  padding-top: 8px;
-  padding-bottom: 8px;
-}
-
-.menu-content .nav {
-  margin-top: 0;
-  margin-bottom: 0;
-}
-
-.menu-content .nav .a,
-.menu-content .nav a {
-  color: #515a6e;
-  font-weight: 500;
-}
-
-.menu-content .nav li.active > .a,
-.menu-content .nav li.active > a,
-.page-brand .menu-content .nav li.active > .a,
-.page-brand .menu-content .nav li.active > a {
-  color: #3f51b5;
-}
-
-.menu-content .nav .a:focus,
-.menu-content .nav .a:hover,
-.menu-content .nav a:focus,
-.menu-content .nav a:hover {
-  background-color: #f5f5f5;
-}
-
-.menu-content .nav ul .a,
-.menu-content .nav ul a {
-  font-weight: 400;
-  min-height: 36px;
-  padding-left: 32px;
-}
-
-.menu-content .nav ul ul .a,
-.menu-content .nav ul ul a {
-  font-size: 12px;
-  padding-left: 48px;
-}
-
-.page-brand-accent .menu-content .nav li.active > .a,
-.page-brand-accent .menu-content .nav li.active > a {
-  color: #f02;
-}
-
-.page-green .menu-content .nav li.active > .a,
-.page-green .menu-content .nav li.active > a {
-  color: #4caf50;
-}
-
-.page-orange .menu-content .nav li.active > .a,
-.page-orange .menu-content .nav li.active > a {
-  color: #ffb200;
-}
-
-.page-red .menu-content .nav li.active > .a,
-.page-red .menu-content .nav li.active > a {
-  color: #f44336;
-}
-
-.menu-content-inner {
-  padding-right: 16px;
-  padding-left: 16px;
-}
-
-.menu-backdrop {
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-  background-color: #000;
-  opacity: 0;
-  right: 0;
-  bottom: 0;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  z-index: 30;
-}
-
-.menu-backdrop.in {
-  opacity: 0.5;
-}
-
-.menu-logo {
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  border-bottom: 1px solid #dadada;
-  color: #314e7d;
-  display: flex;
-  font-size: 20px;
-  font-weight: 300;
-  line-height: 28px;
-  margin-bottom: 8px;
-  min-height: 56px;
-  padding: 0 16px;
-}
-
-.menu-logo[href]:focus,
-.menu-logo[href]:hover {
-  color: #212121;
-  outline: 0;
-  text-decoration: none;
-}
-
-.menu-content > .menu-logo:first-child {
-  margin-top: -8px;
-}
-
-.menu-logo img {
-  display: block;
-  max-height: 42px;
-  width: auto;
-}
-
-/* 弹出来的菜单栏 */
-.menu-scroll {
-  background-color: #fff;
-  height: 100%;
-  max-width: 85%;
-  max-width: calc(100% - 64px);
-  overflow-x: hidden;
-  overflow-y: auto;
-  transform: translateX(-100%);
-  transform: translateX(-100%);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 200px;
-  z-index: 1;
-  -webkit-overflow-scrolling: touch;
-  -ms-overflow-style: none;
-}
-
-.menu-right .menu-scroll {
-  right: 0;
-  left: auto;
-  transform: translateX(100%);
-  transform: translateX(100%);
-}
-
-.menu.in .menu-scroll {
-  transform: translateX(0);
-  transform: translateX(0);
-}
-
-.menu-top {
-  background-color: #000;
-  color: #fff;
-  position: relative;
-  z-index: 1;
-}
-
-.menu-top a,
-.menu-top a:focus,
-.menu-top a:hover {
-  color: inherit;
-  text-decoration: none;
-}
-
-.menu-top-img {
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  display: flex;
-  height: 100%;
-  -webkit-box-pack: center;
-  justify-content: center;
-  -ms-flex-pack: center;
-  justify-content: center;
-  overflow: hidden;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-}
-
-.menu-top-img img {
-  min-height: 100%;
-  width: 100%;
-  opacity: 0.5;
-}
-
-.menu-top-info {
-  padding: 12px 16px;
-  position: relative;
-}
-
-@media screen and (min-width: 768px) {
-  .menu-top-info {
-    padding-top: 24px;
-    padding-bottom: 24px;
-  }
-}
-
-.menu-top-info-sub {
-  font-weight: 300;
-  padding: 12px 16px;
-  position: relative;
-}
-
-@media screen and (min-width: 768px) {
-  .menu-top-info-sub {
-    padding-top: 24px;
-  }
-}
-
-.menu-top-user {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-}
-
-.menu-top-user > * {
-  flex-shrink: 0;
-  -ms-flex-negative: 0;
-  flex-shrink: 0;
-}
-
-@media screen and (min-width: 992px) {
-  .menu-scroll {
-    max-width: none;
-  }
-
-  .nav-drawer.nav-drawer-md {
-    background-color: transparent;
-    display: block !important;
-    overflow: visible;
-    width: 240px;
-    z-index: 30;
-  }
-
-  .nav-drawer.nav-drawer-md.in ~ .menu-backdrop {
-    display: none;
-  }
-
-  .nav-drawer.nav-drawer-md.in ~ .menu-backdrop ~ .menu-backdrop {
-    display: block;
-  }
-
-  .nav-drawer.nav-drawer-md.menu-left ~ .content,
-  .nav-drawer.nav-drawer-md.menu-left ~ .footer,
-  .nav-drawer.nav-drawer-md.menu-left ~ .header {
-    margin-left: 240px;
-  }
-
-  .nav-drawer.nav-drawer-md.menu-right ~ .content,
-  .nav-drawer.nav-drawer-md.menu-right ~ .footer,
-  .nav-drawer.nav-drawer-md.menu-right ~ .header {
-    margin-right: 240px;
-  }
-
-  /* 正常状态的菜单栏 */
-  .nav-drawer.nav-drawer-md .menu-scroll {
-    box-shadow: 0 0 10px rgb(0 0 0 / 10%);
-    transform: none;
-    transform: none;
-    width: 240px;
-  }
-}
-
-@media screen and (min-width: 1440px) {
-  .nav-drawer.nav-drawer-lg {
-    background-color: transparent;
-    display: block !important;
-    overflow: visible;
-    width: 240px;
-    z-index: 30;
-  }
-
-  .nav-drawer.nav-drawer-lg.in ~ .menu-backdrop {
-    display: none;
-  }
-
-  .nav-drawer.nav-drawer-lg.in ~ .menu-backdrop ~ .menu-backdrop {
-    display: block;
-  }
-
-  .nav-drawer.nav-drawer-lg.menu-left ~ .content,
-  .nav-drawer.nav-drawer-lg.menu-left ~ .footer,
-  .nav-drawer.nav-drawer-lg.menu-left ~ .header {
-    margin-left: 240px;
-  }
-
-  .nav-drawer.nav-drawer-lg.menu-right ~ .content,
-  .nav-drawer.nav-drawer-lg.menu-right ~ .footer,
-  .nav-drawer.nav-drawer-lg.menu-right ~ .header {
-    margin-right: 240px;
-  }
-
-  .nav-drawer.nav-drawer-lg .menu-scroll {
-    box-shadow: 0 0 10px rgb(0 0 0 / 50%);
-    transform: none;
-    transform: none;
-    width: 240px;
-  }
-}
-
-/* 菜单 */
-
-/* .md-menu-left {
-	width: 31%;
-	border-radius: 0 20px 20px 0;
-	box-shadow: 0 0 5px 1px #cacaca;
-}
-.md-menu-left a {
-	border-radius: 0 20px 20px 0;
-	min-height: 30px;
-}
-
-.md-menu-right {
-	border-radius: 20px 0 0 20px;
-	box-shadow: 0 0 5px 1px #cacaca;
-	margin: 10px 0 10px 40px;
-}
-.md-menu-right a {
-	min-height: 30px;
-} */
-
-.bgc-fix {
-  background: white;
-}
-
-.tgme_widget_login.large button.tgme_widget_login_button {
-  max-width: 80%;
-}
-
-@media screen and (min-width: 400px) {
-  .tgme_widget_login.large button.tgme_widget_login_button {
-    max-width: 100%;
-  }
-}
-
-@keyframes sparkle {
-  from { background-position: 0 0; }
-  to { background-position: 0 -64px; }
-}
-
-@keyframes sparkle {
-  from { background-position: 0 0; }
-  to { background-position: 0 -64px; }
-}
-
-@keyframes sparkle {
-  from { background-position: 0 0; }
-  to { background-position: 0 -64px; }
-}
-
-@keyframes sparkle {
-  from { background-position: 0 0; }
-  to { background-position: 0 -64px; }
-}
-
-.cust-link.form-control {
-  color: #399af2;
-  cursor: unset;
-  padding-bottom: 2px;
-  margin-right: 1em;
-  padding-right: 1em;
-  background-color: #f3f3f3;
-}
-
-.invite-link,
-.cardbtn-edit {
-  display: flex;
-  justify-content: space-between;
-  flex-wrap: nowrap;
-}
-
-.invite-link {
-  justify-content: flex-start;
-}
-
-.cardbtn-edit .card-heading {
-  margin-bottom: 0;
-  margin-top: 8px;
-}
-
-.cardbtn-edit .btn-flat {
-  border-radius: 50%;
-  background: #666;
-  width: 50px;
-  height: 50px;
-  color: white;
-  box-shadow: 1px 2px 3px rgb(0 0 0 / 15%), 1px 2px 3px 1px rgb(0 0 0 / 15%);
-}
-
-.cardbtn-edit .btn-flat span {
-  position: relative;
-  font-size: 21px;
-  top: 1px;
-}
-
-.cardbtn-edit .account-flex .btn-flat {
-  margin-left: 1em;
-  background: #ff4343;
-}
-
-.cardbtn-edit .account-flex .btn-flat span {
-  top: 6px;
-}
-
-.cardbtn-edit a.btn-flat.btn-brand-accent {
-  color: white !important;
-  display: inline-block;
-}
-
-.cardbtn-edit a.btn-flat.btn-brand-accent span {
-  position: relative;
-  top: 7px;
-}
-
-.cardbtn-edit a.btn-flat.btn-brand-accent.reset-link i {
-  font-size: 30px;
-  position: relative;
-  top: 0.2em;
-  right: 0.15em;
-}
-
-.cardbtn-edit a.btn-flat.btn-brand-accent.reset-link {
-  margin-left: 1em;
-  display: inline-block;
-  background: #ff4343;
-}
-
-.cardbtn-edit a.btn-flat.btn-brand-accent.reset-link:hover,
-.cardbtn-edit .btn-flat:hover {
-  border-radius: 10px;
-  transition-duration: 0.3s;
-}
-
-.quickadd .reset-link {
-  margin-right: 0.5em;
-}
-
-.invite-link .cust-link {
-  flex-basis: 100%;
-  margin: 0;
-  width: 100%;
-}
-
-.invite-link .btn-subscription {
-  margin: 0 0 2em 1em;
-  flex-basis: 12%;
-}
-
-#buy-invite span {
-  position: relative;
-  top: 4px;
-  left: 1px;
-}
-
-.account-flex {
-  display: flex;
-  justify-content: flex-end;
-  align-items: center;
-}
-
-code.form-control {
-  min-height: 200px;
-}
-
-.codepay button {
-  padding-left: 0;
-}
-
-@media screen and (max-width: 430px) {
-  .reset-flex {
-    display: flex;
-    justify-content: flex-end;
-    flex-basis: 100%;
-    align-items: center;
-    margin: 1em 0;
-  }
-
-  .tab-nav {
-    font-size: 13px;
-  }
-
-  .nav .a,
-  .nav a {
-    padding: 0 10px;
-  }
-
-  .invite-link .btn-subscription {
-    flex-basis: 100%;
-    margin: 1em 0 2em;
-  }
-
-  .invite-link {
-    flex-wrap: wrap;
-  }
-}
-
-.qr-center img {
-  margin-left: auto;
-  margin-right: auto;
-  max-width: 100%;
-}
-
-@media screen and (min-width: 1440px) {
-  .hidden-lg {
-    display: none !important;
-  }
-
-  .visible-lg-block {
-    display: block !important;
-  }
-
-  .visible-lg-inline {
-    display: inline !important;
-  }
-
-  .visible-lg-inline-block {
-    display: inline-block !important;
-  }
-}
-
-@media screen and (min-width: 992px) and (max-width: 1439px) {
-  .hidden-md {
-    display: none !important;
-  }
-
-  .visible-md-block {
-    display: block !important;
-  }
-
-  .visible-md-inline {
-    display: inline !important;
-  }
-
-  .visible-md-inline-block {
-    display: inline-block !important;
-  }
-}
-
-@media screen and (min-width: 768px) and (max-width: 991px) {
-  .hidden-sm {
-    display: none !important;
-  }
-
-  .visible-sm-block {
-    display: block !important;
-  }
-
-  .visible-sm-inline {
-    display: inline !important;
-  }
-
-  .visible-sm-inline-block {
-    display: inline-block !important;
-  }
-}
-
-@media screen and (min-width: 480px) and (max-width: 767px) {
-  .hidden-xs {
-    display: none !important;
-  }
-
-  .visible-xs-block {
-    display: block !important;
-  }
-
-  .visible-xs-inline {
-    display: inline !important;
-  }
-
-  .visible-xs-inline-block {
-    display: inline-block !important;
-  }
-}
-
-@media screen and (max-width: 479px) {
-  .hidden-xx {
-    display: none !important;
-  }
-
-  .visible-xx-block {
-    display: block !important;
-  }
-
-  .visible-xx-inline {
-    display: inline !important;
-  }
-
-  .visible-xx-inline-block {
-    display: inline-block !important;
-  }
-}
-
-i {
-  user-select: none;
-  user-select: none;
-  user-select: none;
-  user-select: none;
-}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 3
public/theme/tabler/css/base.min.css


BIN
public/theme/tabler/css/images/bg/amber.jpg


+ 0 - 1493
public/theme/tabler/css/index.css

@@ -1,1493 +0,0 @@
-@import "https://cdn.jsdelivr.net/npm/[email protected]/css/font-awesome.min.css";
-
-.pure-g {
-  align-content: unset;
-  align-content: unset;
-  -ms-flex-line-pack: unset;
-}
-
-body {
-  background-color: #1d1d1d;
-  color: white;
-  min-height: 100vh;
-}
-
-a {
-  color: inherit;
-  text-decoration: none;
-}
-
-.flex {
-  display: flex;
-}
-
-.space-around {
-  justify-content: space-around;
-}
-
-.space-between {
-  justify-content: space-between;
-}
-
-.align-center {
-  align-items: center;
-}
-
-.align-baseline {
-  align-items: baseline;
-}
-
-.justify-center {
-  justify-content: center;
-}
-
-.wrap {
-  flex-wrap: wrap;
-}
-
-.text-left {
-  text-align: left;
-}
-
-.text-center {
-  text-align: center;
-}
-
-.text-right {
-  text-align: right;
-}
-
-.text-red {
-  color: #d1335b;
-}
-
-.relative {
-  position: relative;
-}
-
-[v-cloak] {
-  display: none;
-}
-
-.margin-nobottom {
-  margin-bottom: 0 !important;
-}
-
-.nav,
-.main,
-.footer {
-  flex-basis: 100%;
-}
-
-.loading {
-  position: fixed;
-  top: 0;
-  text-align: center;
-  width: 100%;
-  height: 100%;
-  justify-content: center;
-  font-size: 4rem;
-}
-
-.button-round.active {
-  opacity: 1;
-}
-
-.logo-sm,
-.auth-sm {
-  padding: 1rem;
-}
-
-.auth-sm {
-  text-align: right;
-  justify-content: flex-end;
-}
-
-.auth-sm a {
-  min-width: 80px;
-}
-
-.logo-sm .logo {
-  height: 48px;
-}
-
-.logo {
-  border-radius: 50%;
-}
-
-.logo-sm > a {
-  align-items: center;
-}
-
-.logo-sm .logo {
-  margin-right: 0.5rem;
-}
-
-.logo-bg .logo {
-  height: 160px;
-  display: none;
-}
-
-.sign {
-  font-size: 0.5rem;
-  margin-top: 2px;
-  color: #858585;
-}
-
-.main {
-  text-align: center;
-  min-height: 80vh;
-  padding: 1.5rem 0 2.5rem;
-}
-
-.title,
-.auth {
-  margin-right: auto;
-  margin-left: auto;
-  display: flex;
-  align-items: center;
-  width: 80%;
-  justify-content: center;
-}
-
-.title-left {
-  text-align: center;
-}
-
-.title-left a {
-  margin-right: 0.5rem;
-  margin-bottom: 0.5rem;
-}
-
-.title h1 {
-  font-size: 2.5rem;
-  margin: 0;
-  display: inline-block;
-  border-bottom: 2px solid currentcolor;
-}
-
-.title span {
-  font-size: 1.5rem;
-  display: block;
-  margin-bottom: 2rem;
-}
-
-.button-index {
-  font-size: 1rem;
-  padding: 0.5rem 1.5rem;
-  display: inline-block;
-  border: 2px solid currentcolor;
-  min-width: 120px;
-  text-align: center;
-}
-
-.button-index:hover,
-.button-index:focus {
-  color: rgb(142 142 142);
-  border: 2px solid currentcolor;
-}
-
-a.btn-user,
-button.btn-user,
-.uim-dropdown-btn {
-  font-size: 1rem;
-  padding: 0.5rem 1.5rem;
-  display: inline-block;
-  border: 1px solid #434857;
-  min-width: 80px;
-  text-align: center;
-  transition: all 0.3s;
-  background: inherit;
-  outline: none;
-}
-
-a.btn-user:hover,
-button.btn-user:hover,
-.uim-dropdown-btn:hover,
-button.btn-user.index-btn-active {
-  border: 1px solid white;
-  box-shadow: 0 0 5px 1px gray;
-}
-
-.footer {
-  padding: 0 3rem;
-}
-
-.staff,
-.time {
-  text-align: center;
-}
-
-.staff {
-  color: rgb(120 120 120 / 100%);
-}
-
-.staff a {
-  color: #d1335b;
-}
-
-.card,
-.tips,
-.btn-inline,
-.btn-forinput,
-.staff a,
-.input-control input,
-.auth-submit,
-.button-round,
-.button-index,
-input.checkbox,
-.buy-submit,
-.font-light,
-.list-shop,
-.user-config {
-  transition: all 0.3s;
-}
-
-.staff a:hover,
-.staff a:focus {
-  color: #13c2c2;
-}
-
-.input-control input {
-  border: none;
-  border-bottom: 2px solid white;
-  background: none;
-  outline: none;
-}
-
-.input-control input:focus {
-  border-color: #adadad;
-}
-
-.auth-submit,
-.buy-submit {
-  border-radius: 3px;
-  color: #d1335b;
-  background: white;
-  outline: none;
-  border: 1px solid transparent;
-  min-height: 46px;
-  margin-top: 1rem;
-  width: 81%;
-}
-
-.buy-submit {
-  min-height: unset;
-  width: unset;
-  margin: 0;
-  font-size: 16px;
-  padding: 0.05rem 0.5rem 0.2rem;
-  width: 48%;
-  background: rgb(255 255 255 / 0%);
-  border: 1px solid #d1335b;
-}
-
-.buy-submit:hover,
-.buy-submit:focus {
-  background-color: #d1335b;
-  color: white;
-}
-
-.auth-submit:hover,
-.auth-submit:focus, {
-  background-color: #d6d6d6;
-  border-color: #d6d6d6;
-}
-
-.buy-submit:disabled,
-button.tips:disabled {
-  color: #858585;
-  border-color: #858585;
-  cursor: not-allowed;
-  background-color: transparent;
-}
-
-.auth,
-.user,
-.pw {
-  width: 100%;
-}
-
-.user {
-  padding: 0 0.5rem;
-}
-
-.auth h1 {
-  font-size: 3.5rem;
-  margin-top: 0;
-}
-
-.auth h3 {
-  margin: 0;
-}
-
-.page-auth,
-.page-user,
-.page-pw {
-  text-align: center;
-  position: relative;
-}
-
-.page-auth {
-  min-height: 450px;
-}
-
-.input-control {
-  justify-content: center;
-  flex-wrap: wrap;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-.input-control-inner {
-  flex-wrap: wrap;
-  text-align: left;
-}
-
-.input-control > label,
-.input-control > input,
-.input-control > select {
-  flex-basis: 80%;
-  text-align: left;
-}
-
-.input-control-inner > label,
-.input-control-inner > input {
-  flex-basis: 100%;
-}
-
-.twin {
-  justify-content: space-around;
-  align-items: flex-end;
-  padding: 0;
-}
-
-.twin > * {
-  flex-basis: 100%;
-}
-
-.input-control > input,
-.input-control-inner > input,
-.input-control > button {
-  margin-bottom: 1.5rem;
-}
-
-.reg {
-  flex-wrap: wrap;
-}
-
-.reg .input-control {
-  flex-basis: 100%;
-}
-
-input[name] {
-  height: 46px;
-}
-
-select {
-  color: black;
-  height: 36px;
-}
-
-.button-round {
-  justify-content: flex-start;
-  align-items: center;
-  margin-bottom: 1rem;
-  opacity: 0.5;
-}
-
-.button-round .fa-inverse {
-  color: black;
-}
-
-.button-round .fa-stack {
-  margin-right: 0.4rem;
-}
-
-.button-round:hover,
-.button-round:focus {
-  opacity: 1;
-}
-
-.icon-round {
-  background: white;
-  color: black;
-  border-radius: 50%;
-  width: 2rem;
-  height: 2rem;
-  display: inline-block;
-  margin-right: 0.75rem;
-  line-height: 2rem;
-  padding-left: 0.1rem;
-}
-
-#embed-captcha-reg {
-  margin-top: 1em;
-}
-
-.title-back {
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  font-size: 5rem;
-  user-select: none;
-  z-index: -1;
-  color: #2e2e2e;
-  justify-content: center;
-  font-weight: bolder;
-  word-break: break-all;
-}
-
-.basis-max .input-control {
-  width: 100%;
-}
-
-.basis-max .auth-submit {
-  width: 80%;
-}
-
-#code_number,
-.tg-timeout {
-  padding: 0.6rem 1rem;
-  width: 100%;
-  font-size: 1.3em;
-}
-
-.auth-submit.tg-timeout {
-  width: 80%;
-}
-
-.qr-center img {
-  width: 70%;
-  height: 70%;
-  text-align: center;
-}
-
-#register {
-  margin-top: 2rem;
-}
-
-#embed-captcha-reg {
-  min-height: 44px;
-}
-
-.auth-tg {
-  margin-top: 2rem;
-}
-
-.auth-tg p {
-  padding: 0 2rem;
-}
-
-.auth-tg p a {
-  color: #d1335b;
-}
-
-.card {
-  border: 1px solid #434857;
-  margin-bottom: 1.5rem;
-}
-
-.user-btngroup {
-  margin-bottom: 1.5rem;
-}
-
-.user-btngroup a,
-.user-btngroup button {
-  min-width: 120px;
-}
-
-.card:hover,
-.list-shop:hover {
-  border: 1px solid white;
-  box-shadow: 0 0 5px 1px gray;
-}
-
-.card-title {
-  font-size: 18px;
-  margin-bottom: 0.5rem;
-}
-
-.card-body,
-.card-title {
-  padding: 1rem;
-}
-
-.card-body {
-  padding-top: 0;
-}
-
-.font-light {
-  padding-right: 1rem;
-  text-overflow: ellipsis;
-  overflow: hidden;
-  color: #b1b3bb;
-  margin: 0.75rem 0;
-  white-space: nowrap;
-}
-
-.font-light:hover {
-  color: white;
-}
-
-.tips {
-  display: inline-block;
-  margin: 0;
-  padding: 0.2rem 0.7rem;
-  border: 1px solid;
-  font-size: 14px;
-  border-radius: 3px;
-  outline: none;
-}
-
-.tips-blue {
-  color: #1997c6;
-  border-color: #1997c6;
-}
-
-.tips-gold {
-  color: #faad14;
-  border-color: #faad14;
-}
-
-.tips-gold-trans.tips-gold {
-  color: white;
-  background-color: #faad14;
-}
-
-.tips-green {
-  color: #52c41a;
-  border-color: #52c41a;
-}
-
-.tips-cyan {
-  color: #13c2c2;
-  border-color: #13c2c2;
-}
-
-.tips-red {
-  color: #d1335b;
-  border-color: #d1335b;
-}
-
-.font-red-trans {
-  color: #d1335b;
-}
-
-.font-gold-trans {
-  color: #faad14;
-}
-
-.font-green-trans {
-  color: #52c41a;
-}
-
-button.tips {
-  background-color: transparent;
-}
-
-.tips-blue:hover,
-.tips-gold:hover,
-.tips-green:hover,
-.tips-cyan:hover,
-.tips-red:hover {
-  color: white;
-}
-
-.tips-blue:hover {
-  background-color: #1997c6;
-}
-
-.tips-gold:hover {
-  background-color: #faad14;
-}
-
-.tips-green:hover {
-  background-color: #52c41a;
-}
-
-.tips-cyan:hover {
-  background-color: #13c2c2;
-}
-
-.tips-red:hover {
-  background-color: #d1335b;
-}
-
-.ann {
-  background-color: rgb(255 255 255 / 20%);
-  border-radius: 5px;
-  padding: 0.1rem 1rem;
-}
-
-.dl-link button {
-  font-size: 14px;
-}
-
-.input-copy,
-.input-copy > input {
-  width: 100%;
-}
-
-.input-copy input {
-  height: unset;
-  background: rgb(255 255 255 / 0%);
-  cursor: pointer;
-}
-
-.input-copy > div,
-.input-copy input {
-  margin-bottom: 0.7rem;
-}
-
-.input-copy div input {
-  margin-bottom: 0;
-}
-
-.user-invite input,
-.btn-inline {
-  background: rgb(255 255 255 / 0%);
-}
-
-.btn-inline {
-  border: 1px solid #d1335b;
-  color: #d1335b;
-  border-radius: 3px;
-  font-size: 14px;
-  padding: 0.3rem 0.8rem;
-}
-
-.btn-inline:hover {
-  background: #d1335b;
-  color: white;
-}
-
-.invite-number {
-  font-size: 14px;
-}
-
-.invite-tools {
-  position: relative;
-  margin-left: 0.75rem;
-}
-
-.invite-tools .tips.tips-red {
-  position: relative;
-  top: 1px;
-}
-
-.invite-tools.tips-green {
-  padding: 3.5px 0.7rem;
-  bottom: 1px;
-  margin-left: 0.55rem;
-}
-
-.invite-link {
-  width: 100%;
-  cursor: pointer;
-}
-
-.user-invite-title .uim-tooltip {
-  width: 100%;
-}
-
-.user-invite-title .uim-tooltip button {
-  border: 0;
-}
-
-.user-invite-title .tips {
-  position: relative;
-}
-
-.list-shop {
-  padding: 0.5rem;
-  font-size: 1.2rem;
-  border: 1px solid #434857;
-  margin-bottom: 0.7rem;
-  width: 95%;
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-}
-
-.list-shop:hover {
-  transform: translate3d(1rem, 0, 0);
-}
-
-.coupon-checker {
-  height: 30px;
-  background-color: rgb(255 255 255 / 0%);
-  padding: 0 0.5rem;
-  margin-bottom: 0.5rem;
-}
-
-.coupon-checker:hover,
-.coupon-checker,
-.btn-forinput {
-  background-color: rgb(255 255 255 / 0%);
-}
-
-.btn-forinput {
-  color: #1997c6;
-  border: none;
-  outline: none;
-  position: absolute;
-  top: 0.3rem;
-  font-size: 14px;
-  z-index: 1;
-}
-
-.btn-forinput:hover {
-  color: white;
-}
-
-button[name="check"] {
-  right: 1.5rem;
-}
-
-button[name="reset"] {
-  right: 0.2rem;
-}
-
-.order-checker-content {
-  margin: 0.5rem 0;
-}
-
-.link-reset button {
-  background-color: rgb(255 255 255 / 0%);
-  outline: none;
-}
-
-.link-reset .uim-tooltip-top {
-  width: 100%;
-  background-color: white;
-  color: #434857;
-}
-
-.link-reset .uim-tooltip-top button {
-  border: 0;
-}
-
-.sublink {
-  font-size: 14px;
-  padding: 0 1rem;
-  word-break: break-all;
-}
-
-.sublink-reset.tips-blue,
-.invite-reset.tips-blue {
-  background-color: #1997c6;
-  color: white;
-}
-
-@media screen and (min-width: 35.5em) {
-  .user {
-    padding: 0;
-  }
-
-  .auth-tg {
-    margin-top: 0;
-  }
-
-  .auth-sm a {
-    min-width: 120px;
-  }
-
-  .footer {
-    margin-top: 3rem;
-  }
-
-  .title-left a {
-    margin-bottom: 0;
-  }
-
-  .logo-sm,
-  .auth-sm {
-    padding: 1rem 3rem;
-    margin-top: 0.8rem;
-  }
-
-  .title h1 {
-    font-size: 4rem;
-  }
-
-  .staff {
-    text-align: left;
-  }
-
-  .time {
-    text-align: right;
-  }
-
-  .auth-submit {
-    width: 32%;
-  }
-
-  .auth-links {
-    padding: 0;
-  }
-
-  .auth-links a {
-    flex-basis: 100%;
-  }
-
-  .title-back {
-    font-size: 8.5rem;
-  }
-
-  .auth > div:first-of-type {
-    padding: 0 0 0 5%;
-  }
-
-  .usrcenter {
-    padding: 0 10%;
-  }
-
-  .enableCrisp {
-    padding-right: 3rem;
-  }
-
-  .ann,
-  .user-shop {
-    max-height: 385px;
-    overflow: auto;
-  }
-
-  .link-reset .uim-tooltip-top {
-    width: 230px;
-  }
-
-  .invite-link {
-    width: 450px;
-  }
-
-  .user-invite-title .tips {
-    margin-bottom: 0.5rem;
-    margin-left: 0.75rem;
-  }
-
-  .margin-nobottom-sm {
-    margin-bottom: 0 !important;
-  }
-}
-
-@media screen and (min-width: 48em) {
-  .title h1 {
-    font-size: 5rem;
-  }
-
-  .twin {
-    justify-content: space-around;
-    align-items: flex-end;
-    padding: 0 2.5%;
-  }
-
-  .twin > * {
-    flex-basis: 39%;
-  }
-
-  .input-control {
-    width: 41%;
-  }
-
-  .reg .input-control {
-    flex-basis: 48%;
-  }
-}
-
-@media screen and (min-width: 64em) {
-  .title {
-    width: 75%;
-    padding-left: 5%;
-  }
-
-  .auth {
-    width: 90%;
-  }
-
-  .title-back {
-    font-size: 12rem;
-  }
-}
-
-@media screen and (min-width: 80em) {
-  .title h1 {
-    padding-right: 4rem;
-  }
-
-  .title-left {
-    text-align: left;
-  }
-
-  .logo-bg .logo {
-    display: unset;
-    margin-left: 10rem;
-  }
-}
-
-@media screen and (max-width: 35.5em) {
-  .hide-sm {
-    display: none !important;
-  }
-}
-
-/* 组件 */
-
-/* messager */
-.uim-messager {
-  position: fixed;
-  top: 6rem;
-  left: 0;
-  right: 0;
-  margin-right: auto;
-  margin-left: auto;
-  display: inline-block;
-  text-align: center;
-  border-radius: 3px;
-  z-index: 10;
-  padding: 7px 10px;
-  color: black;
-  background: white;
-  width: 200px;
-  min-height: 36px;
-  box-shadow: 0 0 5px 1px gray;
-}
-
-.uim-messager span {
-  margin-left: 0.6rem;
-}
-
-.uim-messager a {
-  color: #d1335b;
-}
-
-/* checkbox */
-input[type="checkbox"].uim-checkbox {
-  width: 16px;
-  height: 16px;
-  opacity: 0;
-  position: relative;
-  bottom: 0.1rem;
-}
-
-.uim-check-content {
-  font-size: 0.9rem;
-  position: relative;
-  left: 0.2rem;
-  top: 1px;
-}
-
-.uim-checkbox-icon {
-  position: absolute;
-  bottom: 1px;
-  font-size: 14px;
-}
-
-.uim-check {
-  position: relative;
-  top: 1px;
-  height: 14px;
-  width: 15px;
-  background: aliceblue;
-  transition: all 0.3s;
-}
-
-.uimchecked {
-  background: #d1335b;
-  box-shadow: 0 0 5px 1px gray;
-}
-
-/* dropdown */
-
-.uim-dropdown {
-  position: relative;
-  display: inline-block;
-}
-
-.uim-dropdown-menu {
-  position: absolute;
-  top: 100%;
-  min-width: 120px;
-  cursor: pointer;
-  background: #1d1d1d;
-  z-index: 2;
-}
-
-.uim-dropdown-menu ul {
-  margin: 0;
-  width: 100%;
-  padding: 0;
-  text-align: center;
-  border: 1px solid #1997c6;
-  box-shadow: 0 0 5px 1px gray;
-}
-
-.uim-dropdown-menu li {
-  list-style: none;
-  width: 100%;
-  padding: 0.2rem 0;
-  transition: all 0.3s;
-}
-
-.uim-dropdown-menu li a {
-  display: block;
-  width: 100%;
-  height: 100%;
-}
-
-.uim-dropdown-menu li:hover {
-  background: #1997c6;
-  transition: all 0.3s;
-}
-
-.uim-dropdown-btn {
-  min-width: 120px;
-}
-
-.dropdown-fade-enter-active,
-.dropdown-fade-leave-active {
-  transition: all 0.2s ease;
-}
-
-.dropdown-fade-enter,
-.dropdown-fade-leave-to {
-  transform-origin: top;
-  transform: scaleY(0);
-  opacity: 0;
-}
-
-.dl-link .uim-dropdown-btn,
-.dl-link .uim-dropdown-menu {
-  min-width: unset;
-  width: 100%;
-}
-
-/* modal */
-
-.uim-modal-mask,
-.uim-modal {
-  position: fixed;
-  top: 0;
-  left: 0;
-  height: 100vh;
-  width: 100vw;
-  background-color: black;
-  opacity: 0.4;
-  z-index: 20;
-}
-
-.uim-modal {
-  opacity: 1;
-  background-color: unset;
-  display: flex;
-  justify-content: center;
-}
-
-.uim-modal-card {
-  z-index: 21;
-  margin-top: 6rem;
-  background-color: white;
-  width: 450px;
-  border-radius: 7px;
-  color: #434857;
-  margin-bottom: auto;
-  box-shadow: 0 0 5px 2px gray;
-  position: relative;
-}
-
-.uim-modal-title {
-  border-bottom: 1px solid;
-}
-
-.uim-modal-title h3 {
-  padding: 0.22rem 1.5rem;
-  margin: 1rem 0;
-}
-
-.uim-modal-body {
-  font-size: 18px;
-  padding: 1rem 0 1rem 2rem;
-}
-
-.uim-modal-body div {
-  flex-basis: 100%;
-}
-
-.uim-modal-footer {
-  display: flex;
-  padding: 0.75rem 0;
-  border-top: 1px solid;
-  align-items: center;
-}
-
-.uim-modal-footer div {
-  flex-basis: 50%;
-}
-
-.uim-modal-footer > div:first-of-type {
-  padding-left: 1.5rem;
-}
-
-.uim-modal-footer > div:last-of-type {
-  text-align: right;
-}
-
-button.uim-modal-confirm {
-  margin-right: 1.5rem;
-  padding: 0.5rem 0.4rem;
-  min-width: 80px;
-  background-color: #2d8cf0;
-  border-radius: 4px;
-  border: 1px solid;
-  color: white;
-}
-
-.uim-modal-close {
-  position: absolute;
-  right: 0.75rem;
-  top: 0.45rem;
-  font-size: 1.5rem;
-  padding: 0.5rem 0.75rem;
-  cursor: pointer;
-}
-
-/* switch */
-
-.uim-switch-body {
-  background-color: #ccc;
-  border-radius: 25px;
-  cursor: pointer;
-}
-
-.uim-switch-body::after {
-  content: "";
-  height: 20px;
-  width: 20px;
-  border-radius: 50%;
-  position: absolute;
-  background-color: white;
-  top: 2px;
-  left: 2px;
-}
-
-.uim-switch-body,
-.uim-switch-body::after {
-  transition: all 0.3s;
-  display: inline-block;
-}
-
-.uim-switch-body input,
-.uim-switch-body {
-  height: 24px;
-  width: 46px;
-  position: relative;
-}
-
-.uim-switch-body input {
-  z-index: 1;
-  opacity: 0;
-}
-
-.uim-switch-body-active::after {
-  transform: translateX(22px);
-}
-
-.uim-switch-body-active {
-  background-color: #2d8cf0;
-}
-
-.switch-text {
-  font-size: 14px;
-}
-
-/* tooltip */
-
-.uim-tooltip {
-  position: absolute;
-  z-index: 2;
-  box-shadow: 0 0 5px 1px gray;
-  border-radius: 4px;
-  background: white;
-  color: #434857;
-}
-
-.uim-tooltip-top {
-  bottom: 125%;
-  padding: 0.3rem;
-}
-
-.uim-tooltip.uim-tooltip-top::after {
-  content: "";
-  display: inline-block;
-  position: absolute;
-  bottom: -7px;
-  width: 15px;
-  height: 15px;
-  background-color: white;
-  transform: rotateZ(45deg);
-  z-index: -1;
-}
-
-/* anchor */
-
-.uim-anchor {
-  position: absolute;
-  right: 1rem;
-}
-
-.uim-anchor ul {
-  background-color: transparent;
-  margin: 0;
-}
-
-.uim-anchor li {
-  list-style: none;
-  width: 1.6rem;
-  height: 1.75rem;
-  display: block;
-  background-color: transparent;
-  border: 2px solid #434857;
-  border-top-color: transparent;
-  transition: all 0.3s;
-  cursor: pointer;
-  z-index: 1;
-}
-
-.uim-anchor li:hover {
-  border-color: #7cb7f7;
-  box-shadow: 0 0 5px 1px #a1e2e2;
-  border-top-color: #7cb7f7;
-}
-
-.uim-anchor li.uim-anchor-active {
-  background-color: #1997c6;
-  border-color: #7cb7f7;
-  box-shadow: 0 0 5px 0 #a1e2e2;
-  border-top-color: #7cb7f7;
-}
-
-.uim-anchor li:last-of-type {
-  border-radius: 0 0 12px 12px;
-}
-
-/* progressbar */
-
-.uim-progressbar {
-  display: flex;
-  align-items: center;
-  flex-wrap: wrap;
-}
-
-.uim-progressbar-inner,
-.uim-progressbar-progress,
-.uim-progressbar-progress::before {
-  display: inline-block;
-  height: 8px;
-  width: 100%;
-  background-color: #434857;
-  border-radius: 5px;
-  position: relative;
-  transition: all 0.3s;
-}
-
-.uim-progressbar-inner {
-  width: 80%;
-}
-
-.uim-progressbar-progress,
-.uim-progressbar-progress::before {
-  position: absolute;
-  left: 0;
-  top: 0;
-  width: 50%;
-  z-index: 3;
-}
-
-.uim-progressbar-progress::before {
-  content: "";
-  opacity: 0;
-  width: unset;
-  z-index: 4;
-  background-color: #fff;
-  border-radius: 5px;
-  animation: uim-progress-active 2s ease-in-out infinite;
-  animation: uim-progress-active 2s ease-in-out infinite;
-}
-
-.uim-progressbar .uim-progressbar-blue {
-  background-color: #2d8cf0;
-  box-shadow: 0 0 7px 0 #13c2c2;
-}
-
-.uim-progressbar .uim-progressbar-gold {
-  background-color: #e8a114;
-  box-shadow: 0 0 7px 0 #d4c00c;
-}
-
-.uim-progressbar .uim-progressbar-red {
-  background-color: #d1335b;
-  box-shadow: 0 0 7px 0 rgb(177 15 56);
-}
-
-.uim-progressbar-progress.uim-progressbar-fold {
-  z-index: 2;
-}
-
-.uim-progressbar-progress.uim-progressbar-fold.uim-progressbar-red {
-  box-shadow: 0 0 7px 1px indianred;
-}
-
-.uim-progressbar-sub .uim-progressbar-inner,
-.uim-progressbar-sub .uim-progressbar-progress,
-.uim-progressbar-sub .uim-progressbar-progress::before {
-  height: 5px;
-}
-
-.uim-progressbar-label {
-  font-size: 12px;
-  margin-bottom: 0.2rem;
-  width: 100%;
-}
-
-.uim-progress-text {
-  z-index: 5;
-  width: 100%;
-  position: relative;
-  display: flex;
-  justify-content: center;
-  font-size: 0.5rem;
-  top: -50%;
-}
-
-.uim-progressbar-sub .uim-progress-text {
-  top: -115%;
-}
-
-.uim-progress-sign {
-  font-size: 0.5rem;
-  width: 20%;
-  text-align: center;
-}
-
-@keyframes uim-progress-active {
-  from {
-    opacity: 0.3;
-    width: 0;
-  }
-
-  to {
-    opacity: 0;
-    width: 100%;
-  }
-}
-
-/* loading 动画 */
-.spinner {
-  width: 60px;
-  height: 60px;
-  background-color: #fff;
-  margin: 100px auto;
-  animation: rotateplane 1.2s infinite ease-in-out;
-  animation: rotateplane 1.2s infinite ease-in-out;
-}
-
-@keyframes rotateplane {
-  0% {
-    transform: perspective(120px);
-  }
-
-  50% {
-    transform: perspective(120px) rotateY(180deg);
-  }
-
-  100% {
-    transform: perspective(120px) rotateY(180deg) rotateX(180deg);
-  }
-}
-
-@keyframes rotateplane {
-  0% {
-    transform: perspective(120px) rotateX(0deg) rotateY(0deg);
-    transform: perspective(120px) rotateX(0deg) rotateY(0deg);
-  }
-
-  50% {
-    transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
-    transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
-  }
-
-  100% {
-    transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
-    transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
-  }
-}
-
-.spinnercube {
-  margin: 100px auto;
-  width: 32px;
-  height: 32px;
-  position: relative;
-  transition: all 0.3s;
-}
-
-.cube1,
-.cube2 {
-  background-color: white;
-  width: 30px;
-  height: 30px;
-  position: absolute;
-  top: 0;
-  left: 0;
-  animation: cubemove 1.8s infinite ease-in-out;
-  animation: cubemove 1.8s infinite ease-in-out;
-}
-
-.cube2 {
-  animation-delay: -0.9s;
-  animation-delay: -0.9s;
-}
-
-@keyframes cubemove {
-  25% {
-    transform: translateX(42px) rotate(-90deg) scale(0.5);
-  }
-
-  50% {
-    transform: translateX(42px) translateY(42px) rotate(-180deg);
-  }
-
-  75% {
-    transform: translateX(0) translateY(42px) rotate(-270deg) scale(0.5);
-  }
-
-  100% {
-    transform: rotate(-360deg);
-  }
-}
-
-@keyframes cubemove {
-  25% {
-    transform: translateX(42px) rotate(-90deg) scale(0.5);
-    transform: translateX(42px) rotate(-90deg) scale(0.5);
-  }
-
-  50% {
-    transform: translateX(42px) translateY(42px) rotate(-179deg);
-    transform: translateX(42px) translateY(42px) rotate(-179deg);
-  }
-
-  50.1% {
-    transform: translateX(42px) translateY(42px) rotate(-180deg);
-    transform: translateX(42px) translateY(42px) rotate(-180deg);
-  }
-
-  75% {
-    transform: translateX(0) translateY(42px) rotate(-270deg) scale(0.5);
-    transform: translateX(0) translateY(42px) rotate(-270deg) scale(0.5);
-  }
-
-  100% {
-    transform: rotate(-360deg);
-    transform: rotate(-360deg);
-  }
-}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
public/theme/tabler/css/index.min.css


+ 0 - 679
public/theme/tabler/css/index_base.css

@@ -1,679 +0,0 @@
-/*!
-Pure v1.0.0
-Copyright 2013 Yahoo!
-Licensed under the BSD License.
-https://github.com/yahoo/pure/blob/master/LICENSE.md
-*/
-
-/*!
-normalize.css v^3.0 | MIT License | git.io/normalize
-Copyright (c) Nicolas Gallagher and Jonathan Neal
-*/
-/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */* { box-sizing: border-box; }
-
-img,
-legend { border: 0; }
-
-legend,
-td,
-th { padding: 0; }
-html { font-family: sans-serif; text-size-adjust: 100%; text-size-adjust: 100%; }
-body { margin: 0; }
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary { display: block; }
-
-audio,
-canvas,
-progress,
-video { display: inline-block; vertical-align: baseline; }
-audio:not([controls]) { display: none; height: 0; }
-
-[hidden],
-template { display: none; }
-a { background-color: transparent; }
-
-a:active,
-a:hover { outline: 0; }
-abbr[title] { border-bottom: 1px dotted; }
-
-b,
-optgroup,
-strong { font-weight: 700; }
-dfn { font-style: italic; }
-h1 { font-size: 2em; margin: 0.67em 0; }
-mark { background: #ff0; color: #000; }
-small { font-size: 80%; }
-
-sub,
-sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
-sup { top: -0.5em; }
-sub { bottom: -0.25em; }
-svg:not(:root) { overflow: hidden; }
-figure { margin: 1em 40px; }
-hr { box-sizing: content-box; height: 0; }
-
-pre,
-textarea { overflow: auto; }
-
-code,
-kbd,
-pre,
-samp { font-family: monospace, monospace; font-size: 1em; }
-
-button,
-input,
-optgroup,
-select,
-textarea { color: inherit; font: inherit; margin: 0; }
-button { overflow: visible; }
-
-button,
-select { text-transform: none; }
-
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] { appearance: button; cursor: pointer; }
-
-button[disabled],
-html input[disabled] { cursor: default; }
-
-button::-moz-focus-inner,
-input::-moz-focus-inner { border: 0; padding: 0; }
-input { line-height: normal; }
-
-input[type="checkbox"],
-input[type="radio"] { box-sizing: border-box; padding: 0; }
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button { height: auto; }
-input[type="search"] { appearance: textfield; box-sizing: content-box; }
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration { appearance: none; }
-fieldset { border: 1px solid silver; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
-table { border-collapse: collapse; border-spacing: 0; }
-
-.hidden,
-[hidden] { display: none !important; }
-.pure-img { max-width: 100%; height: auto; display: block; }
-
-/*!
-grid.min.css
-*/
-.pure-g { letter-spacing: -0.31em; text-rendering: optimizespeed; font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif; display: box; display: flex; display: flexbox; display: flex; flex-flow: row wrap; flex-flow: row wrap; flex-flow: row wrap; align-content: flex-start; -ms-flex-line-pack: start; align-content: flex-start; }
-
-@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { table .pure-g { display: block; } }
-
-.opera-only :-o-prefocus,
-.pure-g { word-spacing: -0.43em; }
-
-.pure-u,
-.pure-u-1,
-.pure-u-1-1,
-.pure-u-1-12,
-.pure-u-1-2,
-.pure-u-1-24,
-.pure-u-1-3,
-.pure-u-1-4,
-.pure-u-1-5,
-.pure-u-1-6,
-.pure-u-1-8,
-.pure-u-10-24,
-.pure-u-11-12,
-.pure-u-11-24,
-.pure-u-12-24,
-.pure-u-13-24,
-.pure-u-14-24,
-.pure-u-15-24,
-.pure-u-16-24,
-.pure-u-17-24,
-.pure-u-18-24,
-.pure-u-19-24,
-.pure-u-2-24,
-.pure-u-2-3,
-.pure-u-2-5,
-.pure-u-20-24,
-.pure-u-21-24,
-.pure-u-22-24,
-.pure-u-23-24,
-.pure-u-24-24,
-.pure-u-3-24,
-.pure-u-3-4,
-.pure-u-3-5,
-.pure-u-3-8,
-.pure-u-4-24,
-.pure-u-4-5,
-.pure-u-5-12,
-.pure-u-5-24,
-.pure-u-5-5,
-.pure-u-5-6,
-.pure-u-5-8,
-.pure-u-6-24,
-.pure-u-7-12,
-.pure-u-7-24,
-.pure-u-7-8,
-.pure-u-8-24,
-.pure-u-9-24 { display: inline-block; zoom: 1; letter-spacing: normal; word-spacing: normal; vertical-align: top; text-rendering: auto; }
-.pure-g [class*="pure-u"] { font-family: sans-serif; }
-.pure-u-1-24 { width: 4.1667%; }
-
-.pure-u-1-12,
-.pure-u-2-24 { width: 8.3333%; }
-
-.pure-u-1-8,
-.pure-u-3-24 { width: 12.5%; }
-
-.pure-u-1-6,
-.pure-u-4-24 { width: 16.6667%; }
-.pure-u-1-5 { width: 20%; }
-.pure-u-5-24 { width: 20.8333%; }
-
-.pure-u-1-4,
-.pure-u-6-24 { width: 25%; }
-.pure-u-7-24 { width: 29.1667%; }
-
-.pure-u-1-3,
-.pure-u-8-24 { width: 33.3333%; }
-
-.pure-u-3-8,
-.pure-u-9-24 { width: 37.5%; }
-.pure-u-2-5 { width: 40%; }
-
-.pure-u-10-24,
-.pure-u-5-12 { width: 41.6667%; }
-.pure-u-11-24 { width: 45.8333%; }
-
-.pure-u-1-2,
-.pure-u-12-24 { width: 50%; }
-.pure-u-13-24 { width: 54.1667%; }
-
-.pure-u-14-24,
-.pure-u-7-12 { width: 58.3333%; }
-.pure-u-3-5 { width: 60%; }
-
-.pure-u-15-24,
-.pure-u-5-8 { width: 62.5%; }
-
-.pure-u-16-24,
-.pure-u-2-3 { width: 66.6667%; }
-.pure-u-17-24 { width: 70.8333%; }
-
-.pure-u-18-24,
-.pure-u-3-4 { width: 75%; }
-.pure-u-19-24 { width: 79.1667%; }
-.pure-u-4-5 { width: 80%; }
-
-.pure-u-20-24,
-.pure-u-5-6 { width: 83.3333%; }
-
-.pure-u-21-24,
-.pure-u-7-8 { width: 87.5%; }
-
-.pure-u-11-12,
-.pure-u-22-24 { width: 91.6667%; }
-.pure-u-23-24 { width: 95.8333%; }
-
-.pure-u-1,
-.pure-u-1-1,
-.pure-u-24-24,
-.pure-u-5-5 { width: 100%; }
-
-/*!
-grid-responsive.min.css
-*/
-@media screen and (min-width: 35.5em) {
-  .pure-u-sm-1,
-  .pure-u-sm-1-1,
-  .pure-u-sm-1-12,
-  .pure-u-sm-1-2,
-  .pure-u-sm-1-24,
-  .pure-u-sm-1-3,
-  .pure-u-sm-1-4,
-  .pure-u-sm-1-5,
-  .pure-u-sm-1-6,
-  .pure-u-sm-1-8,
-  .pure-u-sm-10-24,
-  .pure-u-sm-11-12,
-  .pure-u-sm-11-24,
-  .pure-u-sm-12-24,
-  .pure-u-sm-13-24,
-  .pure-u-sm-14-24,
-  .pure-u-sm-15-24,
-  .pure-u-sm-16-24,
-  .pure-u-sm-17-24,
-  .pure-u-sm-18-24,
-  .pure-u-sm-19-24,
-  .pure-u-sm-2-24,
-  .pure-u-sm-2-3,
-  .pure-u-sm-2-5,
-  .pure-u-sm-20-24,
-  .pure-u-sm-21-24,
-  .pure-u-sm-22-24,
-  .pure-u-sm-23-24,
-  .pure-u-sm-24-24,
-  .pure-u-sm-3-24,
-  .pure-u-sm-3-4,
-  .pure-u-sm-3-5,
-  .pure-u-sm-3-8,
-  .pure-u-sm-4-24,
-  .pure-u-sm-4-5,
-  .pure-u-sm-5-12,
-  .pure-u-sm-5-24,
-  .pure-u-sm-5-5,
-  .pure-u-sm-5-6,
-  .pure-u-sm-5-8,
-  .pure-u-sm-6-24,
-  .pure-u-sm-7-12,
-  .pure-u-sm-7-24,
-  .pure-u-sm-7-8,
-  .pure-u-sm-8-24,
-  .pure-u-sm-9-24 { display: inline-block; zoom: 1; letter-spacing: normal; word-spacing: normal; vertical-align: top; text-rendering: auto; }
-  .pure-u-sm-1-24 { width: 4.1667%; }
-
-  .pure-u-sm-1-12,
-  .pure-u-sm-2-24 { width: 8.3333%; }
-
-  .pure-u-sm-1-8,
-  .pure-u-sm-3-24 { width: 12.5%; }
-
-  .pure-u-sm-1-6,
-  .pure-u-sm-4-24 { width: 16.6667%; }
-  .pure-u-sm-1-5 { width: 20%; }
-  .pure-u-sm-5-24 { width: 20.8333%; }
-
-  .pure-u-sm-1-4,
-  .pure-u-sm-6-24 { width: 25%; }
-  .pure-u-sm-7-24 { width: 29.1667%; }
-
-  .pure-u-sm-1-3,
-  .pure-u-sm-8-24 { width: 33.3333%; }
-
-  .pure-u-sm-3-8,
-  .pure-u-sm-9-24 { width: 37.5%; }
-  .pure-u-sm-2-5 { width: 40%; }
-
-  .pure-u-sm-10-24,
-  .pure-u-sm-5-12 { width: 41.6667%; }
-  .pure-u-sm-11-24 { width: 45.8333%; }
-
-  .pure-u-sm-1-2,
-  .pure-u-sm-12-24 { width: 50%; }
-  .pure-u-sm-13-24 { width: 54.1667%; }
-
-  .pure-u-sm-14-24,
-  .pure-u-sm-7-12 { width: 58.3333%; }
-  .pure-u-sm-3-5 { width: 60%; }
-
-  .pure-u-sm-15-24,
-  .pure-u-sm-5-8 { width: 62.5%; }
-
-  .pure-u-sm-16-24,
-  .pure-u-sm-2-3 { width: 66.6667%; }
-  .pure-u-sm-17-24 { width: 70.8333%; }
-
-  .pure-u-sm-18-24,
-  .pure-u-sm-3-4 { width: 75%; }
-  .pure-u-sm-19-24 { width: 79.1667%; }
-  .pure-u-sm-4-5 { width: 80%; }
-
-  .pure-u-sm-20-24,
-  .pure-u-sm-5-6 { width: 83.3333%; }
-
-  .pure-u-sm-21-24,
-  .pure-u-sm-7-8 { width: 87.5%; }
-
-  .pure-u-sm-11-12,
-  .pure-u-sm-22-24 { width: 91.6667%; }
-  .pure-u-sm-23-24 { width: 95.8333%; }
-
-  .pure-u-sm-1,
-  .pure-u-sm-1-1,
-  .pure-u-sm-24-24,
-  .pure-u-sm-5-5 { width: 100%; }
-}
-
-@media screen and (min-width: 48em) {
-  .pure-u-md-1,
-  .pure-u-md-1-1,
-  .pure-u-md-1-12,
-  .pure-u-md-1-2,
-  .pure-u-md-1-24,
-  .pure-u-md-1-3,
-  .pure-u-md-1-4,
-  .pure-u-md-1-5,
-  .pure-u-md-1-6,
-  .pure-u-md-1-8,
-  .pure-u-md-10-24,
-  .pure-u-md-11-12,
-  .pure-u-md-11-24,
-  .pure-u-md-12-24,
-  .pure-u-md-13-24,
-  .pure-u-md-14-24,
-  .pure-u-md-15-24,
-  .pure-u-md-16-24,
-  .pure-u-md-17-24,
-  .pure-u-md-18-24,
-  .pure-u-md-19-24,
-  .pure-u-md-2-24,
-  .pure-u-md-2-3,
-  .pure-u-md-2-5,
-  .pure-u-md-20-24,
-  .pure-u-md-21-24,
-  .pure-u-md-22-24,
-  .pure-u-md-23-24,
-  .pure-u-md-24-24,
-  .pure-u-md-3-24,
-  .pure-u-md-3-4,
-  .pure-u-md-3-5,
-  .pure-u-md-3-8,
-  .pure-u-md-4-24,
-  .pure-u-md-4-5,
-  .pure-u-md-5-12,
-  .pure-u-md-5-24,
-  .pure-u-md-5-5,
-  .pure-u-md-5-6,
-  .pure-u-md-5-8,
-  .pure-u-md-6-24,
-  .pure-u-md-7-12,
-  .pure-u-md-7-24,
-  .pure-u-md-7-8,
-  .pure-u-md-8-24,
-  .pure-u-md-9-24 { display: inline-block; zoom: 1; letter-spacing: normal; word-spacing: normal; vertical-align: top; text-rendering: auto; }
-  .pure-u-md-1-24 { width: 4.1667%; }
-
-  .pure-u-md-1-12,
-  .pure-u-md-2-24 { width: 8.3333%; }
-
-  .pure-u-md-1-8,
-  .pure-u-md-3-24 { width: 12.5%; }
-
-  .pure-u-md-1-6,
-  .pure-u-md-4-24 { width: 16.6667%; }
-  .pure-u-md-1-5 { width: 20%; }
-  .pure-u-md-5-24 { width: 20.8333%; }
-
-  .pure-u-md-1-4,
-  .pure-u-md-6-24 { width: 25%; }
-  .pure-u-md-7-24 { width: 29.1667%; }
-
-  .pure-u-md-1-3,
-  .pure-u-md-8-24 { width: 33.3333%; }
-
-  .pure-u-md-3-8,
-  .pure-u-md-9-24 { width: 37.5%; }
-  .pure-u-md-2-5 { width: 40%; }
-
-  .pure-u-md-10-24,
-  .pure-u-md-5-12 { width: 41.6667%; }
-  .pure-u-md-11-24 { width: 45.8333%; }
-
-  .pure-u-md-1-2,
-  .pure-u-md-12-24 { width: 50%; }
-  .pure-u-md-13-24 { width: 54.1667%; }
-
-  .pure-u-md-14-24,
-  .pure-u-md-7-12 { width: 58.3333%; }
-  .pure-u-md-3-5 { width: 60%; }
-
-  .pure-u-md-15-24,
-  .pure-u-md-5-8 { width: 62.5%; }
-
-  .pure-u-md-16-24,
-  .pure-u-md-2-3 { width: 66.6667%; }
-  .pure-u-md-17-24 { width: 70.8333%; }
-
-  .pure-u-md-18-24,
-  .pure-u-md-3-4 { width: 75%; }
-  .pure-u-md-19-24 { width: 79.1667%; }
-  .pure-u-md-4-5 { width: 80%; }
-
-  .pure-u-md-20-24,
-  .pure-u-md-5-6 { width: 83.3333%; }
-
-  .pure-u-md-21-24,
-  .pure-u-md-7-8 { width: 87.5%; }
-
-  .pure-u-md-11-12,
-  .pure-u-md-22-24 { width: 91.6667%; }
-  .pure-u-md-23-24 { width: 95.8333%; }
-
-  .pure-u-md-1,
-  .pure-u-md-1-1,
-  .pure-u-md-24-24,
-  .pure-u-md-5-5 { width: 100%; }
-}
-
-@media screen and (min-width: 64em) {
-  .pure-u-lg-1,
-  .pure-u-lg-1-1,
-  .pure-u-lg-1-12,
-  .pure-u-lg-1-2,
-  .pure-u-lg-1-24,
-  .pure-u-lg-1-3,
-  .pure-u-lg-1-4,
-  .pure-u-lg-1-5,
-  .pure-u-lg-1-6,
-  .pure-u-lg-1-8,
-  .pure-u-lg-10-24,
-  .pure-u-lg-11-12,
-  .pure-u-lg-11-24,
-  .pure-u-lg-12-24,
-  .pure-u-lg-13-24,
-  .pure-u-lg-14-24,
-  .pure-u-lg-15-24,
-  .pure-u-lg-16-24,
-  .pure-u-lg-17-24,
-  .pure-u-lg-18-24,
-  .pure-u-lg-19-24,
-  .pure-u-lg-2-24,
-  .pure-u-lg-2-3,
-  .pure-u-lg-2-5,
-  .pure-u-lg-20-24,
-  .pure-u-lg-21-24,
-  .pure-u-lg-22-24,
-  .pure-u-lg-23-24,
-  .pure-u-lg-24-24,
-  .pure-u-lg-3-24,
-  .pure-u-lg-3-4,
-  .pure-u-lg-3-5,
-  .pure-u-lg-3-8,
-  .pure-u-lg-4-24,
-  .pure-u-lg-4-5,
-  .pure-u-lg-5-12,
-  .pure-u-lg-5-24,
-  .pure-u-lg-5-5,
-  .pure-u-lg-5-6,
-  .pure-u-lg-5-8,
-  .pure-u-lg-6-24,
-  .pure-u-lg-7-12,
-  .pure-u-lg-7-24,
-  .pure-u-lg-7-8,
-  .pure-u-lg-8-24,
-  .pure-u-lg-9-24 { display: inline-block; zoom: 1; letter-spacing: normal; word-spacing: normal; vertical-align: top; text-rendering: auto; }
-  .pure-u-lg-1-24 { width: 4.1667%; }
-
-  .pure-u-lg-1-12,
-  .pure-u-lg-2-24 { width: 8.3333%; }
-
-  .pure-u-lg-1-8,
-  .pure-u-lg-3-24 { width: 12.5%; }
-
-  .pure-u-lg-1-6,
-  .pure-u-lg-4-24 { width: 16.6667%; }
-  .pure-u-lg-1-5 { width: 20%; }
-  .pure-u-lg-5-24 { width: 20.8333%; }
-
-  .pure-u-lg-1-4,
-  .pure-u-lg-6-24 { width: 25%; }
-  .pure-u-lg-7-24 { width: 29.1667%; }
-
-  .pure-u-lg-1-3,
-  .pure-u-lg-8-24 { width: 33.3333%; }
-
-  .pure-u-lg-3-8,
-  .pure-u-lg-9-24 { width: 37.5%; }
-  .pure-u-lg-2-5 { width: 40%; }
-
-  .pure-u-lg-10-24,
-  .pure-u-lg-5-12 { width: 41.6667%; }
-  .pure-u-lg-11-24 { width: 45.8333%; }
-
-  .pure-u-lg-1-2,
-  .pure-u-lg-12-24 { width: 50%; }
-  .pure-u-lg-13-24 { width: 54.1667%; }
-
-  .pure-u-lg-14-24,
-  .pure-u-lg-7-12 { width: 58.3333%; }
-  .pure-u-lg-3-5 { width: 60%; }
-
-  .pure-u-lg-15-24,
-  .pure-u-lg-5-8 { width: 62.5%; }
-
-  .pure-u-lg-16-24,
-  .pure-u-lg-2-3 { width: 66.6667%; }
-  .pure-u-lg-17-24 { width: 70.8333%; }
-
-  .pure-u-lg-18-24,
-  .pure-u-lg-3-4 { width: 75%; }
-  .pure-u-lg-19-24 { width: 79.1667%; }
-  .pure-u-lg-4-5 { width: 80%; }
-
-  .pure-u-lg-20-24,
-  .pure-u-lg-5-6 { width: 83.3333%; }
-
-  .pure-u-lg-21-24,
-  .pure-u-lg-7-8 { width: 87.5%; }
-
-  .pure-u-lg-11-12,
-  .pure-u-lg-22-24 { width: 91.6667%; }
-  .pure-u-lg-23-24 { width: 95.8333%; }
-
-  .pure-u-lg-1,
-  .pure-u-lg-1-1,
-  .pure-u-lg-24-24,
-  .pure-u-lg-5-5 { width: 100%; }
-}
-
-@media screen and (min-width: 80em) {
-  .pure-u-xl-1,
-  .pure-u-xl-1-1,
-  .pure-u-xl-1-12,
-  .pure-u-xl-1-2,
-  .pure-u-xl-1-24,
-  .pure-u-xl-1-3,
-  .pure-u-xl-1-4,
-  .pure-u-xl-1-5,
-  .pure-u-xl-1-6,
-  .pure-u-xl-1-8,
-  .pure-u-xl-10-24,
-  .pure-u-xl-11-12,
-  .pure-u-xl-11-24,
-  .pure-u-xl-12-24,
-  .pure-u-xl-13-24,
-  .pure-u-xl-14-24,
-  .pure-u-xl-15-24,
-  .pure-u-xl-16-24,
-  .pure-u-xl-17-24,
-  .pure-u-xl-18-24,
-  .pure-u-xl-19-24,
-  .pure-u-xl-2-24,
-  .pure-u-xl-2-3,
-  .pure-u-xl-2-5,
-  .pure-u-xl-20-24,
-  .pure-u-xl-21-24,
-  .pure-u-xl-22-24,
-  .pure-u-xl-23-24,
-  .pure-u-xl-24-24,
-  .pure-u-xl-3-24,
-  .pure-u-xl-3-4,
-  .pure-u-xl-3-5,
-  .pure-u-xl-3-8,
-  .pure-u-xl-4-24,
-  .pure-u-xl-4-5,
-  .pure-u-xl-5-12,
-  .pure-u-xl-5-24,
-  .pure-u-xl-5-5,
-  .pure-u-xl-5-6,
-  .pure-u-xl-5-8,
-  .pure-u-xl-6-24,
-  .pure-u-xl-7-12,
-  .pure-u-xl-7-24,
-  .pure-u-xl-7-8,
-  .pure-u-xl-8-24,
-  .pure-u-xl-9-24 { display: inline-block; zoom: 1; letter-spacing: normal; word-spacing: normal; vertical-align: top; text-rendering: auto; }
-  .pure-u-xl-1-24 { width: 4.1667%; }
-
-  .pure-u-xl-1-12,
-  .pure-u-xl-2-24 { width: 8.3333%; }
-
-  .pure-u-xl-1-8,
-  .pure-u-xl-3-24 { width: 12.5%; }
-
-  .pure-u-xl-1-6,
-  .pure-u-xl-4-24 { width: 16.6667%; }
-  .pure-u-xl-1-5 { width: 20%; }
-  .pure-u-xl-5-24 { width: 20.8333%; }
-
-  .pure-u-xl-1-4,
-  .pure-u-xl-6-24 { width: 25%; }
-  .pure-u-xl-7-24 { width: 29.1667%; }
-
-  .pure-u-xl-1-3,
-  .pure-u-xl-8-24 { width: 33.3333%; }
-
-  .pure-u-xl-3-8,
-  .pure-u-xl-9-24 { width: 37.5%; }
-  .pure-u-xl-2-5 { width: 40%; }
-
-  .pure-u-xl-10-24,
-  .pure-u-xl-5-12 { width: 41.6667%; }
-  .pure-u-xl-11-24 { width: 45.8333%; }
-
-  .pure-u-xl-1-2,
-  .pure-u-xl-12-24 { width: 50%; }
-  .pure-u-xl-13-24 { width: 54.1667%; }
-
-  .pure-u-xl-14-24,
-  .pure-u-xl-7-12 { width: 58.3333%; }
-  .pure-u-xl-3-5 { width: 60%; }
-
-  .pure-u-xl-15-24,
-  .pure-u-xl-5-8 { width: 62.5%; }
-
-  .pure-u-xl-16-24,
-  .pure-u-xl-2-3 { width: 66.6667%; }
-  .pure-u-xl-17-24 { width: 70.8333%; }
-
-  .pure-u-xl-18-24,
-  .pure-u-xl-3-4 { width: 75%; }
-  .pure-u-xl-19-24 { width: 79.1667%; }
-  .pure-u-xl-4-5 { width: 80%; }
-
-  .pure-u-xl-20-24,
-  .pure-u-xl-5-6 { width: 83.3333%; }
-
-  .pure-u-xl-21-24,
-  .pure-u-xl-7-8 { width: 87.5%; }
-
-  .pure-u-xl-11-12,
-  .pure-u-xl-22-24 { width: 91.6667%; }
-  .pure-u-xl-23-24 { width: 95.8333%; }
-
-  .pure-u-xl-1,
-  .pure-u-xl-1-1,
-  .pure-u-xl-24-24,
-  .pure-u-xl-5-5 { width: 100%; }
-}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 10
public/theme/tabler/css/index_base.min.css


+ 0 - 1635
public/theme/tabler/css/project.css

@@ -1,1635 +0,0 @@
-/* 卡片式商店样式 */
-
-.ui-switch,
-.ui-switch-inner {
-  display: flex;
-  flex-direction: row-reverse;
-  justify-content: space-between;
-  min-height: 29px;
-}
-
-.ui-switch-inner {
-  height: 100%;
-}
-
-.ui-switch.node-switch {
-  position: absolute;
-  right: 2.5em;
-  top: 1.5em;
-  z-index: 1;
-}
-
-.switch-btn {
-  width: 50%;
-  box-sizing: border-box;
-  height: 100%;
-}
-
-.dropdown .btn-dropdown-toggle.dropdown-toggle {
-  min-height: 36px;
-  border-radius: 10px;
-  background-color: white;
-  color: inherit;
-  transition: all 0.5s;
-}
-
-.btn-dropdown-toggle.dropdown-toggle:hover,
-.btn-dropdown-toggle.dropdown-toggle:active {
-  background-color: white;
-  color: inherit;
-  border-radius: 4px;
-  transform: translate(0, 0);
-}
-
-.btn-dropdown-toggle.dropdown-toggle::after {
-  background-color: white;
-}
-
-.ui-switch a {
-  color: #000;
-  display: inline-block;
-  padding: 0 10px;
-  height: 100%;
-  display: flex;
-  align-items: center;
-  text-decoration: none;
-}
-
-.ui-switch div.switch-btn:first-of-type a {
-  border-radius: 0 15px 15px 0;
-}
-
-.ui-switch div.switch-btn:first-of-type a:hover {
-  border-radius: 0 5px 5px 0;
-  transition-duration: 0.4s;
-}
-
-.ui-switch div.switch-btn:last-of-type a {
-  border-radius: 15px 0 0 15px;
-}
-
-.ui-switch div.switch-btn:last-of-type a:hover {
-  border-radius: 5px 0 0 5px;
-  transition-duration: 0.4s;
-}
-
-.ui-switch a:hover {
-  color: white;
-  background: gray;
-}
-
-.ui-switch .card,
-.ui-switch .card-inner {
-  margin: 0;
-}
-
-.shop-flex,
-.label-flex,
-.shop-drop {
-  display: flex;
-  justify-content: space-between;
-  flex-wrap: wrap;
-  opacity: 1;
-}
-
-.shop-flex .shop-price::before {
-  content: "¥";
-  font-size: 1.5rem;
-  position: relative;
-  bottom: 0.4rem;
-  right: 0.1rem;
-}
-
-.shop-table,
-.shop-flex {
-  opacity: 1;
-  display: none;
-
-  /* display:flex;原本的display方式 */
-
-  /* display:flex; */
-}
-
-.shop-table {
-  margin-top: 14px;
-  position: relative;
-  width: 100%;
-}
-
-.shop-table .card {
-  width: 100%;
-  margin: 10px 0 0;
-  padding: 14px 1em;
-  border-radius: 10px 10px 0 0;
-  cursor: pointer;
-  grid-area: main;
-}
-
-.shop-table .shop-btn {
-  width: 100%;
-  margin-top: 0;
-  margin-bottom: 0;
-  border-radius: 0 0 10px 10px;
-  padding: 8px 2em;
-  grid-area: button;
-}
-
-.shop-drop {
-  grid-area: drop;
-  background: white;
-  box-shadow: 0 0 0 #e5e5e5, 0 2px 5px rgb(0 0 0 / 12%), 0 2px 4px rgb(0 0 0 / 5%);
-}
-
-.shop-table .shop-name {
-  padding: 0;
-  margin: 0;
-  font-size: 18px;
-  color: #3b5473;
-}
-
-.shop-table,
-.shop-table .card {
-  flex-wrap: wrap;
-  justify-content: space-between;
-}
-
-.shop-table .card-tag {
-  margin-right: 8px;
-}
-
-.shop-table .card > div {
-  display: flex;
-  flex-wrap: wrap;
-  flex-basis: 80%;
-  align-items: center;
-}
-
-.shop-table .card > div:last-of-type {
-  flex-basis: 10%;
-}
-
-.shop-table span {
-  font-size: 18px;
-  margin: 2px 8px 0;
-}
-
-.shop-gridarea {
-  display: grid;
-  width: 100%;
-  position: relative;
-  transition: 0.3s all;
-  grid-template-columns: 100%;
-  grid-template-rows: auto auto auto;
-  grid-template-areas:
-    "main"
-    "drop"
-    "button";
-}
-
-.shop-drop .card-tag {
-  flex-basis: 49%;
-  margin: 3px 0;
-  text-align: center;
-}
-
-.shop-flex .card {
-  width: 24%;
-  text-align: center;
-  min-height: 380px;
-}
-
-.shop-flex .card-main {
-  position: relative;
-  padding-top: 1.3em;
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: center;
-}
-
-.shop-flex .card-main > div {
-  flex-basis: 100%;
-}
-
-.shop-name,
-.shop-price {
-  padding: 0.4em 0;
-}
-
-.shop-price {
-  color: #3b5473;
-  font-size: 2.75rem;
-}
-
-.shop-price code {
-  font-size: 24px;
-  background: none;
-  font-style: italic;
-  color: #ffa100;
-}
-
-.shop-content > div {
-  margin-top: 0.6em;
-  flex-basis: 49%;
-}
-
-.shop-table .card i {
-  transform: rotate(0deg);
-}
-
-.shop-table .card i.arrow-rotate {
-  transform: rotate(180deg);
-}
-
-.shop-content {
-  margin-top: 2em;
-  font-size: 13px;
-  flex-wrap: wrap;
-  align-items: baseline;
-}
-
-.shop-content-left {
-  text-align: left;
-  padding-left: 3.5em;
-  color: #3b5473;
-  font-size: 1rem;
-}
-
-.shop-content-right {
-  text-align: center;
-  font-size: 1.25rem;
-  color: #95aac9;
-}
-
-.shop-content span {
-  font-size: 0.8rem;
-  color: #3b5473;
-  margin-left: 0.2rem;
-}
-
-.shop-cube {
-  margin-top: 2em;
-}
-
-.shop-name,
-.shop-tat {
-  margin-top: 0.3em;
-  font-size: 1.2rem;
-  color: #95aac9;
-  font-weight: bolder;
-}
-
-.shop-tat {
-  margin: 0;
-}
-
-.shop-tat span:first-of-type::after {
-  content: " G";
-}
-
-.shop-tat span:last-of-type::after {
-  content: " 天";
-}
-
-.shop-tat span::after {
-  font-size: 0.85rem;
-}
-
-.shop-cube,
-.shop-content {
-  display: flex;
-  justify-content: space-around;
-}
-
-.shop-cube > div {
-  flex-basis: 33.333333333%;
-}
-
-.cube-title {
-  color: #95aac9;
-  font-size: 0.5rem;
-}
-
-.cube-detail {
-  font-size: 1.25rem;
-}
-
-.cube-detail span {
-  font-size: 0.75rem;
-}
-
-.shop-content-extra {
-  margin-top: 1.5em;
-  font-size: 1.1rem;
-}
-
-.shop-content-extra > div {
-  margin-top: 0.4em;
-  letter-spacing: 2px;
-  position: relative;
-  right: 0.3em;
-  min-height: 20px;
-}
-
-.shop-btn {
-  margin-top: 3em;
-  padding: 10px 2em;
-  flex-basis: 70%;
-  margin-bottom: 2.5em;
-  align-self: flex-end;
-}
-
-.flex-fix3,
-.flex-fix4 {
-  width: 24%;
-}
-
-.page-course img {
-  max-width: 60%;
-}
-
-@media screen and (max-width: 1600px) {
-  .shop-flex .card,
-  .flex-fix3 {
-    width: 32%;
-  }
-
-  .flex-fix4 {
-    display: none;
-  }
-}
-
-@media screen and (max-width: 1440px) {
-  .shop-flex .card {
-    width: 48%;
-  }
-
-  .page-course img {
-    max-width: 80%;
-  }
-}
-
-@media screen and (max-width: 715px) {
-  .shop-flex .card {
-    width: 100%;
-  }
-
-  .page-course img {
-    max-width: 100%;
-  }
-}
-
-@media screen and (max-width: 400px) {
-  .nodemain {
-    max-width: 240px;
-  }
-
-  .shop-table .card-tag,
-  .shop-table span {
-    flex-basis: 40%;
-    text-align: center;
-    margin: 5px 8px 0 0;
-  }
-
-  .shop-table .shop-name {
-    flex-basis: 100%;
-  }
-
-  .shop-drop .card-tag {
-    flex-basis: 49%;
-    margin: 5px 0;
-  }
-
-  .shop-content-left {
-    padding-left: 2.5em;
-  }
-
-  .shop-content span {
-    margin-left: 0;
-  }
-}
-
-/* 面板原样式 */
-.pagination {
-  display: inline-block;
-  padding-left: 0;
-  margin: 20px 0;
-  border-radius: 4px;
-}
-
-.pagination > li {
-  display: inline;
-}
-
-.pagination > li > a,
-.pagination > li > span {
-  position: relative;
-  float: left;
-  padding: 6px 12px;
-  margin-left: -1px;
-  line-height: 1.42857143;
-  color: #337ab7;
-  text-decoration: none;
-  background-color: #fff;
-  border: 1px solid #ddd;
-}
-
-.pagination > li:first-child > a,
-.pagination > li:first-child > span {
-  margin-left: 0;
-  border-top-left-radius: 4px;
-  border-bottom-left-radius: 4px;
-}
-
-.pagination > li:last-child > a,
-.pagination > li:last-child > span {
-  border-top-right-radius: 4px;
-  border-bottom-right-radius: 4px;
-}
-
-.pagination > li > a:focus,
-.pagination > li > a:hover,
-.pagination > li > span:focus,
-.pagination > li > span:hover {
-  color: #23527c;
-  background-color: #eee;
-  border-color: #ddd;
-}
-
-.pagination > .active > a,
-.pagination > .active > a:focus,
-.pagination > .active > a:hover,
-.pagination > .active > span,
-.pagination > .active > span:focus,
-.pagination > .active > span:hover {
-  z-index: 2;
-  color: #fff;
-  cursor: default;
-  background-color: #337ab7;
-  border-color: #337ab7;
-}
-
-.pagination > .disabled > a,
-.pagination > .disabled > a:focus,
-.pagination > .disabled > a:hover,
-.pagination > .disabled > span,
-.pagination > .disabled > span:focus,
-.pagination > .disabled > span:hover {
-  color: #777;
-  cursor: not-allowed;
-  background-color: #fff;
-  border-color: #ddd;
-}
-
-.pagination-lg > li > a,
-.pagination-lg > li > span {
-  padding: 10px 16px;
-  font-size: 18px;
-}
-
-.pagination-lg > li:first-child > a,
-.pagination-lg > li:first-child > span {
-  border-top-left-radius: 6px;
-  border-bottom-left-radius: 6px;
-}
-
-.pagination-lg > li:last-child > a,
-.pagination-lg > li:last-child > span {
-  border-top-right-radius: 6px;
-  border-bottom-right-radius: 6px;
-}
-
-.pagination-sm > li > a,
-.pagination-sm > li > span {
-  padding: 5px 10px;
-  font-size: 12px;
-}
-
-.pagination-sm > li:first-child > a,
-.pagination-sm > li:first-child > span {
-  border-top-left-radius: 3px;
-  border-bottom-left-radius: 3px;
-}
-
-.pagination-sm > li:last-child > a,
-.pagination-sm > li:last-child > span {
-  border-top-right-radius: 3px;
-  border-bottom-right-radius: 3px;
-}
-
-.pager {
-  padding-left: 0;
-  margin: 20px 0;
-  text-align: center;
-  list-style: none;
-}
-
-.pager li {
-  display: inline;
-}
-
-.pager li > a,
-.pager li > span {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 15px;
-}
-
-.pager li > a:focus,
-.pager li > a:hover {
-  text-decoration: none;
-  background-color: #eee;
-}
-
-.pager .next > a,
-.pager .next > span {
-  float: right;
-}
-
-.pager .previous > a,
-.pager .previous > span {
-  float: left;
-}
-
-.pager .disabled > a,
-.pager .disabled > a:focus,
-.pager .disabled > a:hover,
-.pager .disabled > span {
-  color: #777;
-  cursor: not-allowed;
-  background-color: #fff;
-}
-
-.pagination > li > a,
-.pagination > li > span {
-  border: 1px solid white;
-}
-
-.pagination > li.active > a {
-  background: #13c2c2;
-  color: #fff;
-}
-
-.pagination > li > a {
-  background: white;
-  color: #000;
-}
-
-.pagination > .disabled > span {
-  border-color: #fff;
-}
-
-.pagination > .active > a,
-.pagination > .active > a:focus,
-.pagination > .active > a:hover,
-.pagination > .active > span,
-.pagination > .active > span:focus,
-.pagination > .active > span:hover {
-  color: #fff;
-  background-color: #54aff9;
-  border-color: #54aff9;
-}
-
-.ui-card-wrap::after,
-.ui-picker-lib::after {
-  clear: both;
-}
-
-.menu-content .nav ul .a,
-.menu-content .nav ul a {
-  transition: 0.3s all;
-}
-
-body {
-  padding-bottom: 69px;
-}
-
-.ui-content-header {
-  background-position: 50% 50%;
-  background-repeat: no-repeat;
-  background-size: cover;
-  margin-bottom: -58px;
-  padding-top: 68px;
-  padding-bottom: 58px;
-}
-
-.page-brand .ui-content-header {
-  background-image: url(/theme/tabler/css/images/bg/amber.jpg);
-}
-
-.ui-footer {
-  background-color: rgb(255 255 255 / 50%);
-  border-top: 1px solid rgb(0 0 0 / 12%);
-  text-align: center;
-  padding-top: 12px;
-  padding-bottom: 12px;
-  position: absolute;
-  bottom: 0;
-  height: 40px;
-  right: 0;
-  left: 0;
-}
-
-.ui-header .dropdown.open .dropdown-toggle {
-  background-color: transparent;
-}
-
-.ui-picker-divider {
-  background-color: #dadada;
-  -webkit-box-flex: 0;
-  flex: 0 0 auto;
-  flex: 0 0 auto;
-  flex: 0 0 auto;
-  position: relative;
-  width: 1px;
-  z-index: 1;
-}
-
-.ui-picker-draggable-count {
-  position: absolute;
-  top: -16px;
-  right: -16px;
-}
-
-.ui-picker-draggable-handler {
-  cursor: crosshair;
-  cursor: grab;
-  position: relative;
-}
-
-.ui-picker-selected .ui-picker-draggable-handler {
-  z-index: 2;
-}
-
-.ui-picker-selected .ui-picker-draggable-handler:active {
-  cursor: grabbing;
-}
-
-.ui-picker-selected .ui-picker-draggable-handler strong {
-  display: none;
-}
-
-.ui-picker-selected .ui-picker-draggable-handler .icon {
-  display: inline-block;
-}
-
-.ui-picker-draggable-handler strong {
-  display: inline;
-}
-
-.ui-picker-draggable-handler .icon {
-  display: none;
-}
-
-.ui-picker-info,
-.ui-picker-nav {
-  background-color: #fff;
-  -webkit-box-flex: 0;
-  flex: 0 0 auto;
-  flex: 0 0 auto;
-  flex: 0 0 auto;
-  overflow: hidden;
-  position: relative;
-  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  width: 0;
-}
-
-.ui-picker-info-active {
-  width: 400px;
-}
-
-.ui-picker-info-detail {
-  padding-right: 16px;
-  padding-left: 16px;
-}
-
-.ui-picker-info-null::after {
-  background-color: #f5f5f5;
-  content: "Select an item to view its details.";
-  display: block;
-  font-size: 20px;
-  font-weight: 300;
-  height: 100%;
-  line-height: 28px;
-  padding: 58px 16px;
-  position: absolute;
-  top: 0;
-  left: 0;
-  text-align: center;
-  width: 100%;
-  z-index: 1;
-}
-
-.ui-picker-inner {
-  overflow-x: hidden;
-  overflow-y: auto;
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-}
-
-.ui-picker-item {
-  position: relative;
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-.ui-picker-lib.ui-picker-dragging .ui-picker-item.ui-picker-draggable {
-  opacity: 0.69;
-}
-
-.ui-picker-lib {
-  min-height: calc(100vh - 56px);
-}
-
-.ui-picker-lib::after,
-.ui-picker-lib::before {
-  content: "";
-  display: table;
-  line-height: 0;
-}
-
-.ui-picker-main {
-  -webkit-box-flex: 1;
-  flex: 1 1 auto;
-  flex: 1 1 auto;
-  flex: 1 1 auto;
-  position: relative;
-}
-
-.ui-picker-map-wrap {
-  height: 225px;
-  width: 400px;
-}
-
-.ui-picker-nav {
-  width: 240px;
-}
-
-.ui-picker-page {
-  height: 100vh;
-  min-width: 992px;
-  padding-top: 56px;
-  padding-bottom: 0;
-}
-
-.ui-picker-selectable-handler {
-  display: block;
-  height: 100%;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  z-index: 1;
-}
-
-.ui-picker-wrap {
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-  -webkit-box-orient: horizontal;
-  -webkit-box-direction: normal;
-  flex-direction: row;
-  flex-direction: row;
-  flex-direction: row;
-  height: 100%;
-  overflow: hidden;
-  width: 100%;
-}
-
-.ui-draggable-helper {
-  width: 208px !important;
-}
-
-.ui-droppable-helper {
-  background-color: rgb(255 64 129 / 9%) !important;
-  border-color: #ff4081 !important;
-}
-
-.ui-selectable-helper {
-  background-color: rgb(0 0 0 / 12%);
-  border: 1px solid #dadada;
-  box-shadow: 0 0 10px rgb(0 0 0 / 10%);
-  position: absolute;
-  z-index: 100;
-}
-
-.ui-card-pre {
-  -webkit-box-align: center;
-  align-items: center;
-  -ms-flex-align: center;
-  align-items: center;
-  display: box;
-  display: flex;
-  display: flexbox;
-  display: flex;
-}
-
-.ui-card-wrap {
-  margin-top: 24px;
-  margin-bottom: -24px;
-}
-
-.ui-card-wrap::after,
-.ui-card-wrap::before {
-  content: "";
-  display: table;
-  line-height: 0;
-}
-
-.ui-card-wrap .card {
-  margin-top: 0;
-}
-
-.ui-tab {
-  margin-top: 10px;
-}
-
-button[data-toggle="dropdown"] {
-  text-align: left;
-}
-
-.form-group-label.control-highlight-custom .floating-label {
-  transform: scale(0.85714, 0.85714) translateY(-30px);
-  transform: scale(0.85714, 0.85714) translateY(-30px);
-}
-
-.dropdown {
-  z-index: unset;
-}
-
-.dropdown.open .dropdown-menu {
-  z-index: 2;
-}
-
-.dropdown-menu {
-  max-height: 45vh;
-  overflow-y: auto;
-}
-
-ul.dropdown-menu {
-  top: 110%;
-  border-radius: 5px;
-}
-
-.dropdown-menu .a,
-.dropdown-menu a {
-  text-decoration: none;
-  padding: 7px 1em;
-  font-size: 14px;
-  text-overflow: unset;
-  white-space: normal;
-  transition: 0.3s all;
-}
-
-.dropdown-menu a:hover {
-  transition: 0.3s all;
-}
-
-.form-control,
-.picker__select--month,
-.picker__select--year {
-  min-height: 36px;
-}
-
-.dropdown-menu.dropdown-menu-right {
-  min-width: 130px;
-}
-
-.waves-attach.waves-circle.waves-light.waves-effect .waves-wrap {
-  border-radius: 10px;
-}
-
-.btn:active,
-.fbtn:active {
-  transform: translate(3px, 3px);
-}
-
-.shop-table .btn.shop-btn:active {
-  transform: scale3d(1.05, 1.05, 1.05);
-}
-
-.modal-inner p {
-  word-break: break-word;
-}
-
-.form-control-guide {
-  margin: 0.3em 0 0;
-  font-size: 12px;
-  color: #399af2;
-}
-
-.form-control-guide i {
-  font-size: 18px;
-  position: relative;
-  top: 0.25em;
-  margin-right: 0.2em;
-}
-
-/* 卡片节点 */
-
-.nodelist {
-  position: relative;
-}
-
-/* .card-row {
-    display: flex;
-    justify-content: space-between;
-	flex-wrap: wrap;
-	position: relative;
-} */
-.card-row,
-.node-cardgroup {
-  display: grid;
-  grid-template-columns: 100%;
-  justify-content: space-between;
-  position: relative;
-  opacity: 1;
-}
-
-.node-cardgroup {
-  display: none;
-}
-
-.card-row,
-.node-table,
-.node-fade,
-.shop-flex,
-.shop-table,
-.node-cardgroup {
-  transition-duration: 0.2s;
-  transition-property: all;
-}
-
-.card.node-table {
-  min-height: 75px;
-}
-
-.node-table .avatar.avatar-sm span {
-  position: relative;
-  font-size: 20px;
-  color: white;
-}
-
-.node-table .avatar.avatar-sm.nodeoffline span {
-  left: 0.05rem;
-}
-
-.node-card {
-  position: relative;
-  left: 0;
-  top: 0;
-  background: white;
-
-  /* width: 430px; */
-  height: 120px;
-  border-radius: 10px;
-  box-shadow: 2px 2px 7px 1px rgb(189 189 189);
-  margin-top: 1em;
-  transition-duration: 0.1s;
-  transition-property: all;
-  justify-content: space-between;
-  padding: 0 1em;
-  cursor: pointer;
-}
-
-.node-table {
-  opacity: 1;
-  display: none;
-
-  /* display:flex; */
-}
-
-.node-card:hover {
-  transition-duration: 0.1s;
-  transition-property: all;
-  left: -3px;
-  top: -3px;
-  box-shadow: 3px 3px 7px 3px rgb(189 189 189);
-}
-
-/* 追加伸缩 */
-.card-row.collapse.in {
-  display: grid;
-}
-
-.collapse.card-row {
-  display: none;
-}
-
-/* */
-.node-fade {
-  opacity: 0;
-}
-
-.nodetitle {
-  /* flex-basis: 100%; */
-  grid-column-end: 2;
-  grid-column-start: 1;
-}
-
-.flag img {
-  width: 35px;
-}
-
-.node-flex {
-  display: flex;
-}
-
-.nodemain > div {
-  margin-top: 13px;
-}
-
-.nodeonline {
-  background: #4fd69c;
-}
-
-.nodeoffline {
-  background: #ea4c4c;
-}
-
-.nodeunset {
-  background: #666;
-}
-
-.nodestatus > div {
-  padding: 1em;
-  width: 60px;
-  height: 60px;
-  border-radius: 50%;
-  position: relative;
-  top: 0.8em;
-}
-
-.nodehead > div,
-.nodemiddle > div,
-.nodeinfo > div {
-  margin-right: 9px;
-}
-
-.nodeinfo i {
-  font-size: 22px;
-}
-
-.nodestatus span {
-  position: relative;
-  font-size: 35px;
-  top: 4px;
-  right: 2.5px;
-  color: #fff;
-}
-
-.nodeunset i {
-  bottom: 0;
-}
-
-.nodeoffline i {
-  bottom: 1.5px;
-  right: 1px;
-}
-
-.nodemiddle {
-  align-items: flex-end;
-}
-
-.nodetype {
-  font-size: 12px;
-  color: #525252;
-  font-weight: bold;
-}
-
-.nodehead {
-  height: 23.5px;
-}
-
-.nodename {
-  font-size: 16px;
-}
-
-div.nodetitle:first-of-type > a {
-  margin-top: 0;
-}
-
-.nodetitle > a {
-  left: 0;
-  top: 0;
-  position: relative;
-  background: white;
-  width: 210px;
-  height: 50px;
-  border-radius: 30px 10px 10px;
-  box-shadow: 2px 2px 7px 1px rgb(189 189 189);
-  margin-top: 2em;
-  text-align: center;
-  display: inline-block;
-}
-
-.nodetitle > a,
-.nodetitle a i,
-.arrow-rotate,
-.shop-table .card i {
-  transition: 0.3s all;
-}
-
-.nodetitle a span {
-  font-size: 20px;
-  position: relative;
-  top: 0.75em;
-  color: black;
-  right: 0.4em;
-}
-
-.nodetitle a i {
-  position: absolute;
-  top: 0.6em;
-  right: 0.5em;
-  color: black;
-  transform: rotate(0deg);
-}
-
-.nodetitle > a.collapsed,
-.nodetitle > .collapsed .waves-wrap {
-  border-radius: 10px;
-}
-
-.nodetitle .waves-wrap {
-  border-radius: 30px 10px 10px;
-}
-
-.nodetitle > a {
-  text-decoration: none;
-}
-
-.nodetitle a i.arrow-rotate {
-  transform: rotate(180deg);
-}
-
-.onlinemember,
-.nodetraffic,
-.nodecheck,
-.nodehead,
-.nodeband {
-  align-items: center;
-}
-
-.nodetraffic span,
-.nodecheck span,
-.nodeband span {
-  margin-left: 5px;
-  font-size: 14px;
-  color: #646464;
-}
-
-.onlinemember span {
-  font-size: 15px;
-  font-weight: bold;
-  margin-left: 5px;
-}
-
-.node-tip {
-  max-width: 350px;
-  padding: 20px;
-  border-radius: 20px;
-  box-shadow: 0 0 7px 0 gray;
-}
-
-.node-tip.cust-modelin {
-  transform: translate3d(0, 14rem, 0);
-}
-
-.nodetip-table {
-  flex-wrap: wrap;
-}
-
-.nodetip-table > .card-main {
-  flex-basis: 100%;
-}
-
-.nodeload {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-}
-
-.tiptitle {
-  margin: 10px 0;
-}
-
-.tiptitle a {
-  font-size: 18px;
-  display: block;
-  margin-bottom: 0.5em;
-}
-
-.tipmiddle {
-  margin-bottom: 10px;
-}
-
-.tiphidden {
-  position: fixed;
-  background: gray;
-  opacity: 0.3;
-  width: 0;
-  height: 0;
-  z-index: 2;
-}
-
-/* index顶部4栏 */
-
-.user-info {
-  flex-wrap: wrap;
-}
-
-.infocolor-red {
-  background: #fb6340;
-}
-
-.infocolor-green {
-  background: #88de5e;
-}
-
-.infocolor-yellow {
-  background: #ffd600;
-}
-
-.infocolor-blue {
-  background: #11cdef;
-}
-
-.user-info-main {
-  flex-basis: 100%;
-  display: flex;
-  justify-content: space-between;
-  padding: 0 1.3em;
-}
-
-.user-info-bottom {
-  flex-basis: 100%;
-}
-
-.user-info .nodename {
-  font-size: 13px;
-  text-transform: uppercase;
-  color: #8898aa;
-  font-weight: 600;
-}
-
-.user-info .nodemiddle {
-  margin-top: 6px;
-}
-
-.user-info .nodetype {
-  font-size: 1.25rem;
-  color: #525252;
-}
-
-.user-info .nodestatus > div {
-  width: 54px;
-  height: 54px;
-}
-
-.user-info .nodestatus i {
-  font-size: 30px;
-}
-
-.user-info .nodeinfo {
-  margin-bottom: 2px;
-  padding: 5px 1.3em;
-  border-top: 1px solid #d2d2d2;
-  margin-top: 1.5rem;
-  justify-content: space-between;
-}
-
-.user-info .nodeinfo span {
-  display: block;
-  text-decoration: none;
-  font-size: 14px;
-  color: #525252;
-  padding: 1px 0;
-}
-
-.user-info .nodeinfo i {
-  font-size: 18px;
-  position: relative;
-  top: 1px;
-}
-
-/* 仿iview标签 */
-a.card-tag,
-.card-tag {
-  font-size: 12px;
-  text-decoration: none;
-  padding: 1px 6px 0;
-  border-radius: 3px;
-  border: 1px solid;
-  height: 23px;
-}
-
-.card-tag:hover {
-  opacity: 0.85;
-}
-
-a.tag-orange,
-.tag-orange {
-  background: #fff2e8;
-  color: #fa541c;
-  border-color: #ffd591;
-}
-
-a.tag-green,
-.tag-green {
-  background: #f6ffed;
-  color: #52c41a;
-  border-color: #b7eb8f;
-}
-
-a.tag-black,
-.tag-black {
-  background: #f7f7f7;
-  color: #515a6e;
-  border-color: #a6a7a9;
-}
-
-a.tag-gold,
-.tag-gold {
-  background: #fffbe6;
-  color: #faad14;
-  border-color: #ffe58f;
-}
-
-a.tag-red,
-.tag-red {
-  background: #fff1f0;
-  color: #f5222d;
-  border-color: #ffa39e;
-}
-
-a.tag-blue,
-.tag-blue {
-  background: #e6f7ff;
-  color: #1890ff;
-  border-color: #91d5ff;
-}
-
-a.tag-geekblue,
-.tag-geekblue {
-  background: #f0f5ff;
-  color: #2f54eb;
-  border-color: #adc6ff;
-}
-
-a.tag-cyan,
-.tag-cyan {
-  background: #e6fffb;
-  color: #13c2c2;
-  border-color: #87e8de;
-}
-
-a.tag-purple,
-.tag-purple {
-  background: #f9f0ff;
-  color: #722ed1;
-  border-color: #d3adf7;
-}
-
-a.tag-volcano,
-.tag-volcano {
-  background: #fff2e8;
-  color: #fa541c;
-  border-color: #ffbb96;
-}
-
-a.tag-lime,
-.tag-lime {
-  background: #fcffe6;
-  color: #a0d911;
-  border-color: #eaff8f;
-}
-
-a.tag-magenta,
-.tag-magenta {
-  background: #fff0f6;
-  color: #eb2f96;
-  border-color: #ffadd2;
-}
-
-.form-group-label {
-  margin-bottom: 16px;
-}
-
-/* 弹出层插件 */
-.cust-mask {
-  background: black;
-  opacity: 0;
-  z-index: 5;
-  width: 100vw;
-  height: 100vh;
-  position: fixed;
-  top: 0;
-  left: 0;
-  transition: 0.3s all;
-}
-
-.cust-model {
-  display: none;
-  position: fixed;
-  top: -10em;
-  left: 0;
-  right: 0;
-  margin-left: auto;
-  margin-right: auto;
-  opacity: 0;
-  transition: 0.3s all;
-  background: white;
-  z-index: 6;
-}
-
-.cust-maskfade {
-  opacity: 0.4;
-}
-
-.cust-modelin {
-  opacity: 1;
-  transform: translate3d(0, 2em, 0);
-}
-
-.fade-delay {
-  transition-delay: 0.3s;
-}
-
-/* 下拉菜单插件 */
-
-.dropdown-area {
-  height: 0;
-  opacity: 0;
-  transform: scale3d(1, 0, 1);
-  padding: 0 1.5em;
-  transition: 0.3s all;
-  transform-origin: top;
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-  backface-visibility: hidden;
-}
-
-.dropdown-area.dropdown-active {
-  transform: scale3d(1, 1, 1);
-  opacity: 1;
-  padding: 1.5em;
-}
-
-@media screen and (max-width: 320px) {
-  .card-heading {
-    font-size: 18px;
-  }
-
-  .nodemain {
-    max-width: 200px;
-  }
-
-  .nodetitle > a {
-    width: 160px;
-  }
-
-  .nodetitle a span {
-    font-size: 16px;
-    top: 1em;
-  }
-
-  .nodetitle a i {
-    font-size: 22px;
-    top: 0.7em;
-  }
-
-  .nodename {
-    font-size: 14px;
-    line-height: 1.1em;
-  }
-
-  .nodetraffic span,
-  .nodecheck span,
-  .nodeband span {
-    font-size: 13px;
-    margin-right: 3px;
-  }
-
-  .card-inner {
-    margin: 24px 13px;
-  }
-
-  .card-table > .table-responsive {
-    margin-left: -13px;
-    margin-right: -13px;
-  }
-}
-
-@media only screen and (min-width: 480px) {
-  .shop-table .card {
-    flex-basis: 80%;
-    border-radius: 10px 0 0 10px;
-  }
-
-  .shop-table .shop-btn {
-    border-radius: 0 30px 30px 0;
-    flex-basis: 20%;
-    margin-top: 10px;
-    padding: 16px 2em 16px 1.5em;
-  }
-
-  .shop-table .shop-btn:hover {
-    border-radius: 0 10px 10px 0;
-  }
-
-  .shop-table .card > div:last-of-type {
-    flex-basis: 2%;
-  }
-
-  .shop-gridarea {
-    width: 100%;
-    grid-template-columns: 80% 20%;
-    grid-template-rows: auto auto;
-    grid-template-areas:
-      "main button"
-      "drop block";
-  }
-
-  .shop-drop {
-    border-radius: 10px;
-    box-shadow: 0 0 0 #e5e5e5, 0 0 15px rgb(0 0 0 / 12%), 0 2px 4px rgb(0 0 0 / 5%);
-  }
-
-  .shop-drop .card-tag {
-    font-size: 16px;
-    height: 26px;
-    padding: 3px 6px 0;
-  }
-
-  .node-tip.cust-modelin {
-    transform: translate3d(0, 15rem, 0);
-  }
-
-  .dropdown-area.dropdown-active {
-    margin: 0.5em 0 1.5em;
-  }
-
-  .dropdown-area {
-    transition: 0.3s all;
-  }
-}
-
-@media only screen and (min-width: 768px) {
-  .ui-card-pre {
-    min-height: 189px;
-  }
-
-  .ui-card-pre-media {
-    min-height: 353px;
-  }
-
-  .card-row {
-    grid-template-columns: 49% 49%;
-  }
-
-  .nodetitle {
-    grid-column-end: 3;
-    grid-column-start: 1;
-  }
-}
-
-@media only screen and (min-width: 992px) {
-  .ui-card-pre-media {
-    min-height: 394px;
-  }
-
-  .auth-main .form-group-label.control-focus .floating-label,
-  .auth-main .form-group-label.control-highlight .floating-label,
-  .form-group-label.control-highlight-custom .floating-label {
-    transform: scale(0.85714, 0.85714) translateY(-34px);
-    transform: scale(0.85714, 0.85714) translateY(-34px);
-  }
-}
-
-@media only screen and (min-width: 1440px) {
-  .ui-card-pre-media {
-    min-height: 389px;
-  }
-
-  .card-row {
-    grid-template-columns: 32% 32% 32%;
-  }
-
-  .nodetitle {
-    grid-column-end: 4;
-    grid-column-start: 1;
-  }
-
-  .shop-gridarea {
-    width: 100%;
-    grid-template-columns: 87% 13%;
-  }
-}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
public/theme/tabler/css/project.min.css


+ 0 - 377
public/theme/tabler/css/user.css

@@ -1,377 +0,0 @@
-@keyframes mysnow {
-  0% {
-    bottom: 100%;
-    opacity: 0;
-  }
-
-  50% {
-    opacity: 1;
-    transform: rotate(1080deg);
-  }
-
-  100% {
-    transform: rotate(0deg);
-    opacity: 0;
-    bottom: 0;
-  }
-}
-
-@keyframes mysnow {
-  0% {
-    bottom: 100%;
-    opacity: 0;
-  }
-
-  50% {
-    opacity: 1;
-    transform: rotate(1080deg);
-  }
-
-  100% {
-    transform: rotate(0deg);
-    opacity: 0;
-    bottom: 0;
-  }
-}
-
-@keyframes mysnow {
-  0% {
-    bottom: 100%;
-    opacity: 0;
-  }
-
-  50% {
-    opacity: 1;
-    transform: rotate(1080deg);
-  }
-
-  100% {
-    transform: rotate(0deg);
-    opacity: 0;
-    bottom: 0;
-  }
-}
-
-@keyframes mysnow {
-  0% {
-    bottom: 100%;
-    opacity: 0;
-  }
-
-  50% {
-    opacity: 1;
-    transform: rotate(1080deg);
-  }
-
-  100% {
-    transform: rotate(0deg);
-    opacity: 0;
-    bottom: 0;
-  }
-}
-
-@keyframes mysnow {
-  0% {
-    bottom: 100%;
-    opacity: 0;
-  }
-
-  50% {
-    opacity: 1;
-    transform: rotate(1080deg);
-  }
-
-  100% {
-    transform: rotate(0deg);
-    opacity: 0;
-    bottom: 0;
-  }
-}
-
-.roll {
-  position: absolute;
-  opacity: 0;
-  animation: mysnow 5s;
-  animation: mysnow 5s;
-  animation: mysnow 5s;
-  animation: mysnow 5s;
-  animation: mysnow 5s;
-  height: 80px;
-}
-
-.div {
-  position: fixed;
-}
-
-pre {
-  white-space: pre-wrap;
-  word-wrap: break-word;
-}
-
-.progress-green .progress-bar {
-  background-color: #f0231b;
-}
-
-.progress-green {
-  background-color: #000;
-}
-
-.progress-green .progress-bar {
-  background-color: #ff0a00;
-}
-
-.page-orange .ui-content-header {
-  background-image: url(/theme/tabler/css/images/bg/amber.jpg);
-}
-
-.content-heading {
-  font-weight: 300;
-  color: #fff;
-}
-
-.reset-invitelink {
-  margin-left: 1em;
-}
-
-.enable-flag {
-  color: #383838;
-}
-
-.node-icon {
-  color: #ff9000;
-}
-
-.node-alive {
-  color: #474747;
-}
-
-.node-load,
-.node-mothed {
-  color: #525252;
-}
-
-.node-band {
-  color: #525252;
-}
-
-.node-tr {
-  color: #525252;
-}
-
-.node-type {
-  color: #525252;
-}
-
-.usercheck {
-  text-align: center;
-  width: 100%;
-}
-
-.btn-dl {
-  border-radius: 8px;
-  padding: 3px 12px 3px 10px;
-  margin-left: 8px;
-  margin-right: 8px;
-  background: #f5f5f5;
-  font-size: 13px;
-  border: 1px solid #f5f5f5;
-}
-
-.btn-dl i {
-  font-size: 22px;
-  position: relative;
-  top: 6px;
-  right: 2px;
-}
-
-.btn-dl i.icon-sm {
-  font-size: 18px;
-  top: 4px;
-}
-
-.quickadd p {
-  line-height: 22px;
-}
-
-a.btn-dl:focus,
-a.btn-dl:visited {
-  text-decoration: none;
-}
-
-.btn-dl:hover {
-  box-shadow: 2px 2px 10px #d6d6d6;
-  transition: 0.4s all;
-  border: 1px solid #b7b7b7;
-  text-decoration: none;
-}
-
-.copy-text {
-  cursor: pointer;
-}
-
-.progressbar {
-  position: relative;
-  display: block;
-  width: 100%;
-  height: 20px;
-  border-bottom: 1px solid rgb(255 255 255 / 25%);
-  border-radius: 16px;
-  margin: 40px auto;
-  margin-top: 40px;
-}
-
-.progressbar:first-of-type {
-  margin-top: 60px;
-}
-
-.progressbar .before {
-  position: absolute;
-  display: block;
-  content: "";
-  width: calc(100% + 4px);
-  height: 20px;
-  left: -2px;
-  right: 1px;
-  border-radius: 20px;
-  background: #fff;
-  box-shadow: 0 0 2px 0 rgb(180 180 180 / 85%);
-  border: 1px solid rgb(222 222 222 / 80%);
-}
-
-.progressbar .bar {
-  position: absolute;
-  display: block;
-  width: 0;
-  height: 16px;
-  top: 2px;
-  left: 0;
-  background: rgb(126 234 25);
-  border-radius: 16px;
-  box-shadow: 0 0 12px 0 rgb(126 234 25 / 100%), inset 0 1px 0 0 rgb(255 255 255 / 45%), inset 1px 0 0 0 rgb(255 255 255 / 25%), inset -1px 0 0 0 rgb(255 255 255 / 25%);
-  overflow: hidden;
-}
-
-.progressbar .label .bar {
-  position: relative;
-  display: inline-block;
-  top: 12%;
-  left: 0;
-  margin-right: 5px;
-  width: 16px;
-}
-
-.progressbar .label .bar.color {
-  box-shadow: 0 0 5px 0 rgb(126 234 25 / 100%), inset 0 1px 0 0 rgb(255 255 255 / 45%), inset 1px 0 0 0 rgb(255 255 255 / 25%), inset -1px 0 0 0 rgb(255 255 255 / 25%);
-}
-
-.progressbar .label .bar.color2 {
-  box-shadow: 0 0 5px 0 rgb(229 195 25 / 100%), inset 0 1px 0 0 rgb(255 255 255 / 45%), inset 1px 0 0 0 rgb(255 255 255 / 25%), inset -1px 0 0 0 rgb(255 255 255 / 25%);
-}
-
-.progressbar .label .bar.color3 {
-  box-shadow: 0 0 5px 0 rgb(232 25 87 / 100%), inset 0 1px 0 0 rgb(255 255 255 / 45%), inset 1px 0 0 0 rgb(255 255 255 / 25%), inset -1px 0 0 0 rgb(255 255 255 / 25%);
-}
-
-.progressbar .label .bar.color4 {
-  box-shadow: 0 0 5px 0 rgb(24 109 226 / 100%), inset 0 1px 0 0 rgb(255 255 255 / 45%), inset 1px 0 0 0 rgb(255 255 255 / 25%), inset -1px 0 0 0 rgb(255 255 255 / 25%);
-}
-
-.progressbar .bar.color2 {
-  background: rgb(229 195 25);
-  box-shadow: 0 0 12px 0 rgb(229 195 25 / 100%), inset 0 1px 0 0 rgb(255 255 255 / 45%), inset 1px 0 0 0 rgb(255 255 255 / 25%), inset -1px 0 0 0 rgb(255 255 255 / 25%);
-}
-
-.progressbar .bar.color3 {
-  background: rgb(255 104 149);
-  box-shadow: 0 0 7px 0 rgb(232 25 87 / 100%), 0 1px 0 0 rgb(255 255 255 / 45%), 1px 0 0 0 rgb(255 255 255 / 25%), -1px 0 0 0 rgb(255 255 255 / 25%);
-}
-
-.progressbar .bar.color4 {
-  background: rgb(24 109 226);
-  box-shadow: 0 0 12px 0 rgb(24 109 226 / 100%), inset 0 1px 0 0 rgb(255 255 255 / 45%), inset 1px 0 0 0 rgb(255 255 255 / 25%), inset -1px 0 0 0 rgb(255 255 255 / 25%);
-}
-
-.progressbar .bar::before {
-  position: absolute;
-  display: block;
-  content: "";
-  width: 606px;
-  height: 150%;
-  top: -25%;
-  left: -25px;
-
-  /* background:-moz-radial-gradient(center, ellipse cover,  rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.01) 50%, rgba(255,255,255,0) 51%, rgba(255,255,255,0) 100%);
-	background:-webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(255,255,255,0.35)), color-stop(50%,rgba(255,255,255,0.01)), color-stop(51%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,0)));
-	background:-webkit-radial-gradient(center, ellipse cover,  rgba(255,255,255,0.35) 0%,rgba(255,255,255,0.01) 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);
-	background:-o-radial-gradient(center, ellipse cover,  rgba(255,255,255,0.35) 0%,rgba(255,255,255,0.01) 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);
-	background:-ms-radial-gradient(center, ellipse cover,  rgba(255,255,255,0.35) 0%,rgba(255,255,255,0.01) 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%);
-	background:radial-gradient(ellipse at center,  rgba(255,255,255,0.35) 0%,rgba(255,255,255,0.01) 50%,rgba(255,255,255,0) 51%,rgba(255,255,255,0) 100%); */
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr="#59ffffff", endColorstr="#00ffffff", GradientType=1);
-}
-
-.progressbar .bar::after {
-  position: absolute;
-  display: block;
-  content: "";
-  width: 64px;
-  height: 16px;
-  right: 0;
-  top: 0;
-  border-radius: 0 16px 16px 0;
-
-  /* background:-moz-linear-gradient(left,  rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 98%, rgba(255,255,255,0) 100%);
-	background:-webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,0)), color-stop(98%,rgba(255,255,255,0.6)), color-stop(100%,rgba(255,255,255,0)));
-	background:-webkit-linear-gradient(left,  rgba(255,255,255,0) 0%,rgba(255,255,255,0.6) 98%,rgba(255,255,255,0) 100%);
-	background:-o-linear-gradient(left,  rgba(255,255,255,0) 0%,rgba(255,255,255,0.6) 98%,rgba(255,255,255,0) 100%);
-	background:-ms-linear-gradient(left,  rgba(255,255,255,0) 0%,rgba(255,255,255,0.6) 98%,rgba(255,255,255,0) 100%);
-	background:linear-gradient(to right,  rgba(255,255,255,0) 0%,rgba(255,255,255,0.6) 98%,rgba(255,255,255,0) 100%); */
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr="#00ffffff", endColorstr="#00ffffff", GradientType=1);
-}
-
-.progressbar .bar span {
-  position: absolute;
-  display: block;
-  width: 100%;
-  height: 64px;
-  border-radius: 16px;
-  border-radius: 16px;
-  top: 0;
-  left: 0;
-  animation: sparkle 1500ms linear infinite;
-  animation: sparkle 1500ms linear infinite;
-  animation: sparkle 1500ms linear infinite;
-  animation: sparkle 1500ms linear infinite;
-  opacity: 0.4;
-}
-
-.label.la-top code,
-.progressbar .label {
-  display: flex;
-  align-items: center;
-}
-
-.progressbar .label {
-  font-family: Aldrich, sans-serif;
-  position: relative;
-  width: 100%;
-  height: 30px;
-  line-height: 30px;
-  bottom: 40px;
-  left: 0;
-  background: rgb(255 255 255);
-  filter: progid:dximagetransform.microsoft.gradient(startColorstr="#4c4c4c", endColorstr="#262626", GradientType=0);
-  font-weight: bold;
-  font-size: 12px;
-  color: #515a6e;
-  filter: dropshadow(color=#000000, offx=0, offy=-1);
-}
-
-.label.la-top code {
-  position: absolute;
-  right: 0;
-  top: 6px;
-}
-
-.traffic-info {
-  margin-top: 6px;
-}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
public/theme/tabler/css/user.min.css


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 3
public/theme/tabler/js/base.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 3
public/theme/tabler/js/base.min.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 2
public/theme/tabler/js/project.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
public/theme/tabler/js/project.min.js


+ 0 - 2
resources/email/auth/test.tpl

@@ -5,8 +5,6 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
-
 
     <style type="text/css">
         img {

+ 0 - 2
resources/email/auth/verify.tpl

@@ -5,8 +5,6 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
-
 
     <style type="text/css">
         img {

+ 0 - 2
resources/email/ext/back.tpl

@@ -5,8 +5,6 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
-
 
     <style type="text/css">
         img {

+ 1 - 1
resources/email/giftcard.tpl

@@ -5,7 +5,7 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
+
     <style type="text/css">
         img {
             max-width: 100%;

+ 0 - 2
resources/email/news/daily-traffic-report.tpl

@@ -5,8 +5,6 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
-
 
     <style type="text/css">
         img {

+ 0 - 2
resources/email/news/finance.tpl

@@ -5,8 +5,6 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
-
 
     <style type="text/css">
         img {

+ 0 - 2
resources/email/news/warn.tpl

@@ -5,8 +5,6 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
-
 
     <style type="text/css">
         img {

+ 1 - 1
resources/email/newuser.tpl

@@ -5,7 +5,7 @@
 <head>
     <meta name="viewport" content="width=device-width"/>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-    <title>Billing e.g. invoices and receipts</title>
+
     <style type="text/css">
         img {
             max-width: 100%;

+ 5 - 1
resources/views/tabler/admin/detect.tpl

@@ -87,7 +87,7 @@
                 </div>
                 <div class="modal-footer">
                     <button type="button" class="btn me-auto" data-bs-dismiss="modal">取消</button>
-                    <button id="add-invite-button" type="button" class="btn btn-primary" data-bs-dismiss="modal">提交</button>
+                    <button id="add-detect-button" type="button" class="btn btn-primary" data-bs-dismiss="modal">提交</button>
                 </div>
             </div>
         </div>
@@ -192,6 +192,10 @@
             table;
         }
 
+        function reloadTableAjax() {
+            table.ajax.reload(null, false);
+        }
+
         loadTable();
     </script>
 

+ 0 - 12
resources/views/tabler/admin/setting/email.tpl

@@ -92,24 +92,12 @@
                                         <input id="smtp_username" type="text" class="form-control" value="{$settings['smtp_username']}">
                                     </div>
                                 </div>
-                                <div class="form-group mb-3 row">
-                                    <label class="form-label col-3 col-form-label">SMTP 用户名</label>
-                                    <div class="col">
-                                        <input id="smtp_username" type="text" class="form-control" value="{$settings['smtp_username']}">
-                                    </div>
-                                </div>
                                 <div class="form-group mb-3 row">
                                     <label class="form-label col-3 col-form-label">SMTP 密码</label>
                                     <div class="col">
                                         <input id="smtp_password" type="text" class="form-control" value="{$settings['smtp_password']}">
                                     </div>
                                 </div>
-                                <div class="form-group mb-3 row">
-                                    <label class="form-label col-3 col-form-label">SMTP 用户名</label>
-                                    <div class="col">
-                                        <input id="smtp_username" type="text" class="form-control" value="{$settings['smtp_username']}">
-                                    </div>
-                                </div>
                                 <div class="form-group mb-3 row">
                                     <label class="form-label col-3 col-form-label">SMTP 端口</label>
                                     <div class="col">

+ 0 - 16
resources/views/tabler/dialog.tpl

@@ -1,16 +0,0 @@
-<div aria-hidden="true" class="modal modal-va-middle fade" id="result" role="dialog" tabindex="-1">
-    <div class="modal-dialog modal-xs">
-        <div class="modal-content">
-            <div class="modal-inner">
-                <p class="h5 margin-top-sm text-black-hint" id="msg"></p>
-            </div>
-            <div class="modal-footer">
-                <p class="text-right">
-                    <button class="btn btn-flat btn-brand-accent waves-attach" data-dismiss="modal" type="button"
-                            id="result_ok">知道了
-                    </button>
-                </p>
-            </div>
-        </div>
-    </div>
-</div>

+ 0 - 15
resources/views/tabler/footer.tpl

@@ -1,15 +0,0 @@
-<footer class="ui-footer">
-    <div class="container">
-        &copy;{date("Y")} {$config['appName']} | Powered by <a href="/staff">SSPANEL</a>
-        {if $config['enable_analytics_code'] === true}{include file='analytics.tpl'}{/if}
-    </div>
-</footer>
-
-<!-- js -->
-<script src="//cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
-<script src="/theme/tabler/js/base.min.js"></script>
-<script src="/theme/tabler/js/project.min.js"></script>
-
-</body>
-{include file='live_chat.tpl'}
-</html>

+ 1 - 5
resources/views/tabler/gateway/payjs_success.tpl

@@ -1,5 +1,3 @@
-{include file='user/main.tpl'}
-
 <main class="content">
     <div class="content-header ui-content-header">
         <div class="container">
@@ -26,6 +24,4 @@
             </div>
         </section>
     </div>
-</main>
-
-{include file='user/footer.tpl'}
+</main>

+ 0 - 24
resources/views/tabler/header.tpl

@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-cn">
-<head>
-    <meta charset="UTF-8">
-    <meta content="IE=edge" http-equiv="X-UA-Compatible">
-    <meta content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width" name="viewport">
-    <meta name="theme-color" content="#4285f4">
-    <title>{$config['appName']}</title>
-    <!-- css -->
-    <link href="/theme/tabler/css/base.min.css" rel="stylesheet">
-    <link href="/theme/tabler/css/project.min.css" rel="stylesheet">
-    <link href="/theme/tabler/css/auth.min.css" rel="stylesheet">
-    <link href="//cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css" rel="stylesheet">
-    <style>
-        .divcss5 {
-            position: fixed;
-            bottom: 0;
-        }
-    </style>
-    <!-- js -->
-    <script src="/assets/js/fuck.min.js"></script>
-</head>
-
-<body class="page-brand">

+ 0 - 11
resources/views/tabler/table/checkbox.tpl

@@ -1,11 +0,0 @@
-{foreach $table_config['total_column'] as $key => $value}
-    <div class="checkbox checkbox-adv checkbox-inline">
-        <label for="checkbox_{$key}">
-            <input href="javascript:void(0);" onClick="modify_table_visible('checkbox_{$key}', '{$key}')"
-                   {if in_array($key, $table_config['default_show_column']) || count($table_config['default_show_column']) == 0}checked=""{/if}
-                   class="access-hide" id="checkbox_{$key}" name="checkbox_{$key}" type="checkbox">{$value}
-            <span class="checkbox-circle"></span><span class="checkbox-circle-check"></span><span
-                    class="checkbox-circle-icon mdi mdi-check"></span>
-        </label>
-    </div>
-{/foreach}

+ 0 - 12
resources/views/tabler/table/js_1.tpl

@@ -1,12 +0,0 @@
-function modify_table_visible(id, key) {
-if(document.getElementById(id).checked)
-{
-table_1.columns( '.' + key ).visible( true );
-localStorage.setItem(window.location.href + '-haschecked-' + id, true);
-}
-else
-{
-table_1.columns( '.' + key ).visible( false );
-localStorage.setItem(window.location.href + '-haschecked-' + id, false);
-}
-}

+ 0 - 41
resources/views/tabler/table/js_2.tpl

@@ -1,41 +0,0 @@
-table_1 = $('#table_1').DataTable({
-ajax: {
-url: '{$table_config['ajax_url']}',
-type: "POST"
-},
-processing: true,
-serverSide: true,
-order: [[ 0, 'desc' ]],
-stateSave: true,
-columnDefs: [
-{
-targets: [ '_all' ],
-className: 'mdl-data-table__cell--non-numeric'
-}
-],
-columns: [
-{foreach $table_config['total_column'] as $key => $value}
-    { "data": "{$key}" },
-{/foreach}
-],
-{include file='table/lang_chinese.tpl'}
-})
-
-
-var has_init = JSON.parse(localStorage.getItem(window.location.href + '-hasinit'));
-if (has_init != true) {
-localStorage.setItem(window.location.href + '-hasinit', true);
-} else {
-{foreach $table_config['total_column'] as $key => $value}
-    var checked = JSON.parse(localStorage.getItem(window.location.href + '-haschecked-checkbox_{$key}'));
-    if (checked == true) {
-    document.getElementById('checkbox_{$key}').checked = true;
-    } else {
-    document.getElementById('checkbox_{$key}').checked = false;
-    }
-{/foreach}
-}
-
-{foreach $table_config['total_column'] as $key => $value}
-    modify_table_visible('checkbox_{$key}', '{$key}');
-{/foreach}

+ 0 - 4
resources/views/tabler/table/js_delete.tpl

@@ -1,4 +0,0 @@
-table_1
-.row('#row_1_' + deleteid)
-.remove()
-.draw();

+ 0 - 24
resources/views/tabler/table/lang_chinese.tpl

@@ -1,24 +0,0 @@
-language: {
-"sProcessing": "处理中...",
-"sLengthMenu": "显示 _MENU_ 项结果",
-"sZeroRecords": "没有匹配结果",
-"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
-"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
-"sInfoFiltered": "(由 _MAX_ 项结果过滤)",
-"sInfoPostFix": "",
-"sSearch": "搜索:",
-"sUrl": "",
-"sEmptyTable": "表中数据为空",
-"sLoadingRecords": "载入中...",
-"sInfoThousands": ",",
-"oPaginate": {
-"sFirst": "首页",
-"sPrevious": "上页",
-"sNext": "下页",
-"sLast": "末页"
-},
-"oAria": {
-"sSortAscending": ": 以升序排列此列",
-"sSortDescending": ": 以降序排列此列"
-}
-}

+ 0 - 16
resources/views/tabler/table/table.tpl

@@ -1,16 +0,0 @@
-<table id="table_1" class="mdl-data-table" cellspacing="0" width="100%">
-    <thead>
-        <tr>
-            {foreach $table_config['total_column'] as $key => $value}
-                <th class="{$key}">{$value}</th>
-            {/foreach}
-        </tr>
-    </thead>
-    <tbody>
-        <tr>
-            {foreach $table_config['total_column'] as $key => $value}
-                <th class="{$key}">{$value}</th>
-            {/foreach}
-        </tr>
-    </tbody>
-</table>

+ 0 - 128
resources/views/tabler/user/bought.tpl

@@ -1,128 +0,0 @@
-{include file='user/main.tpl'}
-
-<main class="content">
-    <div class="content-header ui-content-header">
-        <div class="container">
-            <h1 class="content-heading">购买记录</h1>
-        </div>
-    </div>
-    <div class="container">
-        <div class="col-lg-12 col-sm-12">
-            <section class="content-inner margin-top-no">
-
-                <div class="card">
-                    <div class="card-main">
-                        <div class="card-inner">
-                            <p>系统中您的购买记录。</p>
-                        </div>
-                    </div>
-                </div>
-                <div class="card">
-                    <div class="card-main">
-                        <div class="card-inner">
-                            <div class="card-table">
-                                <div class="table-responsive table-user">
-                                    {$render}
-                                    <table class="table">
-                                        <tr>
-                                            <th>ID</th>
-                                            <th>购买时间</th>
-                                            <th>商品名称</th>
-                                            <th>内容</th>
-                                            <th>价格</th>
-                                            <th>续费时间</th>
-                                            <th>续费时重置流量</th>
-                                            <th>操作</th>
-                                        </tr>
-                                        {foreach $shops as $shop}
-                                            <tr>
-                                                <td>#{$shop->id}</td>
-                                                <td>{$shop->datetime()}</td>
-                                                <td>{$shop->shop()->name}</td>
-                                                <td>{$shop->shop()->content()}</td>
-                                                <td>{$shop->price} 元</td>
-                                                <td>{$shop->renew()}</td>
-                                                <td>{$shop->autoResetBandwidthString()}</td>
-                                                <td>
-                                                    <a class="btn btn-brand"
-                                                       {if $shop->renew==0}disabled{else}href="javascript:void(0);" onClick="delete_modal_show('{$shop->id}')"{/if}>关闭自动续费</a>
-                                                </td>
-                                            </tr>
-                                        {/foreach}
-                                    </table>
-                                    {$render}
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div aria-hidden="true" class="modal modal-va-middle fade" id="delete_modal" role="dialog"
-                     tabindex="-1">
-                    <div class="modal-dialog modal-xs">
-                        <div class="modal-content">
-                            <div class="modal-heading">
-                                <a class="modal-close" data-dismiss="modal">×</a>
-                                <h2 class="modal-title">确认要关闭自动续费?</h2>
-                            </div>
-                            <div class="modal-inner">
-                                <p>请您确认。</p>
-                            </div>
-                            <div class="modal-footer">
-                                <p class="text-right">
-                                    <button class="btn btn-flat btn-brand-accent waves-attach waves-effect"
-                                            data-dismiss="modal" type="button">
-                                        取消
-                                    </button>
-                                    <button class="btn btn-flat btn-brand-accent waves-attach" data-dismiss="modal"
-                                            id="delete_input" type="button">
-                                        确定
-                                    </button>
-                                </p>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                {include file='dialog.tpl'}
-        </div>
-    </div>
-</main>
-
-{include file='user/footer.tpl'}
-
-<script>
-    function delete_modal_show(id) {
-        $("#delete_modal").modal();
-        document.getElementById('delete_input').setAttribute('data-id', id);
-    }
-    $(document).ready(function () {
-        function delete_id(id) {
-            $.ajax({
-                type: "DELETE",
-                url: "/user/bought",
-                dataType: "json",
-                data: {
-                    id
-                },
-                success: (data) => {
-                    if (data.ret) {
-                        $("#result").modal();
-                        $$.getElementById('msg').innerHTML = data.msg;
-                        window.setTimeout("location.href=window.location.href", {$config['jump_delay']});
-                    } else {
-                        $("#result").modal();
-                        $$.getElementById('msg').innerHTML = data.msg;
-                    }
-                },
-                error: (jqXHR) => {
-                    $("#result").modal();
-                    $$.getElementById('msg').innerHTML = `${
-                            data.msg
-                            } 发生错误了`;
-                }
-            });
-        }
-        $$.getElementById('delete_input').addEventListener('click', () => {
-            delete_id($$.getElementById('delete_input').getAttribute('data-id'));
-        });
-    })
-</script>

+ 0 - 177
resources/views/tabler/user/code.tpl

@@ -1,177 +0,0 @@
-{include file='user/main.tpl'}
-
-<main class="content">
-    <div class="content-header ui-content-header">
-        <div class="container">
-            <h1 class="content-heading">充值</h1>
-        </div>
-    </div>
-    <div class="container">
-        <section class="content-inner margin-top-no">
-            <div class="row">
-                <div class="col-lg-12 col-md-12">
-                    <div class="card margin-bottom-no">
-                        <div class="card-main">
-                            <div class="card-inner">
-                                <div class="card-inner">
-                                    <p class="card-heading">注意事项</p>
-                                    <p>充值完成后需刷新网页以查看余额,通常一分钟内到账。因余额不足而未能完成的自动续费,在余额足够时会自动划扣续费。</p>
-                                    {if $public_setting['enable_admin_contact'] == true}
-                                        <p class="card-heading">如充值未到账,请联系:</p>
-                                        {if $public_setting['admin_contact1'] != ''}
-                                            <li>{$public_setting['admin_contact1']}</li>
-                                        {/if}
-                                        {if $public_setting['admin_contact2'] != ''}
-                                            <li>{$public_setting['admin_contact2']}</li>
-                                        {/if}
-                                        {if $public_setting['admin_contact3'] != ''}
-                                            <li>{$public_setting['admin_contact3']}</li>
-                                        {/if}
-                                    {/if}
-                                    <br/>
-                                    <p><i class="mdi mdi-currency-usd icon-lg"></i>当前余额:<font color="#399AF2" size="5">{$user->money}</font> 元</p>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                {if count($payments) > 0}
-                    {foreach from=$payments item=payment}
-                        <div class="col-lg-12 col-md-12">
-                            <div class="card margin-bottom-no">
-                                <div class="card-main" id="card-{$payment::_name()}">
-                                    <div class="card-inner">
-                                        {$payment::getPurchaseHTML()}
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                    {/foreach}
-                {/if}
-                <div class="col-lg-12 col-md-12">
-                    <div class="card margin-bottom-no">
-                        <div class="card-main">
-                            <div class="card-inner">
-                                <div class="card-inner">
-                                    <div class="cardbtn-edit">
-                                        <div class="card-heading">充值码</div>
-                                        <button class="btn btn-flat" id="code-update">
-                                            <span class="mdi mdi-check"></span>
-                                        </button>
-                                    </div>
-                                    <div class="form-group form-group-label">
-                                        <label class="floating-label" for="code">充值码</label>
-                                        <input class="form-control maxwidth-edit" id="code" type="text">
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div class="col-lg-12 col-md-12">
-                    <div class="card margin-bottom-no">
-                        <div class="card-main">
-                            <div class="card-inner">
-                                <div class="card-table">
-                                    <div class="table-responsive table-user">
-                                        {$render}
-                                        <table class="table table-hover">
-                                            <tr>
-                                                <!--<th>ID</th> -->
-                                                <th>代码</th>
-                                                <th>类型</th>
-                                                <th>操作</th>
-                                                <th>使用时间</th>
-                                            </tr>
-                                            {foreach $codes as $code}
-                                                {if $code->type!=-2}
-                                                    <tr>
-                                                        <!--	<td>#{$code->id}</td>  -->
-                                                        <td>{$code->code}</td>
-                                                        {if $code->type==-1}
-                                                            <td>金额充值</td>
-                                                        {/if}
-                                                        {if $code->type==10001}
-                                                            <td>流量充值</td>
-                                                        {/if}
-                                                        {if $code->type==10002}
-                                                            <td>用户续期</td>
-                                                        {/if}
-                                                        {if $code->type>=1&&$code->type<=10000}
-                                                            <td>等级续期 - 等级{$code->type}</td>
-                                                        {/if}
-                                                        {if $code->type==-1}
-                                                            <td>充值 {$code->number} 元</td>
-                                                        {/if}
-                                                        {if $code->type==10001}
-                                                            <td>充值 {$code->number} GB 流量</td>
-                                                        {/if}
-                                                        {if $code->type==10002}
-                                                            <td>延长账户有效期 {$code->number} 天</td>
-                                                        {/if}
-                                                        {if $code->type>=1&&$code->type<=10000}
-                                                            <td>延长等级有效期 {$code->number} 天</td>
-                                                        {/if}
-                                                        <td>{$code->usedatetime}</td>
-                                                    </tr>
-                                                {/if}
-                                            {/foreach}
-                                        </table>
-                                        {$render}
-                                    </div>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div aria-hidden="true" class="modal modal-va-middle fade" id="readytopay" role="dialog" tabindex="-1">
-                    <div class="modal-dialog modal-xs">
-                        <div class="modal-content">
-                            <div class="modal-heading">
-                                <a class="modal-close" data-dismiss="modal">×</a>
-                                <h2 class="modal-title">正在连接支付网关</h2>
-                            </div>
-                            <div class="modal-inner">
-                                <p id="title">感谢您对我们的支持,请耐心等待</p>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                {include file='dialog.tpl'}
-            </div>
-        </section>
-    </div>
-</main>
-<script>
-    $(document).ready(function () {
-        $("#code-update").click(function () {
-            $.ajax({
-                type: "POST",
-                url: "code",
-                dataType: "json",
-                data: {
-                    code: $$getValue('code')
-                },
-                success: (data) => {
-                    if (data.ret) {
-                        $("#result").modal();
-                        $$.getElementById('msg').innerHTML = data.msg;
-                        window.setTimeout("location.href=window.location.href", {$config['jump_delay']});
-                    } else {
-                        $("#result").modal();
-                        $$.getElementById('msg').innerHTML = data.msg;
-                        window.setTimeout("location.href=window.location.href", {$config['jump_delay']});
-                    }
-                },
-                error: (jqXHR) => {
-                    $("#result").modal();
-{literal}
-                    $$.getElementById('msg').innerHTML = `发生错误:${jqXHR.status}`;
-{/literal}
-                }
-            })
-        })
-    })
-</script>
-
-{include file='user/footer.tpl'}

+ 0 - 15
resources/views/tabler/user/footer.tpl

@@ -1,15 +0,0 @@
-<footer class="ui-footer">
-    <div class="container">
-        &copy;{date("Y")} {$config['appName']} | Powered by <a href="/staff">SSPANEL</a>
-    </div>
-</footer>
-
-<!-- js -->
-<script src="/theme/tabler/js/base.min.js"></script>
-<script src="/theme/tabler/js/project.min.js"></script>
-<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/clipboard.min.js"></script>
-<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/jquery.validate.min.js"></script>
-<script>console.table([['数据库查询', '执行时间'], ['{count($queryLog)} 次', '{$optTime} ms']])</script>
-
-</body>
-</html>

+ 0 - 194
resources/views/tabler/user/header_info.tpl

@@ -1,194 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-cn">
-<head>
-    <meta charset="UTF-8">
-    <meta content="IE=edge" http-equiv="X-UA-Compatible">
-    <meta content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width" name="viewport">
-    <meta name="theme-color" content="#4caf50">
-    <meta http-equiv="X-Frame-Options" content="sameorigin">
-    <title>{$config['appName']}</title>
-    <!-- css -->
-    <link href="/theme/tabler/css/base.min.css" rel="stylesheet">
-    <link href="/theme/tabler/css/project.min.css" rel="stylesheet">
-    <link href="https://fonts.googleapis.com/css?family=Material+Icons" rel="stylesheet">
-    <!-- jquery -->
-    <script src="//cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
-    <!-- favicon -->
-    <!-- ... -->
-    <style>
-        .pagination {
-            display: inline-block;
-            padding-left: 0;
-            margin: 20px 0;
-            border-radius: 4px
-        }
-
-        .pagination > li {
-            display: inline
-        }
-
-        .pagination > li > a, .pagination > li > span {
-            position: relative;
-            float: left;
-            padding: 6px 12px;
-            margin-left: -1px;
-            line-height: 1.42857143;
-            color: #337ab7;
-            text-decoration: none;
-            background-color: #fff;
-            border: 1px solid #ddd
-        }
-
-        .pagination > li:first-child > a, .pagination > li:first-child > span {
-            margin-left: 0;
-            border-top-left-radius: 4px;
-            border-bottom-left-radius: 4px
-        }
-
-        .pagination > li:last-child > a, .pagination > li:last-child > span {
-            border-top-right-radius: 4px;
-            border-bottom-right-radius: 4px
-        }
-
-        .pagination > li > a:focus, .pagination > li > a:hover, .pagination > li > span:focus, .pagination > li > span:hover {
-            color: #23527c;
-            background-color: #eee;
-            border-color: #ddd
-        }
-
-        .pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover {
-            z-index: 2;
-            color: #fff;
-            cursor: default;
-            background-color: #337ab7;
-            border-color: #337ab7
-        }
-
-        .pagination > .disabled > a, .pagination > .disabled > a:focus, .pagination > .disabled > a:hover, .pagination > .disabled > span, .pagination > .disabled > span:focus, .pagination > .disabled > span:hover {
-            color: #777;
-            cursor: not-allowed;
-            background-color: #fff;
-            border-color: #ddd
-        }
-
-        .pagination-lg > li > a, .pagination-lg > li > span {
-            padding: 10px 16px;
-            font-size: 18px
-        }
-
-        .pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span {
-            border-top-left-radius: 6px;
-            border-bottom-left-radius: 6px
-        }
-
-        .pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span {
-            border-top-right-radius: 6px;
-            border-bottom-right-radius: 6px
-        }
-
-        .pagination-sm > li > a, .pagination-sm > li > span {
-            padding: 5px 10px;
-            font-size: 12px
-        }
-
-        .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span {
-            border-top-left-radius: 3px;
-            border-bottom-left-radius: 3px
-        }
-
-        .pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span {
-            border-top-right-radius: 3px;
-            border-bottom-right-radius: 3px
-        }
-
-        .pager {
-            padding-left: 0;
-            margin: 20px 0;
-            text-align: center;
-            list-style: none
-        }
-
-        .pager li {
-            display: inline
-        }
-
-        .pager li > a, .pager li > span {
-            display: inline-block;
-            padding: 5px 14px;
-            background-color: #fff;
-            border: 1px solid #ddd;
-            border-radius: 15px
-        }
-
-        .pager li > a:focus, .pager li > a:hover {
-            text-decoration: none;
-            background-color: #eee
-        }
-
-        .pager .next > a, .pager .next > span {
-            float: right
-        }
-
-        .pager .previous > a, .pager .previous > span {
-            float: left
-        }
-
-        .pager .disabled > a, .pager .disabled > a:focus, .pager .disabled > a:hover, .pager .disabled > span {
-            color: #777;
-            cursor: not-allowed;
-            background-color: #fff
-        }
-
-
-        .pagination > li > a,
-        .pagination > li > span {
-            border: 1px solid white;
-        }
-
-        .pagination > li.active > a {
-            background: #f50057;
-            color: #fff;
-        }
-
-        .pagination > li > a {
-            background: white;
-            color: #000;
-        }
-
-
-        .pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover {
-            color: #fff;
-            background-color: #000;
-            border-color: #000;
-        }
-
-        .pagination > .active > span {
-            background-color: #f50057;
-            color: #fff;
-            border-color: #fff;
-        }
-
-
-        .pagination > .disabled > span {
-            border-color: #fff;
-        }
-
-
-        pre {
-            white-space: pre-wrap;
-            word-wrap: break-word;
-        }
-
-        .page-green .ui-content-header {
-            background-image: url(/theme/tabler/css/images/bg/amber.jpg);
-        }
-
-
-        .content-header-green, .page-green .content-header {
-            background-color: #459f47;
-            color: #fff;
-        }
-    </style>
-</head>
-<body class="page-green">
-{*<script src="/assets/js/fuck.js"></script>*}

+ 7 - 0
resources/views/tabler/user/index.tpl

@@ -178,6 +178,9 @@
                                                 <p>
                                                     通用订阅(clash):<code>{$getUniversalSub}/clash</code>
                                                 </p>
+                                                <p>
+                                                    通用订阅(sip008):<code>{$getUniversalSub}/sip008</code>
+                                                </p>
                                                 <div class="btn-list justify-content-start">
                                                     <a data-clipboard-text="{$getUniversalSub}/json"
                                                         class="copy btn btn-primary">
@@ -187,6 +190,10 @@
                                                         class="copy btn btn-primary">
                                                         复制通用订阅(clash)
                                                     </a>
+                                                    <a data-clipboard-text="{$getUniversalSub}/sip008"
+                                                       class="copy btn btn-primary">
+                                                        复制通用订阅(sip008)
+                                                    </a>
                                                 </div>
                                             </div>
                                         </div>

+ 0 - 107
resources/views/tabler/user/main.tpl

@@ -1,107 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh-cn">
-<head>
-    <meta charset="UTF-8">
-    <meta content="IE=edge" http-equiv="X-UA-Compatible">
-    <meta content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width" name="viewport">
-    <meta name="theme-color" content="#4285f4">
-    <title>{$config['appName']}</title>
-    <!-- css -->
-    <link href="/theme/tabler/css/base.min.css" rel="stylesheet">
-    <link href="/theme/tabler/css/project.min.css" rel="stylesheet">
-    <link href="/theme/tabler/css/user.min.css" rel="stylesheet">
-    <link href="//cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css" rel="stylesheet">
-    <!-- jquery -->
-    <script src="//cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script>
-    <!-- js -->
-    <script src="/assets/js/fuck.min.js"></script>
-    <script src="//cdn.jsdelivr.net/gh/davidshimjs/qrcodejs@master/qrcode.min.js"></script>
-</head>
-<body class="page-orange">
-<header class="header header-orange header-transparent header-waterfall ui-header">
-    <ul class="nav nav-list pull-left">
-        <div>
-            <a data-toggle="menu" href="#ui_menu">
-                <span class="mdi mdi-menu icon-lg text-white"></span>
-            </a>
-        </div>
-    </ul>
-    <ul class="nav nav-list pull-right">
-        <div class="dropdown margin-right">
-            <a class="dropdown-toggle padding-left-no padding-right-no" data-toggle="dropdown">
-                <span class="access-hide">{$user->user_name}</span>
-                <span class="avatar avatar-sm"><img src="{$user->gravatar}"></span>
-            </a>
-            <ul class="dropdown-menu dropdown-menu-right">
-                <li>
-                    <a class="padding-right-cd waves-attach" href="/user/logout">
-                        <span class="mdi mdi-exit-to-app icon-lg margin-right"></span>登出
-                    </a>
-                </li>
-            </ul>
-        </div>
-    </ul>
-</header>
-<nav aria-hidden="true" class="menu menu-left nav-drawer nav-drawer-md" id="ui_menu" tabindex="-1">
-    <div class="menu-scroll">
-        <div class="menu-content">
-            <a class="menu-logo" href="/">&nbsp;{$config['appName']}</a>
-            <ul class="nav">
-                <li>
-                    <a class="waves-attach" data-toggle="collapse" href="#ui_menu_me">我的</a>
-                    <ul class="menu-collapse collapse in" id="ui_menu_me">
-                        <li>
-                            <a href="/user"><i class="mdi mdi-home icon-lg"></i>&nbsp;用户中心</a>
-                        </li>
-                        <li>
-                            <a href="/user/profile"><i class="mdi mdi-account-box icon-lg"></i>&nbsp;账户信息</a>
-                        </li>
-                        <li>
-                            <a href="/user/edit"><i class="mdi mdi-account-edit icon-lg"></i>&nbsp;资料编辑</a>
-                        </li>
-                        {if $config['enable_ticket']===true}
-                        <li>
-                            <a href="/user/ticket"><i class="mdi mdi-comment-question icon-lg"></i>&nbsp;工单系统</a>
-                        </li>
-                        {/if}
-                        <li>
-                            <a href="/user/invite"><i class="mdi mdi-account-multiple-plus icon-lg"></i>&nbsp;邀请链接</a>
-                        </li>
-                    </ul>
-                    <a class="waves-attach" data-toggle="collapse" href="#ui_menu_use">使用</a>
-                    <ul class="menu-collapse collapse in" id="ui_menu_use">
-                        <li>
-                            <a href="/user/server"><i class="mdi mdi-server icon-lg"></i>&nbsp;节点列表</a>
-                        </li>
-                        <li>
-                            <a href="/user/announcement"><i class="mdi mdi-bullhorn-variant icon-lg"></i>&nbsp;站点公告</a>
-                        </li>
-                        <li>
-                            <a href="/user/detect"><i class="mdi mdi-account-filter icon-lg"></i>&nbsp;审计规则</a>
-                        </li>
-                    </ul>
-                    <a class="waves-attach" data-toggle="collapse" href="#ui_menu_help">商店</a>
-                    <ul class="menu-collapse collapse in" id="ui_menu_help">
-                        <li>
-                            <a href="/user/code"><i class="mdi mdi-wallet-plus icon-lg"></i>&nbsp;充值</a>
-                        </li>
-                        <li>
-                            <a href="/user/shop"><i class="mdi mdi-wallet-travel icon-lg"></i>&nbsp;套餐购买</a>
-                        </li>
-                        <li>
-                            <a href="/user/bought"><i class="mdi mdi-list-box icon-lg"></i>&nbsp;购买记录</a>
-                        </li>
-                    </ul>
-                    {if $user->is_admin}
-                        <a href="/admin"><i class="mdi mdi-account-tie icon-lg"></i>&nbsp;管理面板</a>
-                    {/if}
-                    {if $can_backtoadmin}
-                        <a href="/user/backtoadmin"><i class="mdi mdi-keyboard-return icon-lg"></i>&nbsp;返回管理员身份</a>
-                    {/if}
-                </li>
-            </ul>
-        </div>
-    </div>
-</nav>
-
-{include file='live_chat.tpl'}

+ 0 - 425
resources/views/tabler/user/shop.tpl

@@ -1,425 +0,0 @@
-{include file='user/main.tpl'}
-
-<main class="content">
-    <div class="content-header ui-content-header">
-        <div class="container">
-            <h1 class="content-heading">套餐购买</h1>
-        </div>
-    </div>
-    <div class="container">
-        <div class="col-lg-12 col-sm-12">
-            <section class="content-inner margin-top-no">
-                <div class="card">
-                    <div class="card-main">
-                        <div class="card-inner">
-                            <p>商品不可叠加,新购商品会覆盖旧商品的效果。</p>
-                            <p>购买新套餐时,如果未关闭旧套餐自动续费,则旧套餐的自动续费依然生效。</p>
-                            <p><i class="mdi mdi-currency-usd icon-lg"></i>当前余额:<font color="#399AF2" size="5">{$user->money}</font> 元</p>
-                        </div>
-                    </div>
-                </div>
-                <div class="ui-switch">
-                    <div class="card">
-                        <div class="card-main">
-                            <div class="card-inner ui-switch-inner">
-                                <div class="switch-btn" id="switch-cards">
-                                    <a href="#" onclick="return false">
-                                        <i class="mdi mdi-apps"></i>
-                                    </a>
-                                </div>
-                                <div class="switch-btn" id="switch-table">
-                                    <a href="#" onclick="return false">
-                                        <i class="mdi mdi-format-list-bulleted"></i>
-                                    </a>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                    <div class="card">
-                        <div class="card-main">
-                            <div class="dropdown btn-group">
-                                <a href="javascript:void(0);" type="button" class="btn btn-dropdown-toggle dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                                  选择商品类型 <span class="caret"></span>
-                                </a>
-                                <ul class="dropdown-menu">
-                                  <li class="order-type"><a href="javascript:void(0)" id="orders">套餐购买</a></li>
-                                  <li class="order-type"><a href="javascript:void(0)" id="traffice-packages">叠加流量包</a></li>
-                                </ul>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            <div data-areatype="orders">
-                <div class="shop-flex">
-                    {foreach $shops as $shop}
-                    {if $shop->trafficPackage() == 0}
-                        <div class="card">
-                            <div class="card-main">
-                                <div class="shop-name">{$shop->name}</div>
-                                <div class="shop-price">{$shop->price}</div>
-                                <div class="shop-tat">
-                                    <span>{$shop->bandwidth()}</span> / <span>{$shop->classExpire()}</span>
-                                </div>
-                                <div class="shop-cube">
-                                    <div>
-                                        <div class="cube-detail">
-                                            <span>Lv.</span>{$shop->userClass()}
-                                        </div>
-                                        <div class="cube-title">
-                                            VIP
-                                        </div>
-                                    </div>
-                                    <div>
-                                        <div class="cube-detail">
-                                            {if {$shop->connector()} == '0' }无限制{else}{$shop->connector()}
-                                                <span> 个</span>
-                                            {/if}
-                                        </div>
-                                        <div class="cube-title">
-                                            客户端数量
-                                        </div>
-                                    </div>
-                                    <div>
-                                        <div class="cube-detail">
-                                            {if {$shop->speedlimit()} == '0' }无限制{else}{$shop->speedlimit()}
-                                                <span> Mbps</span>
-                                            {/if}
-                                        </div>
-                                        <div class="cube-title">
-                                            端口速率
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="shop-content">
-                                    <div class="shop-content-left">账号有效期:</div>
-                                    <div class="shop-content-right">{$shop->expire()}<span>天</span></div>
-                                    <div class="shop-content-left">重置周期:</div>
-                                    <div class="shop-content-right">{if {$shop->reset()} == '0' }N / A{else}{$shop->resetExp()}
-                                            <span>天</span>
-                                        {/if}</div>
-                                    <div class="shop-content-left">重置频率:</div>
-                                    <div class="shop-content-right">{if {$shop->reset()} == '0' }N / A{else}{$shop->resetValue()}
-                                            <span>G</span>
-                                            / {$shop->reset()}
-                                            <span>天</span>
-                                        {/if}</div>
-                                </div>
-                                <div class="shop-content-extra">
-                                    {foreach $shop->contentExtra() as $service}
-                                        <div><span class="mdi mdi-{$service[0]}"></span> {$service[1]}</div>
-                                    {/foreach}
-                                </div>
-                                <a class="btn btn-brand-accent shop-btn" href="javascript:void(0);"
-                                   onClick="buy('{$shop->id}',{$shop->auto_renew})">购买</a>
-                            </div>
-                        </div>
-                    {/if}
-                    {/foreach}
-                    <div class="flex-fix3"></div>
-                    <div class="flex-fix4"></div>
-                </div>
-                <div class="shop-table">
-                    {foreach $shops as $shop}
-                    {if $shop->trafficPackage() == 0}
-                        <div class="shop-gridarea">
-                            <div class="card">
-                                <div>
-                                    <div class="shop-name"><span>{$shop->name}</span></div>
-                                    <div class="card-tag tag-gold">VIP {$shop->userClass()}</div>
-                                    <div class="card-tag tag-orange">¥ {$shop->price}</div>
-                                    <div class="card-tag tag-cyan">{$shop->bandwidth()} G</div>
-                                    <div class="card-tag tag-blue">{$shop->classExpire()} 天</div>
-                                </div>
-                                <div>
-                                    <i class="mdi mdi-chevron-down"></i>
-                                </div>
-                            </div>
-                            <a class="btn btn-brand-accent shop-btn" href="javascript:void(0);"
-                               onClick="buy('{$shop->id}',{$shop->auto_renew})">购买</a>
-                            <div class="shop-drop dropdown-area">
-                                <div class="card-tag tag-black">账号有效期</div>
-                                <div class="card-tag tag-blue">{$shop->expire()} 天</div>
-                                {if {$shop->reset()} == '0' }
-                                    <div class="card-tag tag-black">重置周期</div>
-                                    <div class="card-tag tag-blue">N/A</div>
-                                {else}
-                                    <div class="card-tag tag-black">重置周期</div>
-                                    <div class="card-tag tag-blue">{$shop->resetExp()} 天</div>
-                                    <div class="card-tag tag-black">重置频率</div>
-                                    <div class="card-tag tag-blue">{$shop->resetValue()}G/{$shop->reset()}天</div>
-                                {/if}
-                                {if {$shop->speedlimit()} == '0' }
-                                    <div class="card-tag tag-black">端口速率</div>
-                                    <div class="card-tag tag-blue">无限制</div>
-                                {else}
-                                    <div class="card-tag tag-black">端口限速</div>
-                                    <div class="card-tag tag-blue">{$shop->speedlimit()} Mbps</div>
-                                {/if}
-                                {if {$shop->connector()} == '0' }
-                                    <div class="card-tag tag-black">客户端数量</div>
-                                    <div class="card-tag tag-blue">无限制</div>
-                                {else}
-                                    <div class="card-tag tag-black">客户端限制</div>
-                                    <div class="card-tag tag-blue">{$shop->connector()} 个</div>
-                                {/if}
-                            </div>
-                        </div>
-                    {/if}
-                    {/foreach}
-                </div>
-            </div>
-            <div style="display: none;" data-areatype="trafficePackages">
-                <div class="shop-table" style="display: flex">
-                    {foreach $shops as $shop}
-                    {if $shop->trafficPackage() != 0}
-                    <div class="shop-gridarea">
-                        <div class="card">
-                            <div>
-                                <div class="shop-name"><span>{$shop->name}</span></div>
-                                <div class="card-tag tag-orange">¥ {$shop->price}</div>
-                                <div class="card-tag tag-cyan">{$shop->bandwidth()} G</div>
-                            </div>
-                            <div>
-                                <i class="mdi mdi-chevron-down"></i>
-                            </div>
-                        </div>
-                        <a class="btn btn-brand-accent shop-btn" href="javascript:void(0);"
-                        onClick="buyTraffic('{$shop->id}')">购买</a>
-                        <div class="shop-drop dropdown-area">
-                            <div class="card-tag tag-black">流量包流量</div>
-                            <div class="card-tag tag-blue">{$shop->bandwidth()} G</div>
-                        </div>
-                    </div>
-                {/if}
-                {/foreach}
-                </div>
-            </div>
-                <div aria-hidden="true" class="modal modal-va-middle fade" id="coupon_modal" role="dialog"
-                     tabindex="-1">
-                    <div class="modal-dialog modal-xs">
-                        <div class="modal-content">
-                            <div class="modal-heading">
-                                <a class="modal-close" data-dismiss="modal">×</a>
-                                <h2 class="modal-title">您有优惠码吗?</h2>
-                            </div>
-                            <div class="modal-inner">
-                                <div class="form-group form-group-label">
-                                    <label class="floating-label" for="coupon">有的话,请在这里输入。没有的话,直接确定吧</label>
-                                    <input class="form-control maxwidth-edit" id="coupon" type="text">
-                                </div>
-                            </div>
-                            <div class="modal-footer">
-                                <p class="text-right">
-                                    <button class="btn btn-flat btn-brand waves-attach" data-dismiss="modal"
-                                            id="coupon_input" type="button">确定
-                                    </button>
-                                </p>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div aria-hidden="true" class="modal modal-va-middle fade" id="traffic_package_modal" role="dialog"
-                     tabindex="-1">
-                    <div class="modal-dialog modal-xs">
-                        <div class="modal-content">
-                            <div class="modal-heading">
-                                <a class="modal-close" data-dismiss="modal">×</a>
-                                <h2 class="modal-title">确认购买流量包吗?</h2>
-                            </div>
-                            <div class="modal-footer">
-                                <p class="text-right">
-                                    <button class="btn btn-flat btn-brand waves-attach" data-dismiss="modal"
-                                            id="traffic_package_confirm" type="button">确定
-                                    </button>
-                                </p>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                <div aria-hidden="true" class="modal modal-va-middle fade" id="order_modal" role="dialog" tabindex="-1">
-                    <div class="modal-dialog modal-xs">
-                        <div class="modal-content">
-                            <div class="modal-heading">
-                                <a class="modal-close" data-dismiss="modal">×</a>
-                                <h2 class="modal-title">订单确认</h2>
-                            </div>
-                            <div class="modal-inner">
-                                <p id="name">商品名称:</p>
-                                <p id="credit">优惠额度:</p>
-                                <p id="total">总金额:</p>
-                                <div class="checkbox switch">
-                                    <label for="disableothers">
-                                        <input checked class="access-hide" id="disableothers" type="checkbox">
-                                        <span class="switch-toggle"></span>关闭旧套餐自动续费
-                                    </label>
-                                </div>
-                                <br/>
-                                <div class="checkbox switch" id="autor">
-                                    <label for="autorenew">
-                                        <input checked class="access-hide" id="autorenew" type="checkbox">
-                                        <span class="switch-toggle"></span>到期时自动续费
-                                    </label>
-                                </div>
-
-                            </div>
-                            <div class="modal-footer">
-                                <p class="text-right">
-                                    <button class="btn btn-flat btn-brand waves-attach" data-dismiss="modal"
-                                            id="order_input" type="button">确定
-                                    </button>
-                                </p>
-                            </div>
-                        </div>
-                    </div>
-                </div>
-                {include file='dialog.tpl'}
-        </div>
-    </div>
-</main>
-
-{include file='user/footer.tpl'}
-
-<script>
-    function buy(id, auto) {
-        if (auto == 0) {
-            document.getElementById('autor').style.display = "none";
-        } else {
-            document.getElementById('autor').style.display = "";
-        }
-        shop = id;
-        $("#coupon_modal").modal();
-    }
-    let trafficPackageId;
-    function buyTraffic(id) {
-        trafficPackageId = id
-        $("#traffic_package_modal").modal();
-    }
-    $('#traffic_package_confirm').click(function() {
-        $.ajax({
-            type: "POST",
-            url: "buy_traffic_package",
-            dataType: "json",
-            data: {
-                shop: trafficPackageId
-            },
-            success: (data) => {
-                if (data.ret) {
-                    $("#result").modal();
-                    $$.getElementById('msg').innerHTML = data.msg;
-                    window.setTimeout("location.href='/user/shop'", {$config['jump_delay']});
-                } else {
-                    $("#result").modal();
-                    $$.getElementById('msg').innerHTML = data.msg;
-                }
-            },
-            error: (jqXHR) => {
-                $("#result").modal();
-                $$.getElementById('msg').innerHTML = `${
-                        data.msg
-                        } 发生了错误`;
-            }
-        })
-    })
-    ;(function () {
-        //UI切换
-        let elShopCard = $$.querySelectorAll(".shop-flex");
-        let elShopTable = $$.querySelectorAll("[data-areatype=orders] .shop-table");
-        let switchToCard = new UIswitch('switch-cards', elShopTable, elShopCard, 'flex', 'tempshop');
-        switchToCard.listenSwitch();
-        let switchToTable = new UIswitch('switch-table', elShopCard, elShopTable, 'flex', 'tempshop');
-        switchToTable.listenSwitch();
-        switchToCard.setDefault();
-        switchToTable.setDefault();
-        //手风琴
-        let dropDownButton = $$.querySelectorAll('.shop-table .card');
-        let dropDownArea = $$.querySelectorAll('.dropdown-area');
-        let arrows = $$.querySelectorAll('.shop-table .card i');
-        for (let i = 0; i < dropDownButton.length; i++) {
-            rotatrArrow(dropDownButton[i], arrows[i]);
-            custDropdown(dropDownButton[i], dropDownArea[i]);
-        }
-        //商品类型
-        let orderType = "orders"
-        let orders = $$.querySelectorAll('[data-areatype=orders]')
-        let trafficePackages = $$.querySelectorAll('[data-areatype=trafficePackages]')
-        let switchToOrders = new UIswitch('orders', trafficePackages, orders, 'flex', 'tempordertype');
-        switchToOrders.listenSwitch();
-        let switchToTrafficePackages = new UIswitch('traffice-packages', orders, trafficePackages, 'flex', 'tempordertype');
-        switchToTrafficePackages.listenSwitch();
-        switchToOrders.setDefault();
-        switchToTrafficePackages.setDefault();
-    })();
-    $("#coupon_input").click(function () {
-        $.ajax({
-            type: "POST",
-            url: "coupon_check",
-            dataType: "json",
-            data: {
-                coupon: $$getValue('coupon'),
-                shop
-            },
-            success: (data) => {
-                if (data.ret) {
-                    $$.getElementById('name').innerHTML = `商品名称:${
-                            data.name
-                            }`;
-                    $$.getElementById('credit').innerHTML = `优惠额度:${
-                            data.credit
-                            }`;
-                    $$.getElementById('total').innerHTML = `总金额:${
-                            data.total
-                            }`;
-                    $("#order_modal").modal();
-                } else {
-                    $("#result").modal();
-                    $$.getElementById('msg').innerHTML = data.msg;
-                }
-            },
-            error: (jqXHR) => {
-                $("#result").modal();
-                $$.getElementById('msg').innerHTML = `${
-                        data.msg
-                        } 发生了错误`;
-            }
-        })
-    });
-    $("#order_input").click(function () {
-        if (document.getElementById('autorenew').checked) {
-            var autorenew = 1;
-        } else {
-            var autorenew = 0;
-        }
-        if (document.getElementById('disableothers').checked) {
-            var disableothers = 1;
-        } else {
-            var disableothers = 0;
-        }
-        $.ajax({
-            type: "POST",
-            url: "buy",
-            dataType: "json",
-            data: {
-                coupon: $$getValue('coupon'),
-                shop,
-                autorenew,
-                disableothers
-            },
-            success: (data) => {
-                if (data.ret) {
-                    $("#result").modal();
-                    $$.getElementById('msg').innerHTML = data.msg;
-                    window.setTimeout("location.href='/user/shop'", {$config['jump_delay']});
-                } else {
-                    $("#result").modal();
-                    $$.getElementById('msg').innerHTML = data.msg;
-                }
-            },
-            error: (jqXHR) => {
-                $("#result").modal();
-                $$.getElementById('msg').innerHTML = `${
-                        data.msg
-                        } 发生了错误`;
-            }
-        })
-    });
-</script>

+ 0 - 11
src/Controllers/HomeController.php

@@ -4,7 +4,6 @@ declare(strict_types=1);
 
 namespace App\Controllers;
 
-use App\Models\InviteCode;
 use App\Services\Auth;
 use App\Utils\Telegram\Process;
 use Exception;
@@ -26,16 +25,6 @@ final class HomeController extends BaseController
         return $response->write($this->view()->fetch('index.tpl'));
     }
 
-    /**
-     * @throws Exception
-     */
-    public function code(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $codes = InviteCode::where('user_id', '=', '0')->take(10)->get();
-
-        return $response->write($this->view()->assign('codes', $codes)->fetch('code.tpl'));
-    }
-
     /**
      * @throws Exception
      */

+ 6 - 0
src/Controllers/LinkController.php

@@ -44,6 +44,12 @@ final class LinkController extends BaseController
             ]);
         }
 
+        if ((int) $user->is_banned === 1) {
+            return $response->withJson([
+                'ret' => 0,
+            ]);
+        }
+
         $sub_type = '';
         $sub_info = [];
 

+ 72 - 27
src/Controllers/SubController.php

@@ -45,6 +45,12 @@ final class SubController extends BaseController
             ]);
         }
 
+        if ((int) $user->is_banned === 1) {
+            return $response->withJson([
+                'ret' => 0,
+            ]);
+        }
+
         $subtype_list = ['json', 'clash', 'sip008'];
         if (! in_array($subtype, $subtype_list)) {
             return $response->withJson([
@@ -54,41 +60,28 @@ final class SubController extends BaseController
 
         $sub_info = [];
 
-        if ($subtype === 'json') {
-            $sub_info = self::getJson($user);
-        }
-
-        if ($subtype === 'clash') {
-            $sub_info = self::getClash($user);
-        }
-
-        if ($subtype === 'sip008') {
-            $sub_info = self::getSIP008($user);
-        }
+        match ($subtype) {
+            'json' => $sub_info = self::getJson($user),
+            'clash' => $sub_info = self::getClash($user),
+            'sip008' => $sub_info = self::getSIP008($user),
+        };
 
         if ($_ENV['subscribeLog'] === true) {
             UserSubscribeLog::addSubscribeLog($user, $subtype, $request->getHeaderLine('User-Agent'));
         }
 
-        if ($subtype === 'json' || $subtype === 'sip008') {
+        if (in_array($subtype, ['json', 'sip008'])) {
             return $response->withJson([
                 $sub_info,
             ]);
         }
-
-        if ($subtype === 'clash') {
-            $sub_details = ' upload=' . $user->u
-            . '; download=' . $user->d
-            . '; total=' . $user->transfer_enable
-            . '; expire=' . strtotime($user->class_expire);
-            return $response->withHeader('Subscription-Userinfo', $sub_details)->write(
-                $sub_info
-            );
-        }
-
-        return $response->withJson([
-            'ret' => 0,
-        ]);
+        $sub_details = ' upload=' . $user->u
+        . '; download=' . $user->d
+        . '; total=' . $user->transfer_enable
+        . '; expire=' . strtotime($user->class_expire);
+        return $response->withHeader('Subscription-Userinfo', $sub_details)->write(
+            $sub_info
+        );
     }
 
     public static function getJson($user): array
@@ -357,8 +350,60 @@ final class SubController extends BaseController
     }
 
     // SIP008 SS 订阅
-    public static function getSIP008($user): void
+    public static function getSIP008($user): array
     {
+        $nodes = [];
+        //篩選出用戶能連接的節點
+        $nodes_raw = Node::where('type', 1)
+            ->where('node_class', '<=', $user->class)
+            ->whereIn('node_group', [0, $user->node_group])
+            ->where(static function ($query): void {
+                $query->where('node_bandwidth_limit', '=', 0)->orWhereRaw('node_bandwidth < node_bandwidth_limit');
+            })
+            ->get();
+
+        foreach ($nodes_raw as $node_raw) {
+            $node_custom_config = json_decode($node_raw->custom_config, true);
+            //檢查是否配置“前端/订阅中下发的服务器地址”
+            if (! array_key_exists('server_user', $node_custom_config)) {
+                $server = $node_raw->server;
+            } else {
+                $server = $node_custom_config['server_user'];
+            }
+
+            switch ((int) $node_raw->sort) {
+                case 0:
+                    $plugin = $node_custom_config['plugin'] ?? '';
+                    $plugin_option = $node_custom_config['plugin_option'] ?? '';
+                    $node = [
+                        'id' => $node_raw->id,
+                        'remarks' => $node_raw->name,
+                        'server' => $server,
+                        'server_port' => (int) $user->port,
+                        'password' => $user->passwd,
+                        'method' => $user->method,
+                        'plugin' => $plugin,
+                        'plugin_opts' => $plugin_option,
+                    ];
+                    break;
+                default:
+                    $node = [];
+                    break;
+            }
+
+            if ($node === []) {
+                continue;
+            }
+
+            $nodes[] = $node;
+        }
+
+        return [
+            'version' => 1,
+            'servers' => $nodes,
+            'bytes_used' => $user->u + $user->d,
+            'bytes_remaining' => $user->transfer_enable - $user->u - $user->d,
+        ];
     }
 
     public static function getUniversalSub($user): string

+ 0 - 211
src/Controllers/User/ShopController.php

@@ -1,211 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Controllers\User;
-
-use App\Controllers\BaseController;
-use App\Models\Bought;
-use App\Models\Coupon;
-use App\Models\Payback;
-use App\Models\Setting;
-use App\Models\Shop;
-use App\Utils\ResponseHelper;
-use Exception;
-use Psr\Http\Message\ResponseInterface;
-use Slim\Http\Response;
-use Slim\Http\ServerRequest;
-use function time;
-
-final class ShopController extends BaseController
-{
-    /**
-     * @throws Exception
-     */
-    public function shop(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $shops = Shop::where('status', 1)->orderBy('name')->get();
-
-        return $response->write($this->view()->assign('shops', $shops)->fetch('user/shop.tpl'));
-    }
-
-    public function couponCheck(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $coupon = $request->getParam('coupon');
-        $coupon = trim($coupon);
-
-        $user = $this->user;
-        $shop = $request->getParam('shop');
-
-        $shop = Shop::where('id', $shop)->where('status', 1)->first();
-
-        if ($shop === null) {
-            return ResponseHelper::error($response, '非法请求');
-        }
-
-        if ($coupon === '') {
-            return $response->withJson([
-                'ret' => 1,
-                'name' => $shop->name,
-                'credit' => '0 %',
-                'total' => $shop->price . '元',
-            ]);
-        }
-
-        $coupon = Coupon::where('code', $coupon)->first();
-
-        if ($coupon === null) {
-            return ResponseHelper::error($response, '优惠码无效');
-        }
-
-        if ($coupon->order($shop->id) === false) {
-            return ResponseHelper::error($response, '此优惠码不可用于此商品');
-        }
-
-        $use_limit = $coupon->onetime;
-        if ($use_limit > 0) {
-            $use_count = Bought::where('userid', $user->id)->where('coupon', $coupon->code)->count();
-            if ($use_count >= $use_limit) {
-                return ResponseHelper::error($response, '优惠码次数已用完');
-            }
-        }
-
-        return $response->withJson([
-            'ret' => 1,
-            'name' => $shop->name,
-            'credit' => $coupon->credit . ' %',
-            'total' => $shop->price * ((100 - $coupon->credit) / 100) . '元',
-        ]);
-    }
-
-    public function buy(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $user = $this->user;
-        $shop = $request->getParam('shop');
-        $coupon = trim($request->getParam('coupon'));
-        $autorenew = $request->getParam('autorenew');
-        $disableothers = $request->getParam('disableothers');
-        $coupon_code = $coupon;
-
-        $shop = Shop::where('id', $shop)
-            ->where('status', 1)
-            ->first();
-
-        if ($shop === null) {
-            return ResponseHelper::error($response, '商品不存在或已下架');
-        }
-
-        $orders = Bought::where('userid', $user->id)->get();
-        foreach ($orders as $order) {
-            if ($order->shop()->useLoop() && $order->valid()) {
-                return ResponseHelper::error($response, '您购买的含有自动重置系统的套餐还未过期,无法购买新套餐');
-            }
-        }
-
-        if ($coupon === '') {
-            $credit = 0;
-        } else {
-            $coupon = Coupon::where('code', $coupon)->first();
-            if ($coupon === null) {
-                return ResponseHelper::error($response, '此优惠码不存在');
-            }
-            $credit = $coupon->credit;
-            if ($coupon->order($shop->id) === false) {
-                return ResponseHelper::error($response, '此优惠码不适用于此商品');
-            }
-            if ($coupon->expire < time()) {
-                return ResponseHelper::error($response, '此优惠码已过期');
-            }
-            if ($coupon->onetime > 0) {
-                $use_count = Bought::where('userid', $user->id)
-                    ->where('coupon', $coupon->code)
-                    ->count();
-                if ($use_count >= $coupon->onetime) {
-                    return ResponseHelper::error($response, '此优惠码使用次数已达上限');
-                }
-            }
-        }
-
-        $price = $shop->price * (100 - $credit) / 100;
-        if (bccomp((string) $user->money, (string) $price, 2) === -1) {
-            return ResponseHelper::error($response, '账户余额不足,请先充值');
-        }
-        $user->money = bcsub((string) $user->money, (string) $price, 2);
-        $user->save();
-
-        if ($disableothers === 1) {
-            $boughts = Bought::where('userid', $user->id)->get();
-            foreach ($boughts as $disable_bought) {
-                $disable_bought->renew = 0;
-                $disable_bought->save();
-            }
-        }
-
-        $bought = new Bought();
-        $bought->userid = $user->id;
-        $bought->shopid = $shop->id;
-        $bought->datetime = time();
-        if ($autorenew === 0 || $shop->auto_renew === 0) {
-            $bought->renew = 0;
-        } else {
-            $bought->renew = time() + $shop->auto_renew * 86400;
-        }
-        $bought->coupon = $coupon_code;
-        $bought->price = $price;
-        $bought->save();
-        $shop->buy($user);
-
-        // 返利
-        if ($user->ref_by > 0 && Setting::obtain('invitation_mode') === 'after_purchase') {
-            Payback::rebate($user->id, $price);
-        }
-
-        return ResponseHelper::successfully($response, '购买成功');
-    }
-
-    public function buyTrafficPackage(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $user = $this->user;
-        $shop = $request->getParam('shop');
-        $shop = Shop::where('id', $shop)->where('status', 1)->first();
-        $price = $shop->price;
-
-        if ($shop === null || $shop->trafficPackage() === 0) {
-            return ResponseHelper::error($response, '非法请求');
-        }
-
-        if ($user->class < $shop->content['traffic_package']['class']['min'] || $user->class > $shop->content['traffic_package']['class']['max']) {
-            return ResponseHelper::error($response, '您当前的会员等级无法购买此流量包');
-        }
-
-        if (! $user->isLogin) {
-            return $response->withJson([ 'ret' => -1 ]);
-        }
-
-        if (bccomp((string) $user->money, (string) $price, 2) === -1) {
-            return ResponseHelper::error($response, '喵喵喵~ 当前余额不足,总价为'
-                . $price . '元。</br><a href="/user/code">点击进入充值界面</a>');
-        }
-
-        $user->money = bcsub((string) $user->money, (string) $price, 2);
-        $user->save();
-
-        $bought = new Bought();
-        $bought->userid = $user->id;
-        $bought->shopid = $shop->id;
-        $bought->datetime = time();
-        $bought->renew = 0;
-        $bought->coupon = 0;
-        $bought->price = $price;
-        $bought->save();
-
-        $shop->buy($user);
-
-        // 返利
-        if ($user->ref_by > 0 && Setting::obtain('invitation_mode') === 'after_purchase') {
-            Payback::rebate($user->id, $price);
-        }
-
-        return ResponseHelper::successfully($response, '购买成功');
-    }
-}

+ 0 - 150
src/Controllers/UserController.php

@@ -5,8 +5,6 @@ declare(strict_types=1);
 namespace App\Controllers;
 
 use App\Models\Ann;
-use App\Models\Bought;
-use App\Models\Code;
 use App\Models\Docs;
 use App\Models\EmailVerify;
 use App\Models\InviteCode;
@@ -21,7 +19,6 @@ use App\Services\Captcha;
 use App\Services\Config;
 use App\Services\DB;
 use App\Services\MFA;
-use App\Services\Payment;
 use App\Utils\Cookie;
 use App\Utils\Hash;
 use App\Utils\ResponseHelper;
@@ -70,108 +67,6 @@ final class UserController extends BaseController
         );
     }
 
-    /**
-     * @throws Exception
-     */
-    public function code(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $pageNum = $request->getQueryParams()['page'] ?? 1;
-        $codes = Code::where('type', '<>', '-2')
-            ->where('userid', '=', $this->user->id)
-            ->orderBy('id', 'desc')
-            ->paginate(15, ['*'], 'page', $pageNum);
-
-        $render = Tools::paginateRender($codes);
-
-        return $response->write(
-            $this->view()
-                ->assign('codes', $codes)
-                ->assign('payments', Payment::getPaymentsEnabled())
-                ->assign('render', $render)
-                ->fetch('user/code.tpl')
-        );
-    }
-
-    public function codeCheck(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $time = $request->getQueryParams()['time'];
-        $codes = Code::where('userid', '=', $this->user->id)
-            ->where('usedatetime', '>', date('Y-m-d H:i:s', $time))
-            ->first();
-
-        if ($codes !== null && str_contains($codes->code, '充值')) {
-            return $response->withJson([
-                'ret' => 1,
-            ]);
-        }
-        return $response->withJson([
-            'ret' => 0,
-        ]);
-    }
-
-    public function codePost(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $code = trim($request->getParam('code'));
-        if ($code === '') {
-            return ResponseHelper::error($response, '请填写充值码');
-        }
-
-        $codeq = Code::where('code', $code)->where('isused', 0)->first();
-        if ($codeq === null) {
-            return ResponseHelper::error($response, '没有这个充值码');
-        }
-
-        $user = $this->user;
-        $codeq->isused = 1;
-        $codeq->usedatetime = date('Y-m-d H:i:s');
-        $codeq->userid = $user->id;
-        $codeq->save();
-
-        if ($codeq->type === -1) {
-            $user->money += $codeq->number;
-            $user->save();
-
-            // 返利
-            if ($user->ref_by > 0 && Setting::obtain('invitation_mode') === 'after_recharge') {
-                Payback::rebate($user->id, $codeq->number);
-            }
-
-            return $response->withJson([
-                'ret' => 1,
-                'msg' => '兑换成功,金额为 ' . $codeq->number . ' 元',
-            ]);
-        }
-
-        if ($codeq->type === 10001) {
-            $user->transfer_enable += $codeq->number * 1024 * 1024 * 1024;
-            $user->save();
-        }
-
-        if ($codeq->type === 10002) {
-            if (time() > strtotime($user->expire_in)) {
-                $user->expire_in = date('Y-m-d H:i:s', time() + (int) $codeq->number * 86400);
-            } else {
-                $user->expire_in = date('Y-m-d H:i:s', strtotime($user->expire_in) + (int) $codeq->number * 86400);
-            }
-            $user->save();
-        }
-
-        if ($codeq->type >= 1 && $codeq->type <= 10000) {
-            if ($user->class === 0 || $user->class !== $codeq->type) {
-                $user->class_expire = date('Y-m-d H:i:s', time());
-                $user->save();
-            }
-            $user->class_expire = date('Y-m-d H:i:s', strtotime($user->class_expire) + (int) $codeq->number * 86400);
-            $user->class = $codeq->type;
-            $user->save();
-        }
-
-        return $response->withJson([
-            'ret' => 1,
-            'msg' => '',
-        ]);
-    }
-
     public function resetPort(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
     {
         $temp = $this->user->resetPort();
@@ -454,51 +349,6 @@ final class UserController extends BaseController
         return ResponseHelper::successfully($response, '修改成功');
     }
 
-    /**
-     * @throws Exception
-     */
-    public function bought(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
-    {
-        $pageNum = $request->getQueryParams()['page'] ?? 1;
-        $shops = Bought::where('userid', $this->user->id)->orderBy('id', 'desc')->paginate(15, ['*'], 'page', $pageNum);
-        if ($request->getParam('json') === 1) {
-            foreach ($shops as $shop) {
-                $shop->datetime = $shop->datetime();
-                $shop->name = $shop->shop()->name;
-                $shop->content = $shop->shop()->content();
-            }
-            return $response->withJson([
-                'ret' => 1,
-                'shops' => $shops,
-            ]);
-        }
-        $render = Tools::paginateRender($shops);
-
-        return $response->write($this->view()
-            ->assign('shops', $shops)
-            ->assign('render', $render)
-            ->fetch('user/bought.tpl'));
-    }
-
-    public function deleteBoughtGet(ServerRequest $request, Response $response, array $args): ResponseInterface
-    {
-        $id = $request->getParam('id');
-        $shop = Bought::where('id', $id)->where('userid', $this->user->id)->first();
-
-        if ($shop === null) {
-            return ResponseHelper::error($response, '关闭自动续费失败,订单不存在。');
-        }
-
-        if ($this->user->id === $shop->userid) {
-            $shop->renew = 0;
-        }
-
-        if (! $shop->save()) {
-            return ResponseHelper::error($response, '关闭自动续费失败');
-        }
-        return ResponseHelper::successfully($response, '关闭自动续费成功');
-    }
-
     public function updateContact(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
     {
         $antiXss = new AntiXSS();

+ 5 - 0
src/Utils/Telegram/Callbacks/Callback.php

@@ -820,6 +820,10 @@ final class Callback
                     'text' => 'Json',
                     'callback_data' => 'user.subscribe|json',
                 ],
+                [
+                    'text' => 'Shadowsocks SIP008',
+                    'callback_data' => 'user.subscribe|sip008',
+                ],
             ],
             [
                 [
@@ -886,6 +890,7 @@ final class Callback
             $text = match ($CallbackDataExplode[1]) {
                 'clash' => 'Clash 通用订阅地址:' . PHP_EOL . PHP_EOL . '<code>' . $UniversalSub_Url . '/clash</code>' . PHP_EOL . PHP_EOL,
                 'json' => 'Json 通用订阅地址:' . PHP_EOL . PHP_EOL . '<code>' . $UniversalSub_Url . '/json</code>' . PHP_EOL . PHP_EOL,
+                'sip008' => 'Shadowsocks SIP008 通用订阅地址:' . PHP_EOL . PHP_EOL . '<code>' . $UniversalSub_Url . '/sip008</code>' . PHP_EOL . PHP_EOL,
                 'ss' => 'Shadowsocks 传统订阅地址:' . PHP_EOL . PHP_EOL . '<code>' . $TraditionalSub_Url . '?ss=1</code>' . PHP_EOL . PHP_EOL,
                 'sip002' => 'Shadowsocks SIP002 传统订阅地址:' . PHP_EOL . PHP_EOL . '<code>' . $TraditionalSub_Url . '?sip002=1</code>' . PHP_EOL . PHP_EOL,
                 'v2' => 'V2Ray 传统订阅地址:' . PHP_EOL . PHP_EOL . '<code>' . $TraditionalSub_Url . '?v2ray=1</code>' . PHP_EOL . PHP_EOL,

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio