.cr-logoico, img.cr-logoico {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    object-fit: cover;
    vertical-align: middle;
    display: inline-block;
    margin-right: 6px;
}
/* Reset & Base */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* Core Colors */
    --bg-color: #2c2426;
    --text-color: #111111;
    --text-light: #ffffff;
    --text-muted: #999999;
    --panel-bg: #ffffff;
    --border-color: #eeeeee;
    --primary-color: #e08a8a;
    --primary-hover: #c46b6b;
    --primary-rgb: 224, 138, 138;
    
    /* Layout & Component Colors */
    --top-bar-bg: #1f191b;
    --top-bar-border: #433538;
    --apps-bg: #1e222b;
    /* Apps panel uses one of the 12 column themes via .theme-XX on .cr-appzone */
    --hover-bg: #f5f5f5;
    --bullet-color: #cccccc;
    --more-btn-bg: #888888;
    --scrollbar-thumb: rgba(0, 0, 0, 0.45);
    --scrollbar-track: #ffffff;
    --link-hover-color: #ff3333;
    
    /* Layout & Spacing Variables */
    --container-max-width: 1140px;
    --container-padding: 0 10px;
    --header-margin-bottom: 15px;
    --top-bar-height: 44px;
    --apps-border-radius: 10px;
    --apps-border-width: 2px;
    --apps-padding: 10px;
    --apps-margin-bottom: 12px;
    --apps-grid-gap: 10px;
    --app-icon-max-width: 64px;
    --app-icon-border-radius: 12px;
    --app-icon-margin-bottom: 6px;
    --banners-gap: 12px;
    --banners-margin-bottom: 12px;
    --banner-border-radius: 8px;
    --hover-lift: -3px;
    --hover-shadow: 0 10px 22px rgba(0, 0, 0, 0.38);
    --main-grid-columns: repeat(4, 1fr);
    --main-grid-gap: 10px;
    --card-border-radius: 10px;
    --card-padding-bottom: 10px;
    --card-border-width: 3px;
    --card-header-height: 45px;
    --card-header-font-size: 15px;
    --card-body-item-height: 28px;
    --card-body-item-padding: 0 8px;
    --card-body-item-border-radius: 4px;
    --card-body-item-font-size: 13.5px;
    --card-thumb-size: 6px;
    --card-thumb-border-radius: 50%;
    --card-thumb-margin-right: 6px;
    --card-footer-height: 50px;
    --card-footer-padding-top: 8px;
    --more-btn-border-radius: 8px;
    --more-btn-height: 34px;
    --more-btn-font-size: 13px;
    --footer-margin-top: 20px;
    --footer-main-padding: 15px 0;
    --footer-copy-height: 36px;
    --footer-copy-font-size: 12px;
    
    /* 12 column palettes — all hues previously used on cards (excl. 福利APP) */
    --c01-border: #ffdfe1; --c01-btn: #e54b4c; /* red-light */
    --c02-border: #fcd699; --c02-btn: #f5ae35; /* yellow-light */
    --c03-border: #d3ecf5; --c03-btn: #18ade5; /* blue-light */
    --c04-border: #bde6d2; --c04-btn: #a9cf68; /* green-soft */
    --c05-border: #f7e1cc; --c05-btn: #f77f0b; /* yellow-medium */
    --c06-border: #e6d2d5; --c06-btn: #eb6077; /* red-soft */
    --c07-border: #d5f1da; --c07-btn: #6abd79; /* green-light */
    --c08-border: #ffebda; --c08-btn: #f08d01; /* yellow-dark */
    --c09-border: #f3d1e3; --c09-btn: #ee859a; /* red-dark */
    --c10-border: #e5d8c4; --c10-btn: #de911b; /* yellow-soft */
    --c11-border: #f2c9d8; --c11-btn: #f09091; /* red-medium */
    --c12-border: #ced9ee; --c12-btn: #18ade5; /* blue-dark */
}

html, body {
    color: var(--text-color);
    font-size: 14px;
    line-height: 1.5;
    font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;
    background-color: var(--bg-color);
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--link-hover-color);
}

/* Scrollbars — thumb follows each card's border accent */
.scrollbar {
    scrollbar-color: var(--card-accent, var(--scrollbar-thumb)) transparent;
    scrollbar-width: thin;
}

.scrollbar::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

.scrollbar::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background: var(--card-accent, var(--scrollbar-thumb));
}

.scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

/* Layout Container */
.cr-wrap {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: var(--container-padding);
}

