:root{--ink:#061b16;--deep:#08261d;--leaf:#0f4332;--gold:#d5ad58;--pale:#f7edcf;--line:rgba(213,173,88,.25);--muted:#adc0b5;--danger:#f6a6a0;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--pale);background:var(--ink)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 50% -20%,#174e3a 0,#08261d 37%,#061b16 80%)}.glow{position:fixed;border-radius:50%;filter:blur(100px);opacity:.22;pointer-events:none}.g1{width:300px;height:300px;background:#d5ad58;left:-140px;top:25%}.g2{width:250px;height:250px;background:#2a9b6f;right:-100px;bottom:5%}.shell{position:relative;width:min(1180px,100%);min-height:100dvh;margin:auto;padding:22px}.brand{height:70px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);margin-bottom:28px}.brand strong{display:block;letter-spacing:.08em;color:var(--gold)}.brand small,.eyebrow{display:block;color:var(--gold);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}.seal{border:1px solid var(--gold);color:var(--gold);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:1.35rem}.brand .ghost{margin-left:auto}.panel,.hero,.choice,.workarea{background:linear-gradient(145deg,rgba(20,66,51,.72),rgba(7,30,23,.82));border:1px solid var(--line);box-shadow:0 18px 45px #0003;backdrop-filter:blur(12px);border-radius:16px}.center{padding:70px;text-align:center}.auth{width:min(430px,100%);margin:8vh auto;padding:34px}.auth h1,.hero h1,.stafftop h1{font-family:Georgia,"Songti SC",serif;font-weight:500;margin:5px 0 25px;letter-spacing:.04em}form{display:grid;gap:14px}label{display:grid;gap:6px;color:var(--muted);font-size:.82rem}input,select{background:#051b14;color:var(--pale);border:1px solid var(--line);border-radius:8px;padding:12px;font:inherit}button{border:1px solid var(--gold);border-radius:8px;background:linear-gradient(135deg,#dfbd70,#b88534);color:#092017;padding:11px 16px;font:inherit;font-weight:700;cursor:pointer;transition:.2s}button:hover{filter:brightness(1.1);transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}.ghost,.tab{background:transparent;color:var(--gold);border-color:var(--line)}.tab.active{background:#d5ad5822;border-color:var(--gold)}.error{color:var(--danger);min-height:1em}.hero{padding:38px;margin-bottom:18px}.hero h1{font-size:clamp(1.8rem,6vw,3.2rem)}.hero p{color:var(--muted)}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.choice{text-align:left;padding:25px;background:linear-gradient(145deg,#124633,#08261d);color:var(--pale)}.choice span{display:block;font-size:2rem;color:var(--gold);margin-bottom:20px}.choice b,.choice small{display:block}.choice small{color:var(--muted);margin-top:8px}.stafftop{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px;gap:15px}.stafftop h1{margin-bottom:0}.stafftop nav{display:flex;gap:8px;flex-wrap:wrap}.workarea{display:grid;grid-template-columns:330px 1fr;overflow:hidden;min-height:600px}.list{border-right:1px solid var(--line);max-height:73dvh;overflow:auto}.conv{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--pale);text-align:left;padding:15px}.conv.active{background:#d5ad5817}.conv small,.muted{color:var(--muted)}.chat-empty{display:grid;place-items:center;color:var(--muted);padding:30px}.chat{display:grid;grid-template-rows:auto 1fr auto;min-width:0}.chat-head{padding:16px;border-bottom:1px solid var(--line)}.messages{padding:18px;overflow:auto;max-height:58dvh;display:flex;flex-direction:column;gap:10px}.message{max-width:80%;padding:10px 13px;border-radius:10px;background:#154934;align-self:flex-start;word-break:break-word}.message.staff{align-self:flex-end;background:#b98b3d;color:#11231a}.message small{display:block;opacity:.7;margin-top:5px}.message-form{border-top:1px solid var(--line);padding:12px;display:flex;gap:8px}.message-form input{flex:1}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-title h2{margin:5px 0}.panel{padding:24px}.fund-list,.staff-list{display:grid;gap:10px}.fund,.staff-row{border:1px solid var(--line);padding:15px;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:15px}.fund p,.staff-row p{margin:4px 0;color:var(--muted);font-size:.86rem}.fund-actions{display:flex;gap:8px}.fund-review{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px;align-items:center;min-width:min(460px,55%)}.staff-controls{display:grid;grid-template-columns:130px auto auto minmax(190px,1fr) auto;gap:8px;align-items:center}.staff-controls input,.staff-controls select{padding:8px}.inline-check{display:flex;align-items:center;gap:5px;white-space:nowrap}.inline-check input{width:18px;height:18px}.reject{background:transparent;color:var(--danger);border-color:#f6a6a055}.staff-form{grid-template-columns:1.1fr 1fr 1.3fr 1fr auto;align-items:end;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:20px}.staff-row button{padding:7px 10px;font-size:.8rem}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;padding:11px 18px;background:#e0bd70;color:#102219;border-radius:9px;transition:.25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.hidden{display:none!important}@media(max-width:900px){.staff-row{align-items:stretch;flex-direction:column}.staff-controls{grid-template-columns:1fr 1fr}.staff-controls input[type=password]{grid-column:1/-1}.fund-review{min-width:0;width:100%}}@media(max-width:760px){.shell{padding:14px}.brand{margin-bottom:16px}.stafftop{align-items:start;flex-direction:column}.workarea{grid-template-columns:1fr;min-height:0}.list{max-height:28dvh;border-right:0;border-bottom:1px solid var(--line)}.messages{max-height:45dvh}.staff-form{grid-template-columns:1fr}.fund,.staff-row{align-items:flex-start;flex-direction:column;width:100%}.fund-review{grid-template-columns:1fr}.fund-actions{width:100%}.fund-actions button{flex:1}.staff-controls{grid-template-columns:1fr 1fr;width:100%}.choices{grid-template-columns:1fr}.auth{margin:3vh auto}.panel{padding:18px}}@media(orientation:landscape) and (max-height:550px){.brand{height:54px;margin-bottom:10px}.workarea{min-height:calc(100dvh - 100px)}.messages{max-height:50dvh}}

/* 大厅弹窗嵌入模式：会员只看到聊天记录、输入框和确定按钮。 */
body.embedded{height:100dvh;min-height:0;overflow:hidden;background:#071712}
body.embedded .glow,body.embedded .brand,body.embedded #customer>.hero,body.embedded #customer>.choices{display:none!important}
body.embedded .shell,body.embedded #customer{width:100%;height:100dvh;min-height:0;margin:0;padding:0}
body.embedded #customer{display:block}
body.embedded #customerChat.chat{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:linear-gradient(180deg,#0c271d,#061710)}
body.embedded .chat-head{min-height:50px;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:rgba(213,173,88,.055)}
body.embedded .chat-head b{font-size:15px;color:#f5dd9d}
body.embedded .chat-head small{font-size:11px;color:var(--muted);text-align:right}
body.embedded .messages{min-height:0;max-height:none;padding:14px;gap:9px}
body.embedded .message{font-size:13px;line-height:1.5}
body.embedded .message small{font-size:9px}
body.embedded .message-form{padding:10px;background:#071a13}
body.embedded .message-form input{min-width:0;padding:11px 12px}
body.embedded .message-form button{flex:0 0 68px;padding:10px 12px}
body.embedded .toast{bottom:68px}

/* 充值客服与财务双确认工作台。 */
textarea{width:100%;min-height:92px;resize:vertical;background:#051b14;color:var(--pale);border:1px solid var(--line);border-radius:8px;padding:12px;font:inherit;line-height:1.55}
.fund-column{align-items:stretch;flex-direction:column}
.fund-main{min-width:0;flex:1}.fund-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fund-title b{font-size:15px}.fund-status{padding:4px 8px;border-radius:999px;font-size:10px;border:1px solid var(--line);color:var(--gold)}
.fund-status.SUCCESS{color:#83e0aa;border-color:#83e0aa55;background:#83e0aa12}.fund-status.FAILED{color:var(--danger);border-color:#f6a6a055;background:#f6a6a012}.fund-status.WAITING_FINANCE,.fund-status.PROCESSING{color:#83c9ff;border-color:#83c9ff55}
.fund .instructions{max-width:720px;white-space:pre-wrap;color:#e9dcae}.fund-actions .transfer{background:#1d6d50;color:#f2f4e8;border-color:#4da982}.section-title p{margin:5px 0 0}
.finance-table{overflow:auto;border:1px solid var(--line);border-radius:10px}.finance-table table{width:100%;min-width:930px;border-collapse:collapse}.finance-table th,.finance-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}.finance-table th{color:var(--gold);background:#071d16;position:sticky;top:0}.finance-table td{color:var(--muted)}.finance-table td.success{color:#83e0aa;font-weight:700}.finance-table td.failure{color:var(--danger);font-weight:700}
@media(max-width:760px){.fund-title{align-items:flex-start}.fund-actions{display:grid;grid-template-columns:1fr}.fund-actions button{width:100%}.finance-table{margin:0 -8px}}

/* 嵌入会员聊天：与主系统大厅一致的墨绿、深色与金色视觉。 */
body.embedded{height:100dvh;min-height:0;overflow:hidden;background:#061712;color:#f5f2e9}
body.embedded .glow,body.embedded .brand,body.embedded #customer>.hero,body.embedded #customer>.choices{display:none!important}
body.embedded .shell,body.embedded #customer{width:100%;height:100dvh;min-height:0;margin:0;padding:0;background:#061712}
body.embedded #customer{display:block}
body.embedded #customerChat.chat{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;background:radial-gradient(circle at 50% -18%,#123d2e 0,#08261d 35%,#061712 78%)}
body.embedded .chat-head{display:none!important}
body.embedded .messages{min-height:0;max-height:none;padding:14px 18px 10px;gap:9px;background:transparent}
body.embedded .message{max-width:82%;padding:11px 14px;border:1px solid rgba(233,192,111,.13);border-radius:18px 18px 18px 5px;background:linear-gradient(145deg,#154936,#0d3326);color:#f2f4eb;font-size:14px;line-height:1.5;box-shadow:0 8px 20px rgba(0,0,0,.16)}
body.embedded .message.staff{align-self:flex-end;border-color:rgba(247,223,170,.28);border-radius:18px 18px 5px 18px;background:linear-gradient(135deg,#dfbd70,#b88534);color:#132319}
body.embedded .message.welcome{align-self:flex-start}
body.embedded .message small{color:#a9bbb2;font-size:10px;opacity:1}
body.embedded .message.staff small{color:#314b3e}
body.embedded .message-form{min-height:84px;margin:8px 16px max(14px,env(safe-area-inset-bottom));padding:11px 11px 11px 16px;border:1px solid rgba(233,192,111,.38);border-radius:23px;background:rgba(5,27,20,.94);box-shadow:0 10px 28px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.03);display:flex;align-items:center;gap:10px}
body.embedded .message-form input{flex:1;min-width:0;padding:8px 0;border:0;background:transparent;color:#f5f2e9;font-size:16px;outline:none}
body.embedded .message-form input::placeholder{color:#83968d}
body.embedded .message-form button{flex:0 0 44px;width:44px;height:44px;padding:0;border:1px solid #f3d58c;border-radius:50%;background:linear-gradient(135deg,#f4d98f,#b77c2f);color:#18241d;font:700 24px/1 sans-serif;box-shadow:0 6px 18px rgba(197,143,52,.2)}
body.embedded .message-form button:disabled{border-color:rgba(255,255,255,.08);background:#193027;color:#60756b;box-shadow:none}
body.embedded .toast{bottom:112px;background:#d9b564;color:#102219}
@media(max-width:600px){body.embedded .messages{padding:12px 14px 8px}body.embedded .message-form{margin-left:12px;margin-right:12px;min-height:78px}}

.finance-table .reconcile{white-space:nowrap;padding:8px 10px}

/* 会员客服底色复用房间牌桌桌布；素材随独立客服部署，不依赖主系统端口。 */
body.embedded,body.embedded .shell,body.embedded #customer{background:#06110c}
body.embedded #customerChat.chat{background-color:#06110c;background-image:linear-gradient(rgba(1,25,16,.38),rgba(1,12,8,.54)),url('/assets/牌九主题底图.jpg?v=20260914-0700');background-position:center;background-size:cover;background-repeat:no-repeat}
body.embedded .messages{background:linear-gradient(180deg,rgba(1,16,11,.06),rgba(1,12,8,.16))}
body.embedded .message-form{background:rgba(5,27,20,.88);backdrop-filter:blur(8px)}
@media(orientation:portrait){body.embedded #customerChat.chat{background-image:linear-gradient(rgba(1,25,16,.38),rgba(1,12,8,.54)),url('/assets/牌九主题底图-正方形.png?v=20260914-0700')}}

/* 2026-09-14 客服全链路可用性与视觉优化。 */
:root{--surface:rgba(7,32,24,.9);--surface-2:rgba(15,67,50,.72);--success:#82dfab;--info:#89cfff}
button,input,select,textarea{outline:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.message-form:focus-within{outline:2px solid #f1d38b;outline-offset:2px}
.stafftop{position:sticky;top:0;z-index:8;padding:14px 16px;margin:0 0 16px;background:rgba(6,27,22,.94);border:1px solid var(--line);border-radius:14px;backdrop-filter:blur(14px);box-shadow:0 12px 32px #0004}
.stafftop small{color:var(--muted)}.stafftop nav{justify-content:flex-end}.tab{min-height:42px;padding:9px 14px}.tab.active{color:#10241b;background:linear-gradient(135deg,#f2d58f,#bd8738);box-shadow:0 7px 18px #0003}
.section-title{padding-bottom:15px;border-bottom:1px solid var(--line)}.section-title h2{font-family:Georgia,"Songti SC",serif;font-size:1.55rem}.section-title .muted{line-height:1.65}
.conv{display:grid;gap:5px;transition:.18s}.conv:hover{background:#d5ad580e;transform:none}.conv b{font-size:14px}.conv span{font-size:11px;color:var(--gold)}.conv small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fund-list{gap:14px}.fund{background:linear-gradient(145deg,rgba(19,70,52,.62),rgba(5,27,20,.82));box-shadow:0 10px 28px #0002}.fund strong{color:#f3d890}.fund-main{width:100%}.fund-main p{line-height:1.55}.fund-service-form{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch;padding-top:13px;border-top:1px solid rgba(213,173,88,.16)}.fund-service-form textarea{grid-row:span 2;min-height:112px}.fund-service-form button{min-width:180px}.fund-service-form .claim{grid-column:1/-1}.submit-instructions,.primary{background:linear-gradient(135deg,#f1d38a,#b98232);border-color:#f2da9d;color:#10241b;box-shadow:0 7px 20px rgba(204,151,58,.18)}
.fund-review{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;min-width:min(620px,62%)}.processing-note{padding:9px 12px;border:1px solid rgba(137,207,255,.28);border-radius:8px;background:rgba(45,123,164,.12);color:var(--info)!important}.confirming{background:linear-gradient(135deg,#ffe4a3,#d88d30)!important;color:#341c06!important;animation:confirmPulse .9s ease-in-out infinite alternate}@keyframes confirmPulse{to{filter:brightness(1.13);box-shadow:0 0 0 3px rgba(240,194,100,.14)}}
.load-error{display:grid;place-items:center;gap:8px;min-height:140px;padding:22px;text-align:center;color:var(--danger)}.load-error p{margin:0;color:var(--muted)}.load-error button{margin-top:5px}.chat-empty{min-height:150px;text-align:center}.customer-conversation-tabs{display:flex;gap:6px}.customer-conversation-tabs button{padding:6px 10px;background:transparent;color:var(--muted);border-color:var(--line);font-size:11px}.customer-conversation-tabs button.active{color:#17251d;background:var(--gold)}
.toast[data-kind="error"]{background:#f6a6a0;color:#34100d}.toast[data-kind="warn"]{background:#8ac8d8;color:#0b2931}.finance-table tr:hover td{background:rgba(213,173,88,.035)}.finance-table .load-error{min-height:120px}
body.embedded .message-form:focus-within{border-color:#f0cd78;box-shadow:0 0 0 3px rgba(240,205,120,.13),0 10px 28px rgba(0,0,0,.28)}
@media(max-width:900px){.stafftop{position:relative}.fund-review{min-width:0;width:100%;grid-template-columns:1fr 1fr}.fund-review input{grid-column:1/-1}.fund-service-form{grid-template-columns:1fr}.fund-service-form textarea{grid-row:auto}.fund-service-form button{width:100%;min-width:0}.staff-controls{grid-template-columns:1fr 1fr}.staff-controls input[type=password]{grid-column:1/-1}}
@media(max-width:600px){.shell{padding:10px}.brand{height:58px}.brand small{letter-spacing:.08em}.stafftop{padding:12px}.stafftop nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.tab{width:100%;padding:8px}.panel{padding:14px;border-radius:13px}.workarea{border-radius:13px}.fund{padding:13px}.fund-review{grid-template-columns:1fr}.fund-review input{grid-column:auto}.finance-table{margin:0}.staff-controls{grid-template-columns:1fr}.auth{padding:24px}.section-title h2{font-size:1.3rem}}

/* 财务报表运营日期筛选。 */
.custom-date-range.隐藏{display:none!important}
.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.range-period{color:var(--gold);white-space:nowrap}.date-range-filter{position:relative;z-index:3;display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 16px;overflow:visible}.date-range-filter>button,.date-range-filter [data-date-range-submit]{min-height:40px}.date-range-filter .custom-date-range:not(.隐藏){display:inline-flex;align-items:end;gap:7px}.date-range-filter .custom-date-range label{display:grid;gap:4px;min-width:148px;color:var(--muted);font-size:11px}.date-range-filter input{min-height:40px;color:var(--text)}
input[type="date"]{pointer-events:auto!important}input[type="date"]::-webkit-calendar-picker-indicator,input[type="time"]::-webkit-calendar-picker-indicator,input[type="datetime-local"]::-webkit-calendar-picker-indicator{position:relative;z-index:4;pointer-events:auto;opacity:1;cursor:pointer;filter:invert(86%) sepia(34%) saturate(625%) hue-rotate(358deg) brightness(103%)}
input[type="date"]:disabled,input[type="time"]:disabled,input[type="datetime-local"]:disabled{pointer-events:none!important;cursor:not-allowed}
@media(max-width:760px){.date-range-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.date-range-filter>button{width:100%;padding:8px}.date-range-filter .custom-date-range:not(.隐藏){grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;width:100%;align-items:end}.date-range-filter .custom-date-range label{min-width:0}.date-range-filter .custom-date-range input{font-size:16px}}
@media(max-width:480px){.section-title{align-items:flex-start;flex-direction:column}.date-range-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.date-range-filter .custom-date-range:not(.隐藏){grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.date-range-filter [data-date-range-submit]{grid-column:1/-1;width:100%}}

/* 聊天图片：选择、进度、重试、缩略图与原图查看。 */
.message-form{flex-wrap:wrap}.image-picker{display:grid;place-items:center;flex:0 0 auto;min-width:52px;min-height:42px;border:1px solid var(--line);border-radius:8px;color:var(--gold);cursor:pointer;font-weight:700}.image-picker input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.image-picker:focus-within{outline:2px solid #f1d38b;outline-offset:2px}.upload-status{flex:1 0 100%;display:grid;grid-template-columns:1fr minmax(90px,180px) auto;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;background:#071d16;color:var(--muted);font-size:12px}.upload-status progress{width:100%;accent-color:var(--gold)}.upload-status.failed{color:var(--danger)}.upload-retry{padding:5px 9px;font-size:11px}.image-message{display:block;line-height:0}.image-message img{display:block;max-width:min(320px,70vw);max-height:320px;width:auto;height:auto;border-radius:8px;object-fit:contain;background:#061712}.message.staff .image-message img{background:#7d5b22}body.embedded .image-picker{min-width:44px;min-height:44px;border-radius:50%;font-size:11px;background:rgba(15,67,50,.75)}body.embedded .message-form{flex-wrap:wrap}body.embedded .message-form>input{flex:1 1 120px}body.embedded .upload-status{background:transparent;padding:4px 0 0}.message.image-pending{opacity:.65}
@media(max-width:600px){.upload-status{grid-template-columns:1fr auto}.upload-status progress{grid-column:1/-1;grid-row:2}.image-message img{max-width:66vw;max-height:260px}}

@media(max-width:480px){.shell{padding:10px}.brand{height:auto;min-height:58px}.brand strong{font-size:.86rem}.choice,.panel{border-radius:12px}.message{max-width:92%}.message-form{padding:9px}.message-form input,button{min-height:44px}.stafftop nav{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tab{min-height:44px;padding:8px}.finance-table{overflow:auto}.finance-table table{min-width:760px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
