    /* ?…¨å?€?˜?‡ */
*{margin: 0; padding: 0; box-sizing: border-box; font-family: "Microsoft YaHei", sans-serif;}
:root{
      --primary-blue: #344bf7; 
      --primary-blue-deep: #344bf7;
      --primary-blue-light: #e8edff;
      --snow-white: #f8fcff; 
      --snow-white-pure: #ffffff;
      --banner-bg: #0a1a2f;
      --text-dark: #111111; 
      --text-gray: #94a3b8;
      --border-gray: #e2e8f0;
      --news-highlight: #344bf7;
      --section-max-width: 1600px;
      --section-padding: 0 20px;
      --deep-black: #111111;
      --success-green: #16a34a;
      --accent-purple: #8b5cf6;
      --footer-bg: #1a1a2e; 
      --footer-text: #a9b1d6; 
      --footer-title: #ffffff; 
      --footer-highlight: #7dcfff; 
    }
a{text-decoration: none;}
html, body{
    height: 100%;
    margin: 0;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}
html::-webkit-scrollbar {
    display: none; /* Chrome/Safari/Opera */
}
body {
    height: 100%;
    margin: 0;
    background: var(--snow-white); 
    color: var(--text-dark);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow-y: auto; 
}
    /* é¡¶éƒ¨å??ˆ? */
    .top-bar {
      background: var(--primary-blue-deep);
      color: var(--snow-white-pure);
      padding: 8px 20px;
      font-size: 14px;
      text-align: center;
    }

    /* å¤´éƒ¨å??ˆ? */
    header {
      background: var(--snow-white-pure);
      box-shadow: 0 2px 10px rgba(52, 75, 247, 0.08);
      position: sticky;
      top: 0;
      z-index: 999;
    }

    .nav-container {
      max-width: 100%;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 15px 20px;
    }

    .logo {
      height: 50px;
        float: left;
    }
    .top-logo-text{
    float: left;
    line-height: 50px;
    font-weight: bold;
    margin-left: 4px;
    }

    .nav-menu {
      display:flex;
      list-style: none;
      gap: 40px;
      margin: 0;
      padding: 0;
      margin-left: auto;
      margin-right: 120px;
    }

    .nav-menu li a {
      text-decoration: none;
      color: var(--deep-black);
      font-size: 16px;
      font-weight: 500;
      transition: 0.3s;
    }

    .nav-menu li a:hover,
    .nav-menu li a.active {
      color: var(--primary-blue);
    }

    .header-right {
      display: flex;
      align-items: center;
      gap: 20px;
    }

    .lang {
      color: var(--primary-blue);
      font-weight: bold;
      cursor: pointer;
    }

    .login-btn {
      padding: 8px 20px;
      background: var(--primary-blue);
      color: var(--snow-white-pure);
      border: none;
      border-radius: 4px;
      cursor: pointer;
      transition: 0.3s;
    }
    
    .login-btn:hover {
      background: var(--primary-blue-deep);
    }

    /* Banner?€š????·å? */
    .banner-wrap {
      background: var(--banner-bg);
      background-image: url("images/banner-bg1.jpg");
      background-repeat: no-repeat;
      background-position: center;
      background-size: 100% 100%;
      width: 100%;
    }
    .banner {
      height: 580px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      color: var(--snow-white-pure);
      padding: 0 20px;
      max-width: var(--section-max-width);
      margin: 0 auto;
      position: relative;
      overflow: hidden;
    }

    .banner-left {
      max-width: 600px;
      z-index: 2;
      padding-bottom: 40px;
    }

    .banner-tag {
      display: inline-block;
      background: var(--primary-blue);
      color: var(--snow-white-pure);
      padding: 4px 12px;
      border-radius: 4px;
      font-size: 14px;
      margin-bottom: 20px;
    }

    .banner-title {
      font-size: 48px;
      line-height: 1.2;
      margin-bottom: 15px;
      color: var(--snow-white-pure);
    }

    .banner-title span {
      color: var(--primary-blue);
    }

    .banner-desc {
      font-size: 16px;
      color: var(--text-gray);
      line-height: 1.6;
      margin-bottom: 40px;
    }

    .banner-btns {
      display: flex;
      gap: 20px;
      margin-top: 20px;
    }

    .btn-primary {
      padding: 14px 28px;
      background: var(--primary-blue);
      color: var(--snow-white-pure);
      border: none;
      border-radius: 4px;
      font-size: 16px;
      cursor: pointer;
      transition: 0.3s;
    }
    
    .btn-primary:hover {
      background: var(--primary-blue-deep);
    }

    .btn-secondary {
      padding: 14px 28px;
      background: rgba(255, 255, 255, 0.1);
      color: var(--snow-white-pure);
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 4px;
      font-size: 16px;
      cursor: pointer;
      transition: 0.3s;
    }
    
    .btn-secondary:hover {
      background: rgba(255, 255, 255, 0.2);
    }

    /* è¿½è¸ª?Ÿ¥è?æ¡† */
    .banner-right {
      width: 450px;
      background: rgba(16, 30, 50, 0.8);
      border: 1px solid rgba(52, 75, 247, 0.2);
      border-radius: 8px;
      padding: 25px;
      z-index: 2;
    }

    .track-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 15px;
    }

    .track-title {
      font-size: 18px;
      color: var(--snow-white-pure);
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .track-title i {
      color: var(--primary-blue);
    }

    .real-time {
      background: #00c48c;
      color: var(--snow-white-pure);
      padding: 2px 8px;
      border-radius: 4px;
      font-size: 12px;
    }

    .track-desc {
      font-size: 14px;
      color: var(--text-gray);
      margin-bottom: 20px;
    }

    .track-input-wrap {
      display: flex;
      gap: 8px;
      margin-bottom: 15px;
    }

    .track-input {
      flex: 1;
      padding: 12px 15px;
      background: rgba(16, 30, 50, 0.6);
      border: 1px solid rgba(52, 75, 247, 0.3);
      border-radius: 4px;
      color: var(--snow-white-pure);
      font-size: 16px;
    }
    .default-input {
      flex: 1;
      width: 100%;
      padding: 12px 14px;
      background: #fff;
      color: var(--snow-white-pure);
      font-size: 16px;  
      border: 1px solid var(--border-gray);
      border-radius: 8px;
      font-size: 14px;
      margin-bottom:20px;
    }
    
    .track-input:focus {
      outline: none;
      border-color: var(--primary-blue);
    }

    .track-btn {
      padding: 0 20px;
      background: var(--primary-blue);
      color: var(--snow-white-pure);
      border: none;
      border-radius: 4px;
      cursor: pointer;
      transition: 0.3s;
    }
    
    .track-btn:hover {
      background: var(--primary-blue-deep);
    }

    .track-footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 12px;
      color: var(--text-gray);
    }

    .api-status {
      display: flex;
      align-items: center;
      gap: 5px;
    }

    .api-status dot {
      display: inline-block;
      width: 8px;
      height: 8px;
      background: #00c48c;
      border-radius: 50%;
    }

    /*Ê×Ò³Êý¾Ý**/
    .data-board {
        max-width: var(--section-width);
        padding: 20%;
        margin: 0 auto;
        display: flex;
        justify-content: space-around;
        align-items: center;
        background-color: var(--snow-white-pure);
        padding-top: 40px;
        padding-bottom: 40px;
        width: 100%;
        box-sizing: border-box;
    }

    .data-item {
      text-align: center;
    }

    .data-item .num {
      font-size: 32px;
      font-weight: bold;
      color: var(--deep-black);
      margin-bottom: 5px;
    }

    .data-item .label {
      font-size: 14px;
      color: var(--text-gray);
    }

    /* ?Œºå—?€š?”¨æ?·å? */
    .section,
    .news-section {
      max-width: var(--section-max-width);
      margin: 30px auto 0 auto;
      padding: var(--section-padding);
    }

    .section-title {
      text-align: center;
      font-size: 28px;
      color: var(--deep-black);
      margin-bottom: 40px;
      position: relative;
    }

    .section-title::after {
      content: "";
      width: 60px;
      height: 4px;
      background: var(--primary-blue);
      position: absolute;
      bottom: -10px;
      left: 50%;
      transform: translateX(-50%);
      border-radius: 2px;
    }

    /* ??¸å?ƒ?œ?Š? */
    .service-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 25px;
    }

    .service-card {
      background: var(--snow-white-pure);
      border-radius: 10px;
      padding: 35px 25px;
      text-align: center;
      box-shadow: 0 3px 10px rgba(52, 75, 247, 0.05);
      transition: 0.3s;
      border: 1px solid var(--border-gray);
    }

    .service-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 16px rgba(52, 75, 247, 0.1);
      border-color: var(--primary-blue-light);
    }

    .service-icon {
      width: 70px;
      height: 70px;
      margin: 0 auto 15px;
      border-radius: 50%;
      background: var(--primary-blue-light);
      display: flex;
      align-items: center;
      justify-content: center;
      transition: 0.3s;
    }

    .service-card:hover .service-icon {
      background: var(--primary-blue);
      transform: scale(1.05);
    }

    .service-icon img {
      width: 40px;
      height: 40px;
      object-fit: contain;
      /*filter: invert(23%) sepia(97%) saturate(2000%) hue-rotate(230deg) brightness(80%) contrast(100%);*/
      transition: 0.3s;
    }

    .service-card:hover .service-icon img {
      filter: invert(0);
    }

    .service-card h3 {
      color: var(--deep-black);
      font-size: 18px;
    }

    .service-card p {
      font-size: 14px;
      color: var(--text-gray);
      line-height: 1.6;
      margin-bottom: 15px;
    }

    .service-btn {
      padding: 6px 18px;
      background: var(--primary-blue-light);
      color: var(--primary-blue);
      border: none;
      border-radius: 4px;
      cursor: pointer;
      transition: 0.3s;
    }
    
    .service-btn:hover {
      background: var(--primary-blue);
      color: var(--snow-white-pure);
    }

    /* å¹³å°ä?˜?Š? */
    .features-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 20px;
    }

    .feature-box {
      background: var(--snow-white-pure);
      border-radius: 10px;
      padding: 30px 20px;
      box-shadow: 0 2px 8px rgba(52, 75, 247, 0.05);
      border: 1px solid var(--border-gray);
      transition: 0.3s;
      text-align: center;
    }
    
    .feature-box:hover {
      border-color: var(--primary-blue-light);
      transform: translateY(-5px);
    }

    .feature-icon {
      width: 80px;
      height: 80px;
      margin: 0 auto 15px;
      border-radius: 50%;
      background: var(--primary-blue-light);
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    .feature-icon img {
      width: 50px;
      height: 50px;
      object-fit: contain;
    }

    .feature-box h4 {
      color: var(--deep-black);
      margin-bottom: 10px;
      font-size: 18px;
    }

    .feature-box p {
      font-size: 14px;
      color: var(--text-gray);
      line-height: 1.5;
    }

    /* ?–°é—»è?„è®??ˆ?›¾ç‰‡?››?‘¨ç•™?™?+?ƒŒ?™??Ÿä¸€ï¼‰ */
    .news-list {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 15px;
    }

    .news-card-new {
      display: flex;
      flex-direction: column;
      height: 100%;
      background: var(--snow-white-pure);
      border-radius: 8px;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    }

    .news-card-highlight {
      background: var(--primary-blue);
      color: white;
    }

    .news-date-new {
      font-size: 14px;
      margin-bottom: 10px;
      padding: 0 10px;
      padding-top: 15px;
    }

    .news-card-highlight .news-date-new {
      color: white;
    }

    .news-card-normal .news-date-new {
      color: var(--text-gray);
    }

    .news-title-new {
      font-size: 16px;
      font-weight: 500;
      margin-bottom: 10px;
      line-height: 1.4;
      padding: 0 10px;
    }

    .news-card-highlight .news-title-new {
      color: white;
    }

    .news-card-normal .news-title-new {
      color: var(--deep-black);
    }

    /* ?–°é—»å›¾ç‰‡??¸å?ƒ??·å?ä¿?”? */
    .news-img-new {
      width: 100%;
      height: 180px;
      overflow: hidden;
      margin-bottom: 15px;
      padding: 10px; /* ?››?‘¨ç•™?™? */
    }

    .news-img-new img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.3s ease;
      border-radius: 4px;
    }

    .news-card-new:hover .news-img-new img {
      transform: scale(1.05);
    }

    .news-more-new {
      font-size: 14px;
      text-decoration: none;
      padding: 0 10px;
      padding-bottom: 15px;
      margin-top: auto;
    }

    .news-card-highlight .news-more-new {
      color: white;
    }

    .news-card-normal .news-more-new {
      color: var(--deep-black);
    }

    .news-more-new:hover {
      text-decoration: underline;
    }

    /* ?ˆä½œä¼ä¸š */
    .enterprise-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 20px;
    }

    .enterprise-card {
      background: var(--snow-white-pure);
      border-radius: 8px;
      padding: 15px;
      text-align: center;
      box-shadow: 0 2px 8px rgba(52, 75, 247, 0.05);
      border: 1px solid var(--border-gray);
      transition: 0.3s;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }
    
    .enterprise-card:hover {
      border-color: var(--primary-blue-light);
      transform: translateY(-3px);
    }

    .enterprise-logo {
      width: 100%;
      height: 100px;
      margin-bottom: 10px;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      background: #ffffff;
    }

    .enterprise-logo img {
      width: 100%;
      height: 100%;
      object-fit: contain;
    }

    .enterprise-name {
      font-size: 16px;
      color: var(--deep-black);
      font-weight: 500;
    }

    /* ?–°ç‰ˆFooter??·å? */
    footer {
      background: var(--footer-bg);
      color: var(--footer-text);
      padding: 60px 20px 40px;
      margin-top: 80px;
    }

    .footer-container {
      max-width: var(--section-max-width);
      margin: 0 auto;
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 2fr;
      gap: 40px;
      text-align: left;
    }

    /* å¹³å°ä?‹ç»æ¨¡å— */
    .footer-brand {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }

    .footer-logo-text {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .footer-logo-box {
      width: 40px;
      height: 40px;
      background: var(--primary-blue);
      border-radius: 6px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      font-size: 20px;
      font-weight: bold;
    }

    .footer-title {
      font-size: 22px;
      color: var(--footer-title);
      font-weight: 500;
    }

    .footer-desc {
      font-size: 14px;
      line-height: 1.6;
      color: var(--footer-text);
      max-width: 300px;
    }

    .footer-copyright {
      font-size: 12px;
      color: #666b85;
      margin-top: auto;
    }

    /* äºŒçº§èœ?•æ¨¡å— */
    .footer-menu {
      display: flex;
      flex-direction: column;
      gap: 15px;
    }

    .footer-menu-title {
      font-size: 16px;
      color: var(--footer-title);
      font-weight: 500;
      margin-bottom: 5px;
    }

    .footer-menu-list {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .footer-menu-list a {
      color: var(--footer-text);
      text-decoration: none;
      font-size: 14px;
      transition: color 0.3s;
    }

    .footer-menu-list a:hover {
      color: var(--primary-blue-light);
    }

    /* ?ˆè§„?›‘ç®¡æ¨¡?— */
    .footer-compliance {
      display: flex;
      flex-direction: column;
      gap: 15px;
    }

    .footer-compliance-desc {
      font-size: 14px;
      line-height: 1.6;
      color: var(--footer-text);
    }

    .security-level {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: #24283b;
      padding: 4px 12px;
      border-radius: 4px;
      font-size: 12px;
      margin-top: 10px;
    }

    .security-dot {
      width: 8px;
      height: 8px;
      background: var(--footer-highlight);
      border-radius: 50%;
    }

    .security-text {
      color: var(--footer-title);
    }

    .security-grade {
      color: var(--footer-highlight);
      font-weight: bold;
    }

    /* ?“åº”å¼?€‚?… */
    @media (max-width: 1200px) {
      .banner {
        flex-direction: column;
        height: auto;
        padding: 60px 20px;
        gap: 40px;
        text-align: center;
      }
      .banner-right {
        width: 100%;
        max-width: 450px;
      }
      .features-grid {
        grid-template-columns: repeat(2, 1fr);
      }
      .enterprise-grid {
        grid-template-columns: repeat(3, 1fr);
      }
      .news-list {
        grid-template-columns: repeat(2, 1fr);
      }
      .footer-container {
        grid-template-columns: 1fr 1fr;
        gap: 30px;
      }
    }

    @media (max-width: 768px) {
      .nav-menu {
        gap: 20px;
      }
      .service-grid {
        grid-template-columns: repeat(2, 1fr);
      }
      .features-grid {
        grid-template-columns: 1fr;
      }
      .enterprise-grid {
        grid-template-columns: repeat(2, 1fr);
      }
      .news-list {
        grid-template-columns: 1fr;
      }
      .footer-container {
        grid-template-columns: 1fr;
        gap: 30px;
      }
      .footer-brand, .footer-menu, .footer-compliance {
        padding-bottom: 20px;
        border-bottom: 1px solid #24283b;
      }
      .footer-compliance {
        border-bottom: none;
      }
    }

    @media (max-width: 480px) {
      .nav-menu {
        gap: 10px;
      }
      .service-grid {
        grid-template-columns: 1fr;
      }
      .enterprise-grid {
        grid-template-columns: 1fr;
      }
      .banner-title {
        font-size: 36px;
      }
    }


/*?”¿ç?–ä¸??ƒ??·å?ï¼ï¼ï¼ï¼*/
/* é¡¶éƒ¨æ?‡é¢˜æ¨??… */
    .page-banner {
      width: 100%;
      background: url("images/preview-topbg.jpg") no-repeat top;
      background-size: 100% 100%;
      padding: 40px 20px;
      text-align: center;
      color: #fff;
      margin-bottom: 30px;
    }
    .page-banner .tag {
      background: rgba(255,255,255,0.15);
      padding: 4px 14px;
      border-radius: 20px;
      font-size: 12px;
      display: inline-block;
      margin-bottom: 12px;
    }
    .page-banner h1 {
      font-size: 28px;
      margin-bottom: 10px;
    }
    .page-banner p {
      color: #c5d0e6;
      font-size: 14px;
      max-width: 800px;
      margin: 0 auto;
    }

    /* ä¸»ä?“å®¹å™¨å?ƒå±€ */
    .main-wrap {
      max-width: var(--section-max-width);
      margin: 10px auto 0;
      padding: 0 20px;
      display: grid;
      grid-template-columns: 2fr 1fr;
      gap: 20px;
      flex: 1;
    }
   .left-container {
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    /* ??‡ç­¾ç?›?€‰?? */
    .tab-group {
      display: flex;
      gap: 8px;
      margin-bottom: 20px;
    }
    .tab-item {
      padding: 8px 16px;
      border-radius: 6px;
      font-size: 14px;
      cursor: pointer;
      border: 1px solid var(--border-gray);
      background: #fff;
      transition: 0.2s;
    }
    .tab-item.active {
      background: var(--primary-blue);
      color: #fff;
      border-color: var(--primary-blue);
    }
    .tab-item:hover:not(.active) {
      background: var(--primary-blue-light);
    }

    /* ?–°é—»åˆ—è¡¨å¡ç‰‡ */
    .news-list-wrap {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .news-card {
      background: #fff;
      border-radius: 10px;
      padding: 20px;
      border: 1px solid var(--border-gray);
      transition: 0.2s;
    }
    .news-card:hover {
      box-shadow: 0 4px 12px rgba(52,75,247,0.07);
    }
    .news-head {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 10px;
    }
    .news-badge {
      font-size: 12px;
      padding: 2px 8px;
      border-radius: 4px;
    }
    .badge-important {
      background: #fee2e2;
      color: #dc2626;
    }
    .badge-notice {
      background: #dbeafe;
      color: #2563eb;
    }
    .badge-market {
      background: #fef3c7;
      color: #d97706;
    }
    .badge-system {
      background: #e5e7eb;
      color: #4b5563;
    }
    .news-cat {
      font-size: 12px;
      color: var(--text-gray);
    }
    .news-card h3 {
      font-size: 17px;
      margin-bottom: 10px;
      color: var(--deep-black);
    }
    .news-desc {
      font-size: 13px;
      color: var(--text-gray);
      line-height: 1.6;
      margin-bottom: 12px;
    }
    .news-foot {
      display: flex;
      justify-content: space-between;
      font-size: 12px;
      color: var(--text-gray);
    }

    /* ?³ä¾§è¾¹æ? */
    .sidebar {
      display: flex;
      flex-direction: column;
      gap: 25px;
    }
    .side-block {
      background: #fff;
      border-radius: 10px;
      border: 1px solid var(--border-gray);
      padding: 20px;
    }
    .side-block h4 {
      font-size: 16px;
      margin-bottom: 15px;
      padding-bottom: 8px;
      border-bottom: 1px solid var(--border-gray);
    }

    /* ?–‡æ¡£ä?‹è½½åˆ—è¡? */
    .doc-list {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }
    .doc-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 13px;
      line-height: 1.5;
    }
    .doc-info .doc-title {
      color: var(--text-dark);
    }
    .doc-info .doc-time {
      font-size: 11px;
      color: var(--text-gray);
    }
    .doc-down {
      color: var(--primary-blue);
      cursor: pointer;
    }

    /* è®¢é˜…æ¨¡å— */
    .subscribe-box {
      background: #1a1a2e !important;
      color: #fff;
    }
    .subscribe-box h4 {
      color: #fff;
      border-bottom-color: #333a56;
    }
    .subscribe-desc {
      font-size: 13px;
      color: #b0b8d4;
      margin-bottom: 15px;
      line-height: 1.6;
    }
    .subscribe-input {
      width: 100%;
      padding: 10px 12px;
      border-radius: 6px;
      border: none;
      background: #24283b;
      color: #fff;
      margin-bottom: 12px;
      font-size: 13px;
    }
    .subscribe-btn {
      width: 100%;
      padding: 11px;
      background: var(--primary-blue);
      color: #fff;
      border: none;
      border-radius: 6px;
      font-size: 14px;
      font-weight: 500;
      cursor: pointer;
    }
    .subscribe-btn:hover {
      background: var(--primary-blue-deep);
    }

    /* ?”ç³»ä?“çº? */
    .contact-line {
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-top: 10px;
    }
    .contact-item {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
    }
    .contact-item .icon-cn {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: var(--primary-blue-light);
      color: var(--primary-blue);
      display: grid;
      place-items: center;
      font-size:12px;
    }
    .contact-item .icon-ru {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #fee2e2;
      color: #dc2626;
      display: grid;
      place-items: center;
      font-size:12px;
    }
/* é¡µç???·å? */
    .pagination {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 8px;
      margin-top: 10px;
      padding: 8px 0;
      flex-shrink: 0; /* ä¸?Ž‹ç¼? */
    }
    .page-btn {
      width: 32px;
      height: 32px;
      border-radius: 6px;
      border: 1px solid var(--border-gray);
      background: #fff;
      color: var(--text-dark);
      font-size: 13px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: 0.2s;
    }
    .page-btn:hover:not(.active):not(.disabled) {
      background: var(--primary-blue-light);
    }
    .page-btn.active {
      background: var(--primary-blue);
      color: #fff;
      border-color: var(--primary-blue);
    }
    .page-btn.disabled {
      color: var(--text-gray);
      cursor: not-allowed;
      background: #f5f5f5;
    }


/* é¡¶éƒ¨æ??˜æ¨??… */
    .page-top-banner {
      width: 100%;
      background: url("images/port-topbg.jpg") no-repeat;
      background-size: 100% 100%;
      padding: 60px 20px 40px;
      color: #fff;
    }
    .banner-tags {
      display: flex;
      gap: 8px;
      margin-bottom: 16px;
    }
    .tag-blue {
      background: var(--primary-blue);
      padding: 4px 12px;
      border-radius: 20px;
      font-size: 12px;
    }
    .tag-green {
      background: #16a34a;
      padding: 4px 12px;
      border-radius: 20px;
      font-size: 12px;
    }
    .page-top-banner h1 {
      font-size: 32px;
      margin-bottom: 12px;
    }
    .banner-desc {
      font-size: 14px;
      color: #cbd5e1;
      max-width: 900px;
      line-height: 1.6;
    }
    .container {
      max-width: 1600px;
      margin: 0 auto;
      padding: 0 20px;
    }
    /* ç¬??€è¡Œä¸‰??å¸ƒå±€ */
    .row-1 {
      display: grid;
      grid-template-columns: 1.8fr 1fr 1fr;
      gap: 20px;
      margin: 30px 0;
    }
    .card-dark {
      background: var(--dark-card);
      background: url("images/port-bannerbg.jpg") no-repeat;
      color: #fff;
      border-radius: 12px;
      padding: 28px;
      background: 
    }
    .card-light {
      background: var(--snow-white-pure);
      border: 1px solid var(--border-gray);
      border-radius: 12px;
      padding: 28px;
    }
    .card-icon {
      width: 40px;
      height: 40px;
      border-radius: 8px;
      background: rgba(52,75,247,0.2);
      display: grid;
      place-items: center;
      margin-bottom: 16px;
      color: var(--primary-blue);
      font-size: 20px;
    }
    .card-dark .card-icon {
      background: rgba(255,255,255,0.1);
      color: #fff;
    }
    .card-title {
      font-size: 18px;
      font-weight: 600;
    }
    .card-text {
      font-size: 13px;
      line-height: 1.6;
      color: var(--text-gray);
      margin-bottom: 24px;
    }
    .card-dark .card-text {
      color: #94a3b8;
    }
    .data-row {
      display: flex;
      justify-content: space-between;
    }
    .data-item {
      text-align: center;
    }
    .data-num {
      font-size: 26px;
      font-weight: bold;
      margin-bottom: 4px;
    }
    .data-label {
      font-size: 12px;
      color: var(--text-gray);
    }
    .card-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      color: var(--primary-blue);
      cursor: pointer;
      margin-top: 10px;
    }
    .rate-tag {
      display: inline-block;
      background: rgba(16,185,129,0.1);
      color: var(--success-green);
      font-size: 12px;
      padding: 3px 8px;
      border-radius: 6px;
      margin-top: 10px;
    }

    /* è®¾æ–½æ?‡é¢˜ */
    .facility-head {
      margin: 50px 0 20px;
    }
    .facility-head h2 {
      font-size: 22px;
      margin-bottom: 6px;
    }
    .facility-sub {
      font-size: 13px;
      color: var(--text-gray);
    }

    /* ç¬??Œè¡Œä¸‰??è®¾æ–½å¡ç‰‡ */
    .row-2 {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin-bottom: 40px;
    }
    .fac-card {
      background: var(--snow-white-pure);
      border: 1px solid var(--border-gray);
      border-radius: 12px;
      padding: 24px;
      min-height: 180px;
    }

    /*¿Ú°¶¸Å¿ö³µµÀ¼à²â*/
    .monitor-wrap {
      background: var(--snow-white-pure);
      border: 1px solid var(--border-gray);
      border-radius: 12px;
      padding: 24px;
    }
    .monitor-top {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      margin-bottom: 24px;
    }
    .monitor-title h3 {
      font-size: 18px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .monitor-desc {
      font-size: 12px;
      color: var(--text-gray);
      margin-top: 6px;
    }
    .monitor-status-group {
      display: flex;
      gap: 30px;
      font-size: 13px;
    }
    .status-item span:first-child {
      color: var(--text-gray);
      margin-right: 6px;
    }
    .status-mid {
      color: var(--success-green);
      font-weight: 500;
    }
    .status-time {
      color: var(--primary-blue);
      font-weight: 500;
    }

    /* è½¦é“?ˆ—è¡? */
    .lane-list {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    .lane-item {
      display: grid;
      grid-template-columns: 160px 1fr 120px;
      align-items: center;
      gap: 16px;
      padding: 12px 16px;
      border-radius: 8px;
      background: var(--bg-page);
    }
    .lane-info .plate {
      font-weight: 600;
      font-size: 15px;
    }
    .lane-info .time {
      font-size: 12px;
      color: var(--text-gray);
      margin-top: 4px;
      display: flex;
      align-items: center;
      gap: 4px;
    }
    .progress-bar-wrap {
      width: 100%;
      height: 8px;
      background: #e2e8f0;
      border-radius: 4px;
      overflow: hidden;
    }
    .progress-bar {
      height: 100%;
      border-radius: 4px;
    }
    .progress-blue {
      background: var(--primary-blue);
    }
    .progress-green {
      background: var(--success-green);
    }
    .progress-text {
      font-size: 12px;
      margin-bottom: 4px;
    }
    .track-btn {
      border: 1px solid var(--border-gray);
      background: #fff;
      padding: 6px 10px;
      border-radius: 6px;
      font-size: 12px;
      cursor: pointer;
      color: #94a3b8;
    }
    .track-btn:hover {
      background: var(--primary-blue-light);
    }
.track-btn-index{
      padding: 20px;
      background: var(--primary-blue);
      color: var(--snow-white-pure);
      border: none;
      border-radius: 4px;
      cursor: pointer;
      transition: 0.3s;
    
}
    .monitor-tip {
      font-size: 11px;
      color: var(--text-gray);
      text-align: center;
      margin-top: 20px;
    }


/*ï¼ï¼ï¼ï¼?œ?Š¡å¤§?Ž…*/
.tab-group {
            display: flex;
            gap: 6px;
        }
        .tab-btn {
            padding: 10px 20px;
            border-radius: 999px;
            border: none;
            font-size: 14px;
            cursor: pointer;
        }
        .tab-active {
            background-color: var(--primary-blue);
            color: #fff;
        }
        .tab-normal {
            background-color: var(--primary-blue-light);
            color: #444;
        }
/* ?¡ç‰‡ç½‘??¼å?ƒå±€ */
        .card-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 28px;
            margin-bottom: 40px;
        }
        .service-card {
            background: #ffffff;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 2px 12px rgba(37,99,235,0.08);
        }
        .card-img {
            width: 100%;
            height: 180px;
            object-fit: cover;
        }
        .card-body {
            padding: 24px;
        }
        .card-title-row {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 12px;
        }
        .icon-box {
            width: 26px;
            height: 26px;
            border-radius: 4px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary-blue);
            font-size: 16px;
            background-color: var(--primary-blue-light);
        }
        .card-title {
            font-size: 18px;
            font-weight: 600;
        }
        .card-desc {
            font-size: 13px;
            color: #666;
            line-height: 1.5;
            margin-bottom: 16px;
            text-align: left;
        }
        .feature-list {
            margin-bottom: 24px;
        }
        .feature-item {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 14px;
            color: #333;
            margin-bottom: 8px;
        }
        .feature-item::before {
            content: ">";
            color: var(--primary-blue);
            font-size: 12px;
        }
        .card-btn {
            width: 100%;
            padding: 12px;
            border-radius: 10px;
            border: none;
            background-color: var(--primary-blue);
            color: white;
            font-size: 15px;
            font-weight: 500;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            transition: background 0.2s;
        }
        .card-btn:hover {
            background-color: var(--primary-blue-deep);
        }
        /* åº•?ƒ¨æ?‚?Š©åŒºå— */
        .help-banner {
            background-color: var(--primary-blue-light);
            border-radius: 20px;
            padding: 36px 28px;
            text-align: center;
        }
        .help-banner h2 {
            font-size: 24px;
            font-weight: 600;
            margin-bottom: 10px;
            color: #111827;
        }
        .help-banner p {
            font-size: 14px;
            color: #444;
            margin-bottom: 24px;
        }
        .help-btn-group {
            display: flex;
            gap: 16px;
            justify-content: center;
        }
        .help-btn-primary {
            background-color: var(--primary-blue);
            color: white;
            border: none;
            padding: 12px 28px;
            border-radius: 10px;
            font-weight: 500;
            cursor: pointer;
            transition: background 0.2s;
        }
        .help-btn-primary:hover {
            background-color: var(--primary-blue-deep);
        }
        .help-btn-white {
            background-color: #ffffff;
            color: var(--primary-blue);
            border: 1px solid var(--primary-blue);
            padding: 12px 28px;
            border-radius: 10px;
            font-weight: 500;
            cursor: pointer;
        }


/*ï¼ï¼ï¼ï¼ï¼ä¼ä¸š?å½•??·å?*/
/* è®©å†…å®¹åŒºåŸŸ?‡?Š¨æ’‘æ»¡å‰©ä?™é«˜åº? */
        .content {
            flex: 1;
            flex-direction: column;
        }

        /* ?€š??ç­›?€‰?ŒºåŸŸ */
        .filter-box {
            background: #ffffff;
            border: 1px solid #e9e5f3;
            padding: 24px;
            border-radius: 16px;
            margin-bottom: 30px;
        }
        .search-input {
            width: 100%;
            border: 1px solid #e2e0ec;
            border-radius: 10px;
            padding: 14px 16px 14px 42px;
            font-size: 15px;
            background: #f7f5fd;
        }
        .search-wrap {
            position: relative;
            margin-bottom: 20px;
        }
        .search-wrap::before {
            content: "";
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 16px;
            color: #999;
        }
        .filter-label {
            font-size: 14px;
            color: #444;
            margin-bottom: 12px;
            display: block;
        }
        .tab-btn-group {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        .tab-filter {
            padding: 9px 20px;
            border-radius: 8px;
            border: 1px solid #e2e0ec;
            background: #f7f5fd;
            font-size: 14px;
            cursor: pointer;
        }
        .tab-filter.active {
            background: #2563eb;
            color: #fff;
            border-color: #2563eb;
        }

        /* ä¼ä¸š?¡ç‰‡ç½‘??¼ï?š?‡?Š¨å?æ»¡å‰©ä?™é«˜åº¦ï?Œ?†…å®¹ä?å¤Ÿä¹Ÿ?ƒ½æ’‘æ»? */
        .company-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 24px;
            margin-bottom: 30px;
            width: 100%;
            flex: 1;
        }
        .company-card {
            background: #fff;
            border: 1px solid #e9e5f3;
            border-radius: 16px;
            padding: 22px;
            width: 100%;
        }
        .card-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 12px;
        }
        .company-left-top {
            display: flex;
            gap: 12px;
            align-items: flex-start;
        }
        .logo-empty {
            width: 44px;
            height: 44px;
            border-radius: 8px;
            background: #f3f1fa;
        }
        .company-name-wrap h3 {
            font-size: 17px;
            font-weight: 600;
            margin-bottom: 4px;
        }
        .score-row {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 14px;
            color: #666;
        }
        .star {
            color: #f5a623;
        }
        .tag-type-blue {
            font-size: 12px;
            padding: 4px 9px;
            border-radius: 6px;
            background: #e8f0fe;
            color: #2563eb;
        }
        .tag-type-yellow {
            font-size: 12px;
            padding: 4px 9px;
            border-radius: 6px;
            background: #fff8e6;
            color: #d48806;
        }
        .card-desc {
            font-size: 14px;
            color: #555;
            line-height: 1.5;
            margin: 16px 0;
            padding-bottom: 16px;
            border-bottom: 1px solid #eee;
        }
        .card-bottom {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .route-row {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 14px;
            color: #666;
        }
        .btn-inquire {
            padding: 7px 16px;
            border-radius: 7px;
            border: 1px solid #2563eb;
            background: #e8f0fe;
            color: #2563eb;
            font-size: 13px;
            cursor: pointer;
        }

        /* ?Š?è½½æ›´å?š */
        .load-more-wrap {
            text-align: center;
            padding-bottom: 40px;
        }
        .load-more-btn {
            padding: 10px 26px;
            border-radius: 8px;
            border: 1px solid #ddd;
            background: #fff;
            font-size: 14px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .load-more-btn:disabled {
            background: #eee;
            cursor: not-allowed;
            color: #999;
        }


/*ï¼ï¼ï¼?…³ä?Ž?ˆ‘ä»?*/
/* ç»Ÿä¸€å®¹å™¨å?é½è§„?Œƒ */
        .section {
            width: 100%;
            padding: 0 24px;
        }
        .container {
            max-width: 1500px;
            margin: 0 auto;
            width: 100%;
        }

        /* é¡¶éƒ¨æ?‡é¢˜?¡ç‰‡ */
        .about-header {
            background: #fff;
            border-radius: 16px;
            padding: 40px 32px;
            margin: 24px 0 32px;
            text-align: center;
            border: 1px solid #e9e5f3;
        }
        .about-header h1 {
            font-size: 34px;
            font-weight: 700;
            color: #1e293b;
            margin-bottom: 14px;
        }
        .about-header p {
            font-size: 16px;
            color: #64748b;
            max-width: 860px;
            margin: 0 auto;
            line-height: 1.7;
        }

        /* ?›¾æ–‡ä»‹ç»?Œºå— */
        .about-row {
            display: flex;
            align-items: center;
            gap: 32px;
            background: #fff;
            border-radius: 16px;
            padding: 32px;
            margin-bottom: 32px;
            border: 1px solid #e9e5f3;
        }
        .about-row .left {
            flex: 0 0 420px;
            height: 260px;
            background: #e8f0fe;
            border-radius: 14px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 50px;
            color: #2563eb;
        }
        .about-row .right {
            flex: 1;
        }
        .about-row .right h2 {
            font-size: 24px;
            font-weight: 600;
            color: #1e293b;
            margin-bottom: 16px;
        }
        .about-row .right p {
            font-size: 15px;
            color: #555;
            line-height: 1.8;
            margin-bottom: 20px;
        }
        .tag-group {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
        }
        .tag {
            padding: 7px 14px;
            background: #e8f0fe;
            color: #2563eb;
            border-radius: 8px;
            font-size: 14px;
        }

        /* ?››å¤§æ?¸å?ƒä¼˜?Š¿ç?‘??? */
        .advantage-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
            margin-bottom: 32px;
        }
        .adv-card {
            background: #fff;
            border-radius: 16px;
            padding: 28px 24px;
            text-align: center;
            border: 1px solid #e9e5f3;
        }
        .adv-icon {
            width: 52px;
            height: 52px;
            background: #e8f0fe;
            border-radius: 12px;
            margin: 0 auto 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            color: #2563eb;
        }
        .adv-card h4 {
            font-size: 17px;
            font-weight: 600;
            margin-bottom: 10px;
            color: #1e293b;
        }
        .adv-card p {
            font-size: 14px;
            color: #64748b;
            line-height: 1.6;
        }

        /* ?‘å±•?Ž†ç¨‹?—¶é—´çº¿ */
        .timeline-wrap {
            background: #fff;
            border-radius: 16px;
            padding: 36px 32px;
            margin-bottom: 32px;
            border: 1px solid #e9e5f3;
        }
        .timeline-wrap h2 {
            text-align: center;
            font-size: 24px;
            font-weight: 600;
            margin-bottom: 30px;
            color: #1e293b;
        }
        .timeline-list {
            display: flex;
            justify-content: space-between;
            gap: 16px;
        }
        .timeline-item {
            flex: 1;
            text-align: center;
            position: relative;
        }
        .timeline-item:not(:last-child)::after {
            content: "";
            position: absolute;
            top: 18px;
            left: 60%;
            width: calc(100% - 60%);
            height: 2px;
            background: #dbeafe;
            z-index: 0;
        }
        .time-dot {
            width: 36px;
            height: 36px;
            background: #2563eb;
            border-radius: 50%;
            margin: 0 auto 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 14px;
            position: relative;
            z-index: 1;
        }
        .time-year {
            font-weight: 600;
            font-size: 16px;
            color: #2563eb;
            margin-bottom: 6px;
        }
        .time-text {
            font-size: 14px;
            color: #555;
            line-height: 1.5;
        }

        /* ?”ç³»æˆ‘ä»?¡¨?•?ŒºåŸŸ */
        .contact-wrap {
            background: #fff;
            border-radius: 16px;
            padding: 40px 32px;
            margin-bottom: 40px;
            border: 1px solid #e9e5f3;
        }
        .contact-wrap h2 {
            text-align: center;
            font-size: 24px;
            font-weight: 600;
            margin-bottom: 10px;
            color: #1e293b;
        }
        .contact-subtitle {
            text-align: center;
            font-size: 14px;
            color: #666;
            margin-bottom: 36px;
        }
        .contact-inner {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 36px;
            align-items: stretch; /* å·¦å³é?˜åº¦è‡?Š¨æ‹‰å¹³ä?€?‡? */
        }
        /* å·¦ä¾§çº?œ°å›¾æ?†ï¼Œ?—?å¤šä½™?œ°å€?–‡å­— */
        .map-block {
            width: 100%;
            height: 100%;
        }
        .map-frame {
            width: 100%;
            height: 100%;
            border-radius: 12px;
            border: 1px solid #dbeafe;
            overflow: hidden;
            background: #e8f0fe;
        }
        .map-frame iframe {
            width: 100%;
            height: 100%;
            border: none;
            display: block;
        }
        /* ?³ä¾§è¡¨å•å®¹å™¨é?˜åº¦è?Ÿ?šå·¦ä¾§?œ°å›¾å?é½ */
        .contact-form-block {
            display: flex;
            flex-direction: column;
            height: 100%;
        }
        .form-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 16px;
            margin-bottom: 16px;
            flex: 1;
        }
        .form-full {
            grid-column: 1 / -1;
        }
        .form-label {
            display: block;
            font-size: 14px;
            color: #444;
            margin-bottom: 6px;
        }
        .form-input, .form-textarea {
            width: 100%;
            border: 1px solid #e2e0ec;
            border-radius: 8px;
            padding: 10px 14px;
            font-size: 14px;
            background: #fcfcff;
        }
        .form-input:focus, .form-textarea:focus {
            outline: none;
            border-color: #2563eb;
            box-shadow: 0 0 0 2px rgba(37,99,235,0.15);
        }
        .form-textarea {
            flex:1;
            resize: none;
        }
        .submit-btn {
            width: 100%;
            padding: 13px;
            background: #2563eb;
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 15px;
            font-weight: 500;
            cursor: pointer;
            transition: background 0.2s;
            margin-top: auto; /* ?Œ‰?’??•?ƒ¨å?é½ */
        }
        .submit-btn:hover {
            background: #1d4ed8;
        }

        /* åº•?ƒ¨åˆä½œæ¨??… */
        .about-banner {
            background: #e8f0fe;
            border-radius: 16px;
            padding: 40px 32px;
            text-align: center;
            margin-bottom: 40px;
        }
        .about-banner h2 {
            font-size: 26px;
            font-weight: 600;
            margin-bottom: 12px;
            color: #1e293b;
        }
        .about-banner p {
            font-size: 15px;
            color: #475569;
            margin-bottom: 24px;
            max-width: 780px;
            margin-left: auto;
            margin-right: auto;
        }
        .banner-btn {
            padding: 12px 32px;
            background: #2563eb;
            color: #fff;
            border: none;
            border-radius: 10px;
            font-size: 15px;
            cursor: pointer;
        }
/*ï¼ï¼ï¼?”¿ç?–è¯¦æƒ…é¡µé¢æ?·å?*/
/* ?…¨å?€ç»Ÿä¸€å®¹å™? */
        .section {
            width: 100%;
            padding: 0 24px;
        }
        .container {
            max-width: 1500px;
            margin: 0 auto;
            width: 100%;
        }

        /* ?–°é—»è??ƒ…ä¸»å¡ç‰‡ */
        .news-detail-wrap {
            background: #ffffff;
            border: 1px solid #e9e5f3;
            border-radius: 16px;
            padding: 48px 40px;
            margin: 24px 0 40px;
        }
        /* å¤´éƒ¨æ?‡é¢˜?ŒºåŸŸ */
        .news-top {
            text-align: center;
            margin-bottom: 32px;
            padding-bottom: 24px;
            border-bottom: 1px solid #eee;
        }
        .news-top h1 {
            font-size: 28px;
            font-weight: 700;
            color: #1e293b;
            line-height: 1.4;
            margin-bottom: 16px;
        }
        .news-meta {
            display: flex;
            justify-content: center;
            gap: 24px;
            flex-wrap: wrap;
            font-size: 14px;
            color: #666;
        }
        .meta-tag {
            padding: 4px 12px;
            background: #e8f0fe;
            color: #2563eb;
            border-radius: 6px;
        }

        /* æ­£æ–‡?€š?”¨æ?·å? */
        .news-body {
            font-size: 16px;
            color: #333;
            line-height: 1.9;
        }
        .news-body p {
            margin-bottom: 20px;
        }
        .news-body h2 {
            font-size: 20px;
            font-weight: 600;
            margin: 36px 0 16px;
            color: #1e293b;
        }
        .news-body ul {
            padding-left: 20px;
            margin-bottom: 20px;
        }
        .news-body li {
            margin-bottom: 12px;
            line-height: 1.8;
        }

        /* ?”¿ç?–äº?‚¹å¡ç‰‡ */
        .policy-highlight {
            background: #f7faff;
            border-radius: 12px;
            padding: 24px;
            margin: 28px 0;
            border-left: 4px solid #2563eb;
        }
        .policy-highlight h3 {
            font-size: 18px;
            color: #2563eb;
            margin-bottom: 16px;
        }

        /* åº•?ƒ¨æ€»ç?“ */
        .news-summary {
            background: #f9f7ff;
            border-radius: 12px;
            padding: 24px;
            margin-top: 32px;
        }
        .news-summary h3 {
            font-size: 18px;
            color: #1e293b;
            margin-bottom: 12px;
        }

        /*ï¼ï¼ï¼ï¼?œ?Š¡è??ƒ…é¡µé¢æ?·å?*/
/* å·¥ä?œ?°ä¸»ä½“å®¹å™? */
.workbench-wrap {
  margin: 30px 0 auto;
  flex: 1;
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 24px;
}
/* å·¦ä¾§ä¸»å†…å®¹åŒ? */
.work-left {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
/* é¡¶éƒ¨æ?‡ç­¾åˆ‡?¢æ? ?€”?€” ç»Ÿä¸€ä¸»è“æ¿€æ´»è‰²ï?Œ?’Œ?…¨ç?™?Œ‰?’??€?‡? */
.tab-bar {
  display: flex;
  gap: 10px;
}
.tab-item {
  padding: 10px 22px;
  border-radius: 999px;
  border: none;
  font-size: 15px;
  cursor: pointer;
  transition: 0.2s;
}
.tab-active {
  background: var(--primary-blue);
  color: #fff;
}
.tab-normal {
  background: var(--snow-white-pure);
  color: var(--text-dark);
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
.tab-normal:hover {
  background: var(--primary-blue-light);
}
/* ?‘å¸ƒè´§æ?+?Ÿ¥æ‰¾è??Š›?Œ?¡ç‰‡ ?€”?€” æµ…?“?€æµ…ç´?Ÿ”?’Œåº•?‰²ï?Œè´´åˆ?•´ä?“æ¸…æ·¡å•†?Š¡é?Ž */
.action-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.action-card {
  border-radius: 16px;
  padding: 30px 26px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  box-shadow: 0 2px 12px rgba(52, 75, 247, 0.08);
}
.action-blue-light {
  background: var(--primary-blue-light);
}
.action-purple-light {
  background: #f0ebff;
}
.action-text h3 {
  font-size: 22px;
  margin-bottom: 8px;
  color: var(--deep-black);
}
.action-text p {
  font-size: 14px;
  color: var(--text-gray);
}
.action-icon {
  font-size: 36px;
  opacity: 0.75;
  color: var(--primary-blue);
}

/* ========== ä¼˜?Œ–?‡çº§ï?š?™ºèƒ½åŒ¹é…è¿?Š›æ¨¡å— ========== */
.match-card {
  background: var(--snow-white-pure);
  border-radius: 16px;
  padding: 26px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  border: 1px solid var(--border-gray);
}
.match-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 22px;
}
.match-title {
  font-size: 18px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--deep-black);
}
.match-title::before {
  color: var(--primary-blue);
  font-size: 20px;
}
.match-filter-wrap {
  display: flex;
  align-items: center;
  gap: 16px;
}
.filter-group {
  display: flex;
  align-items: center;
  gap: 8px;
}
.filter-label {
  font-size:14px;
  color:var(--text-gray);
  margin-top: 8px;
}
.filter-select {
  padding: 4px 12px;
  border: 1px solid var(--border-gray);
  border-radius: 6px;
  background: #fff;
  font-size: 14px;
  color: var(--text-dark);
  min-width:110px;
}
.refresh-btn {
  padding:6px 12px;
  border:1px solid var(--primary-blue-light);
  background:#fff;
  color:var(--primary-blue);
  border-radius:6px;
  font-size:13px;
  cursor:pointer;
  transition:0.2s;
}
.refresh-btn:hover {
  background:var(--primary-blue-light);
}

/* è¿?Š›?ˆ—è¡¨çˆ¶å??™¨å?ž?Š??ˆ†?‰²é—´è??€hover?‚?µ®?•ˆ?žœ */
.truck-list-wrap {
  display:flex;
  flex-direction:column;
  gap:14px;
}
.truck-item {
  display: grid;
  grid-template-columns: 60px 1fr 180px 140px;
  align-items: center;
  gap: 16px;
  padding: 20px 16px;
  border-radius: 12px;
  background: var(--snow-white);
  border: 1px solid var(--border-gray);
  transition:0.2s ease;
}
.truck-item:hover {
  box-shadow:0 3px 10px rgba(52,75,247,0.09);
  border-color:var(--primary-blue-light);
}
.truck-icon-box {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 20px;
}
.icon-sun {
  background: var(--primary-blue-light);
  color: var(--primary-blue);
}
.icon-snow {
  background: #e0f2fe;
  color: #0ea5e9;
}
.truck-info {
  display:flex;
  flex-direction:column;
  gap:4px;
}
.truck-plate {
  font-weight: 600;
  font-size: 16px;
}
.truck-spec-row {
  display:flex;
  gap:12px;
  font-size:13px;
  color:var(--text-gray);
}
.truck-route {
  text-align: center;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.route-city {
  font-size: 15px;
  color: var(--primary-blue);
  font-weight: 500;
}
.route-time {
  font-size: 13px;
  color: var(--text-gray);
}
.truck-tag-box {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}
.tag-tir {
  background: var(--primary-blue);
  color: #fff;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 12px;
  font-weight:500;
}
.tag-desc {
  font-size: 13px;
  color: var(--text-gray);
}
/* ?–°å?ž?“ä½œ?Œ‰?’? */
.truck-op-btn {
  padding:7px 14px;
  border-radius:6px;
  border:1px solid var(--primary-blue);
  background:#fff;
  color:var(--primary-blue);
  font-size:13px;
  cursor:pointer;
  transition:0.2s;
  grid-column:5/-1;
  justify-self:center;
}
.truck-op-btn:hover {
  background:var(--primary-blue);
  color:#fff;
}

/* åº•?ƒ¨ä?‰ä¸?œ†?Ž?Œ‡??‡?¡ç‰‡ çº?™½ç?Ÿä¸€?¡ç‰‡ */
.ring-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 10px;
}
.ring-card {
  background: var(--snow-white-pure);
  border-radius: 16px;
  padding: 28px 20px;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  border: 1px solid var(--border-gray);
}
.ring-wrap {
  width: 90px;
  height: 90px;
  margin: 0 auto 12px;
  position: relative;
}
.ring-svg {
  width: 90px;
  height: 90px;
  transform: rotate(-90deg);
}
.ring-bg-path {
  fill: none;
  stroke: #f1f1f1;
  stroke-width: 8;
}
/* ?œ†?Ž??‰?‰²æ²¿?”¨ç³»ç»Ÿ??‡?‡†?‰²ï?šä¸»è“?€è¾…?Š©ç´«?€?ˆ?ŠŸç»¿ï?Œ?•´å?—é¡¹ç›??Ÿä¸€?‰²ç³» */
.ring-path-blue-main {
  fill: none;
  stroke: var(--primary-blue);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 251;
  stroke-dashoffset: 188;
}
.ring-path-purple-aux {
  fill: none;
  stroke: var(--accent-purple);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 251;
  stroke-dashoffset: 5;
}
.ring-path-green-success {
  fill: none;
  stroke: var(--success-green);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 251;
  stroke-dashoffset: 220;
}
.ring-num {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 24px;
  font-weight: 700;
  color: var(--deep-black);
}
.ring-title {
  font-size: 16px;
  font-weight: 500;
  margin-bottom: 6px;
  color: var(--deep-black);
}
.ring-sub {
  font-size: 12px;
  color: var(--text-gray);
}
/* ?³ä¾§è¾¹æ??¡ç‰‡ç»Ÿä¸€??·å? */
.work-right {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.side-card {
  background: var(--snow-white-pure);
  border-radius: 16px;
  padding: 22px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
  border: 1px solid var(--border-gray);
}
.side-card h4 {
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--deep-black);
}
/* ?‰©æ?è¿½è¸ªæ¨¡å— */
.track-input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--border-gray);
  border-radius: 8px;
  font-size: 14px;
}
.track-btn-side {
  width: 100%;
  padding: 10px;
  background: var(--primary-blue);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  cursor: pointer;
  transition:0.2s;
}
.track-btn-side:hover{
    background:var(--primary-blue-deep);
}
/* å¸¸ç”¨å·¥?…·åˆ—è¡? */
.tool-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tool-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--primary-blue-light);
  cursor: pointer;
  transition: 0.2s;
}
.tool-item:hover {
  background: var(--primary-blue);
  color: #fff;
}
.tool-icon {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: #fff;
  color: var(--primary-blue);
}
.tool-item:hover .tool-icon {
  background: rgba(255,255,255,0.2);
  color: #fff;
}
.tool-text {
  font-size: 14px;
}
.status-green {
  margin-left: auto;
  font-size: 12px;
  background: #dcfce7;
  color: var(--success-green);
  padding: 2px 6px;
  border-radius: 4px;
}
/* è¿ä»·æŒ‡?•°å›¾è¡¨ */
.chart-box {
  margin-top: 10px;
}
.chart-row {
  margin-bottom: 18px;
}
.chart-top {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  margin-bottom: 8px;
}
.down-tag {
  color: var(--success-green);
}
.up-tag {
  color: var(--warning-red);
}
.chart-bar-wrap {
  display: flex;
  gap: 4px;
  height: 60px;
  align-items: flex-end;
}
.bar-blue {
  flex: 1;
  background: var(--primary-blue);
  border-radius: 4px 4px 0 0;
}
.bar-purple {
  flex: 1;
  background: var(--accent-purple);
  border-radius: 4px 4px 0 0;
}
/* ?³ä¾§?‚?µ®?Œ‰?’? ç»Ÿä¸€ä¸»è“ */
.float-btn {
  position: fixed;
  right: 30px;
  bottom: 40px;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--primary-blue);
  color: #fff;
  border: none;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(52, 75, 247, 0.3);
  transition:0.2s;
}
.float-btn:hover{
    background:var(--primary-blue-deep);
}
/* ?³ä¾§?‚?µ®å¯¼èˆ???›¾æ?‡ç«–?Ž’ */
.float-nav {
  position: fixed;
  right: 30px;
  top: 180px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.float-nav-item {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  display: grid;
  place-items: center;
  font-size: 18px;
  cursor: pointer;
  color: var(--text-gray);
  transition:0.2s;
}
.float-nav-item:hover {
  background: var(--primary-blue);
  color: #fff;
}
/* åº•?ƒ?Footer?…¨ç?™ç»Ÿä¸€??·å? */
footer {
  background: var(--footer-bg);
  color: var(--footer-text);
  padding: 60px 20px 40px;
  margin-top: 60px;
}
.footer-container {
  max-width: var(--section-max-width);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 2fr;
  gap: 40px;
  text-align: left;
}
.footer-brand {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.footer-logo-text {
  display: flex;
  align-items: center;
  gap: 10px;
}
.footer-logo-box {
  width: 40px;
  height: 40px;
  background: var(--primary-blue);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 20px;
  font-weight: bold;
}
.footer-title {
  font-size: 22px;
  color: var(--footer-title);
  font-weight: 500;
}
.footer-desc {
  font-size: 14px;
  line-height: 1.6;
  color: var(--footer-text);
  max-width: 300px;
}
.footer-copyright {
  font-size: 12px;
  color: #666b85;
  margin-top: auto;
}
.footer-menu {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.footer-menu-title {
  font-size: 16px;
  color: var(--footer-title);
  font-weight: 500;
  margin-bottom: 5px;
}
.footer-menu-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-menu-list a {
  color: var(--footer-text);
  text-decoration: none;
  font-size: 14px;
  transition: color 0.3s;
}
.footer-menu-list a:hover {
  color: var(--primary-blue-light);
}
.footer-compliance {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.footer-compliance-desc {
  font-size: 14px;
  line-height: 1.6;
  color: var(--footer-text);
}
.security-level {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #24283b;
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 12px;
  margin-top: 10px;
}
.security-dot {
  width: 8px;
  height: 8px;
  background: var(--footer-highlight);
  border-radius: 50%;
}
.security-text {
  color: var(--footer-title);
}
.security-grade {
  color: var(--footer-highlight);
  font-weight: bold;
}
/* ?“åº”å¼?€‚?… */
@media (max-width: 1200px) {
  .workbench-wrap {
    grid-template-columns: 1fr;
  }
  .action-row {
    grid-template-columns: 1fr;
  }
  .ring-row {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .ring-row {
    grid-template-columns: 1fr;
  }
  .truck-item {
    grid-template-columns: 50px 1fr;
    grid-template-rows: auto auto auto;
    gap: 10px;
  }
  .truck-route, .truck-tag-box, .truck-op-btn {
    grid-column: 1 / -1;
    text-align: left;
    flex-direction: row;
    justify-content: flex-start;
  }
  .footer-container {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}