/* ==========================================================================
   秋泽吉数 · 网页前端 · 功能视图样式
   --------------------------------------------------------------------------
   本文件由 deploy/index.html 的内联 <style> 自动切分而来（split-css.mjs）。
   令牌与共享组件见 ../../shared/；主题映射见 themes.css。
   ========================================================================== */

.kj-control{flex-wrap:wrap}

.kj-game{flex:1 1 21%;min-width:60px;padding:10px 2px}

.period-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}

/* 赞助折叠块 */
.sponsor-fold{margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden}

.sf-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-family:"Noto Serif SC",serif;font-size:13px;color:var(--text-accent);letter-spacing:1px;cursor:pointer}

.sf-arrow{color:var(--ink-dim);font-size:12px;transition:.2s}

.sponsor-fold.open .sf-arrow{transform:rotate(90deg)}

.sf-body{padding:2px 16px 16px;text-align:center}

.sf-body .s{font-size:12px;color:var(--ink-dim);margin-bottom:10px}

.sf-body img{width:150px;height:150px;border-radius:12px;border:1px solid var(--line)}

.sf-body .thanks{color:var(--gold-hi);font-weight:600;font-size:12px;margin-top:8px}

.sf-body .note{font-size:11.5px;color:var(--ink-dim);margin-top:8px;line-height:1.6}

.star{position:absolute;border-radius:50%;background:#fff;opacity:.5;animation:twinkle 3.5s infinite ease-in-out}

.clock{text-align:right;line-height:1}

.clock .t{font-family:"Noto Serif SC",serif;font-size:26px;color:var(--text-accent);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px}

.clock .t b{color:#fff;font-weight:700}

.clock .d{font-size:10px;color:var(--ink-dim);margin-top:3px;letter-spacing:1px}

/* 摇号 */
.game-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}

.game-btn{flex:1 1 calc(33.333% - 6px);min-width:0;padding:11px 0;cursor:pointer;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:var(--ink-dim);font-family:"Noto Serif SC",serif;font-size:15px;letter-spacing:1px;transition:.2s;user-select:none;text-align:center}

.game-btn.on{background:linear-gradient(135deg,var(--gold-deep),var(--gold));border-color:var(--text-accent);color:var(--on-accent);font-weight:700;box-shadow:0 8px 22px var(--brand-glow)}

.game-btn small{display:block;font-family:"Noto Sans SC",sans-serif;font-size:10px;font-weight:400;color:inherit;opacity:.8;margin-top:2px}

.mode-chip{cursor:pointer;padding:7px 14px;border:1px solid var(--line);border-radius:20px;color:var(--ink-dim);background:rgba(255,255,255,.03);transition:.2s;user-select:none;letter-spacing:1px}

.mode-chip.on{background:linear-gradient(135deg,var(--gold-deep),var(--gold));border-color:var(--text-accent);color:var(--on-accent);font-weight:600}

.play-note{margin-bottom:8px;font-size:11px;color:var(--text-violet);text-align:center}

.tile{width:60px;height:82px;position:relative;background:linear-gradient(180deg,var(--panel),var(--bg));border:1px solid var(--line);border-radius:15px;box-shadow:0 10px 24px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.06);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:"Noto Serif SC",serif}

.tile .num{font-size:40px;font-weight:900;color:var(--text-accent);line-height:1;text-shadow:0 0 18px var(--brand-glow)}

.tile .ord{font-size:9.5px;color:var(--ink-dim);letter-spacing:2px;margin-top:5px}

.tile.gold{background:linear-gradient(180deg,var(--panel2),var(--bg2));border-color:var(--text-accent);box-shadow:0 10px 24px var(--brand-glow),inset 0 1px 0 rgba(255,255,255,.08)}

body .tile.red,body .tile.blue{width:74px;height:74px;border-radius:50%;flex-direction:column;justify-content:center}

