:root{font:14px/1.6 'Microsoft YaHei',sans-serif;color:#eaeaec;background:#0e0e10;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{cursor:pointer}button{border:1px solid #36363d;background:#202024;color:#eee;border-radius:9px;padding:10px 16px}button:hover{border-color:#aaa}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}.primary{background:#f0f0f2;color:#151517;border-color:#f0f0f2;font-weight:600}input,select,textarea{padding:11px 12px;border:1px solid #3d3d45;border-radius:8px;background:#121215;color:#eee;max-width:100%;min-width:0}input:focus,textarea:focus,button:focus-visible{outline:2px solid #bbb;outline-offset:3px}small,.muted{color:#9999a4}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:18px}aside{position:fixed;inset:0 auto 0 0;width:230px;background:#151518;border-right:1px solid #2a2a30;padding:30px 20px;display:flex;flex-direction:column}.brand{width:182px;height:67px;object-fit:cover;object-position:center;filter:invert(1);mix-blend-mode:screen}.brand-text{font-size:11px;letter-spacing:3px;color:#999;padding:12px 0 26px}nav{display:grid;gap:8px}nav button{text-align:left;border:0;background:transparent;color:#aaa;padding:13px 16px}nav button.active{background:#eee;color:#111}.aside-bottom{margin-top:auto;display:grid;gap:16px;font-size:12px}main{margin-left:230px;padding:40px;max-width:1600px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:3px;color:#a0a0aa;margin-bottom:9px}.notice{border:1px solid #393940;background:#1b1b20;padding:13px 17px;border-radius:10px;font-size:12px;color:#b5b5bf;margin:18px 0}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.toolbar input[type=search]{flex:1;min-width:180px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric,.panel{border:1px solid #303036;background:#19191d;border-radius:14px;padding:23px}.metric strong{display:block;font-size:30px;letter-spacing:-1px;margin:12px 0 5px;font-variant-numeric:tabular-nums}.metric small{font-size:11px}.grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin:22px 0}.panel h2{margin-bottom:22px}.chart{height:210px;display:flex;gap:5px;align-items:flex-end;padding-top:18px}.bar{flex:1;min-width:0;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:flex-end}.bar i{display:block;background:#d3d3dc;min-height:2px;border-radius:3px 3px 0 0}.bar small{font-size:9px;margin-top:7px}.line{display:flex;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid #303036}.line:last-child{border:0}.table-wrap{overflow:auto;border:1px solid #303036;border-radius:12px;background:#18181c}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{color:#9999a5;font-size:11px;font-weight:400;letter-spacing:1px;background:#202025}td,th{padding:14px 18px;border-bottom:1px solid #2e2e34}td{font-size:13px}td small{display:block}td img{width:64px;height:54px;object-fit:cover;border-radius:8px;background:#29292f;vertical-align:middle}.badge{font-size:11px;border:1px solid #44444a;padding:4px 8px;border-radius:20px}.empty{padding:45px;text-align:center;color:#999}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#eee;color:#141416;padding:12px 23px;border-radius:10px;z-index:100;display:none;max-width:90vw}dialog{width:560px;max-width:calc(100vw - 30px);border:1px solid #45454d;border-radius:18px;background:#1a1a1e;color:#eee;padding:28px;max-height:90vh}dialog::backdrop{background:#000a}label{display:grid;gap:7px;margin:16px 0;font-size:12px;color:#bbb}label input,label textarea{width:100%}label.check{display:flex;align-items:center}label.check input{width:auto}textarea{min-height:80px;resize:vertical}.preview{width:100%;height:155px;object-fit:cover;border-radius:10px;background:#28282c}.modal-head,.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}.error{color:#fbb5b5;min-height:22px;font-size:12px}.login{max-width:450px;margin:9vh auto;padding:35px;background:#19191d;border:1px solid #35353b;border-radius:20px}.login .primary{width:100%;margin-top:15px}.loading{padding:60px;color:#aaa}.footnote{font-size:11px;color:#888;margin-top:20px}@media(max-width:1000px){aside{width:185px;padding:25px 14px}.brand{width:154px}main{margin-left:185px;padding:25px}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}@media(max-width:640px){aside{position:static;width:auto;padding:16px}.brand{height:40px}.brand-text,.aside-bottom{display:none}nav{display:flex;overflow:auto;margin-top:12px}nav button{white-space:nowrap;padding:9px 12px}main{margin:0;padding:20px 14px}.heading{align-items:flex-start;flex-direction:column}h1{font-size:25px}.metric{padding:16px}.metric strong{font-size:24px}.chart{gap:3px}.login{margin:25px 14px}.bar small{font-size:8px}}
.desk-actions{display:flex;gap:14px;margin:24px 0;flex-wrap:wrap}.desk-actions button{min-height:60px;padding:14px 28px;font-size:17px}.desk-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.desk-cards button{min-height:48px;width:100%;margin-top:15px}.desk-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}#voucher-fields[hidden]{display:none}@media(max-width:700px){.desk-cards,.desk-form-grid{grid-template-columns:1fr}}


