/* Page styles extracted from rank.html. Keep after common.css and ui.css. */

        :root{
            --primary:#ff5b68;
            --primary-dark:#ef3f52;
            --orange:#ff9a58;
            --purple:#6e5cff;
            --ink:#17171b;
            --muted:#8f8992;
            --soft:#fff2f4;
            --paper:#fff;
            --bg:#f7f3f5;
            --line:rgba(17,24,39,.07);
            --shadow:0 16px 38px rgba(39,25,31,.09);
            --soft-shadow:0 8px 22px rgba(39,25,31,.055);
            --safe-bottom:env(safe-area-inset-bottom,0px);
        }
        *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
        html{background:#eee;}
        body{
            margin:0;
            font-family:var(--font-sans,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif);
            color:var(--ink);
            background:radial-gradient(circle at 50% 0,#ffe3e8 0,#fff7f8 230px,var(--bg) 560px);
        }
        body.has-tabbar .page{padding-bottom:calc(78px + var(--safe-bottom));}
        button,input{font:inherit;}
        button{cursor:pointer;}
        a{color:inherit;text-decoration:none;}
        img{display:block;max-width:100%;border:0;}
        .rank-page{
            max-width:480px;
            min-height:100vh;
            margin:0 auto;
            padding:12px 12px calc(70px + var(--safe-bottom));
            background:transparent;
        }

        /* 顶部视觉区：沿用首页粉色、圆角、柔光，但更有榜单冲击力 */
        .rank-hero{
            position:relative;
            min-height:130px;
            padding:10px 18px 16px;
            overflow:hidden;
            border-radius:28px;
            color:#fff;
            background:
                radial-gradient(circle at 76% 18%,rgba(255,255,255,.34) 0,rgba(255,255,255,0) 23%),
                linear-gradient(135deg,#211821 0%,#5b2d3c 45%,#ff6573 100%);
            box-shadow:0 20px 46px rgba(94,42,55,.22);
        }
        .rank-hero:before{
            content:"";
            position:absolute;
            right:-46px;
            bottom:-72px;
            width:210px;
            height:210px;
            border-radius:50%;
            background:rgba(255,255,255,.12);
        }
        .rank-hero:after{
            content:"";
            position:absolute;
            right:22px;
            top:34px;
            width:82px;
            height:126px;
            border-radius:24px 24px 30px 30px;
            transform:rotate(12deg);
            background:linear-gradient(160deg,rgba(255,255,255,.92),rgba(255,255,255,.28));
            box-shadow:0 22px 48px rgba(0,0,0,.16);
            opacity:.86;
        }
        .rank-hero-inner{position:relative;z-index:2;max-width:68%;}
        .rank-kicker{
            display:inline-flex;
            align-items:center;
            gap:6px;
            height:24px;
            padding:0 10px;
            border-radius:999px;
            font-size:10px;
            font-weight:900;
            letter-spacing:.8px;
            color:#fff;
            background:rgba(255,255,255,.15);
            border:1px solid rgba(255,255,255,.22);
            backdrop-filter:blur(10px);
            -webkit-backdrop-filter:blur(10px);
        }
        .rank-kicker:before{content:"HOT";font-size:9px;color:#421f2a;background:#fff;border-radius:999px;padding:2px 5px;letter-spacing:0;}
        .rank-hero h1{margin:12px 0 8px;font-size:29px;line-height:1.03;letter-spacing:-.9px;}
        .rank-hero p{margin:0;font-size:12px;line-height:1.6;color:rgba(255,255,255,.8);}
        .rank-hero-actions{display:flex;gap:8px;margin-top:15px;}
        .hero-pill{
            height:30px;
            padding:0 11px;
            display:inline-flex;
            align-items:center;
            border-radius:999px;
            font-size:11px;
            font-weight:800;
            color:#ff5b68;
            background:#fff;
            box-shadow:0 8px 18px rgba(0,0,0,.12);
        }
        .hero-pill.ghost{color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);box-shadow:none;}
        .rank-hero-stats{
            position:relative;
            z-index:2;
            display:grid;
            grid-template-columns:repeat(3,minmax(0,1fr));
            gap:8px;
            margin-top:16px;
        }
        .hero-stat{
            min-width:0;
            padding:9px 8px;
            border-radius:16px;
            background:rgba(255,255,255,.13);
            border:1px solid rgba(255,255,255,.16);
            backdrop-filter:blur(10px);
            -webkit-backdrop-filter:blur(10px);
        }
        .hero-stat strong{display:block;font-size:16px;line-height:1;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .hero-stat span{display:block;margin-top:5px;font-size:10px;color:rgba(255,255,255,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

        /* Tabs：更像首页 chip，sticky 后方便切换 */
        .rank-tabs-shell{
            position:sticky;
            top:48px;
            z-index:25;
            margin:10px -12px 0;
            padding:9px 12px 8px;
            background:linear-gradient(180deg,rgba(255,247,248,.96),rgba(255,247,248,.78));
            backdrop-filter:blur(16px);
            -webkit-backdrop-filter:blur(16px);
        }
        .rank-tabs{
            display:flex;
            gap:8px;
            overflow-x:auto;
            -webkit-overflow-scrolling:touch;
            scrollbar-width:none;
        }
        .rank-tabs::-webkit-scrollbar{display:none;}
        .rank-tab-item{
            flex:0 0 auto;
            height:36px;
            padding:0 14px;
            border:1px solid rgba(255,91,104,.08);
            border-radius:999px;
            display:inline-flex;
            align-items:center;
            gap:6px;
            background:rgba(255,255,255,.88);
            box-shadow:0 8px 18px rgba(39,25,31,.045);
            color:#645d66;
            font-size:13px;
            font-weight:700;
            white-space:nowrap;
        }
        .rank-tab-item:before{content:"";width:6px;height:6px;border-radius:50%;background:rgba(255,91,104,.24);}
        .rank-tab-item.active{
            color:#fff;
            border-color:transparent;
            background:linear-gradient(135deg,#ff7a84,#ff4f61);
            box-shadow:0 10px 20px rgba(255,91,104,.22);
        }
        .rank-tab-item.active:before{background:#fff;}

        .rank-body{padding-top:2px;}
        .rank-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:18px 2px 10px;}
        .rank-section-head h2{margin:0;font-size:18px;letter-spacing:-.3px;}
        .rank-section-head p{margin:4px 0 0;font-size:12px;color:var(--muted);}
        .rank-section-head a,.section-mini-more{flex:0 0 auto;font-size:12px;color:var(--primary);font-weight:800;}

        .card{
            background:rgba(255,255,255,.96);
            border:1px solid rgba(17,24,39,.04);
            border-radius:22px;
            box-shadow:var(--soft-shadow);
        }

        /* 总榜：每个分类一张内容卡，Top1 大图 + Top2/3 小图 */
        .overview-section{margin-top:12px;padding:13px;overflow:hidden;}
        .overview-title-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px;}
        .overview-title-row h3{margin:0;font-size:16px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .overview-title-row p{margin:4px 0 0;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .overview-title-row .rank-chip{flex:0 0 auto;height:25px;padding:0 9px;border-radius:999px;display:inline-flex;align-items:center;background:#fff0f2;color:var(--primary);font-size:11px;font-weight:900;}
        .overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:9px;}
        .overview-main,.overview-side-item{position:relative;overflow:hidden;background:#faf7f8;cursor:pointer;}
        .overview-main{min-height:202px;border-radius:20px;}
        .overview-main .goods-img-wrap{height:132px;background:#f3edf0;}
        .overview-main .goods-img-wrap img,.overview-side-item img{width:100%;height:100%;object-fit:cover;}
        .overview-main .goods-info{padding:10px 10px 12px;}
        .overview-main .goods-name{font-size:14px;font-weight:800;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
        .overview-main .goods-price{margin-top:7px;font-size:17px;font-weight:900;color:var(--primary);}
        .overview-side{display:flex;flex-direction:column;gap:9px;}
        .overview-side-item{min-height:96px;border-radius:18px;display:grid;grid-template-columns:70px 1fr;align-items:center;}
        .overview-side-item .thumb{width:70px;height:96px;background:#f3edf0;}
        .overview-side-item .mini-info{min-width:0;padding:8px;}
        .overview-side-item .mini-name{font-size:12px;font-weight:800;line-height:1.32;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
        .overview-side-item .mini-price{margin-top:7px;font-size:14px;font-weight:900;color:var(--primary);}

        .rank-badge{
            position:absolute;
            left:8px;
            top:8px;
            z-index:2;
            min-width:28px;
            height:28px;
            padding:0 7px;
            border-radius:999px;
            display:inline-flex;
            align-items:center;
            justify-content:center;
            color:#fff;
            font-size:12px;
            font-weight:900;
            background:rgba(0,0,0,.44);
            box-shadow:0 8px 16px rgba(0,0,0,.14);
        }
        .rank-1{background:linear-gradient(135deg,#ffca5f,#ff5968);}
        .rank-2{background:linear-gradient(135deg,#dbe0ea,#8d97a8);}
        .rank-3{background:linear-gradient(135deg,#f2c391,#d88338);}
        .rank-badge .crown{margin-right:2px;font-size:12px;}

        /* 分类榜：Top1 英雄卡 + 其余榜单，更适合种草购买 */
        .category-subtitle{
            margin:10px 2px 12px;
            padding:10px 12px;
            border-radius:16px;
            background:#fff;
            border:1px solid rgba(255,91,104,.08);
            color:#8f6872;
            font-size:12px;
            line-height:1.5;
            box-shadow:var(--soft-shadow);
        }
        .top-product{position:relative;margin-top:12px;padding:12px;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#fff7f8 100%);}
        .top-product:before{content:"TOP 1";position:absolute;right:12px;top:12px;height:24px;padding:0 9px;border-radius:999px;display:flex;align-items:center;background:linear-gradient(135deg,#ffcf65,#ff5b68);color:#fff;font-size:11px;font-weight:900;box-shadow:0 8px 16px rgba(255,91,104,.2);}
        .top-product-main{display:grid;grid-template-columns:122px 1fr;gap:12px;align-items:center;cursor:pointer;}
        .top-product .top-img{width:122px;height:122px;border-radius:22px;overflow:hidden;background:#f4eef1;box-shadow:inset 0 0 0 1px rgba(17,24,39,.035);}
        .top-product .top-img img{width:100%;height:100%;object-fit:cover;}
        .top-product .top-info{min-width:0;padding-right:46px;}
        .top-product .top-kicker{display:inline-flex;height:22px;align-items:center;padding:0 8px;border-radius:999px;background:#fff0f2;color:var(--primary);font-size:10px;font-weight:900;}
        .top-product .top-name{margin-top:8px;font-size:17px;font-weight:900;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
        .top-product .top-brief{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.42;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
        .top-product .top-price{margin-top:10px;font-size:20px;font-weight:900;color:var(--primary);}
        .top-stats{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
        .top-stats span{height:24px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;background:#fff;color:#6f676f;font-size:11px;font-weight:700;border:1px solid rgba(17,24,39,.04);}

        .rank-list{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
        .category-goods{position:relative;padding:10px;cursor:pointer;}
        .category-goods-main{display:flex;align-items:center;gap:10px;}
        .category-goods .goods-rank{width:34px;flex:0 0 34px;display:flex;justify-content:center;}
        .category-goods .goods-rank .rank-badge{position:static;min-width:30px;height:30px;font-size:12px;box-shadow:none;}
        .category-goods .goods-thumb-wrap{width:86px;height:86px;flex:0 0 86px;border-radius:18px;overflow:hidden;background:#f3edf0;}
        .category-goods .goods-thumb-wrap img{width:100%;height:100%;object-fit:cover;}
        .category-goods .goods-text{flex:1;min-width:0;}
        .category-goods .goods-name{font-size:14px;font-weight:850;line-height:1.38;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
        .category-goods .goods-brief{margin-top:4px;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
        .goods-price-row{margin-top:7px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;}
        .goods-price{font-size:17px;font-weight:950;color:var(--primary);}
        .goods-market-price{font-size:12px;color:#aaa;text-decoration:line-through;}
        .goods-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px;}
        .goods-tags .tag{height:22px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;background:#fff0f2;color:#ff5b68;font-size:10px;font-weight:800;}
        .goods-comment-list{margin:10px 0 0 44px;padding:9px 10px 8px;border-radius:14px;background:#faf7f8;list-style:none;border:1px solid rgba(17,24,39,.035);}
        .goods-comment-list li{margin-bottom:7px;}
        .goods-comment-list li:last-child{margin-bottom:0;}
        .goods-comment-list .c-user{font-size:12px;color:#8f6872;font-weight:800;margin-right:6px;}
        .goods-comment-list .c-time{font-size:10px;color:#b8b0b7;}
        .goods-comment-list .c-content{margin-top:3px;font-size:12px;line-height:1.45;color:#514b52;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

        .rank-empty,.rank-error{
            margin:18px 0 0;
            padding:42px 16px;
            text-align:center;
            color:#999;
            font-size:14px;
            background:#fff;
            border-radius:22px;
            box-shadow:var(--soft-shadow);
        }
        .rank-error{color:#d94b5c;background:#fff7f8;}
        .rank-loading{
            position:fixed;
            left:50%;
            bottom:calc(84px + var(--safe-bottom));
            z-index:120;
            transform:translateX(-50%);
            height:38px;
            padding:0 15px;
            border-radius:999px;
            display:none;
            align-items:center;
            color:#fff;
            font-size:13px;
            background:rgba(23,23,27,.82);
            box-shadow:0 10px 24px rgba(0,0,0,.18);
            backdrop-filter:blur(10px);
            -webkit-backdrop-filter:blur(10px);
        }
        .rank-loading:before{content:"";width:14px;height:14px;margin-right:7px;border-radius:50%;border:2px solid rgba(255,255,255,.36);border-top-color:#fff;animation:rankSpinner .8s linear infinite;}
        @keyframes rankSpinner{to{transform:rotate(360deg);}}

        .skeleton-card{height:104px;margin-top:12px;border-radius:22px;background:linear-gradient(90deg,rgba(255,255,255,.68),rgba(255,255,255,.98),rgba(255,255,255,.68));background-size:220% 100%;animation:skeletonMove 1.1s linear infinite;box-shadow:var(--soft-shadow);}
        @keyframes skeletonMove{0%{background-position:220% 0}100%{background-position:-220% 0}}

        @media (max-width:360px){
            .rank-hero{border-radius:24px;min-height:190px;padding:18px 15px 15px;}
            .rank-hero h1{font-size:25px;}
            .rank-hero-inner{max-width:72%;}
            .rank-hero-stats{gap:6px;}
            .hero-stat{padding:8px 6px;}
            .overview-grid{grid-template-columns:1fr;}
            .overview-side{display:grid;grid-template-columns:1fr 1fr;}
            .overview-side-item{grid-template-columns:1fr;min-height:0;}
            .overview-side-item .thumb{width:100%;height:92px;}
            .top-product-main{grid-template-columns:106px 1fr;gap:10px;}
            .top-product .top-img{width:106px;height:106px;border-radius:18px;}
            .top-product .top-info{padding-right:36px;}
            .top-product .top-name{font-size:15px;}
            .category-goods .goods-thumb-wrap{width:76px;height:76px;flex-basis:76px;}
            .goods-comment-list{margin-left:0;}
        }
