:root{--bg:#f6f7fb;--surface:#fff;--surface-2:#f0f2f7;--text:#17181d;--muted:#7c8190;--line:#e8eaf0;--primary:#6d5dfc;--primary-soft:#efedff;--shadow:0 12px 30px rgba(26,30,45,.08);--nav-h:76px;color-scheme:light}html[data-theme="dark"]{--bg:#0e1117;--surface:#171b23;--surface-2:#202631;--text:#f4f5f8;--muted:#9aa3b2;--line:#2a313d;--primary:#8b7cff;--primary-soft:#25213d;--shadow:0 12px 30px rgba(0,0,0,.26);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}body{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));transition:background .22s,color .22s}.app-shell{max-width:720px;margin:0 auto;min-height:100vh;background:var(--bg)}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.brand{display:flex;align-items:center;gap:0}.brand img,.logo-fallback{width:42px;height:42px;border-radius:13px;object-fit:cover}.logo-fallback{display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#a970ff);color:#fff;font-weight:800}.brand strong{display:block;font-size:18px;line-height:1.15}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.theme-toggle{display:flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:8px 10px;border-radius:999px;box-shadow:0 3px 10px rgba(0,0,0,.03);cursor:pointer}.theme-toggle.is-hidden{display:none}.theme-toggle span:last-child{font-size:12px}main{padding:12px 14px 18px}.main-view{display:none;animation:fade .18s ease}.main-view.is-active{display:block}@keyframes fade{from{opacity:.55;transform:translateY(3px)}to{opacity:1;transform:none}}.banner-wrap{position:relative;aspect-ratio:2.55/1;border-radius:18px;overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow)}.banner-slide{display:none;position:absolute;inset:0}.banner-slide.is-active{display:block}.banner-slide img{width:100%;height:100%;object-fit:cover}.banner-dots{position:absolute;left:0;right:0;bottom:9px;display:flex;justify-content:center;gap:6px}.banner-dots button{width:6px;height:6px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.5)}.banner-dots button.is-active{width:20px;border-radius:9px;background:#fff}.notice{margin-top:10px;background:var(--surface);color:var(--text);text-decoration:none;border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;align-items:center;gap:8px;box-shadow:0 5px 16px rgba(0,0,0,.03)}.notice-icon{font-size:17px}.notice-text{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.notice-arrow{font-size:22px;color:var(--muted)}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface-2);padding:4px;border-radius:14px;margin:14px 0}.segmented button,.tool-tabs button{border:0;background:transparent;color:var(--muted);font-weight:700;cursor:pointer}.segmented button{padding:10px;border-radius:11px}.segmented button.is-active{background:var(--surface);color:var(--primary);box-shadow:0 3px 12px rgba(0,0,0,.06)}.platform-panel{display:none}.platform-panel.is-active{display:block}.grid-title{display:flex;align-items:baseline;justify-content:space-between;margin:4px 2px 9px}.grid-title h2{margin:0;font-size:17px}.grid-title span{font-size:12px;color:var(--muted)}.icon-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.nav-card{position:relative;overflow:visible;min-width:0;text-decoration:none;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 6px 10px;text-align:center;box-shadow:0 4px 14px rgba(0,0,0,.025);transition:transform .15s,border-color .15s}.nav-card:active{transform:scale(.97)}.nav-icon{width:50px;height:50px;margin:0 auto 8px;border-radius:15px;overflow:hidden;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary);font-weight:800}.nav-icon img{width:100%;height:100%;object-fit:cover}.nav-card strong{display:block;font-size:13px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nav-card small{display:block;color:var(--muted);font-size:10px;margin-top:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.empty-state{grid-column:1/-1;text-align:center;color:var(--muted);padding:35px 10px}.card-empty{background:var(--surface);border:1px solid var(--line);border-radius:16px}.page-heading{padding:4px 2px 12px}.page-heading h1{font-size:22px;margin:0 0 3px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.lottery-list{display:grid;gap:10px}.lottery-card{display:grid;grid-template-columns:1fr auto;gap:7px 12px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;color:var(--text);text-decoration:none}.lottery-card>div:first-child{display:flex;flex-direction:column}.lottery-card span,.lottery-card small{color:var(--muted);font-size:11px;margin-top:4px}.lottery-card small{grid-column:1/-1}.lottery-result{align-self:center;color:var(--primary);font-weight:800;letter-spacing:.4px}.tool-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;scrollbar-width:none}.tool-tabs::-webkit-scrollbar{display:none}.tool-tabs button{white-space:nowrap;border:1px solid var(--line);background:var(--surface);padding:8px 12px;border-radius:999px}.tool-tabs button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.tool-item.is-hidden{display:none}.moments-feed{display:grid;gap:12px}.moment-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 5px 16px rgba(0,0,0,.025)}.moment-meta{display:flex;align-items:center;gap:10px}.moment-avatar{width:38px;height:38px;border-radius:12px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-weight:800}.moment-meta strong{display:block;font-size:14px}.moment-meta time{display:block;color:var(--muted);font-size:11px;margin-top:2px}.pin-badge{margin-left:auto;background:var(--primary-soft);color:var(--primary);font-size:10px;padding:4px 7px;border-radius:999px}.moment-text{font-size:14px;line-height:1.65;margin:12px 0}.moment-images{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.moment-images.count-1{grid-template-columns:minmax(0,72%)}.moment-images.count-2,.moment-images.count-4{grid-template-columns:repeat(2,1fr)}.moment-image{border:0;background:var(--surface-2);padding:0;aspect-ratio:1;border-radius:10px;overflow:hidden;cursor:pointer}.moment-image img{width:100%;height:100%;object-fit:cover}.bottom-nav{position:fixed;z-index:40;left:50%;bottom:0;transform:translateX(-50%);width:min(720px,100%);height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding:7px 8px env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(20px);border-top:1px solid var(--line)}.bottom-nav button{border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer}.bottom-nav button span{font-size:20px;line-height:1}.bottom-nav button b{font-size:11px;font-weight:600}.bottom-nav button.is-active{color:var(--primary)}.image-dialog{border:0;border-radius:18px;padding:10px;background:var(--surface);box-shadow:0 24px 80px rgba(0,0,0,.35);max-width:min(92vw,700px)}.image-dialog::backdrop{background:rgba(0,0,0,.68)}.image-dialog img{display:block;max-width:100%;max-height:76vh;border-radius:12px}.dialog-close{position:absolute;right:14px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:22px;cursor:pointer}@media(max-width:430px){.icon-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.nav-card{padding:10px 4px 9px}.nav-icon{width:46px;height:46px}.brand strong{font-size:17px}.banner-wrap{border-radius:16px}}@media(max-width:340px){.icon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* V11 · 加拿大28 */
.lottery-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.api-status{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px;white-space:nowrap}.api-status i{width:7px;height:7px;border-radius:50%;background:#f0a020;box-shadow:0 0 0 4px color-mix(in srgb,#f0a020 14%,transparent)}.api-status.is-ok{color:#24866c}.api-status.is-ok i{background:#27b28b;box-shadow:0 0 0 4px color-mix(in srgb,#27b28b 14%,transparent)}.api-status b{font-weight:700}.ca28-shell{display:grid;gap:12px}.ca28-current-card,.ca28-history-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 7px 22px rgba(0,0,0,.035)}.ca28-current-card{padding:16px}.ca28-card-top,.ca28-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.ca28-card-top{padding-bottom:13px;border-bottom:1px solid var(--line)}.ca28-card-top .eyebrow{display:block;color:var(--primary);font-size:11px;font-weight:700;margin-bottom:3px}.ca28-card-top h2{font-size:21px;margin:0}.ca28-refresh{border:1px solid var(--line);background:var(--surface-2);color:var(--text);padding:8px 12px;border-radius:10px;font-size:12px;cursor:pointer}.ca28-refresh:disabled{opacity:.55}.ca28-main{padding-top:15px}.ca28-current-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.ca28-current-meta strong{font-size:15px}.ca28-current-meta time{color:var(--muted);font-size:11px;white-space:nowrap}.ca28-equation{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ca28-ball{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:17px;font-weight:800;box-shadow:0 7px 16px rgba(34,66,140,.13);font-variant-numeric:tabular-nums}.ca28-ball:nth-of-type(1){background:linear-gradient(145deg,#467cf8,#2362e5)}.ca28-ball:nth-of-type(2){background:linear-gradient(145deg,#20bd8b,#0c956d)}.ca28-ball:nth-of-type(3){background:linear-gradient(145deg,#ffae28,#f18c00)}.ca28-ball.sum{background:linear-gradient(145deg,#ff6b79,#e94561)}.ca28-op{color:var(--muted);font-weight:700;font-size:17px}.ca28-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.ca28-tag{padding:5px 9px;border-radius:8px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:700}.ca28-info-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.ca28-info-box{background:var(--surface-2);border-radius:12px;padding:10px 11px}.ca28-info-box span{display:block;color:var(--muted);font-size:10px}.ca28-info-box strong{display:block;font-size:12px;margin-top:4px;font-variant-numeric:tabular-nums}.ca28-raw{margin-top:13px;padding:11px;background:var(--surface-2);border-radius:13px}.ca28-raw-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.ca28-raw-head strong{font-size:11px}.ca28-raw-head span{color:var(--muted);font-size:10px}.ca28-raw-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.ca28-raw-grid span{display:grid;place-items:center;min-height:26px;border-radius:7px;background:color-mix(in srgb,var(--primary) 9%,var(--surface));color:var(--primary);font-size:10px;font-weight:700}.ca28-history-card{padding:14px}.ca28-section-title{margin-bottom:10px}.ca28-section-title h3{font-size:15px;margin:0}.ca28-section-title span,.ca28-section-title small{color:var(--muted);font-size:10px}.ca28-history{display:grid;gap:7px}.ca28-history-item{display:grid;grid-template-columns:minmax(86px,1fr) auto minmax(95px,auto);align-items:center;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.ca28-history-main{min-width:0}.ca28-history-main strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ca28-history-main time{display:block;color:var(--muted);font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ca28-mini-equation{display:flex;align-items:center;gap:4px;white-space:nowrap}.ca28-mini-ball{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:800}.ca28-mini-ball:nth-of-type(1){background:#3976f2}.ca28-mini-ball:nth-of-type(2){background:#13a77a}.ca28-mini-ball:nth-of-type(3){background:#f39a13}.ca28-mini-sum{color:#ef4962;font-size:12px;font-weight:800}.ca28-history-tags{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.ca28-history-tags span{padding:4px 6px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-size:9px}.ca28-loading,.ca28-error,.ca28-empty{padding:25px 12px;text-align:center;color:var(--muted);font-size:12px}.ca28-error strong{display:block;color:#d45b69;font-size:13px;margin-bottom:5px}.ca28-error small{display:block;line-height:1.55}.ca28-countdown{color:var(--primary)!important}
@media(max-width:520px){.ca28-current-card{padding:14px}.ca28-ball{width:40px;height:40px;font-size:15px}.ca28-equation{gap:6px}.ca28-raw-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ca28-history-item{grid-template-columns:1fr auto}.ca28-history-tags{grid-column:1/-1;justify-content:flex-start}.ca28-current-meta{align-items:flex-start;flex-direction:column;gap:4px}}

/* V12 · 开奖中心四栏目 */
.ca28-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:7px;margin-bottom:12px;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:0 5px 18px rgba(0,0,0,.025)}
.ca28-tabs button{min-width:0;border:1px solid transparent;background:transparent;color:var(--muted);padding:11px 8px;border-radius:12px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.ca28-tabs button.is-active{background:var(--primary);color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--primary) 22%,transparent)}
.ca28-panel{display:none;gap:12px}.ca28-panel.is-active{display:grid}
.ca28-recent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ca28-recent-item{min-width:0;padding:11px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.ca28-recent-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.ca28-recent-head strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ca28-recent-head time{font-size:9px;color:var(--muted);white-space:nowrap}
.ca28-recent-item .ca28-history-tags{justify-content:flex-start;margin-top:8px}
.ca28-omission{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ca28-omit-item{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:4px;padding:11px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.ca28-omit-item>div strong{display:block;font-size:15px;color:var(--text)}.ca28-omit-item>div span{display:block;color:var(--muted);font-size:9px;margin-top:2px}.ca28-omit-item>b{font-size:19px;color:var(--primary);line-height:1}.ca28-omit-item>small{color:var(--muted);font-size:9px;margin-bottom:2px}.ca28-omit-item>i{position:absolute;left:0;bottom:0;width:var(--w);height:3px;background:var(--primary);opacity:.42}.ca28-omit-item.is-hit{background:color-mix(in srgb,var(--primary) 7%,var(--surface))}.ca28-omit-item.is-hit>b{color:#20a77c}
.ca28-trend{overflow:hidden}.ca28-trend-scroll{overflow-x:auto;padding-bottom:4px}.ca28-trend svg{display:block;width:100%;min-width:700px;height:auto;background:var(--surface-2);border-radius:14px}.trend-grid{stroke:var(--line);stroke-width:1}.trend-axis,.trend-issue{fill:var(--muted);font-size:10px}.trend-line{fill:none;stroke:var(--primary);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.trend-dot{fill:var(--surface);stroke:var(--primary);stroke-width:3}.trend-value{fill:var(--text);font-size:10px;font-weight:800}.ca28-trend-note{color:var(--muted);font-size:10px;text-align:center;margin-top:8px}
@media(min-width:680px){.ca28-recent-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ca28-omission{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:430px){.ca28-tabs{gap:5px;padding:5px}.ca28-tabs button{font-size:11px;padding:9px 4px}.ca28-omission{grid-template-columns:repeat(4,minmax(0,1fr))}.ca28-omit-item{padding:9px 8px}.ca28-omit-item>b{font-size:17px}}


/* V14 · 加拿大28完整统计与走势 */
.ca28-ball.ball-a,.ca28-mini-ball.ball-a{background:#3976f2}
.ca28-ball.ball-b,.ca28-mini-ball.ball-b{background:#12aa7b}
.ca28-ball.ball-c,.ca28-mini-ball.ball-c{background:#f39a13}
.ca28-ball.sum{background:linear-gradient(145deg,#ff6b79,#e94561)}
.ca28-current-meta>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ca28-open-badge,.ca28-good-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:7px;font-size:9px;font-weight:700}
.ca28-open-badge{background:color-mix(in srgb,#28b989 12%,var(--surface));color:#1a9a73}
.ca28-good-badge{background:color-mix(in srgb,#28b989 10%,var(--surface));color:#278b70}

.ca28-stat-heading,.ca28-trend-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:2px 2px 12px}
.ca28-stat-heading h2,.ca28-trend-heading h2{margin:0;font-size:22px}
.ca28-stat-heading p,.ca28-trend-heading p{margin:4px 0 0;color:var(--muted);font-size:11px}
.ca28-stat-heading>span{padding:7px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:10px;white-space:nowrap}
.ca28-omission-board{display:grid;gap:12px}
.ca28-stat-card{padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 7px 22px rgba(0,0,0,.03)}
.ca28-stat-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.ca28-stat-title strong{font-size:13px}.ca28-stat-title small{display:block;margin-top:4px;color:var(--muted);font-size:9px;font-weight:400}
.ca28-stat-title>span{padding:5px 8px;border-radius:8px;background:var(--primary-soft);color:var(--primary);font-size:9px;white-space:nowrap}
.ca28-stat-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.ca28-stat-item{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;padding:8px 9px;border-radius:10px;background:var(--surface-2);border:1px solid color-mix(in srgb,var(--line) 78%,transparent)}
.ca28-stat-item span{font-size:11px;font-weight:700;color:var(--text);white-space:nowrap}
.ca28-stat-item b{font-size:11px;color:var(--text);white-space:nowrap}.ca28-stat-item b small{font-size:8px;color:var(--muted);font-weight:500;margin-left:2px}
.ca28-stat-sum .ca28-stat-item:nth-child(-n+8){background:color-mix(in srgb,#f4a321 10%,var(--surface));border-color:color-mix(in srgb,#f4a321 24%,var(--line))}
.ca28-stat-rest{display:contents}
.ca28-stat-rest[hidden]{display:none}
.ca28-show-all{margin-top:9px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:10px;cursor:pointer}
.ca28-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ca28-stat-grid .ca28-stat-items{grid-template-columns:repeat(4,minmax(0,1fr))}
.ca28-stat-grid .ca28-stat-card:nth-child(3) .ca28-stat-items,
.ca28-stat-grid .ca28-stat-card:nth-child(4) .ca28-stat-items{grid-template-columns:repeat(3,minmax(0,1fr))}
.ca28-stat-grid .ca28-stat-card:nth-child(5) .ca28-stat-items,
.ca28-stat-grid .ca28-stat-card:nth-child(6) .ca28-stat-items{grid-template-columns:repeat(3,minmax(0,1fr))}

.ca28-trend-periods{display:flex;gap:5px;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.ca28-trend-periods button{border:0;background:transparent;color:var(--muted);padding:8px 11px;border-radius:9px;font-size:10px;font-weight:700;cursor:pointer}
.ca28-trend-periods button.is-active{background:var(--primary);color:#fff;box-shadow:0 5px 14px color-mix(in srgb,var(--primary) 20%,transparent)}
.ca28-trend-board{display:grid;gap:12px}
.ca28-trend-card,.ca28-seq-card{padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 7px 22px rgba(0,0,0,.03)}
.ca28-trend-card .ca28-trend-scroll{overflow-x:auto}
.ca28-trend-card svg{display:block;min-width:760px;width:100%;height:auto;background:var(--surface)}
.trend-grid{stroke:var(--line);stroke-width:1}.trend-axis,.trend-issue{fill:var(--muted);font-size:10px}
.trend-line{fill:none;stroke:#2f7fe8;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.trend-dot{fill:var(--surface);stroke:#2f7fe8;stroke-width:3}
.ca28-seq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ca28-seq-card>strong{display:block;margin-bottom:9px;font-size:12px}
.ca28-seq-scroll{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.ca28-seq-scroll span{flex:0 0 auto;min-width:32px;padding:7px 8px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);text-align:center;font-size:10px}
.ca28-seq-scroll span.is-current{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,var(--line));background:var(--primary-soft)}
.ca28-trend-note{padding:9px 12px;text-align:center;color:var(--muted);font-size:10px}

@media(min-width:760px){
  .ca28-stat-sum .ca28-stat-items{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:720px){
  .ca28-stat-heading,.ca28-trend-heading{align-items:flex-start;flex-direction:column}
  .ca28-trend-periods{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}
  .ca28-stat-grid{grid-template-columns:1fr}
}
@media(max-width:520px){
  .ca28-stat-items,.ca28-stat-grid .ca28-stat-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ca28-stat-grid .ca28-stat-card:nth-child(3) .ca28-stat-items,
  .ca28-stat-grid .ca28-stat-card:nth-child(4) .ca28-stat-items,
  .ca28-stat-grid .ca28-stat-card:nth-child(5) .ca28-stat-items,
  .ca28-stat-grid .ca28-stat-card:nth-child(6) .ca28-stat-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ca28-seq-grid{grid-template-columns:1fr}
  .ca28-history-item{grid-template-columns:1fr}
  .ca28-mini-equation{justify-content:flex-start}
  .ca28-history-tags{grid-column:auto}
}

/* V15 · 开奖中心桌面/手机端布局优化 */
.main-view[data-view="lottery"],
.ca28-shell,.ca28-panel,.ca28-panel.is-active,.ca28-trend-board,
.ca28-trend-card,.ca28-trend-scroll,.ca28-seq-grid,.ca28-seq-card,
.ca28-history-card,.ca28-history,.ca28-history-item{min-width:0;max-width:100%}
.ca28-panel{overflow:hidden}
.ca28-trend-card,.ca28-seq-card,.ca28-history-card{overflow:hidden}
.ca28-trend-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin}
.ca28-trend-card svg{display:block;max-width:none;min-width:0;height:auto;background:var(--surface)}
.ca28-seq-scroll{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.ca28-history-item{font-variant-numeric:tabular-nums}
.ca28-history-main,.ca28-mini-equation,.ca28-history-tags{min-width:0}
.ca28-mini-equation{justify-content:center}
.ca28-history-tags{align-items:center}

@media(min-width:900px){
  .app-shell{max-width:1120px}
  .topbar{max-width:720px;margin-left:auto;margin-right:auto}
  .main-view:not([data-view="lottery"]){max-width:720px;margin-left:auto;margin-right:auto}
  .main-view[data-view="lottery"]{width:min(980px,100%);margin-left:auto;margin-right:auto}
  .ca28-tabs{padding:8px;gap:10px;border-radius:18px}
  .ca28-tabs button{padding:13px 10px;font-size:14px}
  .ca28-current-card,.ca28-history-card,.ca28-stat-card,.ca28-trend-card,.ca28-seq-card{border-radius:20px}
  .ca28-history-card{padding:18px}
  .ca28-section-title{margin-bottom:14px}
  .ca28-history{gap:9px}
  .ca28-history-item{
    grid-template-columns:190px 300px minmax(220px,1fr);
    gap:18px;
    min-height:72px;
    padding:12px 16px;
    border-radius:14px;
  }
  .ca28-history-main strong{font-size:13px}
  .ca28-history-main time{font-size:10px;margin-top:4px}
  .ca28-mini-equation{justify-content:center;gap:6px}
  .ca28-mini-ball{width:30px;height:30px;font-size:11px}
  .ca28-mini-sum{min-width:26px;text-align:left;font-size:13px}
  .ca28-history-tags{justify-content:flex-start;flex-wrap:nowrap;gap:6px}
  .ca28-history-tags span{min-width:30px;padding:5px 7px;text-align:center;font-size:10px}
  .ca28-trend-card,.ca28-seq-card{padding:18px}
  .ca28-trend-board{gap:14px}
  .ca28-seq-grid{gap:14px}
}

@media(min-width:521px) and (max-width:899px){
  .ca28-history-item{grid-template-columns:minmax(105px,1fr) minmax(190px,auto) minmax(120px,1fr);gap:10px}
  .ca28-history-tags{justify-content:flex-end}
}

@media(max-width:520px){
  main{padding-left:10px;padding-right:10px}
  .lottery-heading{padding-left:2px;padding-right:2px}
  .lottery-heading h1{font-size:21px}
  .api-status{padding:6px 8px;font-size:10px}
  .ca28-tabs{width:100%;gap:4px;padding:4px;border-radius:14px;overflow:hidden}
  .ca28-tabs button{min-width:0;padding:10px 2px;font-size:11px;border-radius:10px}
  .ca28-shell{width:100%}
  .ca28-stat-heading,.ca28-trend-heading{margin-bottom:10px;gap:10px}
  .ca28-stat-heading h2,.ca28-trend-heading h2{font-size:20px}
  .ca28-trend-heading p{line-height:1.55}
  .ca28-trend-periods{width:100%;padding:4px;gap:3px;border-radius:11px}
  .ca28-trend-periods button{padding:9px 3px;font-size:10px}
  .ca28-trend-card,.ca28-seq-card{padding:11px;border-radius:15px}
  .ca28-trend-card .ca28-stat-title{margin-bottom:8px}
  .ca28-trend-card .ca28-stat-title strong{font-size:12px}
  .ca28-trend-scroll{margin:0;padding-bottom:6px}
  .ca28-trend-scroll::after{content:"左右滑动查看完整走势";display:block;text-align:center;color:var(--muted);font-size:9px;padding-top:5px}
  .ca28-seq-card>strong{font-size:11px}
  .ca28-seq-scroll{gap:5px}
  .ca28-seq-scroll span{min-width:29px;padding:6px 6px;font-size:9px}
  .ca28-history-card{padding:11px;border-radius:16px}
  .ca28-section-title{align-items:flex-end;gap:8px;margin-bottom:9px}
  .ca28-section-title h3{font-size:15px}
  .ca28-history{gap:7px}
  .ca28-history-item{
    grid-template-columns:minmax(105px,1fr) auto;
    grid-template-areas:"meta eq" "tags tags";
    column-gap:8px;
    row-gap:8px;
    padding:10px;
    border-radius:12px;
  }
  .ca28-history-main{grid-area:meta}
  .ca28-mini-equation{grid-area:eq;justify-content:flex-end;gap:3px}
  .ca28-history-tags{grid-area:tags;justify-content:flex-end;flex-wrap:wrap;gap:4px;padding-top:1px}
  .ca28-history-main strong{font-size:11px}
  .ca28-history-main time{font-size:8px}
  .ca28-mini-ball{width:22px;height:22px;font-size:9px}
  .ca28-mini-sum{font-size:11px}
  .ca28-history-tags span{padding:4px 6px;font-size:8px}
}

@media(max-width:370px){
  .ca28-history-item{grid-template-columns:1fr;grid-template-areas:"meta" "eq" "tags"}
  .ca28-mini-equation,.ca28-history-tags{justify-content:flex-start}
  .ca28-tabs button{font-size:10px}
}

/* V20 · 遗漏统计恢复为导航站原生卡片布局；数据由源站 5000 期历史实时生成，不使用 iframe。 */


/* V27 · 数据首页/走势图同步源站专用接口，并优化新→旧阅读方向 */
.ca28-recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.ca28-seq-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.ca28-seq-title strong{margin:0!important}
.ca28-seq-title small{color:var(--muted);font-size:9px;white-space:nowrap}
.ca28-seq-scroll{justify-content:flex-start}
.ca28-seq-scroll span.is-current{box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 24%,transparent)}
.ca28-trend-scroll{scroll-behavior:smooth}
.ca28-trend-scroll svg{overflow:visible}
@media(min-width:680px){
  .ca28-recent-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(min-width:900px){
  .ca28-trend-card .ca28-trend-scroll{margin-left:-2px;margin-right:-2px}
  .ca28-seq-scroll{overflow-x:hidden}
}
@media(max-width:520px){
  .ca28-recent-grid{grid-template-columns:1fr}
  .ca28-trend-scroll{margin-left:-2px;margin-right:-2px}
  .ca28-trend-card svg{min-height:280px}
  .ca28-seq-title{align-items:flex-start;flex-direction:column;gap:3px}
  .ca28-seq-scroll{padding-bottom:5px}
}


/* V28 · 和值走势图固定 Y 轴：横向滑动时纵轴刻度始终留在左侧 */
.ca28-trend-frame{
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  align-items:stretch;
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.ca28-trend-yaxis{
  position:relative;
  z-index:4;
  background:var(--surface);
  border-right:1px solid var(--line);
  box-shadow:8px 0 12px -12px rgba(0,0,0,.22);
  user-select:none;
  pointer-events:none;
}
.ca28-trend-yaxis span{
  position:absolute;
  right:9px;
  transform:translateY(-50%);
  color:var(--muted);
  font-size:10px;
  line-height:1;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.ca28-trend-frame .ca28-trend-scroll{
  min-width:0;
  width:100%;
  max-width:100%;
  margin:0!important;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scrollbar-gutter:stable;
}
.ca28-trend-frame .ca28-trend-scroll svg{margin:0;max-width:none}
@media(max-width:520px){
  .ca28-trend-frame{grid-template-columns:38px minmax(0,1fr)}
  .ca28-trend-yaxis span{right:7px;font-size:9px}
}


/* V30 · 五项底部导航 + 联系客服独立页面 */
.bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));padding-left:4px;padding-right:4px}
.bottom-nav button{min-width:0;padding:4px 1px}
.bottom-nav button b{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
.contact-page-heading{margin-bottom:14px}
.contact-page-card{overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}
.contact-page-title{display:flex;align-items:center;gap:13px;padding:18px 20px;background:var(--surface);color:var(--text);border-bottom:1px solid var(--line)}
.contact-page-title strong{display:block;font-size:18px;line-height:1.2}.contact-page-title span{display:block;margin-top:5px;font-size:12px;color:var(--muted)}
.contact-page-list{padding:14px;display:grid;gap:10px}
.contact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 14px 14px 16px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line)}
.contact-row-copy{min-width:0}.contact-row span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.contact-row strong{display:block;min-width:0;font-size:16px;overflow-wrap:anywhere}
.contact-copy{min-width:62px;border:0;border-radius:11px;padding:10px 13px;background:var(--primary-soft);color:var(--primary);font-weight:800;cursor:pointer}
.contact-copy:active{transform:scale(.97)}.contact-copy.is-copied{background:var(--primary-soft);color:var(--primary)}
.contact-empty{text-align:center;color:var(--muted);padding:30px 10px}
.contact-page-tip{text-align:center;color:var(--muted);font-size:11px;padding:13px 4px 3px}
@media(max-width:430px){
  .bottom-nav button span{font-size:18px}.bottom-nav button b{font-size:9.5px}
  .contact-page-card{border-radius:19px}.contact-page-title{padding:15px}
  .contact-page-title strong{font-size:17px}.contact-page-list{padding:11px;gap:9px}.contact-row{padding:13px 11px 13px 13px}.contact-row strong{font-size:15px}.contact-copy{min-width:58px;padding:9px 11px}
}


/* V31 · 首页轮播图片 + 单条滚动公告 */
.banner-slide{cursor:default}
.notice.notice-marquee{overflow:hidden;text-decoration:none;cursor:default}
.notice-viewport{position:relative;min-width:0;flex:1;overflow:hidden;height:22px;display:flex;align-items:center}
.notice-track{display:block;width:max-content;max-width:none;white-space:nowrap;font-size:13px;line-height:22px;will-change:transform;transform:translateX(100%)}
@media(max-width:430px){.notice-track{font-size:12px}.notice-viewport{height:21px}.notice-track{line-height:21px}}

/* V31 · 走势图：Y轴固定；右侧最新一期保留可视空间；手机/电脑横向滑动一致 */
.ca28-trend-frame .ca28-trend-scroll{scroll-padding-right:28px;touch-action:pan-x pan-y}
.ca28-trend-frame .ca28-trend-scroll svg{padding-right:2px}
.ca28-trend-yaxis{align-self:stretch}
.ca28-seq-scroll{scroll-padding-right:10px}


/* V33 · Banner 左右手动切换按钮 */
.banner-wrap{isolation:isolate}
.banner-arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:42px;height:42px;border:1px solid rgba(255,255,255,.48);border-radius:50%;display:grid;place-items:center;padding:0;background:rgba(17,20,31,.34);color:#fff;font-size:32px;line-height:1;font-family:Arial,sans-serif;box-shadow:0 5px 18px rgba(0,0,0,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;user-select:none;transition:background .16s,transform .16s,opacity .16s}
.banner-prev{left:12px}.banner-next{right:12px}
.banner-arrow:hover{background:rgba(17,20,31,.56)}
.banner-arrow:active{transform:translateY(-50%) scale(.92)}
.banner-arrow:focus-visible{outline:3px solid rgba(255,255,255,.8);outline-offset:2px}
@media(max-width:430px){.banner-arrow{width:34px;height:34px;font-size:27px;background:rgba(17,20,31,.30)}.banner-prev{left:8px}.banner-next{right:8px}.banner-dots{bottom:7px}}

/* V34 · 顶部品牌改为纯文字；联系客服页面取消彩色渐变，统一全站卡片风格 */


/* V35 · 顶部站点标题使用主题紫色，与后台强调色统一 */
.brand strong{color:var(--primary)}


/* V36 · 朋友圈图片响应式：单图完整显示，多图保持整齐；电脑/手机分别优化 */
.moment-images{margin-top:2px;align-items:start}
.moment-images.count-1{display:block;width:min(100%,620px)}
.moment-images.count-1 .moment-image{display:flex;width:100%;aspect-ratio:auto;min-height:0;align-items:center;justify-content:center;background:var(--surface-2);border-radius:14px}
.moment-images.count-1 .moment-image img{display:block;width:auto;height:auto;max-width:100%;max-height:720px;object-fit:contain;border-radius:14px}
.moment-images.count-2,.moment-images.count-4{width:min(100%,560px)}
.moment-images.count-3,.moment-images.count-5,.moment-images.count-6,.moment-images.count-7,.moment-images.count-8,.moment-images.count-9{width:min(100%,620px)}
.moment-images:not(.count-1) .moment-image{min-width:0}
.moment-images:not(.count-1) .moment-image img{display:block}
@media(max-width:520px){
  .moment-card{padding:12px;border-radius:16px}
  .moment-images.count-1,.moment-images.count-2,.moment-images.count-3,.moment-images.count-4,.moment-images.count-5,.moment-images.count-6,.moment-images.count-7,.moment-images.count-8,.moment-images.count-9{width:100%;max-width:none}
  .moment-images.count-1 .moment-image{border-radius:12px}
  .moment-images.count-1 .moment-image img{max-height:none;max-width:100%;width:auto;height:auto;border-radius:12px}
  .moment-images{gap:5px}
  .moment-image{border-radius:9px}
}


/* V37 · 朋友圈底部图标固定为微信朋友圈样式的单色图标；修改导航名称不影响图标 */
.bottom-nav .moments-nav-icon{width:22px;height:22px;display:grid;place-items:center;font-size:0;line-height:0;color:inherit}
.bottom-nav .moments-nav-icon svg{display:block;width:21px;height:21px;color:currentColor}
@media(max-width:430px){.bottom-nav .moments-nav-icon{width:20px;height:20px}.bottom-nav .moments-nav-icon svg{width:19px;height:19px}}

/* V38 · 加拿大28数据首页/历史开奖：对齐原开奖数据中心布局 */
.ca28-current-card{padding:18px 20px}
.ca28-main{padding-top:18px}
.ca28-source-current{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);gap:28px;align-items:stretch}
.ca28-source-left{min-width:0;display:flex;flex-direction:column;justify-content:center}
.ca28-source-issue{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.ca28-source-issue strong{font-size:21px;line-height:1.2}
.ca28-equation-large{gap:10px}
.ca28-equation-large .ca28-ball{width:58px;height:58px;font-size:22px;border:4px solid color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 8px 22px rgba(36,64,130,.13)}
.ca28-equation-large .ca28-op{font-size:22px;color:var(--muted)}
.ca28-combination-result{display:inline-flex;align-self:flex-start;margin-top:13px;padding:8px 14px;border-radius:10px;background:color-mix(in srgb,#19aa82 14%,var(--surface));color:#11876a;font-size:25px;font-weight:800;line-height:1}
.ca28-next-line{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px;color:var(--text);font-size:13px}
.ca28-next-line b{font-size:13px}.ca28-next-line em{font-style:normal;font-size:24px;font-weight:500;color:var(--text)!important;margin-left:5px}
.ca28-source-left .ca28-tags{margin-top:14px}
.ca28-source-side{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:center}
.ca28-source-box{min-height:100px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);display:flex;flex-direction:column;justify-content:center}
.ca28-source-box span{color:var(--muted);font-size:11px;margin-bottom:7px}.ca28-source-box strong{font-size:17px;line-height:1.35;font-weight:700;word-break:break-word}
.ca28-source-raw{margin-top:20px;padding:14px 16px;border:1px solid var(--line);background:color-mix(in srgb,var(--primary) 4%,var(--surface-2))}
.ca28-source-raw .ca28-raw-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:7px}.ca28-source-raw .ca28-raw-grid span{min-height:30px}

/* 历史开奖改为数据中心表格 */
.ca28-panel[data-ca28-panel="history"] .ca28-history-card{padding:20px}
.ca28-panel[data-ca28-panel="history"] .ca28-section-title{margin-bottom:14px}
.ca28-panel[data-ca28-panel="history"] .ca28-section-title h3{font-size:22px}
.ca28-history-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface);-webkit-overflow-scrolling:touch}
.ca28-history-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.ca28-history-table th,.ca28-history-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}
.ca28-history-table thead th{position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--primary) 4%,var(--surface-2));color:var(--text);font-size:12px;font-weight:700}
.ca28-history-table tbody tr:last-child td{border-bottom:0}.ca28-history-table tbody tr:hover td{background:color-mix(in srgb,var(--primary) 2.5%,var(--surface))}
.ca28-history-table td{font-size:12px;color:var(--muted)}.ca28-history-table td strong{color:var(--text);font-size:13px}.ca28-history-table time{font-size:11px;color:var(--muted)}
.ca28-number-text{color:var(--text)}.ca28-sum-text{font-size:13px;color:var(--text)}
.ca28-combo-pill{display:inline-flex;padding:5px 8px;border-radius:8px;font-weight:700;background:color-mix(in srgb,#1bb18a 12%,var(--surface));color:#14896d}.ca28-combo-pill.is-big{background:color-mix(in srgb,#1bb18a 12%,var(--surface));color:#14896d}

@media(max-width:760px){
  .ca28-current-card{padding:14px}
  .ca28-source-current{grid-template-columns:1fr;gap:16px}
  .ca28-source-issue{margin-bottom:15px}.ca28-source-issue strong{font-size:17px}
  .ca28-equation-large .ca28-ball{width:48px;height:48px;font-size:18px;border-width:3px}.ca28-equation-large{gap:6px}.ca28-equation-large .ca28-op{font-size:17px}
  .ca28-combination-result{font-size:20px;padding:7px 11px}
  .ca28-next-line{gap:8px 14px;margin-top:14px;font-size:11px}.ca28-next-line b{font-size:11px}.ca28-next-line em{font-size:19px}
  .ca28-source-side{grid-template-columns:1fr 1fr;gap:8px}.ca28-source-box{min-height:78px;padding:11px 12px}.ca28-source-box strong{font-size:13px}.ca28-source-box span{font-size:9px}
  .ca28-source-raw{margin-top:14px;padding:10px}.ca28-source-raw .ca28-raw-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.ca28-source-raw .ca28-raw-grid span{min-height:27px}
  .ca28-panel[data-ca28-panel="history"] .ca28-history-card{padding:12px}.ca28-panel[data-ca28-panel="history"] .ca28-section-title h3{font-size:17px}
  .ca28-history-table-wrap{border-radius:12px}.ca28-history-table{min-width:780px}.ca28-history-table th,.ca28-history-table td{padding:11px 12px;font-size:11px}
}
@media(max-width:420px){
  .ca28-source-side{grid-template-columns:1fr 1fr}.ca28-source-box{min-height:72px}
  .ca28-equation-large .ca28-ball{width:43px;height:43px;font-size:16px}.ca28-equation-large .ca28-op{font-size:15px}
  .ca28-next-line{display:grid;grid-template-columns:1fr}.ca28-next-line em{font-size:18px}
}


/* V39 · 联系客服底部图标固定为单色 SVG，避免系统彩色 emoji */
.contact-nav-icon{width:22px;height:22px;display:grid!important;place-items:center;line-height:1;font-size:21px!important;font-family:"Segoe UI Symbol","Arial Unicode MS",sans-serif!important;font-variant-emoji:text;color:inherit}

/* V41 platform corner badges */
.nav-corner-badge{position:absolute;right:-5px;top:-7px;z-index:3;max-width:80%;padding:4px 7px;border-radius:999px;color:#fff;font-size:9px;font-weight:800;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 3px 9px rgba(0,0,0,.15);pointer-events:none}.nav-corner-badge.red{background:#ff4d5f}.nav-corner-badge.purple{background:#7a52f4}@media(max-width:430px){.nav-corner-badge{right:-4px;top:-6px;padding:3px 6px;font-size:8px}}

/* V42 badge: attach directly to app image corner */
.nav-icon{position:relative;overflow:visible}
.nav-icon img{border-radius:inherit}
.nav-corner-badge{right:-8px;top:-7px;max-width:92%;padding:4px 7px;font-size:9px}
@media(max-width:430px){.nav-corner-badge{right:-7px;top:-6px;padding:3px 6px;font-size:8px}}

/* V43 · App角标移到图片右侧上方，减少与图片重叠感 */
.nav-corner-badge{
  right:-46px;
  top:0;
  max-width:68px;
  padding:4px 8px;
  font-size:9px;
  box-shadow:0 3px 8px rgba(0,0,0,.12);
}
@media(max-width:430px){
  .nav-corner-badge{
    right:-30px;
    top:-1px;
    max-width:52px;
    padding:3px 6px;
    font-size:8px;
  }
}

/* V45 · 底部导航整体等比例放大，提升手机/电脑可读性 */
:root{--nav-h:86px}
.bottom-nav{padding-top:8px;padding-bottom:env(safe-area-inset-bottom)}
.bottom-nav button{gap:5px;padding:5px 1px}
.bottom-nav button>span{font-size:24px;line-height:1}
.bottom-nav button b{font-size:12px;line-height:1.15;font-weight:700}
.bottom-nav .moments-nav-icon{width:26px;height:26px}
.bottom-nav .moments-nav-icon svg{width:25px;height:25px}
.bottom-nav .contact-nav-icon{font-size:24px;line-height:1}
@media(max-width:430px){
  :root{--nav-h:84px}
  .bottom-nav{padding-top:7px}
  .bottom-nav button{gap:4px}
  .bottom-nav button>span{font-size:23px}
  .bottom-nav button b{font-size:11.5px}
  .bottom-nav .moments-nav-icon{width:25px;height:25px}
  .bottom-nav .moments-nav-icon svg{width:24px;height:24px}
  .bottom-nav .contact-nav-icon{font-size:23px}
}

/* V46 · 推荐平台/模拟器/深夜福利与实用工具统一为三列，并整体放大 */
.icon-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.nav-card{
  padding:16px 8px 13px;
  border-radius:18px;
}
.nav-icon{
  width:64px;
  height:64px;
  margin-bottom:10px;
  border-radius:18px;
  font-size:18px;
}
.nav-card strong{
  font-size:15px;
  line-height:1.25;
}
.nav-card small{
  font-size:12px;
  line-height:1.4;
  margin-top:5px;
}

/* 实用工具说明允许完整展示，不再在手机端只露出一小段 */
.tool-grid .nav-card small{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  min-height:3.9em;
  word-break:break-word;
}

@media(max-width:430px){
  .icon-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
  }
  .nav-card{
    padding:13px 5px 11px;
    border-radius:16px;
  }
  .nav-icon{
    width:58px;
    height:58px;
    margin-bottom:9px;
    border-radius:17px;
    font-size:17px;
  }
  .nav-card strong{
    font-size:13.5px;
    line-height:1.25;
  }
  .nav-card small{
    font-size:11.5px;
    line-height:1.35;
    margin-top:4px;
  }
  .tool-grid .nav-card small{
    -webkit-line-clamp:4;
    min-height:5.4em;
  }
}

@media(max-width:340px){
  .icon-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .nav-icon{width:54px;height:54px}
  .nav-card strong{font-size:13px}
  .nav-card small{font-size:11px}
}


/* V47 · 强制三列并重新优化平台/工具比例（修复旧缓存仍显示四列） */
.platform-panel .icon-grid,
.main-view[data-view="tools"] .icon-grid,
.tool-grid{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
}
.platform-panel .nav-card,
.main-view[data-view="tools"] .nav-card{
  padding:18px 10px 15px !important;
  border-radius:20px !important;
  min-height:154px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.platform-panel .nav-icon,
.main-view[data-view="tools"] .nav-icon{
  width:70px !important;
  height:70px !important;
  border-radius:20px !important;
  margin:0 auto 11px !important;
  font-size:20px !important;
  flex:0 0 auto;
}
.platform-panel .nav-card strong,
.main-view[data-view="tools"] .nav-card strong{
  font-size:16px !important;
  line-height:1.3 !important;
  width:100%;
}
.platform-panel .nav-card small,
.main-view[data-view="tools"] .nav-card small{
  font-size:12.5px !important;
  line-height:1.45 !important;
  margin-top:6px !important;
  width:100%;
}
.main-view[data-view="tools"] .nav-card small{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  display:-webkit-box !important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  min-height:5.8em;
  word-break:break-word;
}
@media(max-width:430px){
  .platform-panel .icon-grid,
  .main-view[data-view="tools"] .icon-grid,
  .tool-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  .platform-panel .nav-card,
  .main-view[data-view="tools"] .nav-card{
    min-height:136px;
    padding:13px 5px 12px !important;
    border-radius:17px !important;
  }
  .platform-panel .nav-icon,
  .main-view[data-view="tools"] .nav-icon{
    width:60px !important;
    height:60px !important;
    border-radius:18px !important;
    margin-bottom:9px !important;
    font-size:18px !important;
  }
  .platform-panel .nav-card strong,
  .main-view[data-view="tools"] .nav-card strong{
    font-size:14px !important;
  }
  .platform-panel .nav-card small,
  .main-view[data-view="tools"] .nav-card small{
    font-size:11.5px !important;
    line-height:1.4 !important;
    margin-top:5px !important;
  }
  .main-view[data-view="tools"] .nav-card small{
    -webkit-line-clamp:5;
    min-height:7em;
  }
}

/* V48 · 全站前台比例协调：平台分段、工具分类、标题与三列卡片统一放大 */
main{padding:16px 16px 24px}
.segmented{
  margin:18px 0 18px;
  padding:6px;
  border-radius:18px;
  gap:6px;
}
.segmented button{
  min-height:50px;
  padding:12px 10px;
  border-radius:14px;
  font-size:15px;
  line-height:1.2;
  letter-spacing:.2px;
}
.grid-title{margin:8px 3px 12px}
.grid-title h2{font-size:19px;line-height:1.25}
.grid-title span{font-size:13px}
.page-heading{padding:7px 3px 16px}
.page-heading h1{font-size:25px;line-height:1.2;margin-bottom:5px}
.page-heading p{font-size:14px;line-height:1.45}

.platform-panel .icon-grid,
.main-view[data-view="tools"] .icon-grid,
.tool-grid{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:15px !important;
}
.platform-panel .nav-card,
.main-view[data-view="tools"] .nav-card{
  padding:20px 12px 16px !important;
  min-height:168px;
  border-radius:21px !important;
}
.platform-panel .nav-icon,
.main-view[data-view="tools"] .nav-icon{
  width:76px !important;
  height:76px !important;
  border-radius:21px !important;
  margin-bottom:12px !important;
  font-size:22px !important;
}
.platform-panel .nav-card strong,
.main-view[data-view="tools"] .nav-card strong{
  font-size:16.5px !important;
  line-height:1.3 !important;
}
.platform-panel .nav-card small,
.main-view[data-view="tools"] .nav-card small{
  font-size:13px !important;
  line-height:1.5 !important;
  margin-top:6px !important;
}
.main-view[data-view="tools"] .nav-card{min-height:196px}
.main-view[data-view="tools"] .nav-card small{
  -webkit-line-clamp:5;
  min-height:0;
}

.tool-tabs{
  gap:10px;
  padding:0 1px 16px;
  align-items:center;
}
.tool-tabs button{
  flex:0 0 auto;
  padding:12px 18px;
  min-height:46px;
  border-radius:999px;
  font-size:14px;
  line-height:1.2;
  font-weight:700;
}

@media(max-width:430px){
  main{padding:13px 11px 22px}
  .segmented{margin:14px 0 15px;padding:5px;gap:4px;border-radius:16px}
  .segmented button{min-height:45px;padding:10px 5px;font-size:14px;border-radius:12px}
  .grid-title{margin:7px 2px 10px}
  .grid-title h2{font-size:17px}
  .grid-title span{font-size:11.5px}
  .page-heading{padding:5px 2px 13px}
  .page-heading h1{font-size:22px}
  .page-heading p{font-size:13px}

  .platform-panel .icon-grid,
  .main-view[data-view="tools"] .icon-grid,
  .tool-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:9px !important;
  }
  .platform-panel .nav-card,
  .main-view[data-view="tools"] .nav-card{
    padding:14px 6px 12px !important;
    min-height:144px;
    border-radius:18px !important;
  }
  .platform-panel .nav-icon,
  .main-view[data-view="tools"] .nav-icon{
    width:62px !important;
    height:62px !important;
    border-radius:18px !important;
    margin-bottom:9px !important;
    font-size:19px !important;
  }
  .platform-panel .nav-card strong,
  .main-view[data-view="tools"] .nav-card strong{
    font-size:14px !important;
    line-height:1.3 !important;
  }
  .platform-panel .nav-card small,
  .main-view[data-view="tools"] .nav-card small{
    font-size:11.5px !important;
    line-height:1.45 !important;
    margin-top:5px !important;
  }
  .main-view[data-view="tools"] .nav-card{min-height:174px}
  .main-view[data-view="tools"] .nav-card small{
    -webkit-line-clamp:6;
    min-height:0;
  }
  .tool-tabs{gap:8px;padding-bottom:14px}
  .tool-tabs button{padding:10px 15px;min-height:42px;font-size:13px}
}

@media(max-width:350px){
  .segmented button{font-size:13px}
  .platform-panel .icon-grid,
  .main-view[data-view="tools"] .icon-grid,
  .tool-grid{gap:7px !important}
  .platform-panel .nav-icon,
  .main-view[data-view="tools"] .nav-icon{width:58px !important;height:58px !important}
  .tool-tabs button{padding:9px 13px;font-size:12.5px}
}

/* V49 · 开奖中心字体与移动端可读性统一优化 */
.ca28-tabs button{font-size:14px;font-weight:750;letter-spacing:.01em}
.ca28-card-top h2{font-size:22px}
.ca28-section-title h3{font-size:16px}
.ca28-stat-title strong{font-size:14px}
.ca28-trend-card .ca28-stat-title strong,.ca28-seq-card>strong{font-size:13px}
.ca28-stat-item span,.ca28-stat-item b{font-size:12px}
.ca28-stat-item b small{font-size:9px}
.ca28-trend-periods button{font-size:11px}
.trend-axis,.trend-issue{font-size:11px}
.ca28-seq-scroll span{font-size:11px}

@media(max-width:520px){
  .lottery-heading h1{font-size:23px;line-height:1.22}
  .lottery-heading p{font-size:13px;line-height:1.5}
  .api-status{font-size:11px;padding:7px 9px}

  /* 四个主栏目：手机端不再显得细小 */
  .ca28-tabs{gap:4px;padding:5px;border-radius:15px;margin-bottom:14px}
  .ca28-tabs button{
    min-height:48px;
    padding:11px 3px;
    border-radius:11px;
    font-size:13.5px;
    font-weight:800;
    line-height:1.15;
  }

  /* 数据首页 */
  .ca28-current-card{padding:15px;border-radius:18px}
  .ca28-card-top .eyebrow{font-size:12px}
  .ca28-card-top h2{font-size:23px;line-height:1.25}
  .ca28-refresh{font-size:12.5px;padding:9px 12px}
  .ca28-current-meta strong{font-size:16px}
  .ca28-current-meta time{font-size:11.5px}
  .ca28-ball{width:42px;height:42px;font-size:16px}
  .ca28-op{font-size:17px}
  .ca28-tag{font-size:12px;padding:6px 9px}
  .ca28-info-box{padding:11px 12px}
  .ca28-info-box span{font-size:11px}
  .ca28-info-box strong{font-size:13px}
  .ca28-raw-head strong{font-size:12px}
  .ca28-raw-head span{font-size:10.5px}
  .ca28-raw-grid span{font-size:11px;min-height:29px}
  .ca28-section-title h3{font-size:17px}
  .ca28-section-title span,.ca28-section-title small{font-size:11px}
  .ca28-recent-head strong{font-size:12px}
  .ca28-recent-head time{font-size:9.5px}

  /* 历史开奖 */
  .ca28-history-card{padding:12px}
  .ca28-history-main strong{font-size:12.5px}
  .ca28-history-main time{font-size:9.5px;line-height:1.35}
  .ca28-mini-ball{width:25px;height:25px;font-size:10px}
  .ca28-mini-sum{font-size:12px}
  .ca28-history-tags span{font-size:9.5px;padding:5px 7px}

  /* 遗漏统计 */
  .ca28-stat-heading h2,.ca28-trend-heading h2{font-size:22px;line-height:1.2}
  .ca28-stat-heading p,.ca28-trend-heading p{font-size:12px;line-height:1.55}
  .ca28-stat-heading>span{font-size:10.5px}
  .ca28-stat-card{padding:13px;border-radius:16px}
  .ca28-stat-title strong{font-size:14px}
  .ca28-stat-title small{font-size:10px;line-height:1.4}
  .ca28-stat-title>span{font-size:10px;padding:5px 8px}
  .ca28-stat-item{padding:9px 10px;min-height:39px}
  .ca28-stat-item span,.ca28-stat-item b{font-size:12px}
  .ca28-stat-item b small{font-size:9px}
  .ca28-show-all{font-size:11px;padding:8px 11px}

  /* 走势图 */
  .ca28-trend-periods button{font-size:12px;font-weight:800;min-height:40px}
  .ca28-trend-card,.ca28-seq-card{padding:12px}
  .ca28-trend-card .ca28-stat-title strong{font-size:13px}
  .trend-axis,.trend-issue{font-size:11px}
  .ca28-seq-card>strong,.ca28-seq-title strong{font-size:12.5px}
  .ca28-seq-title small{font-size:10px}
  .ca28-seq-scroll span{font-size:10.5px;min-width:31px;padding:7px}
  .ca28-trend-note{font-size:10.5px;line-height:1.5}
  .ca28-trend-scroll::after{font-size:10px}
}

@media(max-width:370px){
  .ca28-tabs button{font-size:12.5px;min-height:45px}
  .ca28-card-top h2{font-size:21px}
  .ca28-stat-heading h2,.ca28-trend-heading h2{font-size:20px}
}


/* V50 · 形态遗漏最长项高亮 */
.ca28-stat-grid .ca28-stat-card:nth-child(5) .ca28-stat-item.is-longest,
.ca28-stat-grid .ca28-stat-card:nth-child(6) .ca28-stat-item.is-longest{
  background:color-mix(in srgb,#f4a321 11%,var(--surface));
  border-color:color-mix(in srgb,#f4a321 34%,var(--line));
}
.ca28-stat-grid .ca28-stat-card:nth-child(5) .ca28-stat-item.is-longest span,
.ca28-stat-grid .ca28-stat-card:nth-child(5) .ca28-stat-item.is-longest b,
.ca28-stat-grid .ca28-stat-card:nth-child(6) .ca28-stat-item.is-longest span,
.ca28-stat-grid .ca28-stat-card:nth-child(6) .ca28-stat-item.is-longest b{font-weight:800}


/* V51 · 工具分类筛选兜底 */
.tool-grid .tool-item[hidden],.tool-grid .tool-item.is-hidden{display:none!important}

/* V54 · 朋友圈视频与媒体适配 */
.moment-video{min-width:0;border-radius:12px;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center}
.moment-video video{display:block;width:100%;max-height:620px;background:#000;object-fit:contain}
.moment-images.count-1 .moment-video{width:min(100%,620px);aspect-ratio:auto}
.moment-images:not(.count-1) .moment-video{aspect-ratio:1}
.moment-images:not(.count-1) .moment-video video{width:100%;height:100%;object-fit:cover}
@media(max-width:430px){
  .moment-video{border-radius:10px}
  .moment-images.count-1 .moment-video{width:100%}
  .moment-images.count-1 .moment-video video{width:100%;max-height:70vh;object-fit:contain}
}

/* V61 · 朋友圈视频和图片统一布局 */
.moment-images .moment-media-item{min-width:0}
.moment-images.count-1 .moment-video{width:min(100%,620px);min-height:220px;aspect-ratio:16/9;border-radius:14px}
.moment-images:not(.count-1) .moment-video{aspect-ratio:1;border-radius:10px}
.moment-images:not(.count-1) .moment-video video{width:100%;height:100%;max-height:none;object-fit:cover}
.moment-video video{display:block;width:100%;height:100%;background:#000}
@media(max-width:520px){
  .moment-images.count-1 .moment-video{width:100%;min-height:0;aspect-ratio:16/9;border-radius:12px}
  .moment-images:not(.count-1) .moment-video{border-radius:9px}
}


/* V63 · 历史开奖卡片化 + 开奖中心四模块无刷新局部更新 */
.ca28-history-page-card{padding:18px!important}
.ca28-history-page-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  margin-bottom:14px;padding-bottom:2px;
}
.ca28-history-page-head .eyebrow{
  display:block;margin-bottom:4px;color:var(--primary);
  font-size:10px;font-weight:800;letter-spacing:.14em;
}
.ca28-history-page-head h3{margin:0;font-size:22px;line-height:1.2}
.ca28-history-page-head small{display:block;margin-top:5px;color:var(--muted);font-size:10px}
.ca28-history-refresh{flex:0 0 auto;background:var(--surface)}

.ca28-panel[data-ca28-panel="history"] .ca28-history{
  display:grid;grid-template-columns:1fr;gap:10px;
}
.ca28-history-result-card{
  min-width:0;padding:14px 16px;
  border:1px solid var(--line);border-radius:14px;
  background:var(--surface);
  box-shadow:0 2px 8px rgba(31,42,73,.025);
  font-variant-numeric:tabular-nums;
}
.ca28-history-result-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:10px;
}
.ca28-history-result-head strong{font-size:13px;line-height:1.2;color:var(--text)}
.ca28-history-result-head time{font-size:10px;color:var(--muted);white-space:nowrap}
.ca28-history-equation{
  display:flex;align-items:center;gap:6px;min-width:0;
}
.ca28-history-ball{
  width:31px;height:31px;border-radius:50%;
  display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800;
  box-shadow:0 4px 10px rgba(32,56,110,.10);
}
.ca28-history-ball.ball-a{background:#3976f2}
.ca28-history-ball.ball-b{background:#12aa7b}
.ca28-history-ball.ball-c{background:#f39a13}
.ca28-history-equation i{font-style:normal;color:var(--muted);font-size:12px;font-weight:700}
.ca28-history-equation b{margin-left:2px;color:#ef4962;font-size:18px;line-height:1;font-weight:850}
.ca28-history-result-tags{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:9px;
}
.ca28-history-result-tags span{
  padding:5px 7px;border-radius:7px;
  background:var(--surface-2);color:var(--muted);
  font-size:9px;line-height:1;font-weight:600;
}
.ca28-history-result-card.is-new-result{
  animation:ca28NewResult .8s ease both;
  border-color:color-mix(in srgb,var(--primary) 32%,var(--line));
}
@keyframes ca28NewResult{
  0%{background:color-mix(in srgb,var(--primary) 12%,var(--surface));transform:translateY(-2px)}
  100%{background:var(--surface);transform:none}
}

/* 旧表格样式保留但不再用于历史开奖，避免升级覆盖时影响其他页面 */
@media(min-width:760px){
  .ca28-panel[data-ca28-panel="history"] .ca28-history{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:759px){
  .ca28-history-page-card{padding:12px!important;border-radius:17px}
  .ca28-history-page-head{margin-bottom:12px}
  .ca28-history-page-head h3{font-size:19px}
  .ca28-history-page-head small{font-size:9.5px}
  .ca28-history-refresh{padding:8px 11px;font-size:11px}
  .ca28-history-result-card{
    padding:13px 14px;border-radius:13px;
  }
  .ca28-history-result-head{margin-bottom:9px}
  .ca28-history-result-head strong{font-size:12.5px}
  .ca28-history-result-head time{font-size:9px}
  .ca28-history-ball{width:30px;height:30px;font-size:12px}
  .ca28-history-equation{gap:5px}
  .ca28-history-equation b{font-size:18px}
  .ca28-history-result-tags{margin-top:8px;gap:4px}
  .ca28-history-result-tags span{font-size:9px;padding:5px 6px}
}
@media(max-width:390px){
  .ca28-history-page-head h3{font-size:18px}
  .ca28-history-result-card{padding:12px}
  .ca28-history-result-head strong{font-size:12px}
  .ca28-history-result-head time{font-size:8.5px}
  .ca28-history-ball{width:29px;height:29px;font-size:11.5px}
  .ca28-history-equation b{font-size:17px}
}


/* V64: 数据首页形态改为小标签；历史开奖固定单列 */
.ca28-panel[data-ca28-panel="history"] .ca28-history{grid-template-columns:1fr!important}
@media(min-width:760px){
  .ca28-panel[data-ca28-panel="history"] .ca28-history{grid-template-columns:1fr!important}
}

.ca28-source-current .ca28-tags{margin-top:12px;gap:7px}
.ca28-source-current .ca28-tag{
  padding:7px 10px;
  border-radius:10px;
  background:var(--surface-2);
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.ca28-source-current .ca28-tags .ca28-tag:first-child{
  background:color-mix(in srgb,#22b07d 14%,var(--surface));
  color:#168868;
}
@media(max-width:759px){
  .ca28-source-current .ca28-tags{margin-top:10px;gap:6px}
  .ca28-source-current .ca28-tag{padding:6px 9px;font-size:11px;border-radius:9px}
}
