@font-face{font-family:PingFangLocal;src:url(/assets/source/pingfang-regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:PingFangLocal;src:url(/assets/source/pingfang-medium.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:PingFangLocal;src:url(/assets/source/pingfang-bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{font-family:PingFangLocal,PingFang SC,Microsoft YaHei,sans-serif;color:#151515;background:#f5f6f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}.public-shell{width:min(100%,var(--site-width, 480px));min-height:100vh;margin:0 auto;background:#fff;overflow:hidden}.home-page{box-shadow:0 0 18px #00000014}.hero-banner{display:block;width:100%;aspect-ratio:8 / 3;object-fit:fill}.notice-bar{height:45px;display:flex;align-items:center;gap:8px;margin:6px;padding:0 16px;color:#d77f4f;text-decoration:none;background:#fff;box-shadow:0 1px 7px #0000001a;white-space:nowrap;overflow:hidden}.notice-bar span{overflow:hidden;text-overflow:ellipsis}.notice-bar b{margin-left:auto}.lottery-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin:15px 6px 0;height:40px;border-bottom:1px solid #eee}.lottery-tabs button{border:0;background:#fff;font-size:18px}.lottery-tabs button.active{color:#fff;background:#ff5e55}.lottery-panel{padding:12px 6px 0}.lottery-meta{display:flex;align-items:center;justify-content:space-between;font-size:16px}.lottery-meta strong,.next-draw strong,.history-date strong{color:#e84046;font-weight:500}.lottery-meta button{border:0;background:transparent;color:#f0504c;font-size:16px}.balls-row{display:flex;align-items:flex-start;justify-content:space-between;padding-top:9px}.ball-wrap{width:calc((100% - 54px) / 7);min-width:0;position:relative;text-align:center}.number-ball{aspect-ratio:1;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:clamp(27px,7.8vw,38px);font-weight:500;line-height:1}.ball-wrap span{display:block;margin-top:2px;border:1px solid currentColor;border-radius:2px;background:#fff;font-size:clamp(12px,3.5vw,17px);white-space:nowrap}.ball-red{background:#ef3943!important}.ball-green{background:#2cb66a!important}.ball-blue{background:#2d8fd5!important}.plus-sign{position:absolute;left:calc(100% + 4px);top:31px;color:#ef3b3c;font-size:23px;z-index:2}.next-draw{padding:10px 0 9px;font-size:16px;white-space:nowrap}.lottery-loading,.error-state{min-height:145px;display:grid;place-items:center;color:#777}.error-state button{border:1px solid #ddd;background:#fff;padding:7px 16px}.remember-title{height:49px;display:grid;place-items:center;background:#ff2d1d;color:#fff;font-size:20px;font-weight:700}.domain-list a{height:43px;display:flex;align-items:center;justify-content:center;gap:20px;text-decoration:none;font-size:17px}.domain-list a span{min-width:88px;text-align:right}.domain-list a strong{min-width:210px}.quick-links{display:grid;grid-template-columns:repeat(5,1fr);padding:14px 7px 12px;background:#fff;border-bottom:7px solid #f5f5f5}.quick-links button{border:0;background:#fff;padding:0 2px}.quick-links img{display:block;width:42px;height:42px;object-fit:contain;margin:0 auto 5px}.quick-links span{display:block;white-space:nowrap;font-size:14px}.prediction-list{background:#f3f3f3}.prediction-section{margin-bottom:8px;background:#fff;border:1px solid #ff3a33}.prediction-section header{height:43px;display:flex;align-items:center;justify-content:center;gap:9px;background:#050505;color:#fff}.prediction-section header span{color:#ff5d62}.prediction-section header strong{font-size:18px}.prediction-head{height:37px;display:grid;grid-template-columns:70px 1fr 76px;place-items:center;background:#ff2d1d;color:#fff}.prediction-row{min-height:79px;display:grid;grid-template-columns:70px 1fr 76px;align-items:stretch;border-top:1px solid #ff3a33;color:#f53a3f}.prediction-row>*{display:grid;place-items:center;padding:6px;text-align:center;border-right:1px solid #ff3a33;white-space:pre-wrap;overflow-wrap:anywhere}.prediction-row>*:last-child{border-right:0}.prediction-row strong{font-size:14px;line-height:1.5}.public-footer{padding:24px;text-align:center;color:#999;background:#fff}.sub-page{width:min(100%,480px)}.page-header{height:55px;display:grid;grid-template-columns:120px 1fr 120px;align-items:center;border-bottom:1px solid #eee}.page-header h1{margin:0;text-align:center;font-size:20px}.back-button{justify-self:start;display:flex;align-items:center;border:0;background:transparent;color:#418ecb;font-size:17px}.history-filters{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #bbb}.history-filters>div{display:flex;gap:5px}.history-filters button{min-width:54px;height:40px;border:1px solid #438bc4;color:#438bc4;background:#fff}.history-filters button.selected{color:#fff;background:#438bc4}.history-filters select{width:96px;height:38px;padding:0 12px;background:#fff}.history-columns{display:grid;grid-template-columns:115px 1fr;height:38px;place-items:center;border-bottom:1px solid #bbb}.history-row{display:grid;grid-template-columns:115px 1fr;min-height:89px;border-bottom:1px solid #c7c7c7}.history-date{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:14px}.history-numbers{padding:15px 0 9px;min-width:0}.history-numbers>div{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;align-items:start}.history-numbers b{width:32px;height:32px;display:grid;place-items:center;margin:auto;border-radius:50%;color:#fff;font-weight:500}.history-ball-wrap{position:relative}.history-ball-wrap i{position:absolute;right:-5px;top:4px;font-size:22px;font-style:normal}.history-numbers>div:last-child span{margin-top:6px;font-size:14px;font-weight:500;white-space:nowrap}.empty-state{padding:60px 20px;text-align:center;color:#777}.code-page textarea{display:block;width:calc(100% - 28px);height:153px;margin:0 14px 12px;padding:12px;resize:none;border:1px solid #aaa;background:#fff;line-height:1.75}.code-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:0 14px 20px}.code-actions button{height:40px;border:1px solid #555;background:#fff}.filter-groups{padding:0 14px 50px}.filter-group{display:flex;flex-wrap:wrap;gap:9px 10px;padding:12px 0;border-bottom:1px solid #ccc}.filter-group button{min-width:60px;height:31px;padding:0 12px;border:1px solid #777;border-radius:5px;background:#fff}.filter-group button.selected{color:#fff;border-color:#ed433e;background:#ed433e}.inline-message{margin:-10px 14px 8px;color:#2a8a58;font-size:13px}.admin-app{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:#f4f6fa;color:#172033}.admin-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:22px 14px;color:#dae2f2;background:#111827}.admin-brand{display:flex;align-items:center;gap:11px;padding:0 12px 24px;font-size:18px;font-weight:700;color:#fff}.admin-sidebar nav{display:flex;flex-direction:column;gap:5px}.admin-sidebar nav button{display:flex;align-items:center;gap:11px;height:44px;padding:0 14px;border:0;border-radius:8px;color:#aebbd0;background:transparent;text-align:left}.admin-sidebar nav button:hover,.admin-sidebar nav button.active{color:#fff;background:#26344d}.admin-user{margin-top:auto;padding:14px 10px 0;border-top:1px solid #2b3548;display:flex;align-items:center;justify-content:space-between}.admin-user button{display:flex;align-items:center;gap:5px;border:0;color:#aebbd0;background:transparent}.admin-main{min-width:0}.admin-topbar{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:#fff;border-bottom:1px solid #e6eaf0}.admin-topbar p{margin:0 0 4px;color:#8490a4;font-size:13px}.admin-topbar h1{margin:0;font-size:24px}.admin-topbar a{display:flex;align-items:center;gap:6px;color:#3767d6;text-decoration:none}.admin-content{padding:28px 34px 60px;max-width:1480px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px}.stat-card,.panel-card,.action-banner{border:1px solid #e5e9f0;border-radius:12px;background:#fff;box-shadow:0 6px 18px #1f2a440a}.stat-card{padding:22px}.stat-card span{display:block;margin-bottom:12px;color:#77839a}.stat-card strong{font-size:28px}.panel-card{padding:24px;margin-bottom:22px}.panel-card h2{display:flex;align-items:center;gap:8px;margin:0 0 20px;font-size:18px}.panel-card h2 small{margin-left:auto;color:#8b96a8;font-size:13px;font-weight:400}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.status-line{display:flex;align-items:center;gap:8px}.status-ok,.status-idle{width:9px;height:9px;border-radius:50%;background:#24b26b}.status-idle{background:#e6a536}.source-health,.log-row{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-top:1px solid #edf0f4}.source-health span,.log-row span,.muted{color:#7d899d;font-size:13px;word-break:break-all}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label,.stack-label{display:flex;flex-direction:column;gap:7px;color:#59657a;font-size:14px}.form-grid label.wide{grid-column:1 / -1}.form-grid input,.form-grid textarea,.stack-label input{width:100%;min-height:42px;padding:9px 12px;border:1px solid #d9dee7;border-radius:7px;color:#1b2537;background:#fff}.form-grid textarea{min-height:90px;resize:vertical}.form-grid input[type=checkbox]{width:20px;min-height:20px}.form-grid input[type=color]{padding:3px}.form-actions{display:flex;align-items:center;gap:12px;margin-top:22px}.form-actions button,.primary-button,.action-banner button{min-height:40px;padding:0 20px;border:0;border-radius:7px;color:#fff;background:#315fce}.form-actions button.secondary{color:#4c5a70;background:#edf1f7}.form-actions span,.success-text{color:#23955d}.admin-table{overflow:auto}.admin-table table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th,.admin-table td{padding:12px 10px;border-bottom:1px solid #edf0f4;text-align:left;max-width:330px;word-break:break-all}.admin-table th{color:#69758a;background:#f8f9fb}.admin-table td button{margin-right:8px;border:0;color:#315fce;background:transparent}.admin-table td button.danger{color:#d43d4c}.subtabs{display:flex;gap:8px;margin-bottom:18px}.subtabs button{height:38px;padding:0 18px;border:1px solid #d9dfe9;border-radius:7px;background:#fff}.subtabs button.active{color:#fff;border-color:#315fce;background:#315fce}.action-banner{display:flex;align-items:center;gap:24px;padding:22px 24px;margin-bottom:22px}.action-banner h2{margin:0 0 5px;font-size:18px}.action-banner p{margin:0;color:#728096}.action-banner button{margin-left:auto}.action-banner span{color:#315fce}.media-head{display:flex;align-items:center;justify-content:space-between}.media-head h2{margin-bottom:7px}.media-head p{margin:0;color:#78859a}.upload-button{display:inline-grid;place-items:center;height:40px;padding:0 18px;border-radius:7px;color:#fff;background:#315fce;cursor:pointer}.upload-button input{display:none}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;margin-top:24px}.media-grid figure{margin:0;overflow:hidden;border:1px solid #e4e8ef;border-radius:9px}.media-grid img{width:100%;height:150px;object-fit:cover;background:#eef1f5}.media-grid figcaption{display:flex;flex-direction:column;gap:5px;padding:12px}.media-grid code{overflow:hidden;color:#77839a;font-size:11px;text-overflow:ellipsis}.media-grid button{align-self:flex-start;border:0;color:#d43d4c;background:transparent}.login-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 60% 15%,#33446a 0,#141d30 43%,#0c1220)}.login-page form{width:min(100%,420px);padding:38px;border-radius:18px;background:#fff;box-shadow:0 25px 80px #00000052}.login-mark{width:54px;height:54px;display:grid;place-items:center;border-radius:14px;color:#fff;background:#315fce}.login-page form>p{margin:20px 0 4px;color:#77849b}.login-page h1{margin:0 0 28px;font-size:27px}.login-page label{display:flex;flex-direction:column;gap:8px;margin-bottom:17px;color:#58667b}.login-page input{height:45px;padding:0 12px;border:1px solid #d8dee7;border-radius:8px}.login-page button{width:100%;height:46px;margin-top:8px;border:0;border-radius:8px;color:#fff;background:#315fce}.form-error{padding:10px 12px;border-radius:7px;color:#b32939;background:#fff0f1}.admin-loading{min-height:100vh;display:grid;place-items:center;color:#718097;background:#f5f7fa}@media(max-width:900px){.admin-app{grid-template-columns:78px minmax(0,1fr)}.admin-brand span,.admin-sidebar nav button:not(.active){font-size:0}.admin-sidebar nav button{justify-content:center;padding:0}.admin-user span{display:none}.stat-grid{grid-template-columns:1fr 1fr}.panel-grid,.form-grid{grid-template-columns:1fr}.form-grid label.wide{grid-column:auto}.admin-topbar,.admin-content{padding-left:20px;padding-right:20px}}@media(max-width:520px){body{background:#fff}.home-page{box-shadow:none}.notice-bar{height:45px;padding:0 10px;font-size:13px}.lottery-tabs button{font-size:16px}.lottery-panel{padding-left:5px;padding-right:5px}.remember-title{height:39px;font-size:17px}.domain-list a{height:34px;gap:14px;font-size:15px}.domain-list a span{min-width:72px}.domain-list a strong{min-width:190px}.quick-links{padding-top:11px}.quick-links img{width:37px;height:37px}.quick-links span{font-size:13px}.page-header{grid-template-columns:90px 1fr 90px}.history-filters{padding:10px 7px}.history-filters button{min-width:48px}.history-row,.history-columns{grid-template-columns:105px 1fr}.history-numbers b{width:30px;height:30px;font-size:13px}.history-numbers>div:last-child span{font-size:12px}.code-actions{gap:12px}.code-actions button{font-size:14px}.admin-app{display:block}.admin-sidebar{position:static;height:auto;padding:12px}.admin-brand,.admin-user{display:none}.admin-sidebar nav{flex-direction:row;overflow-x:auto}.admin-sidebar nav button,.admin-sidebar nav button:not(.active){min-width:52px;font-size:0}.admin-topbar{height:78px;padding:0 15px}.admin-topbar h1{font-size:20px}.admin-content{padding:16px 12px 40px}.stat-grid{gap:10px}.stat-card{padding:16px}.panel-card{padding:17px}.action-banner{align-items:flex-start;flex-wrap:wrap}.action-banner button{margin-left:0}}