body .tile.red{background:radial-gradient(circle at 32% 28%,#fff,var(--brand-soft) 42%,var(--brand-line) 72%,var(--brand));border-color:var(--brand-ring);box-shadow:0 10px 24px var(--brand-ring),inset 0 1px 0 rgba(255,255,255,.85)}

body .tile.blue{background:radial-gradient(circle at 32% 28%,#fff,var(--brand-soft) 42%,var(--brand-line) 72%,var(--brand));border-color:var(--brand-ring);box-shadow:0 10px 24px var(--brand-ring),inset 0 1px 0 rgba(255,255,255,.85)}

body .tile.red .num,body .tile.blue .num{color:#fff;font-family:"Arial Black","Segoe UI",system-ui,-apple-system,sans-serif;font-size:38px;font-weight:900;letter-spacing:1px;line-height:1;text-shadow:0 2px 8px var(--brand-ring),0 0 3px rgba(200,80,140,.35)}

body .tile.red .ord,body .tile.blue .ord{display:none}

.click-fx-star{position:fixed;width:6px;height:6px;border-radius:50%;background:var(--gold-hi);box-shadow:0 0 6px rgba(255,226,138,.9);pointer-events:none;z-index:9999;animation:starFly .55s ease-out forwards}

.tile.rolling{animation:tilePulse .16s ease-in-out infinite}

.tile.rolling .num{animation:numRoll .16s linear infinite alternate}

.go-btn{display:inline-flex;align-items:center;gap:10px;cursor:pointer;border:none;margin-top:6px;padding:14px 44px;border-radius:40px;background:linear-gradient(135deg,var(--gold-deep),var(--gold) 70%);color:var(--on-accent);font-family:"Noto Serif SC",serif;font-size:17px;font-weight:700;letter-spacing:4px;box-shadow:0 12px 30px rgba(216,185,106,.4);transition:.18s}

.go-btn:active{transform:scale(.96)}

.go-btn svg{width:18px;height:18px;fill:var(--on-accent)}

.hint{margin-top:11px;font-size:11.5px;color:var(--ink-dim);line-height:1.7;text-align:center}

.hint b{color:var(--text-accent);font-weight:600}

.gen-btn{width:100%;cursor:pointer;border:none;margin-top:6px;padding:14px;border-radius:14px;background:linear-gradient(135deg,var(--gold-deep),var(--gold));color:var(--on-accent);font-family:"Noto Serif SC",serif;font-size:16px;font-weight:700;letter-spacing:3px;box-shadow:0 10px 26px var(--brand-glow);transition:.18s}

.gen-btn:active{transform:scale(.98)}

.luck-chip{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"Noto Serif SC",serif;font-size:20px;font-weight:700;color:var(--on-accent);background:linear-gradient(135deg,var(--gold-deep),var(--gold));box-shadow:0 6px 16px rgba(216,185,106,.3)}

/* 开奖查询 */
.kj-control{display:flex;gap:8px;margin-bottom:12px}

.kj-game{flex:1;padding:11px 0;cursor:pointer;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:var(--ink-dim);font-family:"Noto Serif SC",serif;font-size:14px;letter-spacing:1px;transition:.2s;text-align:center;user-select:none}

.kj-game.on{background:linear-gradient(135deg,var(--gold-deep),var(--gold));border-color:var(--text-accent);color:var(--on-accent);font-weight:700}

.kj-live{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:12px;color:var(--ink-dim)}

.kj-box{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:14px;padding:16px;text-align:center;margin-bottom:12px}

.kj-box .meta{font-size:11.5px;color:var(--ink-dim);margin-bottom:10px}

.kj-box .meta b{color:var(--text-accent)}

.kj-num{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}

.kj-tile{min-width:42px;height:50px;background:linear-gradient(180deg,var(--panel),var(--bg));border:1px solid var(--gold-hi);border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:"Noto Serif SC",serif;font-size:24px;font-weight:900;color:var(--text-accent)}

.kj-tile.special{background:linear-gradient(135deg,var(--gold-deep),var(--gold));color:var(--on-accent)}

.kj-tile.red{width:52px;height:52px;min-width:52px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff,var(--brand-soft) 42%,var(--brand-line) 72%,var(--brand));border-color:var(--brand-ring);color:#fff;text-shadow:0 2px 6px rgba(255,95,168,.35)}

.kj-tile.blue{width:52px;height:52px;min-width:52px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff,var(--brand-soft) 42%,var(--brand-line) 72%,var(--brand));border-color:var(--brand-ring);color:#fff;text-shadow:0 2px 6px rgba(99,140,255,.35)}

.kj-status{font-size:12px;color:var(--ink-dim);line-height:1.8;text-align:center;padding:10px}

.kj-history{width:100%;border-collapse:collapse;font-size:11.5px}

.kj-history th,.kj-history td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:center}

.kj-history th{color:var(--text-accent);font-weight:600;background:rgba(255,255,255,.03)}

.kj-history td{color:var(--ink)}

.kj-history .num{font-family:"Noto Serif SC",serif;font-weight:700;color:var(--text-accent);letter-spacing:2px}

.sponsor-btn{cursor:pointer;border:1px solid var(--gold-hi);background:linear-gradient(135deg,var(--gold-deep),var(--gold));color:var(--on-accent);padding:7px 16px;border-radius:20px;font-family:"Noto Serif SC",serif;font-size:12.5px;font-weight:700;letter-spacing:2px;box-shadow:0 6px 16px var(--brand-glow);transition:.18s}

.sponsor-btn:active{transform:scale(.94)}

.act-row{display:flex;gap:10px;justify-content:center;margin-top:12px;flex-wrap:wrap}

.act-row .ref-btn{margin:0}

.ggl-stat{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:12px;font-size:11.5px;color:var(--ink-dim)}

.ggl-stat b{color:var(--text-accent);font-weight:600}

.ref-btn{cursor:pointer;border:1px solid var(--gold-hi);background:rgba(216,185,106,.12);color:var(--text-accent);padding:8px 16px;border-radius:12px;font-family:"Noto Serif SC",serif;font-size:12px;letter-spacing:1px;transition:.18s;flex-shrink:0}

.ref-btn:active{transform:scale(.96)}

.period-row{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap;justify-content:center}

.p-chip{padding:6px 11px;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03);color:var(--ink-dim);font-size:11px;letter-spacing:.5px;transition:.15s;user-select:none;font-family:"Noto Sans SC",sans-serif}

.p-chip.on{background:var(--brand-soft);color:var(--text-accent);border-color:var(--gold-hi)}

.p-chip:active{transform:scale(.94)}

.kj-note{font-size:10.5px;color:var(--ink-dim);opacity:.75;margin-top:8px;line-height:1.6}

.ai-expl{margin-top:14px;padding:14px 16px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:14px;text-align:left;font-size:12.5px;line-height:1.9;color:var(--ink-dim)}

.ai-expl b{color:var(--text-accent)}

.ai-engine{display:inline-block;margin-bottom:10px;padding:3px 12px;border:1px solid var(--gold-hi);border-radius:999px;color:var(--text-accent);font-size:11px;letter-spacing:1px}

.ai-cfg{margin:14px 0;padding:12px 14px;border:1px dashed var(--line);border-radius:12px;background:rgba(255,255,255,.02);font-size:11.5px;color:var(--ink-dim);line-height:1.8}

.ai-cfg input{width:100%;margin:6px 0;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ink);font-size:12px}

.ai-cfg button{padding:7px 14px;border-radius:10px;border:1px solid var(--gold-hi);background:rgba(216,185,106,.12);color:var(--text-accent);font-size:11.5px;cursor:pointer}

.ai-go{width:100%;margin-top:8px;padding:12px;border:none;border-radius:999px;background:linear-gradient(145deg,var(--gold),var(--gold-ink));color:var(--ink-strong);font-weight:600;font-size:15px;letter-spacing:1px;cursor:pointer;font-family:"Noto Serif SC",serif}

.ai-go:active{transform:scale(.96)}

@media (max-width:420px){.tile{width:54px;height:76px}.tile .num{font-size:36px}.screen{gap:8px}}

@media (prefers-reduced-motion:reduce){.star{animation:none}}

/* ===== 大乐透 / 双色球分隔符（已在 tile 区块统一定义）===== */
/* ===== 刮刮乐模拟器（真实票面玩法）===== */
.ggl-tickets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}

.ggl-ticket{flex:1 1 calc(50% - 4px);min-width:0;cursor:pointer;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03);color:var(--ink-dim);padding:10px;text-align:center;font-size:12.5px;transition:.2s;user-select:none}