/* Header */
.cr-topnav {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    margin-bottom: var(--header-margin-bottom);
    background: rgba(26, 28, 32, 0.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 2px solid var(--top-bar-border);
}

.cr-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 52px;
    padding-top: 8px;
    padding-bottom: 8px;
}

.cr-brandbox {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    flex-shrink: 0;
}

.cr-toptools {
    display: none;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

.cr-searchtoggle,
.cr-menutoggle,
.cr-drawclose,
.cr-drawhead,
.cr-drawmask,
.cr-drawlabel,
.cr-drawcats,
.cr-drawlinks {
    display: none;
}

.cr-searchtoggle,
.cr-menutoggle,
.cr-drawclose {
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(224, 138, 138, 0.35);
    border-radius: 8px;
    background: #22252b;
    color: var(--primary-color);
    font-size: 16px;
    cursor: pointer;
}

.cr-brandtxt {
    font-size: 20px;
    font-weight: 800;
    margin: 0;
    max-width: 280px;
}

.cr-brandtxt a {
    color: var(--text-light);
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.cr-brandtxt a:hover { color: var(--primary-color); }

.cr-topacts {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex: 1;
    min-width: 0;
}

.cr-searchbox {
    display: flex;
    align-items: stretch;
    height: 38px;
    flex: 0 1 260px;
    max-width: 280px;
    border: 1px solid rgba(224, 138, 138, 0.35);
    border-radius: 999px;
    overflow: hidden;
    background: #121418;
}

.cr-searchinp {
    flex: 1;
    border: 0;
    outline: 0;
    padding: 0 14px;
    font-size: 13px;
    min-width: 0;
    background: transparent;
    color: #fff;
}

.cr-searchinp::placeholder { color: #8a8f98; }

.cr-searchbtn {
    width: 42px;
    border: 0;
    background: var(--primary-color);
    color: #1a1a1a;
    cursor: pointer;
    font-size: 14px;
}

.cr-toplinks {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 4px;
}

.cr-toplinks a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 38px;
    padding: 0 10px;
    font-size: 12px;
    font-weight: 700;
    color: #ddd;
    white-space: nowrap;
    border-radius: 999px;
    border: 1px solid transparent;
}

.cr-toplinks a:hover,
.cr-toplinks a.active {
    color: var(--primary-color);
    background: rgba(224, 138, 138, 0.12);
    border-color: rgba(224, 138, 138, 0.28);
}

.cr-toplinks .fa { color: var(--primary-color); }

.cr-apphead {
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--card-accent);
}

.cr-apphead h2 {
    margin: 0;
    color: var(--text-color);
    font-size: 16px;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Align with site primary; beat .theme-XX h2 .fa */
.cr-appzone .cr-apphead h2 .fa {
    color: var(--primary-color);
}

.cr-appgrid .cr-appname {
    color: var(--text-color);
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.cr-catcard h2 b {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.cr-catcard h2 .fa {
    font-size: 15px;
    color: var(--more-btn-bg);
    margin-right: 2px;
}

/* Apps Section — panel sits inside cr-wrap so width matches header */
.cr-appzone {
    --card-accent: var(--c08-border);
    --card-btn: var(--c08-btn);
    background-color: var(--panel-bg);
    border: var(--apps-border-width) solid var(--card-accent);
    border-radius: var(--apps-border-radius);
    padding: var(--apps-padding);
    margin-bottom: var(--apps-margin-bottom);
    width: 100%;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.cr-appgrid {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    gap: var(--apps-grid-gap);
}

.cr-appgrid a,
.cr-appcell {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-radius: 10px;
    padding: 6px 4px 4px;
    transition: transform 0.22s ease, box-shadow 0.22s ease, background-color 0.22s ease;
}

.cr-appico {
    width: 100%;
    max-width: var(--app-icon-max-width);
    aspect-ratio: 1/1;
    object-fit: cover;
    border-radius: var(--app-icon-border-radius);
    display: block;
    margin-bottom: var(--app-icon-margin-bottom);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
    box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

@media (hover: hover) and (pointer: fine) {
    .cr-appcell:hover {
        transform: translateY(var(--hover-lift));
        background-color: var(--card-accent);
        box-shadow: var(--hover-shadow);
    }

    .cr-appcell:hover .cr-appico {
        transform: scale(1.06) translateY(-1px);
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.42);
    }

    .cr-appcell:hover .cr-appname {
        color: var(--card-btn);
    }
}


/* Banners — same cr-wrap width as header / apps */
.cr-banzone {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--banners-gap);
    width: 100%;
    margin-bottom: var(--banners-margin-bottom);
    padding-top: 0;
    padding-bottom: 0;
}

.cr-banitem {
    flex: 1;
    min-width: calc(50% - (var(--banners-gap) / 2));
}

.cr-bancard {
    display: block;
    border-radius: var(--banner-border-radius);
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.cr-banitem img {
    width: 100%;
    display: block;
    height: auto;
    border-radius: var(--banner-border-radius);
    transition: transform 0.22s ease, opacity 0.22s ease;
}

@media (hover: hover) and (pointer: fine) {
    .cr-bancard:hover {
        transform: translateY(var(--hover-lift));
        box-shadow: var(--hover-shadow);
    }

    .cr-bancard:hover img {
        opacity: 0.96;
        transform: scale(1.02);
    }
}

/* Main Sites Grid (Masonry) */
.cr-cardgrid {
    display: grid;
    grid-template-columns: var(--main-grid-columns);
    gap: var(--main-grid-gap);
    grid-auto-rows: 1px;
}

/* Cards */
.cr-catcard {
    --card-accent: var(--border-color);
    --card-btn: var(--more-btn-bg);
    position: relative;
    display: block;
    width: 100%;
    background-color: var(--panel-bg);
    border-radius: var(--card-border-radius);
    padding-bottom: var(--card-footer-height);
    border: var(--card-border-width) solid var(--card-accent);
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}

.cr-catcard h2 {
    display: flex;
    align-items: center;
    margin: 0 auto 5px;
    width: 94%;
    height: var(--card-header-height);
    font-size: var(--card-header-font-size);
    font-weight: 700;
    border-bottom: var(--card-border-width) solid var(--card-accent);
}

.cr-cardbody {
    display: block;
    width: 98%;
    margin: 0 auto;
    overflow-y: auto;
}

.cr-cardbody ul {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

.cr-cardbody li {
    display: flex;
    align-items: center;
    height: var(--card-body-item-height);
    line-height: var(--card-body-item-height);
    padding: var(--card-body-item-padding);
    overflow: hidden;
    border-radius: var(--card-body-item-border-radius);
}

.cr-cardbody li:hover {
    background-color: var(--card-accent);
}

.cr-cardbody li:hover a {
    color: var(--card-btn) !important;
}

.cr-cardbody li b {
    width: 20px;
    color: var(--text-muted);
    font-size: 12px;
    text-align: right;
    margin-right: 8px;
    flex-shrink: 0;
}

.cr-cardbody li a {
    display: flex;
    align-items: center;
    font-weight: 600;
    font-size: var(--card-body-item-font-size);
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cr-favmark {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background-image: url("/shared/img/logolist.png");
    background-repeat: no-repeat;
    background-position: 0 0; /* overridden per-link via logoPos */
    overflow: hidden;
}

.cr-cardfoot {
    display: block;
    position: absolute;
    width: 100%;
    left: 0;
    height: var(--card-footer-height);
    bottom: 0;
    padding-top: var(--card-footer-padding-top);
    background-color: var(--panel-bg);
}

.cr-pillbtn {
    display: block;
    width: 94%;
    height: var(--more-btn-height);
    line-height: var(--more-btn-height);
    margin: 0 auto;
    border-radius: var(--more-btn-border-radius);
    color: var(--text-light);
    background-color: var(--more-btn-bg);
    font-size: var(--more-btn-font-size);
    text-align: center;
    font-weight: 700;
    letter-spacing: 0.02em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Row Height Spans */
.grid-span-70 { grid-row-end: span 70; }
.grid-span-70 .cr-cardbody { height: 660px; }

.grid-span-60 { grid-row-end: span 60; }
.grid-span-60 .cr-cardbody { height: 550px; }

.grid-span-45 { grid-row-end: span 45; }
.grid-span-45 .cr-cardbody { height: 380px; }

.grid-span-40 { grid-row-end: span 40; }
.grid-span-40 .cr-cardbody { height: 320px; }

.grid-span-35 { grid-row-end: span 35; }
.grid-span-35 .cr-cardbody { height: 270px; }

.grid-span-30 { grid-row-end: span 30; }
.grid-span-30 .cr-cardbody { height: 220px; }

.grid-span-25 { grid-row-end: span 25; }
.grid-span-25 .cr-cardbody { height: 160px; }

/* 12 column themes — cycle mixes hue families so neighbors differ */
.theme-01 { --card-accent: var(--c01-border); --card-btn: var(--c01-btn); }
.theme-02 { --card-accent: var(--c02-border); --card-btn: var(--c02-btn); }
.theme-03 { --card-accent: var(--c03-border); --card-btn: var(--c03-btn); }
.theme-04 { --card-accent: var(--c04-border); --card-btn: var(--c04-btn); }
.theme-05 { --card-accent: var(--c05-border); --card-btn: var(--c05-btn); }
.theme-06 { --card-accent: var(--c06-border); --card-btn: var(--c06-btn); }
.theme-07 { --card-accent: var(--c07-border); --card-btn: var(--c07-btn); }
.theme-08 { --card-accent: var(--c08-border); --card-btn: var(--c08-btn); }
.theme-09 { --card-accent: var(--c09-border); --card-btn: var(--c09-btn); }
.theme-10 { --card-accent: var(--c10-border); --card-btn: var(--c10-btn); }
.theme-11 { --card-accent: var(--c11-border); --card-btn: var(--c11-btn); }
.theme-12 { --card-accent: var(--c12-border); --card-btn: var(--c12-btn); }

.theme-01 .cr-pillbtn, .theme-02 .cr-pillbtn, .theme-03 .cr-pillbtn,
.theme-04 .cr-pillbtn, .theme-05 .cr-pillbtn, .theme-06 .cr-pillbtn,
.theme-07 .cr-pillbtn, .theme-08 .cr-pillbtn, .theme-09 .cr-pillbtn,
.theme-10 .cr-pillbtn, .theme-11 .cr-pillbtn, .theme-12 .cr-pillbtn {
    background-color: var(--card-btn);
}

.theme-01 h2 .fa, .theme-02 h2 .fa, .theme-03 h2 .fa,
.theme-04 h2 .fa, .theme-05 h2 .fa, .theme-06 h2 .fa,
.theme-07 h2 .fa, .theme-08 h2 .fa, .theme-09 h2 .fa,
.theme-10 h2 .fa, .theme-11 h2 .fa, .theme-12 h2 .fa {
    color: var(--card-btn);
}

/* Footer — shared PC / mobile language: quiet chrome, centered, airy */
.cr-footbar {
    width: 100%;
    background-color: var(--top-bar-bg);
    border-top: 1px solid var(--top-bar-border);
    font-size: 13px;
    margin-top: var(--footer-margin-top);
    padding: 22px 0 calc(24px + env(safe-area-inset-bottom, 0px));
    color: #c5c9d0;
}

.cr-footinner {
    text-align: center;
    max-width: var(--container-max-width);
}

.cr-footlinks {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0;
    margin: 0 auto 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.cr-footlinks a {
    position: relative;
    padding: 0 14px;
    color: #e8e6e3;
    font-weight: 600;
    line-height: 1.4;
    transition: color 0.18s ease;
}

.cr-footlinks a:hover { color: var(--primary-color); }

.cr-footlinks a:not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 1px;
    height: 12px;
    margin-top: -6px;
    background: rgba(255, 255, 255, 0.14);
}

.cr-footcontact {
    margin: 0 auto 10px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px 22px;
}

.cr-contitem {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #c5c9d0;
}

.cr-footcontact .fa {
    color: var(--primary-color);
    font-size: 13px;
}
.cr-footcontact a {
    color: #fff;
    font-weight: 600;
}
.cr-footcontact a:hover { color: var(--primary-color); }

.cr-footcopy {
    margin: 0 auto 8px;
    font-size: 12px;
    line-height: 1.6;
    color: #8b919c;
    letter-spacing: 0.01em;
}

.cr-footcopy a {
    color: #e8e6e3;
    font-weight: 600;
}

.cr-footcopy a:hover { color: var(--primary-color); }

.cr-warn {
    font-size: 12px;
    line-height: 1.7;
    color: #7e8490;
    max-width: 860px;
    margin: 0 auto;
    padding: 0 8px;
}

.cr-warn .fa {
    color: var(--primary-color);
    margin-right: 4px;
}

/* Side menu (mobile) */
.cr-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1200;
    width: min(68vw, 260px);
    height: 100%;
    background: #1a1c20;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: -8px 0 28px rgba(0, 0, 0, 0.4);
    transform: translateX(105%);
    transition: transform 0.24s ease;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}

body.cr-draweropen .cr-drawer { transform: translateX(0); }

.cr-drawhead {
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 14px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.cr-drawtitle {
    font-size: 16px;
    font-weight: 800;
    color: #fff;
}

.cr-drawlabel {
    margin: 10px 14px 0;
    font-size: 12px;
    font-weight: 800;
    color: #8a8f98;
    letter-spacing: 0.04em;
}

.cr-drawcats {
    list-style: none;
    display: grid;
    gap: 6px;
    padding: 8px 10px 10px;
}

.cr-drawcats a,
.cr-drawlinks a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 0 12px;
    border-radius: 8px;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    background: rgba(224, 138, 138, 0.12);
}

.cr-drawcats a:hover,
.cr-drawlinks a:hover {
    background: rgba(224, 138, 138, 0.22);
    color: #fff;
}

.cr-drawcats .fa,
.cr-drawlinks .fa {
    width: 1.15em;
    text-align: center;
    color: var(--primary-color);
}

.cr-drawlinks {
    flex-direction: column;
    gap: 4px;
    padding: 4px 10px 12px;
}

/* Subpages — full-width content aligned with header shell */
.cr-subpage {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 10px 24px;
    clear: both;
}

.cr-subshell {
    width: 100%;
    margin: 0;
}

.cr-homebar {
    width: 100%;
    margin: 0 0 12px;
}

.cr-homebar a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
    color: #ececec;
    font-weight: 600;
    font-size: 13px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.cr-homebar a:hover {
    color: var(--primary-color);
    background: rgba(var(--primary-rgb), 0.12);
    border-color: rgba(var(--primary-rgb), 0.4);
}

.cr-homebar .fa { color: var(--primary-color); }

.cr-subpanel {
    --card-accent: rgba(var(--primary-rgb), 0.45);
    --card-btn: var(--primary-hover);
    display: block;
    width: 100%;
    background: var(--panel-bg);
    border-radius: var(--card-border-radius);
    padding: 22px 24px 28px;
    border: 2px solid var(--card-accent);
    color: #222;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

.cr-subbody {
    display: block;
    width: 100%;
    max-width: none;
}

.cr-subpanel h2 {
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--card-accent);
    font-size: 20px;
    font-weight: 800;
    color: #1a1a1a;
    display: flex;
    align-items: center;
    gap: 8px;
}

.cr-subpanel h2 .fa {
    color: var(--primary-color);
}

.cr-subpanel h3 {
    margin: 18px 0 8px;
    font-size: 16px;
    font-weight: 700;
    color: #222;
}

.cr-subpanel h3 .fa {
    color: var(--card-btn, var(--primary-hover));
    margin-right: 4px;
}

.cr-subpanel p,
.cr-subpanel li {
    font-size: 14px;
    line-height: 1.75;
    margin-bottom: 8px;
    color: #333;
}

.cr-subpanel a {
    color: var(--card-btn, var(--primary-hover));
    font-weight: 600;
    text-decoration: none;
}

.cr-subpanel a:hover { color: var(--primary-color); }

.cr-subpanel ul {
    padding-left: 18px;
    margin: 8px 0 12px;
}

.cr-subpanel ul:not(.cr-rules):not(.cr-resgrid) > li {
    list-style: disc;
    margin: 5px 0;
}

.cr-subpanel code {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 4px;
    background: #f3f3f3;
    border: 1px solid #e5e5e5;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.92em;
    color: #333;
    word-break: break-all;
}

.cr-tipbox {
    background: rgba(var(--primary-rgb), 0.12);
    border: 1px solid rgba(var(--primary-rgb), 0.35);
    border-radius: 8px;
    padding: 14px 16px;
    margin: 0 0 16px;
}

.cr-tipbox h3 {
    margin-top: 0;
    margin-bottom: 8px;
}

.cr-tipbox h3 .fa { color: var(--card-btn, var(--primary-hover)); }

.cr-tipbox p { margin-bottom: 8px; }
.cr-tipbox p:last-child { margin-bottom: 0; }

.cr-chip {
    display: inline-block;
    max-width: 100%;
    padding: 2px 8px;
    border-radius: 4px;
    background: #fff;
    border: 1px solid rgba(var(--primary-rgb), 0.35);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 13px;
    color: #2a2a2a;
    font-weight: 600;
    word-break: break-all;
}

.cr-contcard {
    background: rgba(var(--primary-rgb), 0.1);
    border: 1px solid rgba(var(--primary-rgb), 0.28);
    border-radius: 8px;
    padding: 14px 16px;
    margin: 10px 0;
}

.cr-contcard p {
    margin: 6px 0;
}

.cr-contcard .fa {
    color: var(--card-btn, var(--primary-hover));
    margin-right: 4px;
}

.cr-drawlinks a.active {
    background: rgba(var(--primary-rgb), 0.22);
    color: #fff;
}

.cr-subnote {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 8px;
    background: rgba(var(--primary-rgb), 0.1);
    border: 1px solid rgba(var(--primary-rgb), 0.2);
    color: #555;
    font-size: 13px;
    line-height: 1.65;
}

.cr-subnote .fa {
    color: var(--primary-color);
    margin-right: 4px;
}

.cr-subpanel ul.cr-rules,
.cr-rules {
    list-style: none;
    width: 100%;
    max-width: 100%;
    margin: 8px 0 14px;
    padding: 0;
    box-sizing: border-box;
}

.cr-rules li {
    list-style: none !important;
    display: flex;
    gap: 8px;
    align-items: flex-start;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    margin: 0 0 6px;
    border-radius: 8px;
    background: #fafafa;
    border: 1px solid #efefef;
}

.cr-rules li:last-child { margin-bottom: 0; }

.cr-rules .fa {
    color: var(--primary-color);
    margin-top: 3px;
    flex-shrink: 0;
}

.cr-rules li span {
    flex: 1;
    min-width: 0;
}

.cr-searchrow {
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
    width: 100%;
}

.cr-subpin {
    flex: 1 1 auto;
    min-width: 0;
    height: 44px;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 0 14px;
    font-size: 15px;
    background: #fff;
    color: #222;
}

.cr-subpin:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.2);
}

.cr-subpbtn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    background: var(--primary-color);
    color: #1a1a1a;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
}

.cr-subpbtn:hover {
    background: var(--primary-hover);
    color: #fff;
}

.cr-restitle {
    font-weight: 800;
    font-size: 15px;
    margin: 8px 0 10px;
    color: #222;
}

.cr-resgrid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
}

.cr-resitem {
    list-style: none !important;
    min-width: 0;
    border: 1px solid rgba(var(--primary-rgb), 0.3);
    border-radius: 8px;
    background: rgba(var(--primary-rgb), 0.06);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
    .cr-resitem:hover {
        border-color: var(--primary-color);
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
        transform: translateY(-2px);
    }
}

.cr-reslink {
    display: block;
    padding: 12px 14px;
}

.cr-resname {
    display: block;
    font-weight: 800;
    margin-bottom: 4px;
    color: #222;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cr-resitem:hover .cr-resname {
    color: var(--card-btn, var(--primary-hover));
}

.cr-resdesc {
    display: block;
    font-size: 12px;
    color: #777;
    line-height: 1.5;
}

.cr-resempty {
    grid-column: 1 / -1;
    list-style: none !important;
    padding: 18px;
    text-align: center;
    color: #666;
}

.cr-resempty .fa {
    margin-right: 6px;
    color: var(--primary-color);
}

/* Responsive Breakpoints */
@media (max-width: 1200px) {
    .cr-cardgrid {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .cr-appgrid {
        grid-template-columns: repeat(8, 1fr);
    }
    
    .grid-span-70 { grid-row-end: span 45; }
    .grid-span-70 .cr-cardbody { height: 380px; }
    
    .grid-span-60 { grid-row-end: span 45; }
    .grid-span-60 .cr-cardbody { height: 380px; }
    
    .grid-span-45 { grid-row-end: span 40; }
    .grid-span-45 .cr-cardbody { height: 320px; }
    
    .grid-span-40 { grid-row-end: span 35; }
    .grid-span-40 .cr-cardbody { height: 270px; }
    
    .grid-span-35 { grid-row-end: span 30; }
    .grid-span-35 .cr-cardbody { height: 220px; }
}

@media (max-width: 960px) {
    .cr-cardgrid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .cr-appgrid {
        grid-template-columns: repeat(6, 1fr);
    }
    
    .grid-span-70 { grid-row-end: span 35; }
    .grid-span-70 .cr-cardbody { height: 270px; }
    
    .grid-span-60 { grid-row-end: span 35; }
    .grid-span-60 .cr-cardbody { height: 270px; }
    
    .grid-span-45 { grid-row-end: span 30; }
    .grid-span-45 .cr-cardbody { height: 220px; }
    
    .grid-span-40 { grid-row-end: span 25; }
    .grid-span-40 .cr-cardbody { height: 160px; }
    
    .grid-span-35 { grid-row-end: span 25; }
    .grid-span-35 .cr-cardbody { height: 160px; }
}

@media (max-width: 1200px) {
    .cr-toplinks a span { display: none; }
    .cr-toplinks a {
        width: 38px;
        padding: 0;
        justify-content: center;
    }
}

@media (max-width: 960px) {
    .cr-topbar {
        flex-wrap: wrap;
        gap: 10px;
    }
    .cr-topacts {
        flex: 1 1 100%;
        flex-wrap: wrap;
    }
    .cr-searchbox {
        flex: 1 1 100%;
        max-width: none;
        border-radius: 10px;
    }
    .cr-toplinks { width: 100%; justify-content: space-between; }
    .cr-resgrid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    body.cr-draweropen { overflow: hidden; }
    .cr-topnav {
        position: static;
        margin-bottom: 8px;
        background: transparent;
        border: 0;
        backdrop-filter: none;
    }
    .cr-topbar {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        min-height: 0;
        padding-top: 0;
        padding-bottom: 0;
    }
    .cr-brandbox {
        position: sticky;
        top: 0;
        z-index: 1000;
        width: 100%;
        min-height: 52px;
        padding: 8px 0;
        padding-top: calc(8px + env(safe-area-inset-top, 0px));
        justify-content: space-between;
        background: color-mix(in srgb, var(--top-bar-bg) 96%, #000);
        border-bottom: 1px solid var(--top-bar-border);
    }
    .cr-toptools { display: inline-flex; }
    .cr-searchtoggle,
    .cr-menutoggle { display: inline-flex; }
    body.cr-searchopen .cr-searchtoggle {
        background: rgba(224, 138, 138, 0.18);
    }
    .cr-brandtxt {
        max-width: none;
        flex: 1;
        min-width: 0;
        font-size: 17px;
    }
    .cr-topacts {
        display: none;
        padding: 10px 0 8px;
        position: sticky;
        top: 52px;
        z-index: 999;
        background: color-mix(in srgb, var(--top-bar-bg) 96%, #000);
        border-bottom: 1px solid var(--top-bar-border);
    }
    body.cr-searchopen .cr-topacts { display: flex; }
    .cr-toplinks { display: none !important; }
    .cr-searchbox {
        width: 100%;
        max-width: none;
        height: 48px;
        border-radius: 12px;
    }
    .cr-searchinp { font-size: 16px; }
    .cr-searchbtn { width: 52px; font-size: 17px; }

    .cr-wrap { padding: 0 8px; }
    .cr-banzone { margin-bottom: 8px; }
    .cr-appzone {
        padding: 10px 8px 12px;
        margin-bottom: 10px;
    }
    .cr-apphead {
        margin-bottom: 10px;
        padding-bottom: 8px;
    }
    .cr-apphead h2 { font-size: 15px; }
    .cr-appgrid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 8px;
    }
    .cr-appcell { padding: 4px 2px; }
    .cr-appname { font-size: 11px; }

    .cr-cardgrid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .cr-catcard {
        border-width: 2px;
    }
    .cr-catcard h2 {
        width: 96%;
        height: 40px;
        font-size: 14px;
    }
    /* 3 links per row */
    .cr-cardbody ul {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 4px 6px;
    }
    .cr-cardbody li {
        height: auto;
        min-height: 36px;
        line-height: 1.25;
        padding: 4px 2px;
        align-items: flex-start;
    }
    .cr-cardbody li b {
        display: none;
    }
    .cr-cardbody li a {
        font-size: 12px;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .cr-cardbody .cr-favmark {
        width: 14px;
        height: 14px;
        margin-right: 3px;
        margin-top: 1px;
    }
    .grid-span-70,
    .grid-span-60,
    .grid-span-45,
    .grid-span-40,
    .grid-span-35,
    .grid-span-30,
    .grid-span-25 { grid-row-end: span 34; }
    .grid-span-70 .cr-cardbody,
    .grid-span-60 .cr-cardbody,
    .grid-span-45 .cr-cardbody,
    .grid-span-40 .cr-cardbody,
    .grid-span-35 .cr-cardbody,
    .grid-span-30 .cr-cardbody,
    .grid-span-25 .cr-cardbody { height: 260px; }

    .cr-drawer {
        width: min(78vw, 280px);
        padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    }
    .cr-drawmask {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1190;
        background: rgba(0, 0, 0, 0.5);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.22s ease;
    }
    body.cr-draweropen .cr-drawmask {
        opacity: 1;
        pointer-events: auto;
    }
    .cr-drawhead,
    .cr-drawclose,
    .cr-drawlinks { display: flex; }
    .cr-drawlabel,
    .cr-drawcats { display: block; }
    .cr-drawcats {
        display: grid;
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .cr-drawcats a,
    .cr-drawlinks a {
        min-height: 44px;
        font-size: 15px;
    }

    /* Footer: same centered row language as PC; links stay one row of 6 */
    .cr-footbar {
        margin-top: 18px;
        padding: 20px 0 calc(26px + env(safe-area-inset-bottom, 0px));
        font-size: 13px;
    }
    .cr-footinner {
        padding: 0 10px;
    }
    .cr-footlinks {
        display: flex;
        flex-wrap: nowrap;
        justify-content: center;
        align-items: center;
        margin-bottom: 14px;
        width: 100%;
    }
    .cr-footlinks a {
        flex: 1 1 0;
        min-width: 0;
        padding: 0 2px;
        font-size: 11px;
        min-height: 32px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
    }
    .cr-footlinks a:not(:last-child)::after {
        height: 11px;
        margin-top: -5.5px;
        background: rgba(255, 255, 255, 0.12);
    }
    .cr-footcontact {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 8px 18px;
        margin-bottom: 12px;
    }
    .cr-footcopy {
        margin-bottom: 10px;
        font-size: 12px;
        padding: 0 4px;
    }
    .cr-warn {
        font-size: 12px;
        line-height: 1.7;
        padding: 0 4px;
        max-width: 36em;
    }
    .cr-subpage { padding: 0 8px 18px; }
    .cr-subpanel { padding: 16px 14px 20px; }
    .cr-subpanel h2 { font-size: 17px; }
    .cr-subpanel h3 { font-size: 15px; }
    .cr-subpanel p,
    .cr-subpanel li { font-size: 13.5px; }
    .cr-searchrow { flex-direction: column; }
    .cr-subpbtn { width: 100%; }
    .cr-resgrid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .cr-appgrid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 6px;
    }
    
    .cr-banzone {
        flex-direction: column;
        gap: 8px;
    }
    
    .cr-banitem {
        min-width: 100%;
    }

    .grid-span-70 { grid-row-end: span 30; }
    .grid-span-70 .cr-cardbody { height: 220px; }

    .grid-span-60 { grid-row-end: span 30; }
    .grid-span-60 .cr-cardbody { height: 220px; }

    .grid-span-45 { grid-row-end: span 25; }
    .grid-span-45 .cr-cardbody { height: 160px; }

    .grid-span-40 { grid-row-end: span 25; }
    .grid-span-40 .cr-cardbody { height: 160px; }

    .grid-span-35 { grid-row-end: span 25; }
    .grid-span-35 .cr-cardbody { height: 160px; }

    .grid-span-30,
    .grid-span-25 { grid-row-end: span 25; }
    .grid-span-30 .cr-cardbody,
    .grid-span-25 .cr-cardbody { height: 160px; }
}

@media (max-width: 380px) {
    .cr-appgrid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .cr-brandtxt { font-size: 15px; }
}

/* Geometry + chrome fingerprint (5_5) */
.cr-wrap,
.cr-subpage,
.cr-footinner {
    max-width: var(--container-max-width) !important;
}
.cr-appzone,
.cr-subpanel,
.cr-catcard,
.cr-bancard {
    border-radius: var(--apps-border-radius) !important;
}
@media (min-width: 701px) {
    .cr-appgrid {
        grid-template-columns: repeat(9, minmax(0, 1fr)) !important;
    }
}
.cr-searchbtn {
    background: var(--primary-color) !important;
}
.cr-pillbtn {
    border-radius: calc(var(--apps-border-radius) - 2px) !important;
}
/* Mobile layout overrides — beat desktop fingerprint !important */
@media (max-width: 700px) {
    .cr-brandbox,
    .cr-topacts {
        background: color-mix(in srgb, var(--top-bar-bg) 96%, #000) !important;
    }
    .cr-cardgrid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    .cr-appgrid {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    .cr-banzone {
        flex-direction: column !important;
        gap: 8px !important;
    }
    .cr-banitem {
        min-width: 100% !important;
    }
    .cr-appzone {
        padding: 10px 8px 12px !important;
    }
    .cr-wrap {
        padding: 0 8px !important;
    }
}
@media (max-width: 640px) {
    .cr-appgrid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }
}
@media (max-width: 380px) {
    .cr-appgrid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
