        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: #0d0e12; 
            color: #ffffff;
            margin: 0;
            padding: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        .nav-bar {
            width: 100%;
            background-color: #050608;
            padding: 15px 20px;
            display: flex;
            justify-content: center;
            align-items: center;
            box-sizing: border-box;
            border-bottom: 1px solid #1a1c23;
        }
        .nav-container {
            width: 100%;
            max-width: 550px; 
            display: flex;
            justify-content: space-between;
            align-items: center;
            transition: max-width 0.2s;
        }
        .nav-left {
            display: flex;
            align-items: center;
            gap: 10px;
        }
        .nav-logo-box {
            background-color: #f7ff00;
            color: #000000;
            font-weight: 900;
            font-size: 1.2rem;
            padding: 2px 8px;
            border-radius: 4px;
            font-family: 'Impact', 'Arial Black', sans-serif;
        }
        .nav-title {
            font-weight: bold;
            font-size: 1.1rem;
            letter-spacing: 1px;
        }
        .nav-right {
            display: flex;
            gap: 20px;
            align-items: center;
            color: #717684;
        }
        .nav-icon {
            cursor: pointer;
            opacity: 0.8;
            transition: opacity 0.2s;
        }
        .nav-icon:hover {
            opacity: 1;
        }

        .main-content {
            width: 100%;
            max-width: 550px; 
            padding: 30px 15px;
            box-sizing: border-box;
            transition: max-width 0.2s;
        }

        .title-area {
            display: flex;
            justify-content: space-between;
            align-items: center; 
            margin-bottom: 5px;
            width: 100%;
            gap: 15px;
            box-sizing: border-box;
        }
        .main-logo-text {
            font-family: 'Impact', 'Arial Black', sans-serif;
            font-size: 2.4rem; 
            font-style: italic; 
            text-transform: uppercase;
            line-height: 1;
            background: linear-gradient(180deg, #ffffff 40%, #e2e8f0 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            margin: 0;
            letter-spacing: 0px;
            flex-shrink: 0; 
            padding-right: 10px; 
            display: inline-block;
        }
        .main-logo-yellow {
            background: linear-gradient(180deg, #f7ff00 40%, #ffcc00 100%) !important;
            -webkit-background-clip: text !important;
            -webkit-text-fill-color: transparent !important;
        }
        
        .refresh-btn {
            background-color: #16171d;
            border: 1px solid #2d3139;
            color: #ffffff;
            padding: 8px 14px;
            border-radius: 8px;
            font-weight: bold;
            font-size: 0.9rem;
            display: flex;
            align-items: center;
            gap: 6px;
            cursor: pointer;
            transition: background-color 0.2s, border-color 0.2s;
            flex-shrink: 0;
        }
        .refresh-btn:hover {
            background-color: #20222a;
            border-color: #4a4f5d;
        }

        .subtitle {
            color: #717684; 
            margin-top: 10px;
            margin-bottom: 30px;
            font-size: 0.95rem;
            font-weight: 500;
        }
        
        .search-container {
            width: 100%;
            margin-bottom: 35px;
            position: relative;
        }
        .search-icon-inside {
            position: absolute;
            left: 15px;
            top: 50%;
            transform: translateY(-50%);
            color: #717684;
            pointer-events: none;
        }
        .search-input {
            width: 100%;
            padding: 12px 15px 12px 42px; 
            font-size: 0.95rem;
            border: 1px solid #22252a;
            border-radius: 8px;
            background-color: #111215;
            color: #ffffff;
            box-sizing: border-box;
            outline: none;
            transition: border-color 0.2s;
        }
        .search-input:focus {
            border-color: #ffd700;
        }
        .search-input::placeholder {
            color: #4c505c;
        }

        .rank-table {
            width: 100%;
            border-collapse: separate;
            border-spacing: 0 10px; 
            table-layout: fixed; 
        }
        .rank-thead th {
            padding: 0 2px 5px 2px;
            font-size: 0.72rem; 
            color: #717684; 
            font-weight: bold;
            text-align: center;
            vertical-align: bottom; 
            line-height: 1.3;
        }

        .pc-text {
            display: none;
        }
        .sp-text {
            display: inline;
        }

        .th-rank, .rank-table td:nth-child(1) { width: 14%; text-align: center; }   
        .th-name, .rank-table td:nth-child(2) { width: 32%; text-align: left !important; padding-left: 8px !important; }  
        .th-points, .rank-table td:nth-child(3) { width: 17%; text-align: right !important; padding-right: 8px !important; } 
        .th-wins, .rank-table td:nth-child(4) { width: 13%; text-align: center; }   
        .th-kills, .rank-table td:nth-child(5) { width: 12%; text-align: center; } 
        .th-avg, .rank-table td:nth-child(6) { width: 12%; text-align: center; }  

        .rank-row {
            background-color: #141519; 
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); 
            border-radius: 8px;
        }
        .rank-cell {
            padding: 14px 2px; 
            font-size: 0.88rem; 
            font-weight: bold;
            vertical-align: middle;
            text-align: center;
            border-top: 1px solid #1c1d24; 
            border-bottom: 1px solid #1c1d24;
        }
        .rank-number {
            border-left: 1px solid #1c1d24;
            border-top-left-radius: 8px;
            border-bottom-left-radius: 8px;
        }
       
         .rank-row:has(.rank-1) {
            background-color: #211e11 !important; 
            border: 1px solid #3d351d !important; 
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
        }
        .rank-1 { 
            background: transparent !important;
            color: #f7ff00 !important; 
            border-color: transparent !important;
            border-left: 3px solid #ffd700 !important; 
            padding-left: 5px !important;
        }
        
        .rank-row:has(.rank-2) {
            background-color: #1e222b !important; 
            border: 1px solid #333a47 !important;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
        }
        .rank-2 { 
            background: transparent !important;
            color: #ffffff !important;
            border-color: transparent !important;
            border-left: 3px solid #e2e8f0 !important; 
            padding-left: 5px !important;
        }
        
        .rank-row:has(.rank-3) {
            background-color: #1c1611 !important; 
            border: 1px solid #38291f !important;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
        }
        .rank-3 { 
            background: transparent !important;
            color: #ff9933 !important; 
            border-color: transparent !important;
            border-left: 3px solid #cd7f32 !important; 
            padding-left: 5px !important;
        }

        .rank-row {
            border: 1px solid #1c1d24; 
            border-radius: 8px;
            overflow: hidden;
        }
        .rank-cell {
            border-top: none !important;
            border-bottom: none !important;
        }
        .player-name {
            word-break: break-all;
            color: #ffffff;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .secret-name {
            color: #4c505c;
            font-weight: normal;
            font-style: italic;
        }
        .player-points {
            color: #ffd700; 
            white-space: nowrap;
        }
        .player-stat {
            color: #9ea3b0;
            font-weight: 500;
            white-space: nowrap;
        }
        .cell-end {
            border-right: 1px solid #1c1d24;
            border-top-right-radius: 8px;
            border-bottom-right-radius: 8px;
        }
        
        .footer-info {
            margin-top: 35px;
            display: flex;
            align-items: center;
            gap: 8px;
            color: #717684;
            font-size: 0.85rem;
        }
        .no-data {
            text-align: center;
            color: #717684;
            font-style: italic;
            padding: 40px;
        }

        .side-menu {
            position: fixed;
            top: 0;
            right: -280px; 
            width: 280px;
            height: 100%;
            background-color: #0b0c0f;
            border-left: 1px solid #1c1d24;
            box-shadow: -5px 0 25px rgba(0, 0, 0, 0.5);
            z-index: 1000;
            transition: right 0.3s ease; 
            padding: 20px;
            box-sizing: border-box;
        }
        .side-menu.open { right: 0; }
        .menu-close-btn { background: none; border: none; color: #717684; font-size: 1.5rem; cursor: pointer; float: right; }
        .menu-title { font-size: 0.85rem; color: #717684; text-transform: uppercase; letter-spacing: 1px; margin-top: 30px; margin-bottom: 10px; font-weight: bold; }
        .menu-list { list-style: none; padding: 0; margin: 0; }
        .menu-item a { display: flex; align-items: center; gap: 12px; color: #ffffff; text-decoration: none; padding: 12px 10px; font-weight: bold; font-size: 1rem; border-radius: 6px; }
        .menu-item a:hover { background-color: #16171d; color: #f7ff00; }
        .menu-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.6); z-index: 999; display: none; }
        .menu-overlay.open { display: block; }

        .hamburger-menu-content {
            position: absolute;
            top: 45px; 
            right: 0;
            background-color: #1a1a1a; 
            border: 1px solid #333; 
            border-radius: 8px; 
            padding: 8px 0;
            width: 200px;
            z-index: 1000;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6);
        }

        .menu-link {
            display: block;
            padding: 12px 20px;
            color: #ffffff;
            text-decoration: none;
            font-size: 14px;
            text-align: left;
            transition: background 0.2s;
        }

        .menu-link:hover {
            background-color: #2a2a2a;
        }

        .menu-link.active {
            color: #ffd700;
            font-weight: bold;
        }

        @media (min-width: 992px) {
            .nav-container, .main-content {
                max-width: 1100px; 
            }
            .main-logo-text {
                font-size: 3.8rem; 
            }
            
            .pc-text { display: inline !important; }
            .sp-text { display: none !important; }

            .rank-table td:nth-child(1), th.th-rank { width: 65px !important; } 
            
            .rank-table td:nth-child(2), th.th-name   { width: auto !important; padding-left: 20px !important; } /* Epic IDを限界まで広げる */
            .rank-table td:nth-child(3), th.th-points { width: 120px !important; padding-right: 25px !important; } /* 総合pt */
            .rank-table td:nth-child(4), th.th-wins   { width: 100px !important; } /* ビクロイ */
            .rank-table td:nth-child(5), th.th-kills  { width: 100px !important; } /* 平均撃破 */
            .rank-table td:nth-child(6), th.th-avg    { width: 100px !important; } /* 平均順位 */

            .rank-thead th { font-size: 0.95rem; padding-bottom: 12px; }
            .rank-cell { padding: 16px 12px; font-size: 1.1rem; }
            .player-stat { font-size: 1rem; }
        }
    