/*
 * Traditional long-page portal finish inspired by the supplied 0149 layout.
 * This file only overrides the public presentation layer; FastAdmin and the
 * existing ThinkPHP data contract remain unchanged.
 */

:root {
    --portal-blue: #046bb2;
    --portal-deep: #003e7e;
    --portal-red: #e51f2f;
    --portal-gold: #ffd72d;
    --portal-yellow: #fff38a;
}

body {
    background-color: #d6d6d6;
    background-image:
        linear-gradient(90deg, rgba(255, 255, 255, .34) 1px, transparent 1px),
        linear-gradient(rgba(255, 255, 255, .24) 1px, transparent 1px);
    background-size: 18px 18px;
}

.site-shell {
    border-right: 1px solid #aaa;
    border-left: 1px solid #aaa;
    box-shadow: 0 0 18px rgba(0, 0, 0, .22);
}

.sticky-masthead {
    box-shadow: 0 3px 8px rgba(0, 0, 0, .24);
}

.lottery-tab {
    position: relative;
    overflow: hidden;
}

.lottery-tab::before {
    display: block;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border: 2px solid currentColor;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .88);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
}

.lottery-tab[data-lottery-tab="macau"]::before {
    background-image: url("../img/lottery/regions/macau-emblem.svg");
}

.lottery-tab[data-lottery-tab="hongkong"]::before {
    background-image: url("../img/lottery/regions/taiwan-flag.svg");
}

.lottery-tab.is-active::before {
    border-color: #fff;
    background-color: var(--portal-gold);
    box-shadow: 0 0 8px rgba(255, 232, 59, .78);
}

.portal-date-bar {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(90deg, transparent, rgba(255, 255, 255, .2), transparent),
        linear-gradient(#1687d1, #0565ab);
    box-shadow: inset 0 1px rgba(255, 255, 255, .6), inset 0 -3px rgba(0, 50, 110, .28);
}

.portal-date-bar::before,
.portal-date-bar::after {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 70px;
    background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .09) 0 5px, transparent 5px 10px);
    content: "";
}

.portal-date-bar::before {
    left: 0;
}

.portal-date-bar::after {
    right: 0;
}

#current-clock {
    position: absolute;
    z-index: 1;
    right: 8px;
    bottom: 3px;
    color: #fff8a8;
    font-size: 9px;
    font-weight: 700;
}