.crm-detail{margin-top:24px}.crm-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.crm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.crm-cards p,.message-record p{white-space:pre-wrap;overflow-wrap:anywhere}.wrap-cell{white-space:normal;min-width:180px;max-width:320px}.message-record{padding:16px 0;border-bottom:1px solid #333}.chart-scroll{overflow-x:auto}.chart .bar small{white-space:nowrap;font-size:10px}.grid>*{min-width:0}.toolbar label{margin:0}dialog{max-height:90vh;overflow-y:auto}

/* Front desk payment layout */
.pay-intro,.pay-query-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0;color:#b6b6c0}.pay-order-panel{padding:22px}.pay-select-label{margin:0 0 12px;font-size:16px;font-weight:600;color:#eee}.pay-select-label span{font-size:12px;color:#a9a9b5;font-weight:400}#cloud-order-select{width:100%;min-height:52px;font-size:15px}.pay-summary{text-align:center;padding:24px 0 16px}.pay-eyebrow{display:block;color:#aaa;font-size:13px}.pay-amount{display:block;font-size:42px;font-weight:700;letter-spacing:-1px;font-variant-numeric:tabular-nums}.pay-summary h3{font-size:16px;font-weight:400}.pay-order-id{font-size:11px;color:#9393a3;overflow-wrap:anywhere;margin-top:4px}.pay-items{padding:0 12px;background:#131317;border-radius:10px}.pay-items .line{padding:10px 0}.pay-status{margin:18px 0;padding:12px;text-align:center;background:#29251a;color:#f4d38c;border-radius:10px}.pay-status.is-paid{background:#103a2b;color:#91edbb}.pay-channel-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.pay-channel{border:1px solid #3a3a43;background:#202025;border-radius:14px;padding:20px}.pay-channel header{display:flex;gap:12px;align-items:center;margin-bottom:20px}.pay-channel h3{font-size:19px}.pay-channel header p,.pay-caption{font-size:12px;color:#b6b6c1}.pay-caption{text-align:center;margin-top:10px}.pay-logo{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;color:white}.wx-logo{background:#07a95b}.wx-logo svg{width:36px;height:36px}.ali-logo{background:#1677ff;font-size:32px;font-weight:bold;line-height:1}.pay-main{width:100%;min-height:54px;font-size:17px;font-weight:600;border:0}.wx-button{background:#087e48;color:#fff}.ali-button{background:#1762d0;color:#fff}.pay-main:disabled{background:#34343d;color:#aaa;opacity:1;cursor:not-allowed}.pay-main:not(:disabled):hover{filter:brightness(1.15)}.pay-qr{display:grid;justify-items:center;gap:12px;margin:20px 0;padding:20px;background:#f7f9fc;color:#182438;border-radius:14px}.pay-qr img{max-width:100%;height:auto;border-radius:8px}.pay-scan{margin-top:18px;border:1px solid #3a3a43;padding:16px;border-radius:12px}.pay-scan summary{cursor:pointer;font-weight:600;min-height:28px}.pay-scan summary span{float:right;font-size:12px;color:#aaa}.pay-scan form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px}.pay-scan label{margin-bottom:0}.pay-scan button{min-height:46px}.pay-query-row{margin-bottom:0;font-size:12px}.pay-sound{margin-top:18px}.pay-sound h2{margin-bottom:10px}.pay-sound p{font-size:12px;color:#a9a9b5}.pay-sound button{margin:14px 10px 0 0;min-height:46px}#cashier-close{min-height:44px}@media(max-width:600px){.pay-channel-grid{grid-template-columns:1fr}.pay-channel{padding:16px}.pay-scan form{grid-template-columns:1fr}.pay-intro{align-items:flex-start}.pay-amount{font-size:36px}.pay-order-panel{padding:14px}}

.ledger-filters{flex-wrap:wrap;gap:8px}.ledger-filters button{min-height:44px}

/* Clear working areas and touch-sized controls for the store iPad. */
:root{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Microsoft YaHei',sans-serif;line-height:1.65}
button{min-height:44px;transition:background .15s,border-color .15s}button.primary:hover{background:#fff}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #9bbdff;outline-offset:3px}
aside{width:220px;padding:28px 18px;overflow-y:auto}.brand-wordmark{display:flex;align-items:baseline;gap:10px;color:#f8f8fa}.brand-wordmark strong{font-size:28px;letter-spacing:2px}.brand-wordmark span{font-size:12px;letter-spacing:1px}.brand-text{padding:5px 0 24px;letter-spacing:2px}
nav{gap:22px}.nav-group{display:grid;gap:4px}.nav-label{font-size:11px;letter-spacing:2px;color:#8e8e9e;padding:0 14px 6px}nav button{width:100%;font-size:14px;padding:10px 14px;color:#c5c5ce}nav button.active{font-weight:650;background:#e7ecf5;color:#192331}.aside-bottom{padding-top:28px;gap:12px}
main{margin-left:220px;padding:32px;max-width:1680px}.heading{padding-bottom:24px;border-bottom:1px solid #303039;margin-bottom:24px}.heading h1{font-size:28px;letter-spacing:0}.header-actions{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0}.eyebrow{letter-spacing:2px;color:#b1b1bf}.muted,small{color:#b0b0bd}.footnote{color:#9999a8;line-height:1.8}
.toolbar{gap:12px}.toolbar label{font-size:12px;gap:5px}.toolbar input,.toolbar select{min-height:44px}.ledger-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin:24px 0}.metric{padding:22px 24px}.metric strong{font-size:32px}.metric:first-child{border-color:#657387;background:linear-gradient(135deg,#242d39,#1c2028)}.panel{margin-bottom:22px}.panel h2{margin-bottom:18px}.filter-label{min-width:70px;font-size:12px;color:#b8b8c6}.ledger-filters{margin:14px 0}.ledger-filters button{font-size:13px;padding:9px 14px;border-radius:8px}.ledger-help{border:1px solid #35353f;background:#141418;border-radius:10px;padding:12px 16px;margin:20px 0}.ledger-help summary{cursor:pointer;color:#bfc4d0;min-height:28px}.ledger-help p{margin-top:12px;font-size:12px;line-height:1.85}
th{font-weight:600;color:#c4c4cf;letter-spacing:0;padding:14px 18px}td{padding:16px 18px}tbody tr:hover{background:#202028}.table-wrap{max-width:100%}.desk-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.desk-actions button{min-height:64px;padding:12px 16px;font-size:16px}.desk-cards .panel{margin:0}
.export-dialog{width:660px}.export-note{font-size:12px;color:#b7bbc6;margin-top:16px;line-height:1.85}.export-dates{display:grid;grid-template-columns:1fr 1fr;gap:16px}.export-options{display:grid;gap:12px}.export-options section{padding:18px;border:1px solid #3a3d48;border-radius:12px;background:#20232b}.export-options h3{font-size:16px}.export-options p{font-size:12px;color:#bfc2ce;margin:5px 0 14px}.export-options button{width:100%}#export-status{min-height:44px}
@media(max-width:1100px){aside{width:190px;padding:24px 14px}main{margin-left:190px;padding:24px}.heading{gap:14px}.heading h1{font-size:25px}.header-actions button{padding:10px 12px}.metric{padding:18px}.metric strong{font-size:28px}.desk-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){aside{position:static;width:100%;padding:18px 16px;border-right:0;border-bottom:1px solid #303039}.brand-text,.aside-bottom{display:none}nav{display:flex;gap:8px;overflow-x:auto;margin-top:16px;padding-bottom:4px}.nav-group{display:contents}.nav-label{display:none}nav button{width:auto;flex-shrink:0;white-space:nowrap}main{margin:0;padding:22px 16px}.heading{align-items:flex-start;flex-direction:column;gap:16px}.header-actions{width:100%}.header-actions button{flex:1}.ledger-metrics{gap:10px}.metric{padding:14px}.metric strong{font-size:23px}.metric small{font-size:11px}.toolbar label{flex:1;min-width:125px}.toolbar input[type=date]{width:100%}.filter-label{width:100%}.desk-actions{grid-template-columns:1fr 1fr}.export-dates{gap:10px}dialog{padding:20px}.export-options section{padding:16px}}
@media(max-width:420px){.ledger-metrics{grid-template-columns:1fr}.metric strong{margin:5px 0;font-size:28px}.desk-actions{grid-template-columns:1fr}.heading h1{font-size:25px}.export-dates{grid-template-columns:1fr;gap:0}}
/* Receipt list: clear hierarchy on desktop, stacked records on phones. */
.ledger-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.ledger-title h2{font-size:22px;margin-bottom:5px}.ledger-title p{font-size:13px}.ledger-count{white-space:nowrap;background:#2b3342;color:#dce7fc;border-radius:20px;padding:6px 14px;font-size:13px}.receipt-table{table-layout:fixed;white-space:normal}.receipt-table th{font-size:13px;background:#282c35;padding:16px}.receipt-table th:nth-child(1){width:25%}.receipt-table th:nth-child(2){width:29%}.receipt-table th:nth-child(3){width:21%}.receipt-table th:nth-child(4){width:25%}.receipt-table td{padding:22px 16px;vertical-align:top;border-bottom:1px solid #3b3e48;overflow-wrap:anywhere}.receipt-table tr:nth-child(even){background:#1e2027}.receipt-table tr:hover{background:#252932}.receipt-time>span{font-size:14px;color:#e6e7ed}.receipt-id{font-size:11px;margin-top:8px;color:#aeb2c0;line-height:1.7}.receipt-project>strong{font-size:16px;color:#f6f7fa;line-height:1.6}.receipt-channels{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.receipt-channels span{padding:2px 8px;background:#2a303b;color:#d4ddec;border-radius:5px;font-size:12px}.receipt-verification{font-size:11px;color:#b0b5c2}.receipt-amount .receipt-kind{display:block;font-size:12px;margin-bottom:5px;color:#c2c7d2}.receipt-amount strong{font-size:23px;line-height:1.4;font-variant-numeric:tabular-nums;white-space:nowrap}.receipt-amount.is-income strong{color:#a9e9c6}.receipt-amount.is-refund strong{color:#ffc59f}.receipt-note-text{white-space:pre-wrap;line-height:1.7;font-size:13px;color:#a8aebc;margin-bottom:10px}.receipt-note-text.has-note{padding:10px 12px;border-left:3px solid #e7be71;border-radius:5px;background:#342e22;color:#ffe0a8}.receipt-note-button{border-color:#6e86aa;background:#253650;color:#e2edff;min-height:44px;font-size:13px;padding:8px 16px}.receipt-note-button:hover{background:#32496d;border-color:#accbfc}.receipt-note-dialog{width:480px;padding:28px;border-color:#66758c}.receipt-note-dialog h2{font-size:22px}.receipt-note-summary{background:#252c38;border-radius:10px;padding:14px;margin:18px 0;color:#e0e8f5;overflow-wrap:anywhere}.receipt-note-dialog label{font-size:14px;color:#e2e5ed}.receipt-note-dialog .muted{font-size:12px}.receipt-note-dialog .toolbar{justify-content:flex-end;margin-bottom:0}.receipt-note-dialog textarea{font-size:16px;line-height:1.7}
@media(max-width:760px){.ledger-panel{padding:16px}.ledger-title{align-items:flex-start}.ledger-title h2{font-size:20px}.ledger-title p{font-size:12px}.ledger-count{padding:5px 10px;font-size:12px}.ledger-table-wrap{border:0;background:transparent;overflow:visible}.receipt-table,.receipt-table tbody{display:block;width:100%}.receipt-table thead{display:none}.receipt-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border:1px solid #454b58;border-radius:12px;margin-bottom:14px;padding:16px;gap:16px 12px;background:#20242d!important}.receipt-table td{display:block;padding:0;border:0;min-width:0}.receipt-table .receipt-time{grid-column:1/-1;border-bottom:1px solid #424854;padding-bottom:12px}.receipt-table .receipt-project{grid-column:1;grid-row:2}.receipt-table .receipt-amount{grid-column:2;grid-row:2;text-align:right}.receipt-amount strong{font-size:22px}.receipt-table .receipt-note-cell{grid-column:1/-1;display:flex;align-items:center;gap:12px;border-top:1px solid #424854;padding-top:14px}.receipt-note-text{flex:1;min-width:0;margin:0}.receipt-note-button{flex-shrink:0}.receipt-id{margin-top:4px}.receipt-note-dialog{padding:20px}}
.group-platforms{display:grid;grid-template-columns:1fr 1fr;gap:14px}.group-platforms button{font-size:21px;min-height:100px}.group-platforms small{display:block;font-size:13px;margin-top:7px}.voucher-dialog{width:min(960px,96vw);padding:16px}.voucher-frame{width:100%;height:72vh;border:0;border-radius:12px;margin-top:12px;background:#f2f5f3}@media(max-width:600px){.voucher-dialog{max-width:100%;width:100%;padding:10px}.voucher-frame{height:76vh}}

.receipt-ledger th:nth-child(1){width:22%}.receipt-ledger th:nth-child(2){width:25%}.receipt-ledger th:nth-child(3){width:17%}.receipt-ledger th:nth-child(4){width:17%}.receipt-ledger th:nth-child(5){width:19%}.receipt-net .receipt-kind,.receipt-net small{display:block;font-size:12px;color:#bcc5d3;line-height:1.6}.receipt-net strong{display:block;font-size:22px;color:#a9e9c6;white-space:nowrap;margin:5px 0}.receipt-net small{margin-top:5px}@media(max-width:760px){.receipt-ledger .receipt-net{grid-column:1/-1;border-top:1px solid #424854;padding-top:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.receipt-ledger .receipt-net strong{margin:0}.receipt-ledger .receipt-net small{margin:0;margin-left:auto}}
