.mahjong-game-runtime{--mg-bg: #101820;--mg-panel: #f8fafc;--mg-panel-2: #e2e8f0;--mg-accent: #2f8f68;--mg-accent-2: #226f54;--mg-warm: #eab85f;--mg-text: #f9fafb;--mg-text-dim: #cbd5e1;--mg-board: #fff2c7;--mg-tile-bg: #27745a;--mg-tile-icon-bg: #fff7db;--mg-tile-border: #12231f;--mg-danger: #b91c1c;--mg-shadow: 0 8px 28px rgba(0, 0, 0, .35);--mg-radius: 14px;--mg-radius-sm: 8px;--mg-app-padding-top: 14px;--mg-app-padding-bottom: 22px;--mg-app-padding-x: 12px;--mg-app-gap: 12px;--mg-daily-panel-height: 36px;--mg-toolbar-reserved-height: 58px;--mg-board-height: clamp(582px, calc(100svh - 266px) , 802px);min-height:100%;box-sizing:border-box;color:var(--mg-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.mahjong-game-runtime *,.mahjong-game-runtime *:before,.mahjong-game-runtime *:after{box-sizing:border-box}.mahjong-game-runtime button{min-width:0;font:inherit;border-radius:var(--mg-radius-sm);border:1px solid rgba(255,255,255,.1);padding:10px 16px;background:var(--mg-panel);color:#111827;cursor:pointer;transition:background .12s ease,box-shadow .12s ease}.mahjong-game-runtime button:hover:not(:disabled){background:#fff;box-shadow:0 4px 14px #0000004d}.mahjong-game-runtime button:disabled{opacity:.5;cursor:not-allowed}.mahjong-game-runtime button.primary{background:var(--mg-accent);color:#fff}.mahjong-game-runtime button.primary:hover:not(:disabled){background:var(--mg-accent-2)}.mahjong-game-runtime button.ghost{background:transparent;color:var(--mg-text);border:1px solid rgba(255,255,255,.2)}.mahjong-game-runtime button.ghost:hover:not(:disabled){background:#ffffff14}.mahjong-game-runtime a{color:var(--mg-text);text-decoration:none}.mahjong-game-runtime.app-shell{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--mg-app-gap);padding:var(--mg-app-padding-top) var(--mg-app-padding-x) var(--mg-app-padding-bottom);background:radial-gradient(circle at 28% 0%,rgba(234,184,95,.18),transparent 34%),linear-gradient(180deg,#10222a,#101820)}.mahjong-game-runtime .daily-panel{position:relative;width:100%;max-width:520px;min-height:var(--mg-daily-panel-height);display:flex;align-items:center;justify-content:center}.mahjong-game-runtime .daily-head{position:relative;width:100%;min-height:32px;display:flex;align-items:center;justify-content:center}.mahjong-game-runtime .daily-challenges{display:flex;align-items:center;justify-content:center;gap:11px}.mahjong-game-runtime .daily-challenge{width:12px;height:12px;min-height:0;padding:0;border-radius:999px;border:2px solid rgba(255,255,255,.7);background:transparent;box-shadow:none}.mahjong-game-runtime .daily-challenge:hover:not(:disabled){background:#ffffff4d;box-shadow:none}.mahjong-game-runtime .daily-challenge.active{width:18px;border-color:var(--mg-panel);background:var(--mg-panel)}.mahjong-game-runtime .daily-challenge.done{border-color:var(--mg-accent);background:var(--mg-accent)}.mahjong-game-runtime .daily-challenge.tried:not(.active){border-color:var(--mg-warm)}.mahjong-game-runtime .daily-challenge.locked{border-color:#ffffff42;background:transparent}.mahjong-game-runtime .daily-calendar-button{position:absolute;right:0;top:50%;transform:translateY(-50%);width:30px;height:30px;min-height:0;padding:0;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:#ffffff14;box-shadow:none}.mahjong-game-runtime .daily-theme-button{position:absolute;right:38px;top:50%;transform:translateY(-50%);width:30px;height:30px;min-height:0;padding:0;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:#ffffff14;box-shadow:none}.mahjong-game-runtime .daily-theme-button:hover:not(:disabled){background:#ffffff29;box-shadow:none}.mahjong-game-runtime .daily-theme-button[aria-expanded=true]{background:var(--mg-accent);border-color:var(--mg-accent)}.mahjong-game-runtime .daily-calendar-button:hover:not(:disabled){background:#ffffff29;box-shadow:none}.mahjong-game-runtime .daily-calendar-button[aria-expanded=true]{background:var(--mg-accent);border-color:var(--mg-accent)}.mahjong-game-runtime .daily-theme-icon{position:relative;display:grid;grid-template-columns:repeat(2,6px);grid-template-rows:repeat(2,6px);gap:2px;width:14px;height:14px;margin:0 auto}.mahjong-game-runtime .daily-theme-icon:before,.mahjong-game-runtime .daily-theme-icon:after{content:"";display:block;border-radius:2px}.mahjong-game-runtime .daily-theme-icon:before{background:linear-gradient(#fff 0 0) 0 0 / 6px 6px no-repeat,linear-gradient(var(--mg-warm) 0 0) 8px 8px / 6px 6px no-repeat}.mahjong-game-runtime .daily-theme-icon:after{position:absolute;inset:0;background:linear-gradient(var(--mg-accent) 0 0) 8px 0 / 6px 6px no-repeat,linear-gradient(#cbd5e1 0 0) 0 8px / 6px 6px no-repeat}.mahjong-game-runtime .daily-calendar-icon{position:relative;display:block;width:14px;height:13px;margin:0 auto;border:2px solid #fff;border-radius:3px}.mahjong-game-runtime .daily-calendar-icon:before,.mahjong-game-runtime .daily-calendar-icon:after{content:"";position:absolute;top:-4px;width:2px;height:5px;border-radius:2px;background:#fff}.mahjong-game-runtime .daily-calendar-icon:before{left:2px}.mahjong-game-runtime .daily-calendar-icon:after{right:2px}.mahjong-game-runtime .theme-layer{position:fixed;inset:0;z-index:100001;display:grid;place-items:start center;padding:max(22px,calc((100vh - 560px)/2)) 12px 22px;background:#0000006b;box-sizing:border-box}.mahjong-game-runtime .theme-card{width:min(100%,430px);max-height:calc(100vh - 44px);overflow:auto;padding:18px;border-radius:8px;border:1px solid rgba(148,163,184,.28);background:#111b24;box-shadow:0 28px 72px #0000007a}.mahjong-game-runtime .theme-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.mahjong-game-runtime .theme-card-head strong{display:block;margin-bottom:2px;color:#fff;font-size:18px;line-height:1.2}.mahjong-game-runtime .theme-card-head p{margin:0;color:var(--mg-text-dim);font-size:12px}.mahjong-game-runtime .theme-close{position:relative;flex:0 0 auto;width:28px;height:28px;min-height:0;padding:0;border-radius:999px;border-color:#94a3b833;background:#ffffff0f;box-shadow:none}.mahjong-game-runtime .theme-close:hover:not(:disabled){background:#ffffff1f;box-shadow:none}.mahjong-game-runtime .theme-close:before,.mahjong-game-runtime .theme-close:after{content:"";position:absolute;top:13px;left:8px;width:12px;height:2px;border-radius:2px;background:#fff}.mahjong-game-runtime .theme-close:before{transform:rotate(45deg)}.mahjong-game-runtime .theme-close:after{transform:rotate(-45deg)}.mahjong-game-runtime .theme-grid{display:grid;grid-template-columns:1fr;gap:9px}.mahjong-game-runtime .theme-option{width:100%;min-height:74px;padding:10px;display:grid;grid-template-columns:132px 1fr;align-items:center;gap:12px;border-radius:8px;border:1px solid rgba(148,163,184,.2);background:#0f171fdb;color:var(--mg-text);box-shadow:none;text-align:left}.mahjong-game-runtime .theme-option:hover:not(:disabled){background:#18232df5;box-shadow:none}.mahjong-game-runtime .theme-option.selected{border-color:var(--mg-accent);background:#2f8f6838}.mahjong-game-runtime .theme-option:disabled{opacity:.62}.mahjong-game-runtime .theme-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.mahjong-game-runtime .theme-preview img{width:29px;height:29px;object-fit:contain;border-radius:5px;background:#fff7db;border:1px solid rgba(18,35,31,.35);padding:3px}.mahjong-game-runtime .theme-option-copy{display:grid;gap:4px;min-width:0}.mahjong-game-runtime .theme-option-copy strong{color:#fff;font-size:14px;line-height:1.15}.mahjong-game-runtime .theme-option-copy em{color:var(--mg-text-dim);font-size:11px;font-style:normal;line-height:1.2}.mahjong-game-runtime .daily-calendar-layer{position:fixed;inset:0;z-index:100001;display:grid;place-items:start center;padding:max(22px,calc((100vh - 620px)/2)) 12px 22px;background:#0000006b;box-sizing:border-box}.mahjong-game-runtime .daily-calendar-card{position:relative;width:min(440px,calc(100vw - 24px));max-height:min(620px,calc(100vh - 44px));overflow:auto;padding:18px;box-sizing:border-box;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#101820f5;box-shadow:0 18px 50px #00000061;color:var(--mg-text);backdrop-filter:blur(12px)}.mahjong-game-runtime .daily-calendar-card-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:10px;padding-right:34px}.mahjong-game-runtime .daily-calendar-card-head strong{display:block;font-size:18px;line-height:1.15;text-align:center}.mahjong-game-runtime .daily-calendar-title{min-width:0}.mahjong-game-runtime .daily-calendar-card p{margin:5px 0 0;color:var(--mg-text-dim);font-size:12px;line-height:1.2;text-align:center}.mahjong-game-runtime .daily-calendar-nav{position:relative;width:36px;height:36px;min-height:0;padding:0;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#ffffff14;box-shadow:none}.mahjong-game-runtime .daily-calendar-nav:hover:not(:disabled){background:#ffffff29;box-shadow:none}.mahjong-game-runtime .daily-calendar-nav:disabled{opacity:.28}.mahjong-game-runtime .daily-calendar-nav:before{content:"";position:absolute;top:50%;left:50%;width:9px;height:9px;border-top:2px solid #fff;border-left:2px solid #fff}.mahjong-game-runtime .daily-calendar-nav.prev:before{transform:translate(-34%,-50%) rotate(-45deg)}.mahjong-game-runtime .daily-calendar-nav.next:before{transform:translate(-66%,-50%) rotate(135deg)}.mahjong-game-runtime .daily-calendar-close{position:absolute;top:14px;right:14px;width:24px;height:24px;min-height:0;padding:0;border:0;border-radius:999px;background:#ffffff1a;box-shadow:none}.mahjong-game-runtime .daily-calendar-close:hover:not(:disabled){background:#ffffff2e;box-shadow:none}.mahjong-game-runtime .daily-calendar-close:before,.mahjong-game-runtime .daily-calendar-close:after{content:"";position:absolute;top:11px;left:7px;width:10px;height:2px;border-radius:2px;background:#fff}.mahjong-game-runtime .daily-calendar-close:before{transform:rotate(45deg)}.mahjong-game-runtime .daily-calendar-close:after{transform:rotate(-45deg)}.mahjong-game-runtime .daily-calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:18px 0 7px;color:#ffffff75;font-size:10px;font-weight:900;text-align:center}.mahjong-game-runtime .daily-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.mahjong-game-runtime .calendar-day{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:46px;min-height:0;padding:0;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#ffffff0b;box-shadow:none;color:var(--mg-text)}.mahjong-game-runtime button.calendar-day:hover:not(:disabled){background:#ffffff1f;box-shadow:none}.mahjong-game-runtime .calendar-day.today{border-color:#eab85fa3;background:#eab85f1f}.mahjong-game-runtime .calendar-day.selected{border-color:#ffffff7a;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff80}.mahjong-game-runtime .calendar-day.passed{border-color:#2f8f6894;background:#2f8f6842}.mahjong-game-runtime .calendar-day.passed.selected{border-color:#4cd297b8;box-shadow:inset 0 0 0 1px #ffffff70,0 0 0 1px #4cd2973d}.mahjong-game-runtime .calendar-day.disabled{color:#ffffff3d;background:#ffffff06}.mahjong-game-runtime .calendar-day.empty{border:0;background:transparent;box-shadow:none}.mahjong-game-runtime .calendar-day span{display:block;color:inherit;font-size:15px;font-weight:800;line-height:1}.mahjong-game-runtime .calendar-day em{position:absolute;top:6px;right:6px;width:12px;height:12px;border-radius:999px;background:var(--mg-accent)}.mahjong-game-runtime .calendar-day em:before{content:"";position:absolute;left:3px;top:3px;width:5px;height:3px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}.mahjong-game-runtime .board-wrap{position:relative;width:100%;max-width:520px;height:var(--mg-board-height);flex:0 0 var(--mg-board-height);border-radius:var(--mg-radius);background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.06),transparent 60%),linear-gradient(180deg,#163a30,#12251f);overflow:hidden;box-shadow:var(--mg-shadow);user-select:none}.mahjong-game-runtime .temp-stash-strip{position:absolute;left:0;right:0;bottom:70px;height:60px;border-top:1px dashed rgba(255,255,255,.15);border-bottom:1px dashed rgba(255,255,255,.15);background:#ffffff05}.mahjong-game-runtime .stash-strip{position:absolute;left:0;right:0;bottom:0;height:70px;background:var(--mg-board);display:flex;align-items:center;justify-content:center}.mahjong-game-runtime .stash-bounds{display:inline-block;height:70px;border:3px solid var(--mg-tile-border);border-radius:8px;position:relative}.mahjong-game-runtime .dp-tile{position:absolute;display:grid;place-items:center;z-index:1;background:var(--mg-tile-bg);border:2px solid var(--mg-tile-border);border-radius:8px;transform-origin:center;box-shadow:0 3px #00000040;transition:filter .18s ease;will-change:transform}.mahjong-game-runtime .dp-tile.disabled{filter:brightness(.5);pointer-events:none}.mahjong-game-runtime .dp-tile.matched{box-shadow:0 0 0 2px var(--mg-warm),0 0 20px #eab85fd9}.mahjong-game-runtime .dp-tile .icon{position:absolute;inset:4px;background:var(--mg-tile-icon-bg);border-radius:5px;display:grid;place-items:center;overflow:hidden}.mahjong-game-runtime .dp-tile .icon img{width:80%;height:80%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.mahjong-game-runtime .toolbar{display:flex;width:100%;max-width:520px;gap:10px;min-height:var(--mg-toolbar-reserved-height);flex-wrap:wrap;justify-content:center}.mahjong-game-runtime .tool{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;max-width:140px}.mahjong-game-runtime .tool button{width:100%;min-height:42px;padding:8px 10px;font-size:13px;font-weight:800}.mahjong-game-runtime .tool small{color:var(--mg-text-dim);font-size:11px;min-height:14px;text-align:center}.mahjong-game-runtime .tool-message{flex:0 0 100%;margin:0;color:var(--mg-warm);font-size:11px;font-weight:800;line-height:1.2;text-align:center}.mahjong-game-runtime .modal-shade{position:absolute;inset:0;display:grid;place-items:center;background:#00000080;z-index:100000;padding:20px}.mahjong-game-runtime .modal{width:min(100%,320px);padding:20px;border-radius:var(--mg-radius);background:var(--mg-panel);color:#111827;box-shadow:var(--mg-shadow);text-align:center}.mahjong-game-runtime .modal h3{margin:0 0 8px}.mahjong-game-runtime .modal .hint{color:#475569}.mahjong-game-runtime .level-transition-shade{position:absolute;inset:0;z-index:100000;display:grid;place-items:center;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 50% 42%,rgba(234,184,95,.26),transparent 28%),#0000005c}.mahjong-game-runtime .level-celebration-core{position:relative;display:grid;place-items:center;width:188px;min-height:164px;padding:26px 18px 22px;border-radius:18px;color:var(--mg-text);text-align:center}.mahjong-game-runtime .level-celebration-ring{position:absolute;width:138px;height:138px;border:2px solid rgba(234,184,95,.78);border-radius:999px;box-shadow:0 0 0 12px #eab85f17,0 0 42px #eab85f52}.mahjong-game-runtime .level-celebration-check{position:relative;width:58px;height:58px;margin-bottom:14px;border-radius:999px;background:var(--mg-accent);box-shadow:0 12px 34px #00000047,inset 0 -4px #00000029}.mahjong-game-runtime .level-celebration-check:before{content:"";position:absolute;left:17px;top:18px;width:23px;height:13px;border-left:5px solid #fff;border-bottom:5px solid #fff;transform:rotate(-45deg)}.mahjong-game-runtime .level-celebration-core strong{position:relative;display:block;font-size:20px;line-height:1.1}.mahjong-game-runtime .level-celebration-core span{position:relative;display:block;margin-top:8px;color:var(--mg-text-dim);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.mahjong-game-runtime .level-celebration-spark{position:absolute;left:50%;top:47%;width:10px;height:10px;border-radius:3px;box-shadow:0 0 18px #ffffff52}.mahjong-game-runtime .actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}@media (max-width: 480px){.mahjong-game-runtime{--mg-app-padding-top: 12px;--mg-app-padding-bottom: 18px;--mg-app-padding-x: 8px;--mg-app-gap: 10px;--mg-daily-panel-height: 36px;--mg-board-height: clamp(508px, calc(100svh - 206px) , 698px)}.mahjong-game-runtime.app-shell{padding:var(--mg-app-padding-top) var(--mg-app-padding-x) var(--mg-app-padding-bottom)}.mahjong-game-runtime .toolbar{gap:6px}.mahjong-game-runtime .tool button{min-height:38px;padding:7px 6px;font-size:12px}}