.ggl-ticket.on{background:linear-gradient(135deg,var(--gold-deep),var(--gold));border-color:var(--text-accent);color:var(--on-accent);font-weight:700}

.ggl-ticket small{display:block;font-size:10px;opacity:.8;margin-top:2px;color:inherit}

.ggl-card{position:relative;overflow:hidden;background:var(--bg-2);background-image:radial-gradient(rgba(160,140,110,.06) 1px,transparent 1px),radial-gradient(rgba(160,140,110,.05) 1px,transparent 1px);background-size:4px 4px,7px 7px;background-position:0 0,3px 4px;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 10px 26px rgba(90,70,40,.22),inset 0 0 34px rgba(255,255,255,.5);margin-bottom:12px}

.ggl-card::before{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 1px,transparent 1px 26px),
  repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 26px);pointer-events:none}

.ggl-card::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 10%,rgba(216,185,106,.16),transparent 45%);pointer-events:none}

.ggl-card.theme-red::after{background:radial-gradient(circle at 78% 10%,rgba(255,66,66,.22),transparent 46%)}

.ggl-card.theme-rose::after{background:radial-gradient(circle at 78% 10%,rgba(255,112,188,.2),transparent 46%)}

.ggl-card.theme-green::after{background:radial-gradient(circle at 78% 10%,rgba(64,255,148,.18),transparent 46%)}

