*{box-sizing:border-box}body{color:#222;-webkit-tap-highlight-color:transparent;background:#f5f6f8;min-width:320px;margin:0;font-family:Microsoft YaHei,Arial,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}.app{min-height:100vh;display:flex}.login-screen{background:#f5f6f8;place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fff;border:1px solid #e7e8ea;border-radius:12px;flex-direction:column;gap:16px;width:min(380px,100%);padding:28px;display:flex;box-shadow:0 12px 36px #00000014}.login-card h1{margin:0 0 4px;font-size:22px}.login-card label,.backend-create-form label{color:#555;flex-direction:column;gap:7px;font-size:14px;display:flex}.login-card input,.backend-create-form input{color:#222;background:#fff;border:1px solid #d9dce1;border-radius:6px;width:100%;min-height:42px;padding:9px 11px}.login-submit{color:#fff;background:#1f2329;border:0;border-radius:7px;min-height:44px}.login-submit:disabled{cursor:wait;opacity:.65}.login-error{color:#c93434;margin:0}.backend-notice{color:#247a42;margin:14px 0 0}.backend-management,.backend-list{margin-bottom:20px;padding:20px}.backend-create-form,.admin-password-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px;display:grid}.admin-password-form>button,.backend-create-form>button{grid-column:1/-1}.backend-list table{border-collapse:collapse;width:100%}.backend-list th,.backend-list td{text-align:left;border-bottom:1px solid #e7e8ea;padding:12px}.backend-edit-input{border:1px solid #d9dce1;border-radius:6px;width:min(190px,100%);min-height:38px;padding:7px 9px}.backend-row-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}@media (width<=700px){.backend-create-form,.admin-password-form{grid-template-columns:1fr}}.sidebar{color:#fff;background:#15171b;flex-shrink:0;width:220px;height:100vh;padding:20px 12px;position:sticky;top:0;overflow-y:auto}.logo{padding:5px 10px 25px;font-size:22px;font-weight:700}.side-title{color:#858b95;margin:25px 10px 8px;font-size:12px}.dashboard-button,.customer-button{color:#cfd2d7;text-align:left;background:0 0;border:0;border-radius:7px;width:100%;padding:11px 12px}.dashboard-button:hover,.customer-button:hover,.dashboard-button.active,.customer-button.active{color:#fff;background:#292d34}.customer-row{align-items:center;display:flex}.delete-customer{color:#777;background:0 0;border:0;min-width:36px;min-height:40px;font-size:18px}.delete-customer:hover{color:#ff6767}.add-customer{gap:5px;margin-top:15px;display:flex}.add-customer input{color:#fff;background:#25282e;border:1px solid #383c44;border-radius:6px;width:150px;padding:8px}.add-customer button{border:0;border-radius:6px;width:35px}.main{flex:1;min-width:0;padding:30px;overflow:auto}.account-toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:20px;display:flex}.account-dropdown{position:relative}.account-dropdown-trigger{color:#475569;background:0 0;border:0;align-items:center;gap:8px;padding:8px 0 8px 12px;font-size:14px;display:flex}.account-dropdown-trigger:hover{color:#2878d0}.account-dropdown-menu{z-index:20;background:#fff;border:1px solid #e4e8ee;border-radius:10px;width:220px;padding:6px;position:absolute;top:100%;right:0;box-shadow:0 8px 28px #1419231f}.account-dropdown-info{overflow-wrap:anywhere;border-bottom:1px solid #edf0f3;flex-direction:column;gap:5px;margin-bottom:4px;padding:10px 12px 12px;display:flex}.account-dropdown-info strong{color:#334155;font-size:14px}.account-dropdown-info small{color:#888;font-size:12px}.account-dropdown-menu>a,.account-dropdown-menu>button{color:#334155;text-align:left;background:0 0;border:0;border-radius:6px;width:100%;padding:10px 12px;font-size:14px;text-decoration:none;display:block}.account-dropdown-menu>a:hover,.account-dropdown-menu>button:hover{background:#f1f5f9}.account-dropdown-menu>.account-dropdown-logout{color:#c93434}.page-header{justify-content:space-between;align-items:center;margin-bottom:25px;display:flex}.dashboard-actions,.archive-dialog-header-actions,.archive-row-actions{align-items:center;gap:10px;display:flex}.draw-controls{color:#555;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0;font-size:13px;display:flex}.customer-header-actions{align-items:center;gap:12px;display:flex}.archive-button,.clear-data-button,.archive-delete-button{color:#25282e;background:#fff;border:1px solid #d9dce1;border-radius:7px;padding:9px 16px}.clear-data-button,.archive-delete-button{color:#c93434;border-color:#d94a4a}.clear-data-button:disabled{opacity:.6;cursor:wait}.archive-button:disabled{opacity:.6;cursor:not-allowed}.archive-button:hover{background:#f4f5f7}.clear-data-button:hover,.archive-delete-button:hover{background:#fff2f2}.page-header h1{margin:0;font-size:28px}.page-header p{color:#888;margin:6px 0 0}.wechat-binding{color:#777;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.wechat-binding input{border:1px solid #d9dce1;border-radius:6px;width:min(280px,100%);padding:8px 10px}.wechat-binding-button{color:#2878d0;background:0 0;border:0;padding:0}.wechat-binding-button:hover{text-decoration:underline}.binding-message{color:#c93434}.panel,.entry-card{background:#fff;border:1px solid #e4e5e7;border-radius:10px;min-width:0;overflow:hidden;box-shadow:0 2px 8px #14192308}.dashboard-grid,.customer-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.dashboard-market-switch{gap:14px;margin:0 0 20px;display:flex}.dashboard-market-switch button{color:#333;cursor:pointer;background:#fff;border:2px solid #d9dde3;border-radius:12px;flex:1;min-height:64px;font-size:22px;font-weight:800;transition:border-color .15s,background-color .15s,color .15s}.dashboard-market-switch button:first-child.active{color:#c93434;background:#fff2f2;border-color:#e85555}.dashboard-market-switch button:last-child.active{color:#2861b8;background:#eff5ff;border-color:#3979d9}.macau-draw-history,.hk-draw-history{flex-direction:column;max-height:min(78vh,980px);display:flex}.macau-draw-history>.section-title,.hk-draw-history>.section-title{border-left:0;justify-content:space-between;align-items:center;gap:10px;padding:14px 12px;font-size:18px;display:flex}.draw-history-year{color:#737983;font-size:16px;font-weight:500}.draw-history-list{overscroll-behavior-y:contain;min-height:0;overflow-y:auto}.dashboard-bet-records{flex-direction:column;max-height:min(78vh,980px);display:flex}.dashboard-bet-records>.section-title,.dashboard-bet-records>.stats-category-bar,.macau-draw-history>.section-title,.hk-draw-history>.section-title{flex-shrink:0}.dashboard-bet-records-list{overscroll-behavior-y:contain;min-height:0;overflow:auto}.dashboard-bet-records-list th{z-index:1;position:sticky;top:0}.draw-history-item{border-bottom:1px solid #edf0f3;padding:14px 5px 15px}.draw-history-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.draw-history-heading strong{color:#202329;font-size:22px;line-height:1.2}.draw-history-heading time{color:#737983;font-size:14px}.draw-history-numbers{justify-content:space-between;align-items:center;gap:5px;display:flex}.draw-history-number-group{flex-direction:column;flex:none;align-items:center;display:inline-flex}.draw-history-number{color:#fff;justify-content:center;align-items:center;width:clamp(40px,6vw,64px);height:clamp(40px,6vw,64px);font-size:clamp(18px,2.5vw,30px);font-weight:700;line-height:1;display:flex}.draw-history-zodiac{color:#17191c;margin-top:4px;font-size:clamp(14px,1.8vw,20px);line-height:1.1}.draw-history-special-separator{color:#e33b3b;font-size:26px;line-height:1}.draw-history-message{padding:20px 16px}.panel-title{border-bottom:1px solid #eee;padding:15px 18px;font-size:18px;font-weight:700}.panel-title.macau{border-left:4px solid #e85555}.panel-title.hk{border-left:4px solid #3979d9}.section-title{border-bottom:1px solid #eee;padding:16px 18px;font-weight:700}.stats-category-header{color:#17191c;justify-content:space-between;align-items:center;gap:12px;display:flex}.stats-category-header>strong{color:#111;text-align:right;font-size:18px;font-weight:800}.panel-market-header.macau{border-left:4px solid #e85555}.panel-market-header.hk{border-left:4px solid #3979d9}.panel-market-header>strong{white-space:nowrap}.stats-category-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.dashboard-category-total{color:#111;white-space:nowrap;margin-left:auto;font-weight:800}.stats-category-buttons{flex-wrap:wrap;gap:8px;display:flex}.stats-category-buttons button{color:#555;white-space:nowrap;background:#fff;border:1px solid #e1e3e6;border-radius:6px;min-height:38px;padding:6px 12px}.stats-category-buttons button.selected{color:#fff;background:#25282e;border-color:#25282e}.payout-summary{flex-direction:column;align-items:flex-end;gap:3px;display:inline-flex}.max-payout-label{color:#a33d2e;white-space:nowrap;font-size:12px;font-weight:600;display:block}.stat-box .max-payout-label{color:#a33d2e;margin-top:4px;margin-bottom:0;font-size:11px}.dashboard-category-total .max-payout-label,.panel-market-header .max-payout-label{margin-left:10px;display:inline-block}table{border-collapse:collapse;width:100%}th{color:#777;text-align:left;background:#fafafa;font-size:13px}th,td{border-bottom:1px solid #eee;padding:12px 16px}.money{font-weight:700}.wave-number-chip{color:#fff;text-align:center;vertical-align:middle;min-width:35px;margin:1px 2px;padding:2px 5px;font-size:20px;font-weight:700;line-height:1.35;display:inline-block}.wave-number-红{background:red}.wave-number-蓝{background:#00e}.wave-number-绿{background:#008b00}.row-max-payout{color:#a33d2e;white-space:nowrap;margin-top:4px;font-size:12px;font-weight:600;display:block}.empty{text-align:center;color:#aaa}.empty.big{padding:50px}.market-tabs{background:#e9eaed;border-radius:8px;padding:4px;display:flex}.market-tabs button{white-space:nowrap;background:0 0;border:0;border-radius:6px;min-height:40px;padding:9px 18px}.market-tabs button.selected{background:#fff;font-weight:700}.entry-card{margin-bottom:20px;padding:18px}.entry-title{margin-bottom:12px;font-weight:700}.entry-title span{color:#888;margin-left:8px;font-size:12px}textarea{resize:vertical;border:1px solid #d9dce1;border-radius:8px;outline:none;width:100%;min-height:110px;padding:13px;font-size:16px}textarea:focus{border-color:#777}.entry-actions{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.entry-buttons{align-items:center;gap:10px;display:flex}.paste{color:#25282e;background:#fff;border:1px solid #d9dce1;border-radius:7px;min-height:44px;padding:9px 18px}.submit{color:#fff;background:#1f2329;border:0;border-radius:7px;min-height:44px;padding:10px 22px}.message{color:#555}.stats{gap:15px;margin-bottom:20px;display:flex}.stat-box{background:#fff;border:1px solid #e4e5e7;border-radius:9px;min-width:160px;padding:14px 18px;box-shadow:0 2px 8px #14192308}.stat-box span{color:#888;margin-bottom:5px;font-size:12px;display:block}.stat-box strong{font-size:20px}.bet-card{border-bottom:1px solid #eee;padding:15px}.pending-bets-panel{margin-bottom:20px}.pending-bets-heading,.pending-bet-header,.pending-bet-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.pending-bets-heading>strong{color:#b56b00;font-size:13px}.pending-empty{padding:20px}.pending-load-error,.pending-bet-error{color:#c93434;margin:12px 16px}.pending-bet{border-bottom:1px solid #eee;padding:14px 16px}.pending-bet-header{color:#888;flex-wrap:wrap;justify-content:flex-start;margin-bottom:8px;font-size:12px}.pending-bet-text{resize:vertical;border:1px solid #d9dce1;border-radius:6px;width:100%;min-height:76px;padding:9px 10px;line-height:1.5;display:block}.pending-bet-error{margin:8px 0 0;font-size:13px}.pending-bet-actions{justify-content:flex-end;margin-top:10px}.bet-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;display:flex}.bet-total-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.bet-total-actions strong{white-space:nowrap}.raw-text{color:#666;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;cursor:help;-webkit-box-orient:vertical;flex:1;min-width:0;font-size:13px;display:-webkit-box;overflow:hidden}.raw-text:hover,.raw-text:focus,.raw-text.is-expanded{-webkit-line-clamp:unset;line-clamp:unset;display:block;overflow:visible}.bet-total-actions button{color:#d44;background:0 0;border:0;min-height:40px;padding:8px 10px}.bet-total-actions .edit-bet-button{color:#25282e;background:#fff;border:1px solid #d9dce1;border-radius:6px}.bet-total-actions .edit-bet-button:hover{background:#f4f5f7}.bet-edit-overlay{z-index:30}.bet-edit-dialog{background:#fff;border-radius:12px;flex-direction:column;width:min(760px,100%);max-height:min(90vh,900px);display:flex;overflow:hidden;box-shadow:0 18px 60px #00000040}.bet-edit-content{flex-direction:column;gap:10px;min-height:0;padding:18px 22px;display:flex;overflow:auto}.bet-edit-content>label,.bet-edit-preview-heading h3{margin:0;font-size:15px;font-weight:700}.bet-edit-textarea{resize:vertical;white-space:pre-wrap;min-height:130px}.bet-edit-preview-heading{justify-content:space-between;align-items:center;gap:12px;margin-top:4px;display:flex}.bet-edit-table-wrap{border:1px solid #e7e8ea;border-radius:7px;overflow:auto}.bet-edit-table{border-collapse:collapse;text-align:left;width:100%}.bet-edit-table th,.bet-edit-table td{white-space:nowrap;border-bottom:1px solid #e7e8ea;padding:9px 11px}.bet-edit-table th{color:#646a73;background:#f7f7f8;font-size:13px;position:sticky;top:0}.bet-edit-table tr:last-child td{border-bottom:0}.bet-edit-error{color:#c93434;white-space:pre-wrap;margin:0}.bet-edit-footer{border-top:1px solid #e7e8ea;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;display:flex}.bet-edit-footer>div{gap:10px;display:flex}.bet-edit-confirm{color:#fff;background:#1f2329;border:0;border-radius:7px;min-height:40px;padding:8px 18px}.bet-edit-confirm:disabled{cursor:not-allowed;opacity:.55}.bet-item{grid-template-columns:56px minmax(0,1fr) auto;align-items:start;gap:8px;padding:7px 0;display:grid}.bet-item>span,.bet-item>b,.bet-item>strong{min-width:0}.bet-item>b{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;cursor:help;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.bet-item>b:hover,.bet-item>b:focus,.bet-item>b.is-expanded{-webkit-line-clamp:unset;line-clamp:unset;display:block;overflow:visible}.bet-item strong{text-align:right;white-space:nowrap}.archive-overlay{z-index:20;background:#1214188c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.archive-dialog{background:#fff;border-radius:12px;flex-direction:column;width:min(1180px,100%);max-height:min(90vh,1000px);display:flex;overflow:hidden;box-shadow:0 18px 60px #00000040}.odds-overlay{z-index:28}.odds-dialog{background:#fff;border-radius:12px;flex-direction:column;width:min(820px,100%);max-height:min(90vh,900px);display:flex;overflow:hidden;box-shadow:0 18px 60px #00000040}.odds-category-tabs{border-bottom:1px solid #e7e8ea;gap:8px;padding:12px 18px;display:flex;overflow-x:auto}.odds-category-tabs button{color:#4b5058;background:#fff;border:1px solid #d9dce1;border-radius:7px;flex-shrink:0;min-height:38px;padding:7px 13px}.odds-category-tabs button.selected{color:#fff;background:#1f2329;border-color:#1f2329}.odds-dialog-content{min-height:0;padding:20px 22px;overflow:auto}.odds-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.odds-field{color:#4b5058;flex-direction:column;gap:7px;font-size:14px;display:flex}.odds-field input,.odds-field select{color:#222;background:#fff;border:1px solid #d9dce1;border-radius:6px;width:100%;min-height:42px;padding:8px 10px}.odds-inherit-help{color:#747a83;margin:16px 0 0;font-size:13px}.archive-dialog-header{border-bottom:1px solid #e7e8ea;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.archive-dialog-header h2{margin:0;font-size:20px}.archive-dialog-header p{color:#858b95;margin:5px 0 0;font-size:13px}.archive-close{color:#4b5058;background:#f1f2f4;border:0;border-radius:7px;width:36px;min-width:44px;height:44px;font-size:24px}.archive-notice{color:#28743a;background:#f0f8f1;margin:0;padding:12px 22px}.archive-list,.archive-detail{padding:18px 22px 24px;overflow:auto}.archive-row{border-bottom:1px solid #eceef0;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.archive-row-summary{flex-wrap:wrap;align-items:center;gap:12px 18px;min-width:0;display:flex}.archive-row-summary>strong{font-size:16px}.archive-row-summary>span{color:#747a83}.archive-row-summary>b{color:#17191c}.archive-summary-cards{flex-wrap:wrap;gap:12px;margin-bottom:22px;display:flex}.archive-summary-card{border:1px solid #e4e5e7;border-radius:8px;flex-direction:column;gap:6px;min-width:150px;padding:12px 16px;display:flex}.archive-summary-card>span{color:#858b95;font-size:13px}.archive-summary-card>strong{color:#17191c;font-size:18px}.archive-detail h3{margin:24px 0 12px}.archive-dashboard-grid{margin-bottom:28px}.archive-page-header{margin-bottom:20px}.archive-page-header .archive-summary-cards{margin-bottom:0}.archive-customer-section{margin-top:30px}.archive-customer-header{margin-bottom:16px}.archive-customer-header h2{margin:0;font-size:23px}.archive-customer-header p{color:#888;margin:6px 0 0}.archive-customer-section .stats{margin-bottom:16px}.archive-metadata{border-top:1px solid #eee;margin-top:12px;padding-top:10px}.archive-metadata summary{color:#656b74;cursor:pointer;font-size:13px}.archive-table{margin-bottom:14px}.archive-bet-card{border:1px solid #e4e5e7;border-radius:8px;margin-bottom:14px;padding:14px}.archive-bet-header{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.archive-bet-header>span{color:#777e88;font-size:13px}.archive-bet-header>b{margin-left:auto}.archive-raw-text{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f7f8;border-radius:6px;margin:10px 0;padding:9px 11px}@media (width<=1000px){.dashboard-grid,.customer-grid{grid-template-columns:1fr}.dashboard-bet-records,.macau-draw-history,.hk-draw-history{max-height:none}.draw-history-heading strong{font-size:18px}.draw-history-heading time{font-size:12px}.macau-draw-history>.section-title,.hk-draw-history>.section-title{padding:12px 10px;font-size:16px}.draw-history-year{font-size:13px}.draw-history-numbers{gap:2px}.draw-history-number{width:min(11vw,56px);height:min(11vw,56px);font-size:clamp(16px,4vw,24px)}.draw-history-zodiac{font-size:clamp(12px,3vw,16px)}.draw-history-special-separator{font-size:20px}.bet-top{flex-direction:column;align-items:stretch}.bet-total-actions{align-self:flex-end}.raw-text{text-align:left}.archive-overlay{padding:8px}.archive-dialog{max-height:96vh}.archive-dialog-header,.archive-row{align-items:flex-start}.archive-row{flex-direction:column}.archive-dashboard-grid{grid-template-columns:1fr}.customer-header-actions{flex-wrap:wrap;justify-content:flex-end}.archive-bet-header>b{margin-left:0}}@media (width<=700px){.app{min-height:100dvh;display:block}.sidebar{width:100%;height:auto;max-height:none;padding:10px 12px 12px;position:relative;overflow:visible}.logo{align-items:center;min-height:40px;padding:4px 8px;font-size:18px;display:inline-flex}.dashboard-button{align-items:center;width:auto;min-height:40px;margin-left:8px;padding:8px 12px;display:inline-flex}.side-title{margin:10px 4px 6px}.customer-list{overscroll-behavior-x:contain;scrollbar-width:thin;gap:6px;padding:2px 0 6px;display:flex;overflow-x:auto}.customer-row{background:#1d2025;border:1px solid #30343b;border-radius:8px;flex:none;gap:2px;padding:2px}.customer-button{text-align:center;white-space:nowrap;width:auto;min-width:72px;min-height:40px;padding:8px 12px}.delete-customer{min-width:36px;min-height:40px}.add-customer{margin-top:6px}.add-customer input{flex:1;width:auto;min-width:0;min-height:42px;font-size:16px}.add-customer button{flex:0 0 42px;width:42px;min-height:42px}.main{width:100%;padding:16px 12px 28px;overflow:visible}.page-header{flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:16px}.page-header h1{font-size:23px}.page-header p{font-size:13px}.dashboard-actions,.customer-header-actions{flex-wrap:wrap;justify-content:flex-start;width:100%}.dashboard-actions>button,.customer-header-actions>button{flex:1;min-height:44px}.customer-header-actions .market-tabs{flex:100%}.market-tabs button{flex:1;padding:8px 10px}.dashboard-grid,.customer-grid{gap:14px}.section-title{padding:13px 12px}.stats-category-header{flex-wrap:wrap;align-items:flex-start}.stats-category-header>strong{text-align:left;font-size:15px}.stats-category-bar{align-items:flex-start;padding:10px 12px}.stats-category-buttons{overscroll-behavior-x:contain;scrollbar-width:thin;flex-wrap:nowrap;max-width:100%;padding-bottom:4px;overflow-x:auto}.stats-category-buttons button{flex:none;min-height:40px}.dashboard-category-total{width:100%;margin-left:0}th,td{padding:10px 9px}.entry-card{margin-bottom:14px;padding:14px}textarea{min-height:130px;padding:12px}.entry-actions{flex-direction:column;align-items:stretch;gap:10px}.entry-buttons{grid-template-columns:minmax(72px,.7fr) minmax(0,1.5fr);gap:8px;display:grid}.entry-buttons button{padding:10px 8px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.stat-box{min-width:0;padding:11px 9px}.stat-box span{font-size:11px}.stat-box strong{overflow-wrap:anywhere;font-size:clamp(14px,4vw,18px)}.bet-card{padding:12px}.bet-top{gap:8px}.bet-total-actions{justify-content:space-between;align-self:stretch}.archive-overlay{align-items:stretch;padding:0}.archive-dialog{border-radius:0;width:100%;max-height:100dvh}.bet-edit-overlay{align-items:stretch;padding:0}.bet-edit-dialog{border-radius:0;width:100%;max-height:100dvh}.odds-overlay{align-items:stretch;padding:0}.odds-dialog{border-radius:0;width:100%;max-height:100dvh}.odds-fields{grid-template-columns:1fr}.bet-edit-content{padding:14px}.bet-edit-footer{padding:12px 14px}.archive-dialog-header{z-index:1;background:#fff;padding:12px 14px;position:sticky;top:0}.archive-dialog-header h2{font-size:18px}.archive-dialog-header p{font-size:12px}.dashboard-category-total .max-payout-label,.panel-market-header .max-payout-label{margin-left:0;display:block}.archive-list,.archive-detail{padding:14px 12px 20px}.archive-row-actions{width:100%}.archive-row-actions button{flex:1;min-height:44px}.archive-summary-cards{gap:8px;width:100%}.archive-summary-card{flex:100px;min-width:0;padding:10px}.archive-notice{padding:10px 14px;font-size:13px}}.loading-spinner{vertical-align:-3px;border:2px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-right:6px;animation:.8s linear infinite parsing-spin;display:inline-block}.parsing-status{color:#42678d;align-items:center;gap:4px;display:inline-flex}.entry-buttons button:disabled{opacity:.65;cursor:wait}@keyframes parsing-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none}}.listener-download-button{color:#24354b;background:#fff;border:1px solid #d9dfe7;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:11px 12px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.listener-download-button:hover{background:#edf3fa;border-color:#a9bed6}.listener-download-button:focus-visible{outline-offset:2px;outline:2px solid #42678d}.settlement-entry{color:#fff;cursor:pointer;background:#20252b;border:0;border-radius:7px;margin-left:auto;padding:8px 14px;font-size:14px}.settlement-dialog{width:min(680px,100vw - 32px)}.settlement-content{padding:20px}.settlement-market-buttons{gap:12px;margin-bottom:20px;display:flex}.settlement-market-buttons button{cursor:pointer;background:#fff;border:1px solid #d9dfe7;border-radius:8px;flex:1;padding:13px;font-size:16px}.settlement-market-buttons button.active{color:#234f80;background:#edf3fa;border-color:#42678d;font-weight:700}.settlement-result-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.settlement-period{align-items:center;gap:12px;display:flex}.settlement-period input{border:1px solid #d9dfe7;border-radius:6px;min-width:0;padding:9px}.settlement-time{color:#6b7787;margin:14px 0;font-size:13px}.settlement-numbers{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:20px;display:grid}.settlement-numbers label{text-align:center;color:#6b7787;font-size:12px}.settlement-numbers input{box-sizing:border-box;text-align:center;border:1px solid #d9dfe7;border-radius:8px;width:100%;margin-top:8px;padding:10px 0;font-size:22px;font-weight:700}.settlement-numbers .special{color:#bd433e}.settlement-numbers .special input{color:#bd433e;background:#fff4f3;border-color:#e8b5b1}@media (width<=500px){.settlement-content{padding:14px}.settlement-numbers{gap:4px}.settlement-numbers input{font-size:18px}}.actual-payout-total{color:#375e86;white-space:nowrap;align-items:center;gap:8px;margin-left:18px;font-size:16px;display:inline-flex}.payout-pending{color:#8793a2;white-space:nowrap;font-size:14px;font-weight:500}.actual-payout-card{border-top:3px solid #42678d}.actual-payout-card>strong.payout-pending{font-size:24px}.actual-payout-heading,.actual-payout-cell{text-align:right;white-space:nowrap}.actual-payout-cell{color:#375e86;font-weight:700}@media (width<=600px){.actual-payout-total{gap:5px;margin-left:8px;font-size:14px}.actual-payout-heading,.actual-payout-cell{padding-left:8px;padding-right:8px}}.settlement-content{min-height:0;overflow-y:auto}.settlement-dialog>.archive-dialog-header,.settlement-dialog>.bet-edit-footer{flex-shrink:0}.settlement-feedback{overflow-wrap:anywhere;flex-shrink:0;padding:0 20px 12px;line-height:1.6}.settlement-feedback:empty{display:none}.settlement-success{color:#247243}.page-loading-overlay{z-index:9999;cursor:wait;background:#11182773;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.page-loading-card{text-align:center;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:14px;padding:30px 38px;display:flex;box-shadow:0 18px 60px #00000040}.page-loading-card strong{color:#25364a;font-size:18px}.page-loading-card>span:last-child{color:#7b8796;font-size:13px}.page-loading-spinner{border:3px solid #e1e8f0;border-top-color:#42678d;border-radius:50%;width:38px;height:38px;animation:.8s linear infinite parsing-spin}.backend-workspace{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;margin-bottom:24px;display:grid}.backend-workspace .backend-management,.backend-list{border-radius:14px;margin-bottom:0;padding:24px}.backend-card-heading{margin-bottom:24px}.backend-card-heading h2{color:#24354b;margin:0;font-size:18px}.backend-card-heading p{color:#87909e;margin:8px 0 0;font-size:13px;line-height:1.6}.backend-workspace .backend-create-form,.backend-workspace .admin-password-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}.backend-create-form>label:last-of-type,.admin-password-form>label:first-of-type{grid-column:1/-1}.backend-workspace label{color:#546174;flex-direction:column;gap:9px;font-size:13px;display:flex}.backend-workspace input,.backend-list .backend-edit-input{color:#24354b;background:#fafbfc;border:1px solid #dce2ea;border-radius:8px;width:100%;min-width:0;min-height:44px;padding:11px 12px;font-size:14px}.backend-workspace input::placeholder{color:#a0a9b5}.backend-workspace input:focus,.backend-list input:focus{background:#fff;border-color:#6694c4;outline:2px solid #c5d9f0}.backend-workspace .submit{color:#fff;background:#315d89;border:0;border-radius:8px;justify-self:start;min-height:42px;padding:10px 24px;font-size:14px}.backend-workspace .submit:hover{background:#264d74}.backend-workspace .submit:disabled{opacity:.6;cursor:wait}.backend-security .submit{color:#315d89;background:#edf3f9}.backend-security .submit:hover{background:#dfeaf5}.backend-workspace .login-error{margin:14px 0 0;font-size:13px}.backend-workspace .backend-notice{font-size:13px}.backend-list-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.backend-count{color:#64748b;white-space:nowrap;background:#f1f5f9;border-radius:6px;padding:6px 10px;font-size:12px}.backend-table-scroll{overflow-x:auto}.backend-list table{min-width:650px}.backend-list th{background:#f7f9fc;font-size:12px;font-weight:500}.backend-list td{color:#546174;padding:16px 12px;font-size:14px}.backend-list tbody tr:last-child td{border-bottom:0}.backend-list tbody tr:hover{background:#fafbfe}.backend-user-id{color:#24354b;font-weight:600}.backend-status{color:#247a52;white-space:nowrap;background:#edf8f1;border-radius:20px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.backend-status:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.backend-status.expired{color:#b65744;background:#fff1ec}.backend-row-actions button{padding:7px 12px;font-size:12px}.backend-row-actions .backend-edit-input{width:170px}.customer-workspace .page-header{align-items:flex-start;gap:20px}.customer-workspace .page-header h1{font-size:26px}.customer-workspace .page-header p{font-size:13px}.customer-workspace .customer-header-actions{flex-wrap:wrap;justify-content:flex-end}.customer-workspace .wechat-binding{gap:10px;font-size:12px}.wechat-binding-status{color:#956f33;background:#fff4dd;border-radius:5px;padding:4px 8px}.wechat-binding-status.is-bound{color:#247a52;background:#eaf6ee}.customer-workspace>.stats{grid-template-columns:minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.4fr) minmax(0,1fr);gap:14px;display:grid}.customer-workspace .stat-box{background:#fff;border:1px solid #e4e8ee;border-radius:12px;min-width:0;padding:18px 20px}.customer-workspace .stat-box>span{color:#87909e;font-size:12px}.customer-workspace .stat-box>strong{color:#24354b;overflow-wrap:anywhere;margin-top:8px;font-size:24px}.customer-workspace .stat-box .max-payout-label{color:#87909e;margin-top:6px;font-size:11px}.customer-workspace .actual-payout-card{border-top:3px solid #42678d}.customer-workspace .manual-entry{border-radius:12px;margin-bottom:20px;padding:0}.manual-entry-summary{cursor:pointer;color:#375e86;align-items:center;gap:12px;min-height:54px;padding:15px 20px;font-size:14px;font-weight:600;list-style:none;display:flex}.manual-entry-summary::-webkit-details-marker{display:none}.manual-entry-summary small{color:#929ba8;font-size:12px;font-weight:400}.manual-entry-summary:hover{background:#f8fafc}.manual-entry-chevron{margin-left:auto;transition:transform .15s}.manual-entry[open] .manual-entry-chevron{transform:rotate(180deg)}.manual-entry-body{border-top:1px solid #edf0f3;padding:18px 20px 20px}.manual-entry-body textarea{background:#fafbfc;min-height:100px}.manual-entry-body .submit{background:#315d89}.manual-entry-body .message{font-size:13px}.customer-workspace .customer-records-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}.customer-orders-panel,.customer-summary-panel{border-radius:12px;flex-direction:column;max-height:75vh;display:flex}.customer-orders-panel>.section-title,.customer-summary-panel>.section-title,.customer-summary-panel>.stats-category-bar{flex-shrink:0}.customer-orders-panel>.section-title{justify-content:space-between;align-items:center;display:flex}.customer-record-count{color:#87909e;font-size:12px;font-weight:400}.customer-orders-list,.customer-summary-list{overscroll-behavior-y:contain;min-height:0;overflow:auto}.customer-summary-list th{z-index:1;position:sticky;top:0}.customer-workspace .bet-card{padding:16px 18px}.customer-workspace .bet-total-actions{flex-wrap:wrap}.customer-workspace .bet-total-actions>strong{color:#375e86;font-size:13px}.customer-workspace .raw-text{color:#64748b;font-size:13px}.customer-workspace .pending-bets-panel{border-color:#efd7b3;border-radius:12px}.customer-workspace .pending-bets-heading{background:#fffbf4}@media (width<=1100px){.customer-workspace .page-header{flex-wrap:wrap}.customer-workspace .customer-records-grid{grid-template-columns:1fr}}@media (width<=700px){.customer-workspace>.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.customer-workspace .stat-box{padding:14px 12px}.customer-workspace .stat-box>strong{font-size:20px}.customer-workspace .customer-header-actions{justify-content:flex-start}.manual-entry-summary{gap:8px;padding:14px}.manual-entry-summary small{font-size:11px}.manual-entry-body{padding:14px}.customer-workspace .bet-card{padding:12px}.customer-orders-panel,.customer-summary-panel{max-height:70dvh}}@media (width<=1100px){.backend-workspace{grid-template-columns:1fr}}@media (width<=700px){.backend-workspace{gap:14px;margin-bottom:14px}.backend-workspace .backend-management,.backend-list{padding:18px 16px}.backend-workspace .backend-create-form,.backend-workspace .admin-password-form{grid-template-columns:1fr}.backend-workspace .submit{justify-self:stretch}.backend-workspace input{font-size:16px}.backend-list-heading{align-items:flex-start}}@media (prefers-reduced-motion:reduce){.page-loading-spinner{animation:none}}