.notice-strip {
    position: relative;
    height: 168px;
    gap: 5px;
    overflow: hidden;
    border: 2px solid #e9b816;
    background:
        radial-gradient(circle at 16px 16px, rgba(255, 255, 255, .66) 0 2px, transparent 3px),
        linear-gradient(135deg, #fffbc4, #ffe967 54%, #fff5a4);
    background-size: 28px 28px, auto;
    box-shadow: inset 0 0 24px rgba(232, 166, 0, .18);
}

.notice-strip::before,
.notice-strip::after {
    position: absolute;
    top: 10px;
    bottom: 10px;
    width: 48px;
    border: 2px solid rgba(205, 29, 39, .34);
    color: #d11f2b;
    content: "资料\A 导航";
    font-family: SimSun, serif;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.45;
    text-align: center;
    white-space: pre;
    writing-mode: vertical-rl;
}

.notice-strip::before {
    left: 10px;
}

.notice-strip::after {
    right: 10px;
    transform: rotate(180deg);
}

.notice-kicker {
    color: #7f5300;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: 2px;
}

.notice-strip > strong {
    font-family: Arial Black, Arial, sans-serif;
    font-size: 31px;
    letter-spacing: -1px;
    text-shadow: 0 2px #fff;
}

.notice-grid {
    display: grid;
    width: min(520px, calc(100% - 128px));
    grid-template-columns: 1fr 1fr;
    border: 1px solid #e3a805;
    background: rgba(255, 255, 255, .64);
}

.notice-grid span {
    padding: 5px 7px;
    color: #1b1b1b;
    font-size: 13px;
    font-weight: 800;
}

.notice-grid span + span {
    border-left: 1px solid #e3a805;
}

.notice-grid b {
    color: #d21928;
}

.notice-grid span + span b {
    color: #0570b7;
}

.notice-viewport {
    position: relative;
    width: min(520px, calc(100% - 128px));
    height: 25px;
    overflow: hidden;
    border: 1px solid #d19100;
    background: #fff;
}

.notice-viewport p {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: #126c3d;
    font-size: 12px;
    font-weight: 900;
}

.notice-viewport p.is-active {
    display: flex;
    animation: notice-pop .28s ease-out;
}

@keyframes notice-pop {
    from { transform: translateY(8px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.portal-alert-ribbons {
    display: grid;
    gap: 3px;
    margin-top: 4px;
}

.portal-alert-ribbons p {
    display: grid;
    min-height: 39px;
    grid-template-columns: 170px minmax(0, 1fr) 52px;
    align-items: center;
    margin: 0;
    overflow: hidden;
    border: 2px solid #b5000c;
    background: linear-gradient(90deg, #d00013, #ff3442 48%, #bd0010);
    color: #fff;
    text-align: center;
    text-shadow: 1px 1px 0 #6d0008;
}

.portal-alert-ribbons p:nth-child(2) {
    border-color: #004f9a;
    background: linear-gradient(90deg, #0057a3, #138ed5 48%, #00447f);
    text-shadow: 1px 1px 0 #002e59;
}

.portal-alert-ribbons b {
    font-size: 18px;
}

.portal-alert-ribbons span {
    border-right: 1px solid rgba(255, 255, 255, .46);
    border-left: 1px solid rgba(255, 255, 255, .46);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 2px;
}

.portal-alert-ribbons em {
    color: var(--portal-gold);
    font-family: Arial Black, sans-serif;
    font-size: 11px;
    font-style: normal;
}

.promo-banner--mid {
    background-image:
        linear-gradient(90deg, rgba(0, 27, 73, .8), rgba(0, 101, 176, .76)),
        url("../img/lottery/opensource/6hecai/portal-ribbon-bg.png");
    background-position: center;
    background-size: cover;
}

.promo-banner--bottom {
    background-image:
        linear-gradient(90deg, rgba(62, 0, 45, .84), rgba(164, 18, 51, .62)),
        url("../img/lottery/opensource/6hecai/portal-ribbon-bg.png");
    background-position: center;
    background-size: cover;
}

.official-section .quick-nav {
    min-height: 72px;
}

.official-section .quick-nav a {
    display: flex;
    min-width: 0;
    min-height: 72px;
    flex-direction: column;
    gap: 2px;
    background: linear-gradient(#fff, #edf8ff);
    color: #074f83;
    text-align: center;
    transition: filter .15s ease;
}

.official-section .quick-nav a:hover {
    filter: brightness(.94);
}

.official-section .quick-nav img {
    width: 38px;
    height: 38px;
    padding: 3px;
    border: 1px solid #8bb9d7;
    border-radius: 50%;
    background: radial-gradient(circle, #fff 0 42%, #d8efff 43% 100%);
    object-fit: contain;
    box-shadow: 0 1px 3px rgba(0, 74, 126, .24);
}

.official-section .quick-nav span {
    font-weight: 900;
}

.source-number-poster {
    margin-top: 4px;
    overflow: hidden;
    border: 2px solid #0870b4;
    background: #fff;
}

.source-number-poster header {
    display: flex;
    min-height: 39px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    background: linear-gradient(90deg, #003c82, #0795d6 28%, #004f9d 50%, #0795d6 72%, #003c82);
    color: #fff;
    text-shadow: 1px 1px #002a59;
}

.source-number-poster header b {
    font-size: 18px;
}

.source-number-poster header span {
    color: #fff69c;
    font-size: 10px;
}

.source-number-poster a {
    display: block;
    padding: 7px;
    background: linear-gradient(#fff, #f4f4f4);
}

.source-number-poster img {
    display: block;
    width: 100%;
    height: 212px;
    object-fit: contain;
}

.resource-section {
    border-radius: 2px;
    background: #065ea8;
}

.resource-section .section-heading {
    min-height: 40px;
    border: 1px solid rgba(0, 0, 0, .26);
    border-radius: 1px;
    background: linear-gradient(90deg, #003f82, #168fd1 24%, #0566b3 50%, #168fd1 76%, #003f82);
    box-shadow: inset 0 1px rgba(255, 255, 255, .36), inset 0 -2px rgba(0, 0, 0, .18);
}

.resource-section--red .section-heading {
    background: linear-gradient(90deg, #9f0010, #f03844 24%, #c80b1d 50%, #f03844 76%, #9f0010);
}

.resource-section--green .section-heading {
    background: linear-gradient(90deg, #00622f, #1aab5b 24%, #087d3c 50%, #1aab5b 76%, #00622f);
}

.resource-section--orange .section-heading {
    background: linear-gradient(90deg, #a34300, #f09a19 24%, #c86607 50%, #f09a19 76%, #a34300);
}

.resource-section--purple .section-heading {
    background: linear-gradient(90deg, #65177e, #b43fbe 24%, #7d1f91 50%, #b43fbe 76%, #65177e);
}

.resource-section .section-heading h2 {
    color: #fff;
    font-size: 22px;
    letter-spacing: 1px;
    text-shadow: 1px 1px 0 rgba(0, 0, 0, .64);
}

.resource-section .section-heading > span {
    color: #fff9a8;
    text-shadow: 1px 1px rgba(0, 0, 0, .55);
}

.resource-section .resource-list > * {
    min-height: 36px;
    background: linear-gradient(90deg, #fff, #f8fbff);
}

.resource-section .resource-list > *:hover {
    background: #fff8b2;
}

.resource-section .resource-list i {
    min-width: 38px;
    padding: 2px 4px;
    border-radius: 2px;
    background: #e12230;
    color: #fff;
    font-size: 10px;
    text-align: center;
}

.resource-section--blue .resource-list i { background: #086eb6; }
.resource-section--green .resource-list i { background: #138245; }
.resource-section--orange .resource-list i { background: #d06a07; }
.resource-section--purple .resource-list i { background: #7c248f; }

.resource-section .resource-list em {
    padding: 1px 4px;
    border: 1px solid #e4a5aa;
    border-radius: 2px;
    background: #fff3f4;
}

.number-palette {
    gap: 4px;
    padding: 7px;
    background: linear-gradient(#f8f8f8, #e4e4e4);
}

.number-choice,
.number-choice--red,
.number-choice--blue,
.number-choice--green {
    position: relative;
    height: 43px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.number-choice img {
    display: block;
    width: 39px;
    height: 39px;
    margin: auto;
    object-fit: contain;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .28));
}

.number-choice > span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.number-choice.is-active {
    border-radius: 4px;
    outline: 3px solid #ffca0a;
    background: #fff6a7;
    box-shadow: 0 0 8px #ffca0a;
}

.gallery-grid > a,
.gallery-grid > span {
    background: linear-gradient(#fff, #f3f8fc);
}

.gallery-grid .gallery-symbol {
    width: 48px;
    height: 58px;
    padding: 7px;
    border: 1px solid #9ac3dd;
    border-radius: 5px;
    background: linear-gradient(135deg, #e7f7ff, #fff);
    object-fit: contain;
    box-shadow: inset 0 0 8px rgba(0, 98, 164, .15);
}

.info-links > div {
    min-height: 72px;
}

.info-links a {
    flex-direction: column;
    gap: 3px;
    background: linear-gradient(#fff, #eef8ff);
}

.info-links a img {
    width: 34px;
    height: 34px;
    padding: 3px;
    border: 1px solid #a3bfd1;
    border-radius: 50%;
    background: #fff;
}

.info-links a span {
    font-size: 11px;
}

.site-footer {
    min-height: 72px;
    border-top: 3px solid #ffd329;
    background:
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .05) 0 6px, transparent 6px 12px),
        linear-gradient(#0875bd, #003d78);
    text-shadow: 0 1px #002d59;
}

.site-footer b {
    color: #fff15a;
    font-size: 17px;
}

/* Raise the entire information hierarchy one readable size step. */
body {
    font-size: 16px;
    line-height: 1.45;
}

.compact-issue b { font-size: 16px; }
.compact-issue small { font-size: 10px; }
.compact-number b { font-size: 19px; }
.compact-number small { font-size: 11px; }
.compact-status { font-size: 12px; }
.refresh-cell { font-size: 10px; }
.portal-date-bar strong { font-size: 23px; }
.portal-date-bar span { font-size: 12px; }
.notice-kicker { font-size: 15px; }
.notice-grid span { font-size: 14px; }
.notice-viewport p { font-size: 13px; }
.portal-alert-ribbons b { font-size: 19px; }
.portal-alert-ribbons span { font-size: 14px; }
.draw-heading strong { font-size: 18px; }
.draw-heading span { font-size: 12px; }
.draw-date b { font-size: 14px; }
.draw-date span { font-size: 12px; }
.draw-footer { min-height: 32px; font-size: 12px; }

.shared-latest-draws { margin-top: 8px; }
.shared-latest-draws-list { display: grid; gap: 8px; padding: 8px; background: #e8edf1; border: 1px solid #b7c2ca; border-top: 0; }
.shared-latest-draws .lottery-panel { display: block; margin: 0; }
.shared-latest-draws .number-row.number-row--pending { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #777; background: #f2f4f5; }
.number-row--pending strong { color: #c22b31; font-size: 18px; }
.number-row--pending span { margin-top: 4px; font-size: 12px; }
.shared-latest-draws .draw-footer em { color: #777; font-style: normal; }
.official-section .quick-nav span { font-size: 15px; }
.table-link-grid > a,
.table-link-grid > span { min-height: 38px; }
.table-link-grid b { font-size: 15px; }
.table-link-grid i { font-size: 12px; }
.table-link-grid em { font-size: 12px; }
.history-row { min-height: 37px; }
.history-row b { font-size: 14px; }
.history-row span { font-size: 12px; }
.history-row strong { font-size: 13px; }
.resource-section .resource-list > * { min-height: 42px; }
.resource-section .resource-list i { font-size: 12px; }
.long-data-list > span { min-height: 40px; }
.long-data-list b,
.long-data-list em { font-size: 14px; }
.reference-tools button { font-size: 14px; }
.number-inspector span { font-size: 15px; }
.number-inspector em { font-size: 12px; }
.attribute-table h3 { height: 34px; font-size: 16px; }
.attribute-row { min-height: 40px; }
.attribute-row > b { font-size: 14px; }
.mini-number-list i { font-size: 12px; }
.zodiac-number-grid button { min-height: 49px; }
.zodiac-number-grid button b { font-size: 16px; }
.zodiac-number-grid button span { font-size: 12px; }
.zodiac-attribute-grid span { min-height: 36px; font-size: 13px; }
.element-number-row > b { font-weight: 900; }
.attribute-table .element-number-row--metal > b { color: #d69a00; }
.attribute-table .element-number-row--wood > b { color: #138334; }
.attribute-table .element-number-row--water > b { color: #0875ba; }
.attribute-table .element-number-row--fire > b { color: #e5303c; }
.attribute-table .element-number-row--earth > b { color: #c47700; }
.element-number-list i { color: #fff; text-shadow: 0 1px rgba(0, 0, 0, .28); }
.element-number-list i.is-red { background: #e5303c; }
.element-number-list i.is-blue { background: #0875ba; }
.element-number-list i.is-green { background: #139049; }
.sum-number-list i { color: #fff; text-shadow: 0 1px rgba(0, 0, 0, .28); }
.sum-number-list i.is-red { background: #e5303c; }
.sum-number-list i.is-blue { background: #0875ba; }
.sum-number-list i.is-green { background: #139049; }
.zodiac-number-grid button span.zodiac-number-list {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px;
    padding: 3px;
}
.zodiac-number-list i {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 2px;
    color: #fff;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    line-height: 1;
    text-shadow: 0 1px rgba(0, 0, 0, .28);
}
.zodiac-number-list i.is-red { background: #e5303c; }
.zodiac-number-list i.is-blue { background: #0875ba; }
.zodiac-number-list i.is-green { background: #139049; }
.gallery-grid b { font-size: 14px; }
.gallery-grid small { font-size: 12px; }
.statistics-list span { min-height: 48px; }
.statistics-list span b { font-size: 14px; }
.statistics-list em { font-size: 20px; }
.info-links a span { font-size: 13px; }
.responsible-note { font-size: 12px; }
.site-footer span { font-size: 12px; }

@media (max-width: 560px) {
    body {
        font-size: 13px;
        line-height: 1.42;
    }

    .lottery-tab { gap: 5px; }

    .lottery-tab::before {
        width: 23px;
        height: 23px;
        flex-basis: 23px;
        font-size: 13px;
    }

    #current-clock { display: none; }

    .notice-strip {
        height: 151px;
    }

    .notice-strip::before,
    .notice-strip::after {
        display: none;
    }

    .notice-kicker {
        font-size: 13px;
    }

    .notice-strip > strong {
        font-size: 23px;
    }

    .notice-grid,
    .notice-viewport {
        width: calc(100% - 16px);
    }

    .notice-grid span {
        padding: 4px 3px;
        font-size: 11px;
    }

    .notice-viewport p {
        font-size: 11px;
    }

    .portal-alert-ribbons p {
        min-height: 34px;
        grid-template-columns: 96px minmax(0, 1fr) 38px;
    }

    .portal-alert-ribbons b {
        font-size: 14px;
    }

    .portal-alert-ribbons span {
        font-size: 10px;
        letter-spacing: 0;
    }

    .portal-alert-ribbons em {
        font-size: 8px;
    }

    .official-section .quick-nav,
    .official-section .quick-nav a {
        min-height: 61px;
    }

    .official-section .quick-nav img {
        width: 31px;
        height: 31px;
    }

    .official-section .quick-nav span {
        font-size: 11px;
    }

    .source-number-poster header b {
        font-size: 14px;
    }

    .source-number-poster img {
        height: 168px;
    }

    .resource-section .section-heading h2 {
        max-width: 88%;
        font-size: 18px;
    }

    .resource-section .resource-list > * {
        min-height: 40px;
    }

    .compact-issue b { font-size: 13px; }
    .compact-issue small { font-size: 8px; }
    .compact-number b { font-size: 14px; }
    .compact-number small { font-size: 8px; }
    .compact-status { font-size: 9px; }
    .portal-date-bar strong { font-size: 18px; }
    .portal-date-bar span { font-size: 10px; }
    .draw-heading strong { font-size: 15px; }
    .draw-heading span { font-size: 10px; }
    .draw-date b { font-size: 11px; }
    .draw-date span { font-size: 10px; }
    .number-item b { font-size: 22px; }
    .number-item small { font-size: 10px; }
    .draw-footer { font-size: 10px; }
    .table-link-grid > a,
    .table-link-grid > span { min-height: 36px; }
    .table-link-grid b { font-size: 13px; }
    .table-link-grid i,
    .table-link-grid em { font-size: 10px; }
    .history-row b { font-size: 12px; }
    .history-row span { font-size: 10px; }
    .history-row strong { font-size: 10px; }
    .long-data-list > span { min-height: 38px; }
    .long-data-list b,
    .long-data-list em { font-size: 12px; }
    .reference-tools button { font-size: 12px; }
    .number-inspector span { font-size: 13px; }
    .number-inspector em { font-size: 11px; }
    .attribute-table h3 { font-size: 15px; }
    .attribute-row > b { font-size: 12px; }
    .mini-number-list i { font-size: 10px; }
    .zodiac-number-grid button b { font-size: 15px; }
    .zodiac-number-grid button span { font-size: 11px; }
    .zodiac-number-list i { width: 21px; height: 21px; font-size: 9px; }
    .zodiac-attribute-grid span { font-size: 12px; }
    .gallery-grid b { font-size: 13px; }
    .gallery-grid small { font-size: 11px; }
    .statistics-list span b { font-size: 13px; }
    .info-links a span { font-size: 12px; }
    .responsible-note,
    .site-footer span { font-size: 11px; }

    .number-palette {
        gap: 2px;
        padding: 4px;
    }

    .number-choice,
    .number-choice--red,
    .number-choice--blue,
    .number-choice--green {
        height: 37px;
    }

    .number-choice img {
        width: 34px;
        height: 34px;
    }

    .gallery-grid .gallery-symbol {
        width: 34px;
        height: 42px;
        padding: 4px;
    }

    .info-links > div {
        min-height: 118px;
    }

    .info-links a {
        min-height: 58px;
    }

    .info-links a img {
        width: 28px;
        height: 28px;
    }
}

/* 0149-CHROME-010: shared normalized portal chrome. */
.portal-home-page .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}

.portal-home-page .portal-text-mark {
    display: inline-block;
    width: auto;
    color: transparent;
    background: linear-gradient(90deg, #f0212e 0 31%, #0875e5 31% 60%, #111 60%);
    background-clip: text;
    -webkit-background-clip: text;
    font-family: "Arial Black", Arial, sans-serif;
    font-size: 43px;
    font-style: italic;
    font-weight: 900;
    letter-spacing: -4px;
    -webkit-text-stroke: 1.4px #fff;
    text-shadow: 2px 2px 0 #2b4c79;
}

.portal-home-page .portal-logo--image {
    display: flex;
    width: 210px;
    height: 52px;
    align-items: center;
}

.portal-home-page .portal-logo--image img {
    display: block;
    max-width: 100%;
    max-height: 50px;
    object-fit: contain;
}

.portal-navigation {
    display: flex;
    min-height: 43px;
    align-items: stretch;
    overflow-x: auto;
    border: 1px solid #064f88;
    border-bottom-color: #d3a70a;
    background: linear-gradient(#087bc5, #004c8d);
    color: #fff;
    scrollbar-width: thin;
}

.portal-navigation a {
    display: flex;
    min-width: 92px;
    min-height: 41px;
    flex: 1 0 auto;
    align-items: center;
    justify-content: center;
    padding: 6px 10px;
    border-right: 1px solid rgba(255, 255, 255, .28);
    font-size: 15px;
    font-weight: 900;
    text-align: center;
    text-shadow: 0 1px #00375f;
}

.portal-navigation a:last-child { border-right: 0; }
.portal-navigation a:hover { background: rgba(255, 222, 38, .18); color: #fff46b; }

.portal-home-page [id] { scroll-margin-top: 194px; }

.portal-home-page .lottery-tab .lottery-emblem {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    border: 2px solid currentColor;
    border-radius: 50%;
    background: #fff;
    object-fit: contain;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
}

.portal-home-page .lottery-tab--has-emblem::before { display: none; }

.portal-footer {
    gap: 4px;
    padding: 12px 16px;
}

.portal-footer-text { color: #d9efff; }

.portal-footer-links {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 2px 0;
}

.portal-footer-links a {
    color: #fff7a8;
    font-size: 12px;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.portal-footer small { color: #cde6f7; font-size: 10px; }

@media (max-width: 560px) {
    .portal-home-page .portal-text-mark {
        font-size: 37px;
        letter-spacing: -4px;
    }

    .portal-home-page .portal-logo--image {
        width: 184px;
        height: 52px;
    }

    .portal-home-page .portal-logo--image img { max-height: 47px; }

    .portal-navigation {
        min-height: 39px;
    }

    .portal-navigation a {
        min-width: 0;
        min-height: 37px;
        flex: 1 1 0;
        padding: 5px 2px;
        font-size: 11px;
    }

    .portal-home-page [id] { scroll-margin-top: 184px; }

    .portal-home-page .lottery-tab {
        gap: 5px;
    }

    .portal-home-page .lottery-tab .lottery-emblem {
        width: 26px;
        height: 26px;
        flex-basis: 26px;
    }

    .portal-footer { padding: 11px 9px; }
    .portal-footer-links { gap: 3px 10px; }
    .portal-footer-links a { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
    .notice-viewport p.is-active { animation: none; }
}

.promo-banner--top.promo-banner--configured {
    background:
        radial-gradient(circle at 50% 42%, var(--promo-bg-end) 0, var(--promo-bg-end) 38%, var(--promo-bg-start) 100%);
}
.promo-banner--configured .promo-crown,
.promo-banner--configured .promo-copy strong {
    background: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
    color: var(--promo-headline-color);
    -webkit-text-fill-color: currentColor;
    -webkit-text-stroke: 0;
    text-shadow: 0 2px 0 rgba(0, 0, 0, .35);
}
.promo-banner--configured .promo-crown { color: var(--promo-mark-color); }
.promo-banner--configured .promo-copy small { color: var(--promo-kicker-color); }
.promo-banner--configured .promo-copy b { color: var(--promo-tagline-color); }
.promo-banner--configured .promo-badge { background: var(--promo-badge-bg); color: var(--promo-badge-color); }
.promo-banner--configured .promo-data i { background: var(--promo-number-bg); color: var(--promo-number-color); }

.promo-banner--bottom-configured {
    border-color: var(--bottom-border-color);
    background: linear-gradient(90deg, var(--bottom-bg-start), var(--bottom-bg-end));
    box-shadow: inset 0 0 28px rgba(0, 0, 0, .28);
}
.promo-banner--bottom-configured .ad-bottom-emblem {
    border-color: var(--bottom-border-color);
    background: var(--bottom-emblem-bg);
    color: var(--bottom-emblem-color);
    box-shadow: 0 0 12px var(--bottom-border-color);
}
.promo-banner--bottom-configured .ad-bottom-copy small { color: var(--bottom-kicker-color); }
.promo-banner--bottom-configured .ad-bottom-copy strong {
    color: var(--bottom-headline-color);
    text-shadow: 0 2px rgba(0, 0, 0, .62);
}
.promo-banner--bottom-configured .ad-bottom-code {
    color: var(--bottom-right-color);
    text-shadow: 2px 2px rgba(0, 0, 0, .62);
}

/* Large, bold and multicolour typography used by traditional data portals. */
body {
    font-family: Arial, "Microsoft YaHei", "PingFang SC", SimHei, sans-serif;
    font-size: 18px;
    font-weight: 600;
}

.section-heading h2 {
    font-family: Arial, "Microsoft YaHei", "PingFang SC", SimHei, sans-serif;
    font-size: 31px;
    font-weight: 900;
}

.featured-list.table-link-grid,
.resource-feed > .resource-section .resource-list,
.resource-feed > .resource-section:last-child:nth-child(odd) .resource-list,
.long-data-list,
.compact-lines {
    grid-template-columns: 1fr !important;
}

.featured-list > a,
.featured-list > span {
    min-height: 50px;
    padding: 6px 14px;
}

.featured-list b {
    font-size: 20px;
    font-weight: 900;
}

.featured-list em {
    padding: 2px 7px;
    font-size: 18px;
    font-weight: 900;
}

.featured-section--configured .featured-config-label {
    font-style: normal;
}

.featured-section--configured .featured-config-row {
    grid-template-columns: auto auto;
    justify-content: center;
    text-align: center;
}

.featured-section--configured .featured-config-row > b,
.featured-section--configured .featured-config-label,
.featured-section--configured .featured-config-row > em {
    color: inherit;
    font-size: 24px;
}

.featured-list > *:nth-child(4n + 1) b { color: #008328; }
.featured-list > *:nth-child(4n + 2) b { color: #710078; }
.featured-list > *:nth-child(4n + 3) b { color: #004bea; }
.featured-list > *:nth-child(4n) b { color: #e00016; }
.featured-list > *:nth-child(3n + 1) em { color: #f000a8; }
.featured-list > *:nth-child(3n + 2) em { background: #fff200; color: #e00016; }
.featured-list > *:nth-child(3n) em { color: #004bea; }

.resource-section .section-heading h2 {
    font-size: 27px;
}

.resource-section .resource-list > * {
    min-height: 52px;
    grid-template-columns: auto auto auto;
    justify-content: center;
    gap: 8px;
    padding: 7px 12px;
    border-right: 0 !important;
    background: #fff;
}

.resource-section .resource-list i {
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 19px;
    font-weight: 900;
}

.resource-section .resource-list b {
    color: #333;
    font-size: 21px;
    font-weight: 900;
    letter-spacing: -.5px;
}

.resource-section .resource-list em {
    padding: 1px 5px;
    border: 0;
    background: transparent;
    font-size: 18px;
    font-weight: 900;
}

.resource-section .resource-list > *:nth-child(6n + 1) i { color: #710078; }
.resource-section .resource-list > *:nth-child(6n + 1) b { color: #14954d; }
.resource-section .resource-list > *:nth-child(6n + 1) em { color: #e000b6; }
.resource-section .resource-list > *:nth-child(6n + 2) i { color: #008328; }
.resource-section .resource-list > *:nth-child(6n + 2) b { color: #e00016; }
.resource-section .resource-list > *:nth-child(6n + 2) em { background: #fff200; color: #004bea; }
.resource-section .resource-list > *:nth-child(6n + 3) i { color: #004bea; }
.resource-section .resource-list > *:nth-child(6n + 3) b { color: #710078; }
.resource-section .resource-list > *:nth-child(6n + 3) em { color: #f000a8; }
.resource-section .resource-list > *:nth-child(6n + 4) i { color: #e00016; }
.resource-section .resource-list > *:nth-child(6n + 4) b { color: #008328; }
.resource-section .resource-list > *:nth-child(6n + 4) em { background: #fff200; color: #e00016; }
.resource-section .resource-list > *:nth-child(6n + 5) i { color: #710078; }
.resource-section .resource-list > *:nth-child(6n + 5) b { color: #004bea; }
.resource-section .resource-list > *:nth-child(6n + 5) em { color: #008328; }
.resource-section .resource-list > *:nth-child(6n) i { color: #008328; }
.resource-section .resource-list > *:nth-child(6n) b { color: #e00016; }
.resource-section .resource-list > *:nth-child(6n) em { color: #710078; }

.page-block--resource_section {
    border-color: var(--resource-border, #e00016);
    background: var(--resource-bg, #fff);
}

.page-block--resource_section > .section-heading {
    border-color: var(--resource-border, #e00016);
    background: var(--resource-header, #eaf7ff);
}

.page-block--resource_section > .section-heading h2 { color: var(--resource-title, #111); }
.page-block--resource_section > .section-heading > span { color: var(--resource-subtitle, #e00016); }

.resource-config-list { grid-template-columns: 1fr !important; }
.resource-config-row {
    min-height: 52px;
    display: grid;
    grid-template-columns: auto auto auto;
    justify-content: center;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-bottom: 1px solid #ddd;
}
.resource-config-list > .resource-config-row {
    grid-template-columns: auto auto auto;
    justify-content: center;
    text-align: center;
}
.resource-config-row:last-child { border-bottom: 0; }
.resource-config-row i,
.resource-config-row b,
.resource-config-row em { font-style: normal; font-weight: 900; }
.resource-config-row i { font-size: 19px; }
.resource-config-row b { font-size: 21px; }
.resource-config-row em { padding: 1px 5px; font-size: 18px; }

.resource-richtext {
    width: 100%;
    overflow-x: auto;
    background: #fff;
    color: #222;
    font-size: 20px;
    line-height: 1.35;
    -webkit-overflow-scrolling: touch;
}
.resource-richtext > :first-child { margin-top: 0; }
.resource-richtext > :last-child { margin-bottom: 0; }
.resource-richtext p,
.resource-richtext div,
.resource-richtext h1,
.resource-richtext h2,
.resource-richtext h3,
.resource-richtext h4,
.resource-richtext h5,
.resource-richtext h6 { margin: 0; }
.resource-richtext a { color: inherit; }
.resource-richtext table {
    width: 100%;
    max-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: auto;
    background: #fff;
}
.resource-richtext caption { padding: 5px 8px; font-weight: 900; text-align: center; }
.resource-richtext th,
.resource-richtext td {
    min-width: 0;
    padding: 5px 7px;
    border-right: 1px solid #bbb;
    border-bottom: 1px solid #bbb;
    vertical-align: middle;
    overflow-wrap: anywhere;
}
.resource-richtext tr > :last-child { border-right: 0; }
.resource-richtext tr:last-child > th,
.resource-richtext tr:last-child > td { border-bottom: 0; }
.resource-richtext thead:last-child tr:last-child > th,
.resource-richtext thead:last-child tr:last-child > td,
.resource-richtext tbody:last-child tr:last-child > th,
.resource-richtext tbody:last-child tr:last-child > td,
.resource-richtext tfoot:last-child tr:last-child > th,
.resource-richtext tfoot:last-child tr:last-child > td { border-bottom: 0; }

.featured-section--macau-richtext {
    overflow: hidden;
    padding: 0;
    border: 2px solid #1689ff;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(7, 89, 184, .12);
}

.resource-richtext--macau-featured {
    overflow: hidden;
    background: #fff;
}

.resource-richtext--macau-featured table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
}

.resource-richtext--macau-featured thead th {
    padding: 11px 12px;
    border: 0;
    background: linear-gradient(135deg, #0759b8 0%, #1689ff 54%, #62b9ff 100%);
    color: #fff;
    font-size: 24px;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    overflow-wrap: anywhere;
}

.resource-richtext--macau-featured tbody td {
    padding: 8px 10px;
    border-right: 1px solid #b7cde0;
    border-bottom: 1px solid #b7cde0;
    background: #fff;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.resource-richtext--macau-featured tbody tr:nth-child(even) > td {
    background-color: #f4f9ff;
}

.resource-richtext--macau-featured tbody tr:last-child > td {
    border-bottom: 0;
}

.resource-richtext--macau-featured tbody tr > td:last-child {
    border-right: 0;
}

@media (max-width: 520px) {
    .resource-config-row { min-height: 58px; gap: 5px; padding: 7px 5px; }
    .resource-config-row i { font-size: 18px; }
    .resource-config-row b { font-size: 19px; }
    .resource-config-row em { font-size: 17px; }
    .resource-richtext { font-size: 15px; }
    .resource-richtext th,
    .resource-richtext td { padding: 3px 4px; }
    .featured-section--macau-richtext { border-radius: 8px; }
    .resource-richtext--macau-featured thead th { padding: 9px 7px; font-size: 20px; }
    .resource-richtext--macau-featured tbody td { padding: 6px 5px; }
}

.history-row {
    min-height: 86px;
    grid-template-columns: 1fr auto;
    align-content: center;
}

.history-row > b {
    color: #008328;
    font-size: 20px;
    font-weight: 900;
}

.history-row > span {
    border-right: 0;
    color: #710078;
    font-size: 17px;
    font-weight: 900;
}

.history-row > strong {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
    grid-column: 1 / -1;
    padding: 5px 8px;
    border-top: 1px solid #ccc;
    color: #e00016;
    font-size: 21px;
    font-weight: 900;
}

.history-number {
    margin: 0 2px;
    color: #e00016 !important;
    font-style: normal;
}

.history-number:nth-of-type(3n + 2) { color: #004bea !important; }
.history-number:nth-of-type(3n) { color: #008328 !important; }
.history-plus { margin: 0 5px; color: #333 !important; font-style: normal; }
.history-number.is-special {
    padding: 0 4px;
    background: #fff200;
    color: #e00016 !important;
}

.long-data-list > span {
    min-height: 52px;
    grid-template-columns: 120px minmax(0, 1fr);
    border-right: 0;
}

.long-data-list b {
    color: #710078;
    font-size: 19px;
    font-weight: 900;
}

.long-data-list em {
    color: #e00016;
    font-size: 18px;
    font-weight: 900;
}

.long-data-list > span:nth-child(3n + 2) b { color: #008328; }
.long-data-list > span:nth-child(3n + 2) em { color: #004bea; }
.long-data-list > span:nth-child(3n) b { background: #fff200; color: #e00016; }
.long-data-list > span:nth-child(3n) em { color: #710078; }

.reference-tools button { font-size: 17px; font-weight: 900; }
.number-inspector span { color: #333; font-size: 18px; font-weight: 900; }
.number-inspector em { color: #e000b6; font-size: 15px; font-weight: 900; }
.attribute-table h3 { height: 42px; color: #111; font-size: 21px; font-weight: 900; text-align: center; }
.attribute-row { min-height: 48px; }
.attribute-row > b { color: #710078; font-size: 18px; font-weight: 900; }
.mini-number-list i { width: 31px; height: 30px; font-size: 14px; }
.zodiac-number-grid button b { font-size: 18px; }
.zodiac-number-grid button span { color: #004bea; font-size: 14px; font-weight: 900; }
.zodiac-attribute-grid span { min-height: 43px; color: #333; font-size: 16px; font-weight: 800; }
.zodiac-attribute-grid b { color: #e00016; font-size: 17px; }

.gallery-grid b { color: #710078; font-size: 17px; font-weight: 900; }
.gallery-grid small { color: #e00016; font-size: 15px; font-weight: 900; }
.statistics-list span b { color: #333; font-size: 17px; font-weight: 900; }
.statistics-list span:nth-child(4n + 1) b { color: #e00016; }
.statistics-list span:nth-child(4n + 2) b { color: #004bea; }
.statistics-list span:nth-child(4n + 3) b { color: #008328; }
.statistics-list span:nth-child(4n) b { color: #710078; }
.statistics-list em { font-size: 23px; }
.info-links a span { font-size: 16px; font-weight: 900; }
.info-links a:nth-child(3n + 1) span { color: #e00016; }
.info-links a:nth-child(3n + 2) span { color: #004bea; }
.info-links a:nth-child(3n) span { color: #008328; }

@media (max-width: 560px) {
    body { font-size: 15px; }
    .portal-date-bar strong { font-size: 20px; }
    .notice-kicker { font-size: 14px; }
    .notice-grid span { font-size: 12px; }
    .portal-alert-ribbons b { font-size: 15px; }
    .portal-alert-ribbons span { font-size: 11px; }
    .draw-heading strong { font-size: 17px; }
    .draw-heading span { font-size: 11px; }
    .draw-footer { font-size: 11px; }
    .section-heading h2 { font-size: 23px; }
    .featured-list > a,
    .featured-list > span { min-height: 47px; padding: 5px 8px; }
    .featured-list b { font-size: 17px; }
    .featured-list em { font-size: 15px; }
    .resource-section .section-heading h2 { font-size: 21px; }
    .resource-section .resource-list > * {
        min-height: 48px;
        grid-template-columns: auto minmax(0, 1fr) auto;
        justify-content: stretch;
        gap: 5px;
        padding: 6px 5px;
    }
    .resource-section .resource-list i { font-size: 16px; }
    .resource-section .resource-list b { font-size: 17px; }
    .resource-section .resource-list em { font-size: 15px; }
    .history-row { min-height: 84px; }
    .history-row > b { font-size: 17px; }
    .history-row > span { font-size: 14px; }
    .history-row > strong { overflow: hidden; font-size: 17px; letter-spacing: -1px; }
    .history-number { margin: 0 1px; }
    .history-plus { margin: 0 2px; }
    .long-data-list > span { min-height: 48px; grid-template-columns: 82px minmax(0, 1fr); }
    .long-data-list b { font-size: 16px; }
    .long-data-list em { font-size: 15px; }
    .reference-tools button { font-size: 14px; }
    .number-inspector span { font-size: 15px; }
    .number-inspector em { font-size: 13px; }
    .attribute-table h3 { height: 39px; font-size: 18px; }
    .attribute-row > b { font-size: 15px; }
    .zodiac-number-grid button b { font-size: 16px; }
    .zodiac-number-grid button span { font-size: 12px; }
    .zodiac-attribute-grid span { font-size: 14px; }
    .gallery-grid b { font-size: 15px; }
    .gallery-grid small { font-size: 13px; }
    .statistics-list span b { font-size: 15px; }
    .statistics-list em { font-size: 20px; }
    .info-links a span { font-size: 14px; }
}

/* Final reference-sized type scale. */
.featured-list > a,
.featured-list > span { min-height: 56px; }
.featured-list b { font-size: 22px; }
.featured-list em { font-size: 20px; }
.resource-section .resource-list > * { min-height: 58px; }
.resource-section .resource-list i { font-size: 21px; }
.resource-section .resource-list b { font-size: 23px; }
.resource-section .resource-list em { font-size: 20px; }
.history-row { min-height: 92px; }
.history-row > b { font-size: 22px; }
.history-row > span { font-size: 18px; }
.history-row > strong { font-size: 23px; }
.long-data-list > span { min-height: 58px; }
.long-data-list b { font-size: 21px; }
.long-data-list em { font-size: 20px; }
.draw-heading strong { font-size: 20px; }
.draw-heading span { font-size: 14px; }
.draw-footer { font-size: 14px; }
.official-section .quick-nav span { font-size: 17px; }
.official-section .quick-nav a:nth-child(5n + 1) span { color: #e00016; }
.official-section .quick-nav a:nth-child(5n + 2) span { color: #008328; }
.official-section .quick-nav a:nth-child(5n + 3) span { color: #710078; }
.official-section .quick-nav a:nth-child(5n + 4) span { color: #004bea; }
.official-section .quick-nav a:nth-child(5n) span { color: #d05c00; }
.attribute-row > b { font-size: 19px; }
.zodiac-attribute-grid span { font-size: 17px; }
.zodiac-attribute-grid b { font-size: 18px; }

@media (max-width: 560px) {
    .featured-list > a,
    .featured-list > span { min-height: 51px; }
    .featured-list b { font-size: 18px; }
    .featured-list em { font-size: 16px; }
    .resource-section .resource-list > * { min-height: 52px; }
    .resource-section .resource-list i { font-size: 17px; }
    .resource-section .resource-list b { font-size: 18px; }
    .resource-section .resource-list em { font-size: 16px; }
    .history-row > b { font-size: 18px; }
    .history-row > span { font-size: 15px; }
    .history-row > strong { font-size: 18px; }
    .long-data-list b { font-size: 17px; }
    .long-data-list em { font-size: 16px; }
    .draw-heading strong { font-size: 18px; }
    .draw-heading span { font-size: 12px; }
    .draw-footer { font-size: 12px; }
    .official-section .quick-nav span { font-size: 12px; }
    .attribute-row > b { font-size: 16px; }
    .zodiac-attribute-grid span { font-size: 15px; }
    .zodiac-attribute-grid b { font-size: 16px; }
}

/* Glossy title gradients matching the supplied blue-to-white reference. */
.content-section .section-heading {
    min-height: 50px;
    height: 50px;
    border: 2px solid #258fe9;
    border-radius: 6px 6px 0 0;
    background: linear-gradient(180deg, #3c99ee 0%, #83bff4 18%, #cfe8fb 48%, #f7fcff 82%, #ffffff 100%);
    box-shadow:
        inset 0 2px 0 rgba(255, 255, 255, .72),
        inset 0 -3px 0 rgba(42, 132, 211, .16),
        0 1px 2px rgba(0, 73, 132, .22);
}

.content-section .section-heading h2 {
    position: relative;
    z-index: 1;
    color: #111;
    text-shadow: 1px 1px 0 #fff, 0 0 4px rgba(255, 255, 255, .72);
}

.content-section .section-heading > span {
    z-index: 1;
    color: #075da0;
    font-weight: 900;
    text-shadow: 1px 1px #fff;
}

.resource-section .section-heading {
    min-height: 52px;
    height: 52px;
    border-color: #258fe9;
    background: linear-gradient(180deg, #318fe7 0%, #9acbf3 22%, #ddecf9 54%, #ffffff 100%);
}

.resource-section--red .section-heading {
    border-color: #e12635;
    background: linear-gradient(180deg, #f23a49 0%, #f69aa2 22%, #fbd9dc 55%, #ffffff 100%);
}

.resource-section--green .section-heading {
    border-color: #0b9b4b;
    background: linear-gradient(180deg, #16a85a 0%, #82d4a8 22%, #d3f0e0 55%, #ffffff 100%);
}

.resource-section--orange .section-heading {
    border-color: #e47709;
    background: linear-gradient(180deg, #ef891d 0%, #f5bd76 22%, #fbe7ca 55%, #ffffff 100%);
}

.resource-section--purple .section-heading {
    border-color: #8a2ba0;
    background: linear-gradient(180deg, #a13bb3 0%, #cf97d8 22%, #eedcf2 55%, #ffffff 100%);
}

.resource-section .section-heading h2 {
    color: #111;
    text-shadow: 1px 1px 0 #fff, 0 0 5px rgba(255, 255, 255, .9);
}

.resource-section--red .section-heading > span { color: #a30010; }
.resource-section--green .section-heading > span { color: #00692f; }
.resource-section--orange .section-heading > span { color: #9b4400; }
.resource-section--purple .section-heading > span { color: #621376; }

.attribute-table h3 {
    height: 46px;
    padding: 8px;
    border: 2px solid #258fe9;
    background: linear-gradient(180deg, #409bec 0%, #a7d1f4 25%, #e7f4fd 62%, #ffffff 100%);
    box-shadow: inset 0 2px 0 rgba(255, 255, 255, .7), inset 0 -2px rgba(30, 115, 189, .14);
    color: #111;
    text-shadow: 1px 1px #fff;
}

.draw-heading {
    min-height: 39px;
    height: 39px;
    border-bottom: 2px solid #258fe9;
    background: linear-gradient(180deg, #4aa2ed 0%, #acd5f6 28%, #edf8ff 70%, #ffffff 100%);
    box-shadow: inset 0 1px #fff;
}

.lottery-panel--hongkong .draw-heading {
    border-bottom-color: #df2635;
    background: linear-gradient(180deg, #f04a57 0%, #f8b2b7 28%, #fff0f1 70%, #ffffff 100%);
}

.source-number-poster header {
    min-height: 48px;
    border-bottom: 2px solid #258fe9;
    background: linear-gradient(180deg, #348fdf 0%, #99c9f1 25%, #e5f3fd 65%, #ffffff 100%);
    color: #111;
    text-shadow: 1px 1px #fff;
}

.source-number-poster header span {
    color: #075da0;
}

.portal-slogan {
    background: linear-gradient(180deg, #56a9ef 0%, #b7dcf7 30%, #eef9ff 70%, #ffffff 100%);
    box-shadow: inset 0 2px #fff, inset 0 -3px rgba(15, 105, 180, .18);
}

@media (max-width: 560px) {
    .content-section .section-heading,
    .resource-section .section-heading {
        min-height: 45px;
        height: 45px;
        border-width: 2px;
    }
    .attribute-table h3 { height: 42px; padding: 6px; }
    .draw-heading { min-height: 36px; height: 36px; }
    .source-number-poster header { min-height: 44px; }
}

/* 0149-FE-002: first high-fidelity visual batch.
 * The approved reference is a dense, oversized Chinese data portal.  These
 * overrides keep every existing ThinkPHP field and interaction intact while
 * strengthening scale, colour, depth and the long-page rhythm.
 */
:root {
    --portal-blue: #006fc5;
    --portal-blue-bright: #23a9f4;
    --portal-blue-dark: #003f84;
    --portal-red: #ec1730;
    --portal-red-dark: #a90016;
    --portal-green: #0f9a4e;
    --portal-purple: #7b168d;
    --portal-yellow: #fff238;
    --portal-gold: #ffd11a;
    --portal-line: #9eb4c5;
}

body {
    background-color: #bdc6ce;
    background-image:
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0) 520px),
        linear-gradient(90deg, rgba(255, 255, 255, .3) 1px, transparent 1px),
        linear-gradient(rgba(255, 255, 255, .22) 1px, transparent 1px),
        linear-gradient(135deg, #c9d1d8, #aeb9c2);
    background-size: auto, 20px 20px, 20px 20px, auto;
    color: #171717;
    font-family: Arial, "Microsoft YaHei", "PingFang SC", SimHei, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.48;
}

.site-shell {
    border-right: 2px solid #718aa0;
    border-left: 2px solid #718aa0;
    box-shadow: 0 0 0 1px rgba(255,255,255,.82), 0 0 34px rgba(17, 42, 64, .4);
}

.sticky-masthead {
    border-bottom: 3px solid #fff;
    box-shadow: 0 4px 12px rgba(0, 41, 84, .34);
}

.site-header {
    height: 68px;
    padding: 0 12px;
    border: 2px solid #004d99;
    border-bottom: 0;
    background:
        linear-gradient(115deg, transparent 0 43%, rgba(255,255,255,.22) 44% 52%, transparent 53%),
        linear-gradient(180deg, #7ac4ff 0%, #35a0f0 26%, #0875cd 58%, #004e9c 100%);
    box-shadow: inset 0 2px rgba(255,255,255,.86), inset 0 -5px rgba(0,44,105,.26);
}

.site-header::before {
    position: absolute;
    inset: 5px 8px auto 8px;
    height: 1px;
    background: rgba(255,255,255,.68);
    content: "";
}

.brand {
    width: 250px;
    height: 66px;
}

.brand-logo b {
    font-size: 55px;
    -webkit-text-stroke: 2px #fff;
    text-shadow: 3px 3px 0 #194a85, 0 0 8px rgba(255,255,255,.55);
}

.brand-logo i {
    margin-left: 7px;
    font-size: 31px;
    -webkit-text-stroke: 1.3px #fff;
    text-shadow: 2px 2px 0 #fff;
}

.brand-motto {
    position: relative;
    z-index: 2;
    display: flex;
    min-width: 230px;
    align-items: center;
    padding: 5px 14px;
    border-right: 1px solid rgba(255,255,255,.45);
    border-left: 1px solid rgba(0,50,110,.24);
    color: #eaf7ff;
    text-align: center;
    text-shadow: 0 1px #003f7c;
}

.brand-motto strong {
    color: #fff33d;
    font-size: 19px;
    letter-spacing: 3px;
}

.brand-motto small {
    margin-top: 2px;
    font-size: 10px;
    font-weight: 800;
}

.brand-seal {
    z-index: 2;
    width: 80px;
    height: 50px;
    flex: 0 0 80px;
    border-width: 3px;
    background: radial-gradient(circle, #fff 0 48%, #fff7bd 49% 100%);
    font-size: 21px;
    box-shadow: inset 0 0 0 3px #fff, 0 0 0 1px #9c0712, 0 2px 8px rgba(0,0,0,.28);
}

.lottery-tabs {
    height: 56px;
    gap: 10px;
    padding: 5px 8px;
    border: 2px solid #607f97;
    background: linear-gradient(#f7fbfe, #cdd8e0);
}

.lottery-tab {
    border-width: 3px;
    border-radius: 28px;
    box-shadow: inset 0 2px #fff, inset 0 -4px rgba(0,0,0,.14), 0 0 0 1px #3a5266, 0 2px 5px rgba(0,0,0,.2);
}

.lottery-tab::before {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
}

.lottery-tab strong { font-size: 26px; }
.lottery-tab small { font-size: 11px; font-weight: 900; }

.compact-results { height: 60px; }
.compact-result-panel {
    height: 59px;
    grid-template-columns: 94px minmax(0,1fr) 64px;
}

.compact-issue b { font-size: 18px; }
.compact-issue small { font-size: 11px; }
.compact-number-list { gap: 2px; padding: 3px; background: #9cadb9; }
.compact-number { border: 1px solid rgba(255,255,255,.55); }
.compact-number b { font-size: 22px; }
.compact-number small { font-size: 12px; }
.compact-status { font-size: 13px; }

main { padding-top: 4px; }

.portal-date-bar {
    height: 54px;
    border: 2px solid #003f84;
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.08) 0 8px, transparent 8px 16px),
        linear-gradient(180deg, #28a5ef, #0872c3 56%, #004f9a);
}

.portal-date-bar strong { font-size: 27px; letter-spacing: 2px; }
.portal-date-bar span { font-size: 13px; }
#current-clock { right: 10px; bottom: 4px; font-size: 10px; }

.notice-strip {
    height: 194px;
    gap: 7px;
    border: 3px solid #e4ad00;
    background:
        radial-gradient(circle at 18px 18px, rgba(255,255,255,.9) 0 2px, transparent 3px),
        repeating-linear-gradient(135deg, rgba(255,255,255,.14) 0 8px, transparent 8px 16px),
        linear-gradient(135deg, #fff9a8, #ffe43f 50%, #fff292);
    background-size: 30px 30px, auto, auto;
    box-shadow: inset 0 0 32px rgba(219,151,0,.25), inset 0 2px #fff, 0 2px 5px rgba(91,65,0,.2);
}

.notice-strip::before,
.notice-strip::after {
    top: 12px;
    bottom: 12px;
    width: 52px;
    border: 3px double rgba(195,17,34,.55);
    font-size: 17px;
}

.notice-kicker { font-size: 17px; letter-spacing: 3px; }
.notice-strip > strong { font-size: 35px; }
.notice-grid { width: min(548px, calc(100% - 140px)); border-width: 2px; }
.notice-grid span { padding: 7px 9px; font-size: 15px; }
.notice-viewport { width: min(548px, calc(100% - 140px)); height: 29px; border-width: 2px; }
.notice-viewport p { font-size: 14px; }

.portal-alert-ribbons { gap: 4px; margin-top: 5px; }
.portal-alert-ribbons p {
    min-height: 46px;
    grid-template-columns: 188px minmax(0,1fr) 58px;
    border-width: 3px;
    box-shadow: inset 0 1px rgba(255,255,255,.5), inset 0 -4px rgba(80,0,0,.18);
}
.portal-alert-ribbons b { font-size: 21px; }
.portal-alert-ribbons span { font-size: 15px; }
.portal-alert-ribbons em { font-size: 12px; }

.promo-stack--top { height: 266px; }
.promo-stack--top > .promo-banner { height: 262px; }
.promo-banner {
    border-width: 3px;
    background:
        radial-gradient(ellipse at 50% 45%, rgba(60,255,134,.42), transparent 42%),
        repeating-linear-gradient(120deg, rgba(255,255,255,.05) 0 2px, transparent 2px 22px),
        linear-gradient(135deg, #004626, #08a34c 48%, #00401f);
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.35), inset 0 0 56px #002d18, 0 2px 7px rgba(0,0,0,.3);
}
.promo-crown { top: 14px; font-size: 49px; }
.promo-copy small { font-size: 19px; }
.promo-copy strong { font-size: 49px; }
.promo-copy b { font-size: 18px; }
.promo-badge { width: 76px; height: 76px; font-size: 18px; }

.portal-slogan {
    height: 49px;
    border: 3px solid #0871b5;
    background: linear-gradient(180deg, #4ca8ef 0, #d8efff 42%, #fff 76%);
}
.portal-slogan strong { font-size: 28px; }

.lottery-panel { border-width: 3px; box-shadow: 0 2px 5px rgba(0,64,118,.22); }
.draw-heading { min-height: 46px; height: 46px; padding: 0 11px; border-bottom-width: 2px; }
.draw-heading strong { font-size: 23px; }
.draw-heading span { font-size: 15px; }
.draw-body { min-height: 94px; grid-template-columns: 116px minmax(0,1fr); }
.draw-date b { font-size: 15px; }
.draw-date span { font-size: 13px; }
.number-row { gap: 3px; padding: 8px 6px; background: linear-gradient(#e5ebef,#bcc8d0); }
.number-item {
    height: 73px;
    border: 3px solid rgba(255,255,255,.95);
    border-radius: 50%;
    box-shadow: inset 0 3px rgba(255,255,255,.5), inset 0 -12px rgba(0,0,0,.13), 0 2px 4px rgba(0,0,0,.28);
}
.number-item b { font-size: 34px; }
.number-item small { font-size: 14px; }
.number-item.is-special { outline: 4px solid var(--portal-gold); outline-offset: -1px; }
.number-plus { background: transparent; font-size: 28px; }
.draw-footer { min-height: 39px; padding: 5px 9px; font-size: 15px; }
.countdown b { min-width: 24px; padding: 2px 4px; font-size: 14px; }

.content-section,
.source-number-poster {
    margin-top: 6px;
    border-radius: 7px 7px 2px 2px;
    box-shadow: 0 2px 5px rgba(0,55,104,.2);
}
.content-section .section-heading,
.resource-section .section-heading {
    min-height: 56px;
    height: 56px;
    border-width: 3px;
    background:
        linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,.65), rgba(255,255,255,.05)),
        linear-gradient(180deg, #2798ed 0, #9ed0f7 24%, #e5f4ff 63%, #fff 100%);
}
.content-section .section-heading h2 { font-size: 32px; letter-spacing: 1px; }
.content-section .section-heading > span { right: 12px; font-size: 13px; }
.resource-section .section-heading h2 { font-size: 29px; }

.official-section .quick-nav,
.official-section .quick-nav a { min-height: 82px; }
.official-section .quick-nav img { width: 43px; height: 43px; }
.official-section .quick-nav span { font-size: 18px; }

.promo-stack--mid,
.promo-stack--bottom { height: 132px; margin-top: 6px; }
.promo-banner--mid,
.promo-banner--bottom { height: 128px; padding: 13px 22px; }
.ad-tech-mark { font-size: 44px; }
.ad-tech-copy strong,
.ad-bottom-copy strong { font-size: 29px; }
.ad-tech-copy small,
.ad-bottom-copy small { font-size: 15px; }
.ad-tech-grid i { width: 62px; height: 49px; font-size: 12px; }
.ad-bottom-code { font-size: 33px; }

.featured-list > a,
.featured-list > span { min-height: 62px; padding: 8px 16px; }
.featured-list b { font-size: 24px; }
.featured-list em { font-size: 21px; }

.resource-section .resource-list > * { min-height: 64px; padding: 9px 14px; }
.resource-section .resource-list i { font-size: 22px; }
.resource-section .resource-list b { font-size: 25px; }
.resource-section .resource-list em { font-size: 21px; }

.history-row { min-height: 100px; }
.history-row > b { font-size: 23px; }
.history-row > span { font-size: 19px; }
.history-row > strong { font-size: 25px; }

.source-number-poster header { min-height: 56px; }
.source-number-poster header b { font-size: 22px; }
.source-number-poster header span { font-size: 12px; }
.source-number-poster img { height: 236px; }

.long-data-list > span { min-height: 64px; grid-template-columns: 132px minmax(0,1fr); }
.long-data-list b { font-size: 22px; }
.long-data-list em { font-size: 21px; }

.reference-tools { gap: 4px; padding: 5px; }
.reference-tools button { min-height: 43px; font-size: 18px; }
.number-inspector { min-height: 62px; grid-template-columns: 62px minmax(0,1fr) auto; }
.number-inspector > strong { height: 54px; border-radius: 50%; font-size: 27px; }
.number-inspector span { font-size: 20px; }
.number-inspector em { font-size: 16px; }
.number-palette { gap: 4px; padding: 7px; background: linear-gradient(#d8e7f2,#aebfcb); }
.number-choice { height: 49px; border-radius: 4px; font-size: 15px; }
.number-choice img { width: 45px; height: 45px; }
.attribute-table h3 { height: 52px; padding: 10px; font-size: 23px; }
.attribute-row { min-height: 55px; grid-template-columns: 95px minmax(0,1fr); }
.attribute-row > b { font-size: 20px; }
.mini-number-list i { width: 34px; height: 33px; font-size: 15px; }
.zodiac-number-grid button { min-height: 60px; }
.zodiac-number-grid button b { font-size: 20px; }
.zodiac-number-grid button span { font-size: 15px; }
.zodiac-attribute-grid span { min-height: 49px; font-size: 18px; }
.zodiac-attribute-grid b { font-size: 19px; }

.gallery-grid > a,
.gallery-grid > span { min-height: 88px; background: linear-gradient(#fff,#eef7fd); }
.gallery-grid b { font-size: 18px; }
.gallery-grid small { font-size: 16px; }
.statistics-list span { min-height: 62px; background: linear-gradient(#fff,#eef7fd); }
.statistics-list span b { font-size: 18px; }
.statistics-list em { font-size: 26px; }
.info-links a { min-height: 68px; background: linear-gradient(#fff,#edf7fd); }
.info-links a span { font-size: 17px; }
.info-links a img { width: 34px; height: 34px; }
.responsible-note { padding: 10px; font-size: 14px; }
.site-footer { min-height: 88px; }
.site-footer b { font-size: 21px; }
.site-footer span { font-size: 14px; }

@media (max-width: 560px) {
    html { scroll-padding-top: 174px; }
    body { font-size: 16px; line-height: 1.46; }
    .site-header { height: 61px; padding: 0 5px; }
    .site-header .brand { width: 205px; height: 59px; }
    .site-header .brand-logo b { font-size: 50px; }
    .site-header .brand-logo i { font-size: 27px; }
    .brand-motto { display: none; }
    .site-header .brand-seal { width: 55px; height: 39px; flex-basis: 55px; font-size: 16px; }
    .lottery-tabs { height: 49px; gap: 5px; padding: 4px; }
    .lottery-tab { gap: 5px; border-width: 2px; }
    .lottery-tab::before { width: 27px; height: 27px; flex-basis: 27px; }
    .lottery-tab strong { font-size: 20px; }
    .lottery-tab small { font-size: 8px; }
    .compact-results { height: 54px; }
    .compact-result-panel { height: 53px; grid-template-columns: 61px minmax(0,1fr) 43px; }
    .compact-number-list { grid-template-columns: repeat(6,1fr) 14px 1fr; gap: 1px; padding: 2px; }
    .compact-issue b { font-size: 14px; }
    .compact-issue small { font-size: 8px; }
    .compact-number b { font-size: 15px; }
    .compact-number small { font-size: 8px; }
    .compact-status { font-size: 9px; }
    .portal-date-bar { height: 49px; }
    .portal-date-bar strong { font-size: 21px; }
    .portal-date-bar span { font-size: 10px; }
    .notice-strip { height: 174px; gap: 5px; }
    .notice-kicker { font-size: 15px; }
    .notice-strip > strong { font-size: 26px; }
    .notice-grid,
    .notice-viewport { width: calc(100% - 14px); }
    .notice-grid span { padding: 5px 2px; font-size: 12px; }
    .notice-viewport p { font-size: 12px; }
    .portal-alert-ribbons p { min-height: 40px; grid-template-columns: 110px minmax(0,1fr) 40px; border-width: 2px; }
    .portal-alert-ribbons b { font-size: 16px; }
    .portal-alert-ribbons span { font-size: 11px; }
    .promo-stack.promo-stack--top { height: 142px; }
    .promo-stack.promo-stack--top > .promo-banner { height: 138px; }
    .promo-crown { font-size: 30px; }
    .promo-copy small { font-size: 12px; }
    .promo-copy strong { font-size: 29px; }
    .promo-copy b { font-size: 11px; }
    .promo-badge { width: 48px; height: 48px; font-size: 11px; }
    .portal-slogan { height: 45px; }
    .portal-slogan strong { font-size: 21px; }
    .draw-heading { min-height: 42px; height: 42px; padding: 0 6px; }
    .draw-heading strong { font-size: 19px; }
    .draw-heading span { font-size: 12px; }
    .draw-body { min-height: 68px; grid-template-columns: 70px minmax(0,1fr); }
    .draw-date { min-width: 0; overflow: hidden; }
    .draw-date b { max-width: 100%; font-size: clamp(8px,2.25vw,10px); letter-spacing: -.2px; white-space: nowrap; }
    .draw-date span { font-size: 10px; }
    .number-row { align-items: center; gap: 1px; padding: 5px 2px; grid-template-columns: repeat(6,minmax(0,1fr)) 8px minmax(0,1fr); }
    .number-item { width: 100%; max-width: 57px; height: auto; aspect-ratio: 1; justify-self: center; border-width: 2px; }
    .number-item b { font-size: clamp(17px,5.7vw,22px); }
    .number-item small { font-size: clamp(8px,2.5vw,10px); line-height: 1; }
    .number-plus { align-self: center; font-size: 14px; }
    .draw-footer { min-height: 38px; padding: 4px 5px; font-size: 12px; }
    .countdown { width: 100%; }
    .content-section .section-heading,
    .resource-section .section-heading { min-height: 49px; height: 49px; }
    .content-section .section-heading h2 { max-width: 86%; font-size: 24px; }
    .content-section .section-heading > span { right: 6px; font-size: 9px; }
    .resource-section .section-heading h2 { font-size: 22px; }
    .official-section .quick-nav,
    .official-section .quick-nav a { min-height: 70px; }
    .official-section .quick-nav img { width: 35px; height: 35px; }
    .official-section .quick-nav span { font-size: 12px; }
    .promo-stack.promo-stack--mid,
    .promo-stack.promo-stack--bottom { height: 68px; }
    .promo-stack.promo-stack--mid > .promo-banner,
    .promo-stack.promo-stack--bottom > .promo-banner { height: 64px; }
    .featured-list > a,
    .featured-list > span { min-height: 57px; padding: 7px; }
    .featured-list b { font-size: 19px; }
    .featured-list em { font-size: 17px; }
    .featured-section--configured .featured-config-row > b,
    .featured-section--configured .featured-config-label,
    .featured-section--configured .featured-config-row > em { font-size: 19px; }
    .resource-section .resource-list > * { min-height: 58px; padding: 7px 5px; }
    .resource-section .resource-list i { font-size: 18px; }
    .resource-section .resource-list b { font-size: 19px; }
    .resource-section .resource-list em { font-size: 17px; }
    .history-row { min-height: 92px; }
    .history-row > b { font-size: 19px; }
    .history-row > span { font-size: 16px; }
    .history-row > strong { font-size: 19px; }
    .source-number-poster header { min-height: 50px; }
    .source-number-poster header b { font-size: 17px; }
    .source-number-poster img { height: 182px; }
    .long-data-list > span { min-height: 56px; grid-template-columns: 86px minmax(0,1fr); }
    .long-data-list b { font-size: 18px; }
    .long-data-list em { font-size: 17px; }
    .reference-tools button { min-height: 40px; font-size: 15px; }
    .number-inspector { min-height: 58px; grid-template-columns: 54px minmax(0,1fr); }
    .number-inspector > strong { height: 48px; font-size: 24px; }
    .number-inspector span { font-size: 16px; }
    .number-inspector em { font-size: 14px; }
    .number-palette { gap: 3px; padding: 5px; }
    .number-choice { height: 41px; font-size: 12px; }
    .number-choice img { width: 38px; height: 38px; }
    .attribute-table h3 { height: 47px; font-size: 20px; }
    .attribute-row { min-height: 50px; grid-template-columns: 68px minmax(0,1fr); }
    .attribute-row > b { font-size: 17px; }
    .mini-number-list i { width: 27px; height: 27px; font-size: 12px; }
    .zodiac-number-grid button { min-height: 54px; }
    .zodiac-number-grid button b { font-size: 17px; }
    .zodiac-number-grid button span { font-size: 13px; }
    .zodiac-attribute-grid span { min-height: 46px; font-size: 15px; }
    .gallery-grid > a,
    .gallery-grid > span { min-height: 78px; }
    .gallery-grid b { font-size: 16px; }
    .gallery-grid small { font-size: 14px; }
    .statistics-list span { min-height: 58px; }
    .statistics-list span b { font-size: 16px; }
    .statistics-list em { font-size: 22px; }
    .info-links a { min-height: 65px; }
    .info-links a span { font-size: 15px; }
    .responsible-note { font-size: 13px; }
}

/* 0149-CFG-003: normalized PageBlock presentation variants.
 * Only validated enum classes and wrapper-scoped custom properties reach this
 * layer. Legacy markup keeps the FE-002 appearance unchanged.
 */
.page-block {
    background-color: var(--page-block-bg, #fff);
}

.content-section.page-block {
    background: var(--page-block-bg, linear-gradient(90deg, #004f9d 0, #13a5e9 18%, #075db6 45%, #19aeea 72%, #00458f 100%));
}

.draw-stage.page-block {
    padding: 3px;
    background: var(--page-block-bg, #fff);
}

.content-section.page-block > .page-block-title,
.draw-stage.page-block > .page-block-title {
    margin: 0;
}

.content-section.page-block > .page-block-title h2,
.draw-stage.page-block > .page-block-title h2,
.page-promo-label {
    color: var(--page-block-title, #111);
}

.page-block-empty {
    display: grid;
    min-height: 92px;
    place-items: center;
    margin: 0;
    padding: 18px;
    background:
        repeating-linear-gradient(135deg, rgba(0, 92, 162, .04) 0 8px, transparent 8px 16px),
        linear-gradient(#fff, #eef7fd);
    color: #607181;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 2px;
    text-align: center;
}

.notice-strip.page-block {
    background: var(--page-block-bg, linear-gradient(135deg, #fffbc4, #ffe967 54%, #fff5a4));
    color: var(--page-block-title, inherit);
}

.page-notice-title {
    padding: 3px 14px;
    border-bottom: 2px solid currentColor;
    color: var(--page-block-title, #7f5300);
    font-size: 18px !important;
    letter-spacing: 2px;
}

.notice-strip.page-block .page-block-empty {
    width: min(540px, calc(100% - 128px));
    min-height: 62px;
    border: 2px solid rgba(173, 120, 0, .45);
    background: rgba(255, 255, 255, .72);
    color: var(--page-block-title, #7f5300);
}

.page-promo-stack {
    display: grid;
    height: auto !important;
    gap: 5px;
    padding: 3px;
    background-color: var(--page-block-bg, transparent);
}

.promo-stack.page-block--empty {
    display: grid;
    height: auto;
    min-height: 104px;
    place-items: center;
    padding: 4px;
    background: var(--page-block-bg, #edf7fd);
}

.page-promo-label {
    display: grid;
    min-height: 39px;
    place-items: center;
    border: 2px solid #258fe9;
    border-radius: 5px 5px 0 0;
    background: linear-gradient(180deg, #3699ec 0, #b4dafa 40%, #fff 100%);
    font-size: 20px;
    font-weight: 900;
    letter-spacing: 2px;
    text-shadow: 1px 1px #fff;
}

.page-promo-stack.promo-stack--top > .page-promo-ad {
    height: 242px;
}

.page-promo-stack.promo-stack--mid > .page-promo-ad,
.page-promo-stack.promo-stack--bottom > .page-promo-ad {
    height: 112px;
}

.page-promo-mark,
.page-feed-ad-mark {
    position: relative;
    z-index: 2;
    margin-right: 18px;
    color: #ffdb2e;
    font-family: "Arial Black", Arial, sans-serif;
    font-size: 42px;
    font-style: italic;
    text-shadow: 3px 3px #542000, 0 0 12px rgba(255, 230, 65, .65);
}

.page-promo-copy {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    text-align: left;
}

.page-promo-copy strong {
    color: #fff;
    font-size: 30px;
    text-shadow: 0 2px #002d59;
}

.page-promo-copy small {
    color: #fff6a3;
    font-size: 15px;
    font-weight: 900;
}

.page-block--compact .draw-body {
    min-height: 72px;
    grid-template-columns: 95px minmax(0, 1fr);
}

.page-block--compact .number-row {
    padding: 4px;
}

.page-block--compact .number-item {
    height: 56px;
    border-width: 2px;
    border-radius: 8px;
}

.page-block--compact .number-item b { font-size: 27px; }
.page-block--compact .number-item small { font-size: 11px; }
.page-block--compact .draw-footer { min-height: 34px; }

.page-block-feed {
    display: block;
}

.page-block-feed > .page-block {
    width: 100%;
    margin-top: 6px;
}

.page-article-list {
    display: grid;
    background: #fff;
}

.page-article-list--grid {
    grid-template-columns: 1fr 1fr;
}

.page-article-card {
    display: grid;
    min-height: 68px;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-right: 1px solid var(--portal-line);
    border-bottom: 1px solid var(--portal-line);
    background: linear-gradient(#fff, #f5fbff);
}

.page-article-list--list .page-article-card {
    border-right: 0;
}

.page-article-list--grid .page-article-card:nth-child(even) {
    border-right: 0;
}

.page-article-card:hover {
    background: #fffbd2;
}

.page-article-card > img {
    width: 78px;
    height: 58px;
    border: 1px solid #8ca7ba;
    object-fit: cover;
}

.page-article-copy {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 10px;
}

.page-article-copy b {
    overflow: hidden;
    color: #710078;
    font-size: 20px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.page-article-copy small {
    overflow: hidden;
    grid-column: 1 / -1;
    color: #4d5c67;
    font-size: 13px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.page-article-copy em {
    color: #e00016;
    font-size: 14px;
    font-style: normal;
}

.page-ad-list {
    display: grid;
    gap: 4px;
    padding: 4px;
    background: #d9e5ee;
}

.page-ad-list--grid {
    grid-template-columns: 1fr 1fr;
}

.page-feed-ad {
    display: flex;
    min-height: 104px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 10px;
    border: 2px solid #0870b4;
    background:
        repeating-linear-gradient(120deg, rgba(255,255,255,.07) 0 2px, transparent 2px 20px),
        linear-gradient(135deg, #004986, #0783ca 55%, #00376f);
    color: #fff;
}

.page-feed-ad img {
    display: block;
    width: 100%;
    height: 112px;
    object-fit: cover;
}

.page-feed-ad > span:last-child {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.page-feed-ad b { font-size: 22px; }
.page-feed-ad small { color: #d8f4ff; font-size: 13px; }

.page-link-list {
    display: grid;
    grid-template-columns: repeat(var(--page-block-columns, 4), minmax(0, 1fr));
    background: #fff;
}

.page-link-list--list {
    grid-template-columns: 1fr;
}

.page-link-list a {
    display: flex;
    min-width: 0;
    min-height: 72px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 7px;
    border-right: 1px solid var(--portal-line);
    border-bottom: 1px solid var(--portal-line);
    background: linear-gradient(#fff, #edf7fd);
    color: #075e9e;
    text-align: center;
}

.page-link-list a:hover { background: #fff9c7; }

.page-link-list a img {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    object-fit: contain;
}

.page-link-list a > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.page-link-list a b {
    overflow: hidden;
    font-size: 17px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.page-link-list a small {
    overflow: hidden;
    color: #657582;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.info-links.page-block > .page-link-list {
    grid-template-columns: repeat(var(--page-block-columns, 4), minmax(0, 1fr));
}

.info-links.page-block--list > .page-link-list {
    grid-template-columns: 1fr;
}

@media (max-width: 560px) {
    .page-block-empty {
        min-height: 72px;
        padding: 12px;
        font-size: 15px;
    }

    .notice-strip.page-block .page-block-empty {
        width: calc(100% - 16px);
        min-height: 54px;
    }

    .page-promo-label {
        min-height: 34px;
        font-size: 17px;
    }

    .page-promo-stack.promo-stack--top > .page-promo-ad {
        height: 138px;
    }

    .page-promo-stack.promo-stack--mid > .page-promo-ad,
    .page-promo-stack.promo-stack--bottom > .page-promo-ad {
        height: 64px;
    }

    .page-promo-mark,
    .page-feed-ad-mark {
        margin-right: 8px;
        font-size: 29px;
    }

    .page-promo-copy strong { font-size: 20px; }
    .page-promo-copy small { font-size: 11px; }

    .page-block--compact .draw-body {
        grid-template-columns: 66px minmax(0, 1fr);
    }

    .page-block--compact .number-item {
        height: 45px;
    }

    .page-block--compact .number-item b { font-size: 18px; }
    .page-block--compact .number-item small { font-size: 8px; }

    .page-article-list--grid {
        grid-template-columns: 1fr;
    }

    .page-article-card {
        min-height: 62px;
        padding: 7px;
        border-right: 0;
    }

    .page-article-card > img {
        width: 66px;
        height: 50px;
    }

    .page-article-copy b { font-size: 17px; }
    .page-article-copy small { font-size: 12px; }
    .page-article-copy em { font-size: 12px; }

    .page-ad-list--grid {
        grid-template-columns: 1fr;
    }

    .page-feed-ad {
        min-height: 88px;
    }

    .page-feed-ad img {
        height: 96px;
    }

    .page-feed-ad b { font-size: 18px; }

    .page-link-list,
    .info-links.page-block > .page-link-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .page-link-list--list,
    .info-links.page-block--list > .page-link-list {
        grid-template-columns: 1fr;
    }

    .page-link-list a {
        min-height: 65px;
        gap: 4px;
        padding: 5px;
    }

    .page-link-list a img {
        width: 30px;
        height: 30px;
        flex-basis: 30px;
    }

    .page-link-list a b { font-size: 14px; }
    .page-link-list a small { font-size: 10px; }
}

/* 0149-CONTENT-006: normalized structured homepage content.
 * Only Backend-normalized enums, text and wrapper-scoped colors reach these
 * rules. Fixed ids/data attributes retain the existing no-Vue interactions.
 */
.content-section.content-layout-section {
    background: var(--content-section-bg, linear-gradient(90deg, #004f9d 0, #13a5e9 18%, #075db6 45%, #19aeea 72%, #00458f 100%));
}

.source-number-poster.content-layout-section {
    background: var(--content-section-bg, linear-gradient(180deg, #f04a57 0%, #f8b2b7 28%, #fff0f1 70%, #fff 100%));
}

.content-layout-section > .content-layout-title h2,
.source-number-poster.content-layout-section > header b {
    color: var(--content-section-title, #111);
}

.source-number-poster.content-layout-section > a,
.source-number-poster.content-layout-section > div {
    display: block;
}

.content-layout-empty {
    display: grid;
    min-height: 92px;
    place-items: center;
    margin: 0;
    padding: 18px;
    background:
        repeating-linear-gradient(135deg, rgba(0, 92, 162, .04) 0 8px, transparent 8px 16px),
        linear-gradient(#fff, #eef7fd);
    color: #607181;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: 2px;
    text-align: center;
}

.source-number-poster.content-layout-section--empty .content-layout-empty {
    min-height: 110px;
}

.content-layout-section .reference-tools {
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
}

.statistics-list .statistics-item--red b,
.statistics-list .statistics-item--red em { color: #d91e2c; }
.statistics-list .statistics-item--blue b,
.statistics-list .statistics-item--blue em { color: #075fbd; }
.statistics-list .statistics-item--green b,
.statistics-list .statistics-item--green em { color: #07813e; }
.statistics-list .statistics-item--orange b,
.statistics-list .statistics-item--orange em { color: #d56a00; }
.statistics-list .statistics-item--purple b,
.statistics-list .statistics-item--purple em { color: #78117e; }

@media (max-width: 560px) {
    .content-layout-empty {
        min-height: 78px;
        padding: 14px;
        font-size: 16px;
    }

    .content-layout-section .reference-tools {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* 0149-DUAL-013: two independent, server-normalized homepage panels. */
.lottery-content-panels,
.lottery-content-panel {
    min-width: 0;
}

.lottery-content-panel {
    background: var(--panel-bg, transparent);
    color: var(--panel-title, inherit);
}

.lottery-content-panel[hidden],
.lottery-content-panel.is-hidden {
    display: none !important;
}

.lottery-content-panel > .panel-section {
    scroll-margin-top: 194px;
}

.panel-reminder {
    display: grid;
    min-height: 48px;
    place-items: center;
    margin-top: 5px;
    border: 3px solid #a70013;
    background:
        linear-gradient(90deg, rgba(255,255,255,.08), transparent 28%, rgba(255,255,255,.1) 72%, transparent),
        linear-gradient(180deg, #ff263a, #d60020 56%, #ad0018);
    color: #fff93a;
    font-size: 25px;
    font-weight: 900;
    letter-spacing: 2px;
    text-align: center;
    text-shadow: 0 2px #7a0010;
    box-shadow: inset 0 1px rgba(255,255,255,.6), 0 2px 5px rgba(112,0,14,.28);
}

.panel-schedule {
    margin-top: 5px;
    overflow: hidden;
    border: 2px solid #0875c7;
    border-radius: 6px 6px 2px 2px;
    background: #fff;
    box-shadow: 0 2px 5px rgba(0,55,104,.2);
}

.panel-schedule > .section-heading {
    margin: 0;
}

.schedule-table {
    display: grid;
}

.schedule-row {
    display: grid;
    min-height: 48px;
    grid-template-columns: 150px minmax(0, 1fr) 92px;
    align-items: center;
    border-bottom: 1px solid #aebbc6;
    background: linear-gradient(90deg, #edf6ff, #fff 32%, #f0f7ff);
    color: #101820;
}

.schedule-row:last-child {
    border-bottom: 0;
}

.schedule-row > * {
    min-width: 0;
    padding: 7px 10px;
}

.schedule-row b {
    color: #d51528;
    font-size: 20px;
    text-align: center;
}

.schedule-row time {
    border-right: 1px solid #c2ced8;
    border-left: 1px solid #c2ced8;
    color: #075eaa;
    font-size: 19px;
    font-weight: 900;
    text-align: center;
}

.schedule-row em {
    color: #536675;
    font-size: 13px;
    font-style: normal;
    font-weight: 900;
    text-align: center;
}

.schedule-state--pending { color: #d36500 !important; }
.schedule-state--drawing { color: #d51528 !important; }

.lottery-content-panel--hongkong .resource-section .resource-list > *,
.lottery-content-panel--hongkong .history-row,
.lottery-content-panel--hongkong .featured-list > * {
    background: linear-gradient(90deg, #dbeaff, #fff 28%, #eef5ff);
}

.lottery-content-panel--hongkong .resource-section .resource-list > *:nth-child(even),
.lottery-content-panel--hongkong .history-row:nth-child(even) {
    background: linear-gradient(90deg, #c8ddf8, #f7fbff 34%, #dfeaf8);
}

.lottery-content-panel--macau .promo-stack--top + .draw-stage,
.lottery-content-panel--macau .notice-strip + .promo-stack--top {
    margin-top: 5px;
}

@media (max-width: 560px) {
    .lottery-content-panel > .panel-section {
        scroll-margin-top: 184px;
    }

    .panel-reminder {
        min-height: 44px;
        padding: 5px 8px;
        border-width: 2px;
        font-size: 20px;
        letter-spacing: 1px;
    }

    .schedule-row {
        min-height: 58px;
        grid-template-columns: 82px minmax(0, 1fr) 64px;
    }

    .schedule-row > * {
        padding: 6px 4px;
    }

    .schedule-row b { font-size: 15px; }
    .schedule-row time { font-size: 13px; line-height: 1.45; }
    .schedule-row em { font-size: 10px; }
}

/* 0149-NAVNOTICE-015: one shared announcement and hero above both panels. */
.homepage-navigation-announcement {
    margin-top: 5px;
    padding: 10px 14px;
    overflow: hidden;
    border: 3px solid #e9a900;
    background: linear-gradient(180deg, #fff9a8, #ffea69);
    color: #151515;
    text-align: center;
    box-shadow: inset 0 1px rgba(255,255,255,.8), 0 2px 5px rgba(93,70,0,.2);
}

.homepage-navigation-announcement .notice-kicker,
.homepage-navigation-announcement > strong,
.homepage-navigation-announcement > p {
    display: block;
}

.homepage-navigation-announcement .notice-kicker {
    color: #9f0015;
    font-size: 15px;
    font-weight: 900;
}

.homepage-navigation-announcement > strong {
    margin: 3px 0;
    color: #d40020;
    font-size: 31px;
    line-height: 1.15;
}

.homepage-navigation-announcement .notice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
}

.homepage-navigation-announcement .notice-grid span {
    padding: 5px 8px;
    border: 1px solid #e7b71d;
    background: rgba(255,255,255,.7);
    font-size: 15px;
    font-weight: 800;
}

.homepage-navigation-announcement .notice-grid b { color: #006bb7; }
.homepage-navigation-announcement > p { margin: 5px 0 0; font-weight: 800; }

.homepage-hero {
    position: relative;
    display: block;
    aspect-ratio: 36 / 13;
    margin-top: 5px;
    overflow: hidden;
    border: 3px solid #08763f;
    background: #087e45;
    box-shadow: 0 2px 5px rgba(0,68,35,.28);
}

.homepage-hero--configured > a,
.homepage-hero--configured > img {
    display: block;
    width: 100%;
    height: 100%;
}

.homepage-hero--configured img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.homepage-hero--legacy {
    display: grid;
    grid-template-columns: 24% minmax(0, 1fr) 17%;
    align-items: center;
    padding: 4% 5%;
    background:
        radial-gradient(circle at 50% 50%, rgba(255,244,54,.22), transparent 42%),
        repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 2px, transparent 2px 12px),
        linear-gradient(135deg, #004d2b, #14a65b 48%, #006238);
    color: #fff;
}

.homepage-hero-rays {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 18% 50%, rgba(255,245,71,.32), transparent 26%);
    pointer-events: none;
}

.homepage-hero-mark,
.homepage-hero-copy,
.homepage-hero-badge { position: relative; z-index: 1; }

.homepage-hero-mark {
    color: #ffec25;
    font-size: clamp(30px, 7vw, 78px);
    font-weight: 1000;
    letter-spacing: -4px;
    text-shadow: 0 3px #9b0018, 3px 0 #9b0018;
}

.homepage-hero-copy { display: grid; gap: 4px; text-align: center; }
.homepage-hero-copy small { color: #e4ffe9; font-size: clamp(12px, 2vw, 21px); font-weight: 900; }
.homepage-hero-copy strong { color: #fff43e; font-size: clamp(24px, 5vw, 55px); line-height: 1.05; text-shadow: 0 3px #8a0014; }
.homepage-hero-copy b { font-size: clamp(11px, 1.8vw, 19px); letter-spacing: 2px; }
.homepage-hero-badge { justify-self: end; padding: 12px; border: 4px solid #fff338; border-radius: 50%; background: #d50021; color: #fff338; font-size: clamp(15px, 2.6vw, 28px); font-weight: 900; line-height: 1.1; text-align: center; transform: rotate(5deg); }

@media (max-width: 560px) {
    .homepage-navigation-announcement { padding: 7px 6px; border-width: 2px; }
    .homepage-navigation-announcement .notice-kicker { font-size: 11px; }
    .homepage-navigation-announcement > strong { font-size: 23px; }
    .homepage-navigation-announcement .notice-grid { gap: 3px; }
    .homepage-navigation-announcement .notice-grid span { padding: 4px 2px; font-size: 11px; }
    .homepage-navigation-announcement > p { font-size: 11px; }
    .homepage-hero { border-width: 2px; }
    .homepage-hero--legacy { grid-template-columns: 23% minmax(0, 1fr) 17%; padding: 3%; }
    .homepage-hero-mark { font-size: 29px; letter-spacing: -3px; }
    .homepage-hero-copy { gap: 1px; }
    .homepage-hero-copy strong { font-size: 22px; }
    .homepage-hero-copy b { font-size: 9px; letter-spacing: 0; }
    .homepage-hero-badge { padding: 6px; border-width: 2px; font-size: 12px; }
}

/* Single-line calendar bar: public date + lunar details only. */
.portal-date-bar {
    height: 54px;
    min-height: 54px;
    flex-direction: row;
    gap: 24px;
    padding: 0 14px;
    white-space: nowrap;
}
.portal-date-bar strong { font-size: 27px; letter-spacing: 1px; }
.portal-date-bar > span { font-size: 27px; font-weight: 900; }

@media (max-width: 520px) {
    .portal-date-bar { height: 45px; min-height: 45px; gap: 7px; padding: 0 4px; }
    .portal-date-bar strong { font-size: 13px; letter-spacing: 0; }
    .portal-date-bar > span { font-size: 13px; }
}

/* Keep the live-result refresh control conspicuous without crowding the balls. */
@keyframes lottery-refresh-attention {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.14); }
}

.compact-number-list {
    grid-template-columns: repeat(6, minmax(0, 1fr)) 28px minmax(0, 1fr);
}

.refresh-cell {
    border: 2px solid #c90b18;
    background: linear-gradient(180deg, #fff75a, #ffb400);
    color: #bd0011;
    font-size: 11px;
    font-weight: 1000;
    line-height: 1.05;
    text-shadow: 0 1px rgba(255,255,255,.75);
    box-shadow: inset 0 1px #fff, 0 0 7px rgba(255,174,0,.85);
    animation: lottery-refresh-attention 1.5s ease-in-out infinite;
}

.refresh-cell:hover,
.refresh-cell:focus-visible {
    border-color: #8f0010;
    background: linear-gradient(180deg, #fff98a, #ffca1c);
    color: #96000d;
    outline: 2px solid #fff;
    outline-offset: -4px;
}

.refresh-cell:disabled {
    color: #7d4b00;
    animation: none;
    box-shadow: inset 0 1px #fff;
}

@media (max-width: 560px) {
    .compact-number-list {
        grid-template-columns: repeat(6, minmax(0, 1fr)) 22px minmax(0, 1fr);
    }
    .refresh-cell { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
    .refresh-cell { animation: none; }
}

/* Latest-draw cards expose an explicit refresh action and linked history. */
.draw-refresh-button {
    min-height: 30px;
    padding: 4px 11px;
    border: 2px solid #00568f;
    border-radius: 4px;
    background: linear-gradient(180deg, #30a8f0, #0874bd);
    color: #fff;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 900;
    box-shadow: inset 0 1px rgba(255,255,255,.55), 0 1px 3px rgba(0,0,0,.22);
}

.lottery-panel--hongkong .draw-refresh-button {
    border-color: #a80c1a;
    background: linear-gradient(180deg, #ff5968, #d92331);
}

.draw-refresh-button:hover,
.draw-refresh-button:focus-visible {
    border-color: #b36a00;
    background: linear-gradient(180deg, #fff06a, #ffb400);
    color: #a60013;
}

.draw-refresh-button:disabled {
    cursor: wait;
    opacity: .72;
}

.history-records-link,
.history-issue-link {
    color: #d21f2c;
    font-weight: 900;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.history-records-link:hover,
.history-records-link:focus-visible,
.history-issue-link:hover,
.history-issue-link:focus-visible {
    color: #005fa3;
    background: #fff2a8;
}

@media (max-width: 560px) {
    .draw-refresh-button { min-height: 27px; padding: 3px 6px; font-size: 10px; }
    .draw-footer { gap: 4px; }
}

/* Keep each icon/title group centred without centring incomplete rows. */
.official-section .quick-nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: stretch;
}

.official-section .quick-nav a {
    align-items: center;
    justify-content: center;
    padding: 7px 4px;
    text-align: center;
}

@media (max-width: 560px) {
    .official-section .quick-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.shared-latest-draws .section-heading h2 {
    font-size: 28px;
    letter-spacing: 1px;
}

.latest-draw-fixed-title > span,
.latest-draw-fixed-title > i,
.latest-draw-fixed-title > b,
.latest-draw-fixed-title > em {
    position: static;
    right: auto;
    font-size: inherit;
    font-weight: 900;
    line-height: 1;
}

.latest-draw-fixed-title i,
.latest-draw-fixed-title em {
    color: #e5222f;
    font-style: normal;
}
.latest-draw-fixed-title b { color: #075fd1; }
.latest-draw-fixed-title .latest-title-draw { color: #d51d2a; }
.latest-draw-fixed-title .latest-title-data { color: #13883f; }

.promo-banner--top .promo-crown {
    top: 10px;
    line-height: 1;
}

.promo-banner--top .promo-copy {
    transform: translateY(18px);
}

@media (max-width: 560px) {
    .shared-latest-draws .section-heading h2 {
        max-width: 100%;
        font-size: 20px;
    }
    .shared-latest-draws .section-heading > span { display: none; }
    .promo-banner--top .promo-crown { top: 7px; }
    .promo-banner--top .promo-copy { transform: translateY(10px); }
}

.macau-green-links {
    overflow: hidden;
    margin-top: 5px;
    border: 2px solid #1689ff;
    border-radius: 4px;
    background: #00f21a;
}

.macau-green-links a {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 5px 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .78);
    color: #001800;
    font-size: 23px;
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
}

.macau-green-links a:last-child { border-bottom: 0; }
.macau-green-links a:hover,
.macau-green-links a:focus-visible { background: #5dff45; color: #c90019; }

.macau-green-image-ads {
    display: grid;
    gap: 4px;
    margin-top: 5px;
}

.macau-green-image-ad {
    display: block;
    width: 100%;
    overflow: visible;
    background: #f2f2f2;
}

.macau-green-image-ad img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.macau-green-followup-note {
    margin-top: 5px;
    padding: 4px 10px;
    border-radius: 5px;
    background: #fff59c;
    color: #078318;
    text-align: center;
}

.macau-green-followup-block {
    overflow: hidden;
    margin-top: 5px;
    border: 2px solid var(--followup-border, #1689ff);
    border-radius: 4px;
    background: #fff;
    text-align: center;
    font-weight: 900;
}

.macau-green-followup-block--richtext {
    overflow-x: auto;
    border-color: #1689ff;
    text-align: center;
    font-weight: 400;
    -webkit-overflow-scrolling: touch;
}

.macau-green-followup-richtext {
    min-width: 0;
    color: #222;
    font-size: 18px;
    line-height: 1.35;
}

.macau-green-followup-richtext > :first-child { margin-top: 0; }
.macau-green-followup-richtext > :last-child { margin-bottom: 0; }
.macau-green-followup-richtext p,
.macau-green-followup-richtext div,
.macau-green-followup-richtext h1,
.macau-green-followup-richtext h2,
.macau-green-followup-richtext h3,
.macau-green-followup-richtext h4,
.macau-green-followup-richtext h5,
.macau-green-followup-richtext h6 { margin: 0; }
.macau-green-followup-richtext a { color: inherit; }

.macau-green-followup-richtext table {
    width: 100%;
    min-width: 100%;
    border-spacing: 0;
    border-collapse: separate;
    table-layout: auto;
    color: inherit;
}

.macau-green-followup-richtext caption {
    padding: 5px 8px;
    font-weight: 900;
    text-align: center;
}

.macau-green-followup-richtext th,
.macau-green-followup-richtext td {
    min-width: 0;
    padding: 4px 7px;
    border-right: 1px solid #c4c4c4;
    border-bottom: 1px solid #c4c4c4;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.macau-green-followup-richtext tr > :last-child { border-right: 0; }
.macau-green-followup-richtext tr:last-child > th,
.macau-green-followup-richtext tr:last-child > td { border-bottom: 0; }
.macau-green-followup-richtext thead:last-child tr:last-child > th,
.macau-green-followup-richtext thead:last-child tr:last-child > td,
.macau-green-followup-richtext tbody:last-child tr:last-child > th,
.macau-green-followup-richtext tbody:last-child tr:last-child > td,
.macau-green-followup-richtext tfoot:last-child tr:last-child > th,
.macau-green-followup-richtext tfoot:last-child tr:last-child > td { border-bottom: 0; }

.macau-green-followup-heading {
    padding: 2px 8px 3px;
    background: linear-gradient(180deg, var(--followup-header-start, #4c9df5), var(--followup-header-end, #f7f7f7));
    font-size: 30px;
    line-height: 1.15;
}

.macau-green-followup-heading i { font-style: normal; }
.macau-green-followup-heading b { font-weight: 900; }
.macau-green-followup-active,
.macau-green-followup-muted { padding: 5px 8px; }
.macau-green-followup-muted { border-top: 2px solid #c7c7c7; }
.macau-green-followup-active p,
.macau-green-followup-muted p { margin: 0; line-height: 1.35; }
.macau-green-followup-active p:first-child,
.macau-green-followup-muted p:first-child { font-size: 23px; }
.macau-green-followup-active em,
.macau-green-followup-muted em { font-style: normal; font-weight: 900; }
.macau-green-followup-numbers { font-size: 29px; font-weight: 900; }
.macau-green-followup-muted p:last-child { font-size: 26px; }
.macau-green-followup-note > :first-child { margin-top: 0; }
.macau-green-followup-note > :last-child { margin-bottom: 0; }
.macau-green-followup-note p,
.macau-green-followup-note div { margin: 0; }
.macau-green-followup-note a { color: inherit; }

@media (max-width: 560px) {
    .macau-green-links a { min-height: 36px; padding: 4px 7px; font-size: 17px; }
    .macau-green-followup-heading { font-size: 20px; }
    .macau-green-followup-active p:first-child,
    .macau-green-followup-muted p:first-child { font-size: 16px; }
    .macau-green-followup-numbers { font-size: 20px; }
    .macau-green-followup-muted p:last-child { font-size: 18px; }
    .macau-green-followup-richtext { font-size: 15px; }
    .macau-green-followup-richtext th,
    .macau-green-followup-richtext td { padding: 3px 4px; }
}

/* Image-only navigation grid matching the supplied rounded green reference. */
.official-section .quick-nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
    padding: 10px;
    background: #00b758;
}

.official-section .quick-nav a {
    display: block;
    min-height: 0;
    aspect-ratio: 1 / 1;
    padding: 0;
    overflow: hidden;
    border: 2px solid #fff;
    border-radius: 22px;
    background: #fff;
}

.official-section .quick-nav img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    border-radius: 19px;
    background: #fff;
    object-fit: cover;
    box-shadow: none;
}

@media (max-width: 560px) {
    .official-section .section-heading {
        min-height: 38px;
        height: 38px;
        padding: 0 4px;
    }

    .official-section .section-heading h2 {
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        font-size: clamp(14px, 4.4vw, 17px);
        line-height: 1;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .official-section .quick-nav {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 5px;
        padding: 5px;
    }
    .official-section .quick-nav a { border-width: 2px; border-radius: 10px; }
    .official-section .quick-nav img { border-radius: 8px; }
}

/* Flat compact draw strip matching the supplied reference table. */
.compact-results {
    height: 49px;
    border: 1px solid #b8c1c8;
    border-bottom: 4px solid #1684df;
    background: #fff;
}

.compact-result-panel {
    height: 44px;
    grid-template-columns: 145px minmax(0, 1fr);
    background: #fff;
}

.compact-issue {
    gap: 1px;
    border-right: 1px solid #c7cdd2;
    background: #fff;
}

.compact-issue b {
    color: #222;
    font-size: 15px;
    line-height: 1.05;
}

.compact-issue small {
    padding: 1px 4px;
    background: #ffef00;
    color: #f00000;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.05;
}

.compact-number-list {
    grid-template-columns: repeat(6, minmax(0, 1fr)) 24px minmax(0, 1fr);
    gap: 0;
    padding: 0;
    background: #fff;
}

.compact-number {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 24px 20px;
    align-items: stretch;
    justify-content: stretch;
    justify-items: stretch;
    border: 0;
    border-right: 1px solid #cfd3d6;
    background: #fff !important;
    color: #222;
    text-shadow: none;
    box-shadow: none;
}

.compact-number::after { display: none; }
.compact-number.is-special { outline: 0; }

.compact-number b {
    display: grid;
    min-width: 0;
    width: 100%;
    height: 24px;
    place-items: center;
    color: #fff;
    font-size: 20px;
    line-height: 24px;
}

.compact-number small {
    display: grid;
    min-width: 0;
    width: 100%;
    height: 20px;
    place-items: center;
    background: #fff;
    color: #222;
    font-size: 17px;
    font-weight: 900;
    line-height: 20px;
}

.compact-number--red b { background: #f20d14; }
.compact-number--blue b { background: #238ee2; }
.compact-number--green b { background: #16a334; }

.refresh-cell {
    height: 44px;
    border: 0;
    border-right: 1px solid #cfd3d6;
    border-left: 1px solid #cfd3d6;
    background: #ffed00;
    color: #f00000;
    font-size: 12px;
    font-weight: 900;
    line-height: 1.05;
    text-shadow: none;
    box-shadow: none;
    animation: none;
}

.refresh-cell:hover,
.refresh-cell:focus-visible {
    border-color: #cfd3d6;
    background: #ffe100;
    color: #c90000;
    outline: 2px solid #f00000;
    outline-offset: -2px;
}

@media (max-width: 560px) {
    .compact-results { height: 45px; }
    .compact-result-panel { height: 40px; grid-template-columns: 72px minmax(0, 1fr); }
    .compact-issue b { font-size: 10px; }
    .compact-issue small { padding: 1px 2px; font-size: 9px; }
    .compact-number-list { grid-template-columns: repeat(6, minmax(0, 1fr)) 18px minmax(0, 1fr); }
    .compact-number { grid-template-rows: 22px 18px; }
    .compact-number b { height: 22px; font-size: 15px; line-height: 22px; }
    .compact-number small { height: 18px; font-size: 12px; line-height: 18px; }
    .refresh-cell { height: 40px; font-size: 9px; }
}