.ggl-card.theme-gold::after{background:radial-gradient(circle at 78% 10%,rgba(255,190,66,.24),transparent 46%)}

.ggl-body{position:relative;z-index:1}

.ggl-card.win-card{animation:winShake .55s ease}

.ggl-card.lose-card{animation:loseDrop .75s ease}

.ggl-burst{position:absolute;inset:0;pointer-events:none;z-index:3}

.ggl-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;color:var(--dim)}

.ggl-head b{color:#c8102e;font-size:16px;letter-spacing:2px;text-shadow:none;font-weight:900}

.ggl-issuer{font-size:10px;color:var(--dim);opacity:1;margin-bottom:10px;letter-spacing:1px}

.ggl-rule{font-size:10.5px;line-height:1.7;color:var(--dim);opacity:1;border-left:2px solid #c8102e;padding:2px 8px;margin-bottom:12px}

.ggl-zone-title{font-size:11px;letter-spacing:2px;color:#c8102e;margin:10px 0 7px;display:flex;justify-content:space-between;align-items:center;font-weight:700}

.ggl-zone-title small{color:var(--dim);font-weight:400;letter-spacing:0}

.ggl-zone-title small{color:var(--ink-dim);letter-spacing:0;font-size:10px}

.ggl-winzone{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px}

.ggl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}

.ggl-cell{aspect-ratio:1;border-radius:50%;cursor:pointer;position:relative;background:linear-gradient(145deg,#ffffff,var(--bg-2));box-shadow:inset 0 2px 5px rgba(120,100,70,.28),inset 0 0 0 1px rgba(255,255,255,.6);user-select:none;-webkit-user-select:none}

.ggl-cell::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(135deg,rgba(255,255,255,.4),transparent 45%);pointer-events:none;z-index:2}

.ggl-cell .sym{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:"Noto Serif SC",serif;font-size:20px;font-weight:900;color:#c8102e;opacity:0;transform:scale(.4) rotate(-12deg);text-shadow:none;pointer-events:none;z-index:4}

.ggl-cell .prize{position:absolute;left:0;right:0;bottom:-16px;text-align:center;font-size:9.5px;font-weight:700;color:#c8102e;letter-spacing:0;pointer-events:none;white-space:nowrap;z-index:4}

.ggl-cell.win{border:2px solid var(--gold);box-shadow:0 0 12px rgba(232,162,0,.6),inset 0 1px 0 rgba(255,255,255,.5)}

.ggl-cell.win .sym{color:#c8102e;text-shadow:0 0 2px rgba(200,16,46,.4)}

.ggl-cell.revealed{background:linear-gradient(145deg,#ffffff,var(--bg-2));box-shadow:inset 0 2px 5px rgba(120,100,70,.22),inset 0 0 0 1px rgba(255,255,255,.6)}

.ggl-cell.revealed::after{display:none}

.ggl-cell.revealed .sym{opacity:1;transform:scale(1) rotate(0);transition:.3s}

.ggl-cell.win{border:2.5px solid var(--gold);box-shadow:0 0 16px rgba(232,162,0,.75),inset 0 1px 0 rgba(255,255,255,.5);
  background:radial-gradient(ellipse at 50% 45%,rgba(255,214,92,.55),rgba(255,236,170,.9) 70%)}

.ggl-prog{font-size:11px;color:var(--dim);text-align:center;margin-top:10px}

.ggl-prize{margin-top:12px;padding:12px;border-radius:14px;text-align:center;font-family:"Noto Serif SC",serif;font-size:16px;font-weight:700;letter-spacing:1px;background:rgba(200,16,46,.08);border:1px solid #c8102e;color:#c8102e}

.ggl-prize.win{background:linear-gradient(135deg,var(--brand-glow),rgba(255,143,192,.15));color:var(--gold-hi);animation:prizePop .5s ease}

.ggl-status{text-align:center;color:var(--ink-dim);font-size:12px;padding:30px 10px;line-height:1.8}

/* ===== 附近彩票店 ===== */
.shop-key{display:flex;gap:8px;margin-bottom:12px}

.shop-key input{flex:1;min-width:0;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.04);color:var(--ink);font-size:14px;outline:none}

.shop-key input:focus{border-color:var(--text-accent)}

.shop-list{display:flex;flex-direction:column;gap:9px;margin-top:4px}

.shop-map{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 2px 12px;font-size:12.5px;color:var(--ink-dim)}

.shop-map .si-nav{padding:7px 12px;font-size:12px}

.shop-item{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:12.5px}

.shop-item .si-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:5px}

.shop-item .si-top b{color:var(--text-accent);font-weight:600;font-size:13px}

.shop-item .si-top span{color:var(--ink-dim);font-size:11px;flex-shrink:0}

.shop-item .si-addr{color:var(--ink-dim);font-size:11.5px;line-height:1.6;margin-bottom:8px}

.shop-help{margin-top:14px;font-size:10.5px;color:var(--ink-dim);opacity:.8;line-height:1.8;text-align:center}

.shop-goods{display:flex;flex-direction:column;gap:10px;margin:12px 0}

.shop-goods .sg-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 13px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px}

.sg-name{font-size:13.5px;font-weight:600}

.sg-name small{display:block;font-size:11px;color:var(--ink-dim);font-weight:400;margin-top:2px}

.sg-buy{cursor:pointer;border:1px solid var(--gold-hi);background:linear-gradient(135deg,var(--gold-deep),var(--gold));color:var(--on-accent);padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:700;transition:.18s;white-space:nowrap}

.sg-buy:active{transform:scale(.95)}

.mn-name{font-size:13.5px;font-weight:600;color:var(--ink)}

.mn-sub{font-size:11.5px;color:var(--ink-dim);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 按钮：微光 + 按压缩放统一 */
.go-btn,.gen-btn,.lp-btn{border-radius:999px;background:linear-gradient(135deg,var(--gold-deep),var(--gold) 65%,var(--gold-hi));box-shadow:0 12px 30px rgba(216,185,106,.38),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .15s ease,box-shadow .2s ease,filter .2s ease}

.go-btn:hover,.gen-btn:hover,.lp-btn:hover{filter:brightness(1.06)}

.go-btn:active,.gen-btn:active,.lp-btn:active{transform:scale(.96)}

/* 号码球质感 */
.tile{border-radius:16px;background:linear-gradient(180deg,var(--panel),var(--bg));box-shadow:0 12px 26px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.08)}

.tile .num{text-shadow:0 0 20px rgba(233,201,122,.55)}

.kj-tile{border-radius:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}

.modal-mask .go-btn,.modal-mask .gen-btn,.modal-mask .sg-buy{width:100%;justify-content:center}

/* 空状态 / 状态行 */
.empty,.kj-status{letter-spacing:.5px}

/* 明亮默认主题下号码球/弹窗/输入适配 */
.tile,.kj-tile{background:linear-gradient(180deg,#ffffff,var(--bg));border-color:var(--brand-glow);box-shadow:0 8px 18px var(--brand-glow),inset 0 1px 0 rgba(255,255,255,.9)}

.tile .num{color:#2563eb;text-shadow:none}

.go-btn svg,.gen-btn{fill:#fff}
